Files
DigiRadio/Software/docs/TODO.md
T
micheleandCursor 82c9f401da Add BT1035 pairing and station presets (fw 0.7.0).
Expose discoverable mode and A2DP control over REST, add persisted
DAB/FM preset list with web UI, and document gaps in docs/TODO.md.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 17:42:11 +02:00

3.3 KiB

DigiRadio — consolidated TODO (audit 2026-07-06)

Firmware 0.7.0 after BT1035 pairing + Slice 4 presets. This list cross-checks code, manual, API, UI, and instructions.md.

Done in this slice

Area Status
BT1035 pairing AT (AT+PAIR, AT+A2DPSTAT, AT+A2DPDISC) Done
BluetoothService + /api/bluetooth/* + UI Done
Station, StationList, NVS persistence Done
StationService + /api/stations/* + UI Done
Host tests (10/10 green) Done
Manual: ch-api, ch-bt1035, ch-classes Done

High priority (next)

  1. Device flash / HIL — verify Si4684, ADAU1701, BT1035 on hardware; pairing with real headphones; preset recall across reboot.
  2. DAB preset save from UI — “Save current tune target” stores ensemble index only; capture service_id / component_id from the last played DAB service (needs UI state or tuner cache).
  3. FM band switch UX — Si4684 boots DAB; FM tune may reload FM image; document/limit band changes in UI (auto-reload or explicit band selector).
  4. NVS encryption — enable nvs_keys partition for production (Wi-Fi, presets, future user creds).
  5. Slice 8 integration — unify tuner + audio + presets in a single “now playing” model; source selection (DAB / FM / BT Line-In).

Medium priority

  1. IBtModule interface — AGENTS mentions it; driver is used directly today. Add when a second BT module or host fake is needed.
  2. BT1035 extended ATAT+NAME, AT+PLIST, AT+A2DPCONN, event-driven +PAIRED / +A2DPDEV (UART listener task).
  3. Station list reorder APIStationList::move() exists in core; no HTTP route yet.
  4. EQ UI completeness — web UI exposes master/mixer/enhance; per-band EQ editing not in UI (API supports full profile PUT).
  5. Si4684 RSQ / scan UX — driver + HTTP largely done; polish seek, service list refresh, signal display on UI.
  6. User credentialsISecureStore extension for login (out of scope until product needs it).

Documentation / tooling

  1. Overleaf sync — GitHub is source of truth; root docs/ symlink can break Overleaf push; compile from Software/docs/manual/manual.tex.
  2. Firmware version single source0.7.0 in SetupWebServer.cpp; align FirmwareVersion / health test constants if desired.
  3. Doxygen pass — run doxygen Doxyfile on CI host with ESP-IDF toolchain.

Low priority / ideas

  1. Physical preset buttons → map GPIO to StationService::tuneToIndex by PresetSlot.
  2. OTA updates, mDNS hostname (digiradio.local), HTTPS on LAN.
  3. aptX license note (Feasycom) — commercial firmware variant if needed.

Test gaps

Missing test Layer
BluetoothService with fake driver Host (needs IBtModule or inject interface)
StationService + fake ISecureStore Host
NvsSecureStore station round-trip Target / integration
BT1035 UART HIL Hardware-only, marked separate

Roadmap alignment (instructions.md)

Slice Item State
4 Station list + persistence + UI Done (basic CRUD + tune)
5 Si4684 tuning / RSQ / DAB properties Mostly done; UI polish open
7 BT1035 pairing Done (discover + A2DP stat/disconnect)
8 TunerService + AudioService E2E Partial — health chips OK; unified UX open