yourovo/PROGRESS.md
Monster Robot Party 3056fd70fc Windows Urovo D812R+ print+encode daemon + full assessment
- pricegod-urovo-daemon: C# :7790 HTTP service, drives the Urovo D812R+ via
  the GTSPL SDK; prints a label AND encodes the UHF chip in one pass. Drop-in
  for the PriceGod extension's daemon.js (same :7790, CORS *).
- chafcheck: Chafon H-102 UHFPrimeReader P/Invoke probe.
- ASSESSMENT.md: everything done + learned this session -- the ribbon-latch
  fix, PET-labels-are-not-direct-thermal finding, unreliable-status-byte
  quirk, SKU->EPC scheme, the Chafon HID-mode dead end, and how to port the
  print+encode recipe to the Mac (GTSPL Java SDK / raw TSPL).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 15:18:39 +10:00

1.5 KiB

Urovo one-pass print+encode — progress log

Working

  • Daemon builds/runs: pricegod-urovo-daemon.exe on :7790 (start-daemon.cmd).
  • Talks to Urovo via GTSPL SDK (bypasses Windows spooler — NOT driver hell).
  • /status, /read-tag, /read-raw, /print-test (thermal only), /print-encode, /recover all wired.
  • RFID reads work: fresh UCODE 9 tags read EPC E28069950000600625F60A2A at antenna.
  • SKU<->EPC packing v1 in Epc class (6B sku + 4B releaseId + EC01 marker). NOT yet verified vs Chafon.

Diagnosed

  • Print WAS happening but DENSITY 10 = almost invisible. Bumped DEF_DENSITY -> 15.
  • "VOID0" stamps = RFID encode voided because no tag was seated at antenna.
  • Status byte is UNRELIABLE right after a print (returns garbage 45/FC); reliable (00) only when idle. => success must be judged by eyes / Chafon read-back, not the post-print status byte.
  • BLOCKER: printer latches "08 Out of ribbon" (thermal-transfer mode) at printlabel time. SET RIBBON OFF alone does NOT clear the latch (tested via gtcheck cmd, 0 tags). Next: hardware reset (re-seat head + power cycle). If it re-latches from fresh power-on, find the PERSISTENT direct-thermal media command in the GTSPL reference PDF.

Still to do

  • Kill the ribbon latch so a dark label prints.
  • Verify encode by scanning the printed tag with the Chafon.
  • Match the 51x19 label layout from the extension's labels.js (current daemon layout is functional only).
  • Wire daemon.js / the HUD 'Write'/'Label' buttons to /print-encode.