Files
DigiRadio/Software/README.md
T
micheleandCursor 8cd962ee25 Replace TODO with agent backlog and refresh READMEs.
Adopt the prioritised task list for the coding agent and document
fw 0.7.0 status plus the full HTTP API in Software/README.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 23:26:24 +02:00

3.0 KiB
Raw Blame History

DigiRadio Firmware

Open-source Hi-Fi DAB+/FM receiver firmware for the ESP32-S3.

Status: fw 0.7.0 — companion-chip boot (Si4684, ADAU1701, BT1035), Wi-Fi provisioning, tuner/audio REST API, Bluetooth pairing, station presets. See docs/TODO.md for the agent task list.

Quick start

Open this directory (Software/) as the Cursor project so AGENTS.md and .cursor/rules/ load automatically.

idf.py set-target esp32s3
idf.py build
idf.py -p <port> flash monitor

Host unit tests (pure core, no hardware):

cmake -S components/core/test -B build-host \
      -DCMAKE_CXX_COMPILER="$(brew --prefix llvm)/bin/clang++"
cmake --build build-host
ctest --test-dir build-host --output-on-failure

Documentation gates (must exit 0 before merging):

doxygen Doxyfile
python3 tools/check-manual-sync.py

Manual PDF (design + HTTP API + class reference):

cd docs/manual && latexmk -lualatex manual.tex

HTTP API (fw 0.7.0)

Method Path Purpose
GET /api/health Status, firmware version, companion-chip flags
POST /api/wifi Provision STA credentials; reboot on success
GET /api/tuner/status Tuner snapshot (DAB/FM)
GET /api/tuner/services DAB service list for current ensemble
POST /api/tuner/tune Tune DAB ensemble or FM frequency
POST /api/tuner/play Start DAB service playback
POST /api/tuner/seek FM seek up
GET/PUT /api/audio/profile Read/apply ADAU1701 mixer + EQ profile
POST /api/audio/reset Factory-flat audio profile
POST /api/audio/stereo-enhance Stereo depth overlay (0100)
POST /api/audio/bass-enhance Bass enhance overlay (0100)
GET /api/bluetooth/status BT1035 boot, pairing, A2DP state
POST /api/bluetooth/pair Enter discoverable mode
POST /api/bluetooth/pair/stop Leave discoverable mode
POST /api/bluetooth/disconnect Release A2DP session
GET /api/stations List saved presets
POST /api/stations Add preset
POST /api/stations/remove Remove preset by index
POST /api/stations/tune Recall preset on tuner

Full schemas, error tokens, and boot flow: docs/manual/ch-api.tex. C++ signatures: doxygen Doxyfiledocs/api/html/index.html.

Layout

Path Role
Firmware/ Si4684 .bin blobs (DAB+FM) + ADAU1701 SigmaStudio export
components/core/ Pure domain (host-tested)
components/drivers/ Si4684, ADAU1701, BT1035 drivers
components/services/ Tuner, audio, Bluetooth, station services
components/net/ Wi-Fi, HTTP server, gzipped web UI
docs/manual/ LaTeX technical manual (canonical)
docs/TODO.md Agent task list (prioritised backlog)

See AGENTS.md §12 and instructions.md for coding rules and slice roadmap.

Licence

Apache-2.0 — see LICENSE.