Skip to content

feat: protocol v2.2 tag index / count, catalogue, offline reference data, unified playground (1.2.0) - #1

Merged
TigerTag-Project merged 1 commit into
mainfrom
feat/chip-count-index
Oct 1, 2026
Merged

TigerTag-Project merged 1 commit into
mainfrom
feat/chip-count-index

Conversation

@TigerTag-Project

Copy link
Copy Markdown
Owner

Highlights

  • Protocol v2.2 — tag index / tag count at page 0x0D byte 3 (high nibble = index, low = count: 0x12 = tag 1 of 2). Spec: spec: chip count / chip index at page 0x0D byte 3 (v2.2) TigerTag-RFID-Guide#26, #27, #28.
  • TigerTag+ from the official catalogue: a product ID alone builds a ready-to-burn tag from id_catalog.json (RFID_Data), with an ETag-aware cache.
  • Reference data offline, fresh and overridable: the 7 tables and the catalogue (gzip) ship in the package; a daily check downloads only changed tables into the user cache dir (or TIGERTAG_DATA_DIR); offline / TIGERTAG_OFFLINE=1 disables all network calls; manual update (API + CLI); a custom folder is used exclusively. Behaviour change: one network check per day unless offline.
  • Unified playground: the same tools/playground.html in the JS and Python SDKs, against a common server contract (docs/playground-api.md) — Read / Burn modes, twin-tag burning, SDK Input (create(), HEX, Pages), chips-on-the-readers check, TigerTag+ loading (offline catalogue or online API), catalogue and table updates, info bubbles, SVG icons. Burn always writes pages 0x04–0x27 with the signature pages cleared: playgrounds never write a signature.
  • No emoji in outputs or UI.

Tested

  • Full test suite green.
  • Both playground servers checked with two ACR122U readers: twin burns (0x12 / 0x22, shared timestamp, signature pages 00), single-reader burn, and cross-SDK burns read back byte-for-byte identically.

Merge note

check_playground_sync compares this repo's tools/playground.html with the other SDK's copy on main. It passes locally; in CI it will pass once both SDK PRs are merged.

…ata, unified playground

Protocol v2.2
- Byte +39 (page 0x0D byte 3) is the tag index / tag count: high nibble =
  index, low nibble = count, so 0x12 is tag 1 of 2. tagInfo, tagIndex,
  tagCount; create({ tagCount, tagIndex }), patch(), validate(), toDict(),
  pretty() and describe() ("Tag 1 of 2 on this filament.").

TigerTag+ catalogue
- TigerTag.fromCatalog(productId) builds a ready-to-burn TigerTag+ from the
  official id_catalog.json (RFID_Data). loadCatalog / refreshCatalog /
  catalogInfo / catalogEntry, with an ETag-aware disk cache.

Reference data
- The 7 tables and the catalogue (gzip) ship with the package and are used
  offline. A daily background check downloads only the tables that changed
  into the user cache dir (or TIGERTAG_DATA_DIR); the newest of downloaded
  and bundled wins per table. offline / TIGERTAG_OFFLINE=1 disables every
  network call, db.update({ force }) and `tigertag update` update on demand,
  and a custom dbPath is used exclusively. Behaviour change: the SDK now
  checks for updated reference data once a day unless offline.

Playground
- One playground page shared byte-for-byte with the Python SDK, against a
  common server contract (docs/playground-api.md): Read / Burn modes, twin
  tag burning, SDK Input (create(), HEX, Pages), chips-on-the-readers check,
  TigerTag+ product loading (offline catalogue or online API), catalogue and
  table updates, info bubbles, SVG icons. Burn always writes pages
  0x04-0x27 with the signature pages cleared; playgrounds never write a
  signature. scripts/check_playground_sync.js guards the shared page.

Other
- Signature results and outputs no longer use emoji.
- raw_api image URLs, JPEG MIME type, playground assets for the demo presets.
@TigerTag-Project
TigerTag-Project merged commit 29c3fa7 into main Oct 1, 2026
4 checks passed
@TigerTag-Project
TigerTag-Project deleted the feat/chip-count-index branch October 1, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants