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

25 lines
1.5 KiB
Markdown

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