From d1b2d7ec6437bc3c0f0a48f4490075710c348064 Mon Sep 17 00:00:00 2001 From: type-two Date: Fri, 4 Sep 2026 11:28:41 +1000 Subject: [PATCH] feat(label): rfid65 profile for the 65x35 UHF direct-thermal roll web 65 / pitch 35 / gap 0 / art 64x34. 65 is the roll width and 35 the label length: sent the other way round (SIZE 34,65.35) the printer advanced nearly two labels per feed, which presented as an inlay that never stopped at the antenna. gap=0 because the inlay fills most of the label and blinds the optical gap sensor. Proven with a real print-test on this roll -- printer returned Ready, no VOID -- so callers stop passing w/h/gap overrides. Co-Authored-By: Claude Opus 5 --- mac/README.md | 2 +- mac/label.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mac/README.md b/mac/README.md index e7733e3..cea4334 100644 --- a/mac/README.md +++ b/mac/README.md @@ -103,7 +103,7 @@ then double-click **`start-daemon.command`**. | GET | `/read-tag` | — | `{ok,epc,sku,releaseId,recognized}` | | GET | `/read-raw` | — | every memory bank | | GET | `/preview?size=large&artist=…` | — | **PNG of the label, printing nothing** | -| GET | `/profiles` | — | the media profiles below | +| GET | `/profiles` | — | the media profiles below (`rfid65` = the 65x35 UHF roll: web 65, pitch 35, gap 0) | | POST | `/calibrate` / `/recover` | — | RFID auto-calibration / clear a latched fault | Use `/preview` while tuning a layout — it costs no labels. diff --git a/mac/label.py b/mac/label.py index 52b1006..e58799d 100644 --- a/mac/label.py +++ b/mac/label.py @@ -45,6 +45,12 @@ PROFILES = { 'small': dict(web_mm=24, pitch_mm=51, art_mm=(51, 19), gap_mm=2, margin_mm=1.5), 'large': dict(web_mm=24, pitch_mm=55, art_mm=(55, 24), gap_mm=2, margin_mm=1.5), 'xlarge': dict(web_mm=34, pitch_mm=64, art_mm=(64, 34), gap_mm=2, margin_mm=1.5), + # The 65 x 35 mm direct-thermal UHF stock (U9 inlay, US band). 65 is the roll WIDTH and 35 + # the label length along the feed -- sending it the other way round (SIZE 34,65.35) advanced + # nearly two labels per feed and looked exactly like a chip that would not stop at the + # antenna. gap=0 on purpose: the inlay fills most of the label and blinds the optical gap + # sensor, so the printer positions by pitch. Proven with a real print-test on this roll. + 'rfid65': dict(web_mm=65, pitch_mm=35, art_mm=(64, 34), gap_mm=0, margin_mm=1.5), } DEFAULT_PROFILE = 'large'