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 → Labels tile (/labels, Production + Administration): 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.
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.