Skip to content

Zebra GX430t label printer

Direct-thermal / thermal-transfer desktop label printer, 300 dpi, on the LAN at 192.168.5.16 (Cow Robot production profile; the README example says .20 and is wrong), raw ZPL on TCP 9100 (the Universal Tester's production profile prints bag labels to it that way: Universal_Tester_003/host/universal_tester/printers/zebra_gx430t.py, ZebraGX430T — renders a bitmap, encodes it as a ^GFA raster, sends over a socket). The server prints the same way; no CUPS, no driver. First label printed from the server 2026-09-14 20:5x (Bin 03 location label).

Stock loaded (2026-09-14)

  • 2 × 1.5 in (50.8 × 38.1 mm) labels — the size for the opening stock count (SOP-023).

Templates in the ERP

Sources are kept in hardware/labels/ in this vault (the ERP copy is the live one; edit here, upload with PATCH /api/label/template/<pk>/ multipart template=). The QR encodes the public ERP page URL (https://erp.embeddedera.com/stock/item/<pk>/ or /stock/location/<pk>/), so a phone camera opens the record behind the Access login; InvenTree's stock INVENTREE_BASE_URL setting was erp.lan and is now the public host, which is what base_url in a template renders to. - EmbeddedEra Stock Label 2x1.5 in (Zebra GX430t) — template pk 9, stock items: QR, IPN, description, lot, location, qty, MPN, item id, date. Source: label/ee_stock_label_2x1_5.html in the InvenTree media volume. - EmbeddedEra Location Label 2x1.5 in (Zebra GX430t) — pk 10, bins/shelves. - EmbeddedEra Part Label 2x1.5 in (Zebra GX430t) — pk 11, one part number regardless of lot. - The 62 × 29 mm and 25 × 25 mm templates are for the Brother QL; do not send them here.

Reprints

Scan a label on the same page: photograph any label — ours (URL QR), InvenTree short codes, a DigiKey/Mouser Data Matrix, an LCSC QR, or a factory Code 128 MPN;order;qty;site — and the matching bin/item/part row appears with its Print button (POST /labels/api/scan, zxing-cpp server-side, photo kept in memory only). home → Production tools tile (/tools, Production + Administration; /labels redirects): Bin / Item / Part search, copies 1–10, prints straight to the printer through labelprint.py + zebra.py. PDF fallback when the printer is off.

Printing

From the Stock count queue (/stock): the Item label / Bin label buttons render the ERP template to a 300 dpi bitmap and send it straight to the printer (ZEBRA_HOST in ~/.config/zebra/env). Fallback: the same PDF link, printed from a browser at 100 % scale, no fit-to-page, paper size 2 × 1.5 in. Bulk from the ERP: Stock → filter → select all → Print Label → GX430t template → one PDF, one label per page.

The web tool considers the printer ready only when it answers the harmless ZPL ~HS host-status command. The sender also waits for TCP acknowledgement of the full raster and uses a bounded send buffer/timeout, so a wedged network card cannot be reported as a successful print. The stock-count queue retains its PDF fallback; Production Tools reports the direct-print failure without creating a PDF. If the printer accepts TCP but does not answer ~HS, power-cycle it before retrying; a power cycle discards its old TCP sessions.

Production Tools has two explicit item actions. Reprint inventory label renders the existing ERP label and shows the ERP quantity. Print box labels sends direct ZPL: quantity-on-each-label plus number-of-labels, with the Zebra ^PQ copy count. Box labels do not write to the ERP, track or number boxes, split stock, or create a PDF. Direct-print failure is reported on the page.

Later

inventreelabelmachine's Zebra driver could replace our sender (same IP:port), which would let any ERP page print directly. Not needed while the stock queue is the only bulk printer.