Commit Graph
23 Commits
Author SHA1 Message Date
I12BP8 049c6f33b4 Merge pull request #61 from Hoggormino/esp-worker-url
ESP32: make the worker URL a build option instead of a source edit
2026-09-17 17:16:57 +02:00
I12BP8 1cb4407729 Merge pull request #59 from Hoggormino/docs-hygiene
Docs: fix stale feature claims and worker URL instructions
2026-09-17 17:15:59 +02:00
I12BP8 fed9b713cd Merge pull request #56 from Hoggormino/nfc-scan-vusion-fixes
NFC scan: keep scanning after a rejected tag, parse NDEF properly, explain unsupported tags
2026-09-17 17:13:11 +02:00
HoggorminoandClaude Opus 5 6aa67962b6 NFC scan: describe what the tag data shows, not the vendor
The scan only sees NFC data. It cannot sense whether a label's display
listens for infrared or radio, so the messages now say what was found
instead of naming a vendor or a transport as fact.

- "VUSION tag / SES-imagotag uses radio, not IR" becomes "Likely radio
  tag / Link: nfc.imagotag.com / TagTinker is IR-only".
- Match an http:// or https:// link whose host is nfc.imagotag.com
  (case-insensitive), as prefix code 0x03/0x04 or inline after 0x00,
  instead of the substring "imagotag" anywhere in the URL. A "://"
  inside a path, query or fragment is not taken as the scheme.
- "Not a Pricer tag" becomes "Unrecognized tag / No ID TagTinker can
  decode"; "Unsupported chip" becomes "Unreadable chip / Chip answered
  but no data was read".
- Move the decision into tagtinker_nfc_classify() so it can be tested
  off-device.
- De-duplicate on UID and result together. The firmware reports a read
  that stops partway as a success with fewer pages, so a UID-only check
  could keep a tag stuck on "Unrecognized tag" after a partial first
  read.
- Announce an unreadable chip once until the field is empty. Those reads
  carry no UID, so UID de-duplication never applied and the message
  repeated on every poll.
- Bring the prompt back from the scene tick instead of a popup callback.
  A popup with a callback consumes every short press, so Back only
  dismissed the message and a second Back was needed to leave.
- Stop the scanner on the Back event rather than waiting for on_exit, so
  the poll loop is already winding down when the scene is popped and the
  join there is as short as possible. On device, leaving from a message
  takes exactly one Back.
- Move custom event ids to 200+. NfcScanEventSuccess was 100, the same
  id as the target menu's "+ Type Barcode" item.
- Stop the scan LED when "Target list full" ends scanning.
- README: add "Which tags work", with vendor-documented radio examples
  and a table of what each scan message means.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 21:59:32 +02:00
HoggorminoandClaude Opus 5 5e204793dd ESP32: make the worker URL a build option instead of a source edit
cloud_client.h hard-coded the worker URL, and wrangler.toml pointed users
at a "WiFi Setup -> Server URL" field that has never existed, so anyone
self-hosting cloud-plugins/ had to edit a header. cloud_client_set_url()
exists but has no callers, and the UART protocol has no frame for it.

Add CONFIG_TT_CLOUD_URL (Kconfig.projbuild, menu "TagTinker") defaulting
to the current URL, and take TT_CLOUD_DEFAULT_URL from it. Setting it in
sdkconfig.defaults or through menuconfig is now enough; rebuild and
reflash still apply, and there is no hidden run-time channel.

Also says so in wrangler.toml and the README WiFi Plugins bullet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 21:30:22 +02:00
HoggorminoandClaude Opus 5 53ede949b8 Docs: correct stale feature claims and the worker URL instructions
- README: the IR engine allocates heap for payloads, so drop
  "zero-allocation"; the drop folder takes the 1-bit and two-plane BMPs
  the image preparer exports, not any BMP, and type 1626 targets cap
  files at 24 KB; NFC scan only fills the barcode when the tag's NFC
  data decodes; there is no test-pattern feature; the FAQ now says this
  app needs a Flipper even though the protocol does not.
- CONTRIBUTING: the Android companion app was removed in d608afb.
- wrangler.toml pointed users at a "WiFi Setup -> Server URL" field that
  never existed. Say how the URL is actually set today.
- cloud_client.h described a runtime override through
  cloud_client_set_url(), which nothing calls.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:10:59 +02:00
HoggorminoandClaude Fable 5.1 464ff1ae67 Add CI build workflow and root Makefile
- .github/workflows/build.yml: build the Flipper FAP (ufbt, release + dev
  SDK channels), the Cloudflare Worker (tsc + wrangler dry-run bundle) and
  the ESP32-S2 firmware (ESP-IDF v5.2.8) on every push to main and every
  pull request; syntax-check the inline scripts of the web image-prep page;
  run `ufbt lint` as a non-blocking advisory job. No path filters, because
  the shared UART protocol header is compiled into both the FAP and the
  ESP firmware.
- Makefile: one entry point for developers (setup, build-all, build-fap,
  build-worker, build-esp, launch, flash-esp, serve-web, lint, clean).
  Works with the stock GNU Make 3.81 on macOS. Auto-detects the ESP-IDF
  Python virtualenv when export.sh would otherwise look for one matching
  a newer system python3.
- esp32-wifi-fw/sdkconfig.defaults: pin CONFIG_IDF_TARGET="esp32s2" so
  clean builds (CI, fresh clones) no longer fall back to plain esp32.
- cloud-plugins/package.json: add the `build` script (wrangler dry-run
  bundle) that the Makefile and CI rely on.
- README/CONTRIBUTING: document the make targets and CI; add a build badge.
- .gitignore: ignore .venv/ and the .clang-format generated by ufbt lint.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 10:02:02 +02:00
I12BP8 0eae6de165 Update README.md 2026-04-27 14:04:08 +02:00
I12BP8 c20fc112d1 Update README with new features information
Added details about NFC Tag Scan and WiFi Plugins features.
2026-04-26 20:52:23 +02: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 8fab06a807 README: add prominent link/badge to hosted Image Prep 2026-04-26 15:41:21 +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 0627bb1720 Fix formatting for NFC tag decoding contributor mention 2026-04-26 14:09:48 +02:00
7h30th3r0n3 d76403376b docs: update README for v2.1 with NFC scan feature 2026-04-26 13:24:00 +02:00
I12BP8 934bc2e309 Fix demo image link in README.md 2026-04-24 20:42:36 +02:00
I12BP8 0a859fa35d Add demo image to README
Added demo image to README for better visualization.
2026-04-24 20:42:36 +02:00
I12BP8 eca87b1010 Update disclaimer to strictly prohibit illegal activities 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 12b0c04860 Update README with battery info and contribution details
Added information about battery removal effects and contact options for contributions.
2026-04-10 02:43:32 +08:00
i12bp8 4fedd2b59b Add README FAQ and align license headers 2026-04-07 20:19:59 +02:00
I12BP8 ba20e28be0 Update README.md 2026-04-06 12:59:25 +02:00
I12BP8 dd94edacf7 Revise README for clarity and improved formatting 2026-04-06 09:37:42 +02:00
i12bp8 d7b3fcc68c Initial release 2026-04-06 03:09:39 +02:00