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 <noreply@anthropic.com>
This commit is contained in:
type-two 2026-09-04 11:28:41 +10:00
parent 508418fd0a
commit d1b2d7ec64
2 changed files with 7 additions and 1 deletions

View File

@ -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.

View File

@ -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'