Commit Graph
16 Commits
Author SHA1 Message Date
HoggorminoandClaude Opus 4.8 0447f12164 Add a custom-size option for unrecognized infrared tags
A tag whose type code is not in the profile table has no dimensions, so
after the unknown-profile guard its Set Text / Set Image / WiFi Plugins
actions are hidden. This adds a "Set Custom Size" action for those tags:
enter width, height and colour, and the graphics actions become usable.

The IR framing is identical to a table profile; only the screen geometry
differs, so no protocol is guessed. Custom size is applied only when the
barcode's type is not in the table, so a real profile is never overridden.

- New scene (VariableItemList): Width and Height in 8 px steps from 8 to
  800, Colour mono/red/yellow, and Save.
- tagtinker_target_refresh_profile() synthesizes a "Custom" profile from
  the stored size for unknown-type targets, so Show Tag Info, Set Text
  and Set Image all see real dimensions.
- targets.txt gains three optional fields (barcode|name|cw|ch|ccolor);
  older two-field lines still load, with no custom size.
- "Set Custom Size" appears in Target Actions only for unknown-type
  targets (tagtinker_type_is_known()).

Builds clean on release SDK 1.4.3 (API 87.1) and dev SDK; no new
clang-format drift.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-16 21:58:55 +02:00
HoggorminoandClaude Opus 5 09bcf9ac8a Guard targets with unknown profiles and a full target list
A tag whose type code is not in the profile table gets a zeroed profile:
kind Unknown, 0x0, Mono. NFC scan, targets.txt and web_job.txt (and the
unreachable phone-sync code) all create such targets, and because only
Segment was excluded they were offered Set Text, Set Image and WiFi
Plugins. Set Text on a 0x0 job reaches malloc(0), which the firmware
treats as a fatal error.

- Offer Set Text, Set Image and WiFi Plugins only for dot-matrix
  profiles found in the table; the app has no display size for others.
- Show Tag Info says the type is not in the profile table and which
  actions are hidden, instead of reporting "Size: 0x0" and "Color: Mono".
- Refuse a 0x0 text job before either sized text path allocates.
- Manual barcode entry with all 16 slots used now shows "Target List
  Full". It used to open Target Actions with selected_target -1, where
  Show Tag Info and LED Test index targets[-1].
- Widget buttons call back on press, short press and release, so the
  Back button went back twice. Act on the short press only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:10:09 +02:00
sosnekandCursor 3b8ad97c34 Fix Color 2.6 page default, Set Text heap, and WiFi canvas
Default image page is 2 unless the user picked 2-7. Set Text packs planes instead of 45KB buffers. WiFi and odd-size BMPs use glass 296x152 then transpose.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 00:40:50 -04:00
sosnekandCursor b328511d02 Add SmartTAG Color 2.6 (type 1626) support
These tags look like 296x152 but the firmware only takes 152x296, so landscape BMPs get transposed. Tested on a real 2.6 color tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-31 00:07:03 -04:00
i12bp8 2739069f22 Add optional WiFi Plugins (ESP32-S2 bridge + Cloudflare Worker)
- Flipper FAP: WiFi Setup, Plugins picker, plugin-run scene wired into
  Targeted Payloads -> <tag> -> WiFi Plugins
- Framed UART link to the dev board with bulk-read RX path and 16 KB
  stream buffer to keep up with full plugin bursts
- ESP firmware: 900 KB UART<->HTTPS bridge, USB-Serial-JTAG console,
  cert-bundle TLS, 16 KB worker stack to host mbedTLS handshake
- Cloudflare Worker: Crypto, Weather, Identicon plugins out of the
  box; new plugins are a single TypeScript file, no Flipper reflash
- Shared protocol header + 1bpp BMP writer that matches web-image-prep
  palette/stride conventions
2026-04-26 20:50:16 +02:00
i12bp8 d608afb43b Drop-folder image flow + web image preparer
- Add web-image-prep/: self-contained HTML5 image preparer with
  perceptual Oklab 3-colour quantisation, Floyd-Steinberg/Atkinson/
  Bayer dither, all supported tag profiles, BMPs that match the FAP
  reader exactly. Auto-deployed to GitHub Pages.
- Add 'Set Image' under Targeted Payloads. Lists every BMP in
  apps_data/tagtinker/dropped/, scrolls long names, marks foreign-
  resolution files with a '~' prefix.
- Stream-time nearest-neighbour rescaling so any BMP can target any
  tag at any page; image options screen is now Page-only.
- Remove Phone Sync menu and the Android companion app: replaced by
  the browser preparer + drop folder.
- Static, IR-friendly transmit screen ('Tinkering Tag', point hint,
  3-dot loader, 'Flipped ;)').
2026-04-26 15:40:27 +02:00
7h30th3r0n3 9b3524b5f8 feat: add NFC tag scanning to auto-fill ESL barcode
Add "+ Scan NFC" option in the Targeted Payloads menu.
Scans Mifare Ultralight NDEF tags, decodes the encoded
ESL ID, and auto-creates the target — no manual barcode
entry needed. Cyan LED blinks during scan. Loops until
a tag is found or the user presses Back.

New files:
- nfc/tagtinker_nfc.c/.h — NDEF URI decoder module
- scenes/tagtinker_scene_nfc_scan.c — NFC scan scene

Version bumped to 2.1, NFC credit added to About screen.
2026-04-26 13:12:42 +02:00
I12BP8 678a2c6943 Massive IR transmission speed optimization: ~45s down to ~10s monochrome, ~20s color 2026-04-24 20:42:36 +02:00
I12BP8 34f028f44b Finalize V2.0 Stability: Fixed small tag timeout and IR jitter 2026-04-24 20:42:36 +02:00
i12bp8 4fedd2b59b Add README FAQ and align license headers 2026-04-07 20:19:59 +02:00
i12bp8 09f593dcbb TagTinker V1.3 Android Companion, Extra Settings, ESL Type Detection, Bug Fixes 2026-04-07 19:58:34 +02:00
i12bp8 f3095f389f Add profile-aware transmit controls and image options 2026-04-07 00:18:41 +02:00
i12bp8 d2eb38d590 Refine startup warning UI 2026-04-06 21:20:14 +02:00
i12bp8 cc918e5723 Add startup warning and toggle 2026-04-06 20:55:46 +02:00
I12BP8 da14064e96 Persist saved target tags 2026-04-06 15:54:35 +02:00
i12bp8 d7b3fcc68c Initial release 2026-04-06 03:09:39 +02:00