Add ch-api.tex for REST endpoints and boot flow, update ch-firmware, ch-build, and ch-intro. Extend CONTRIBUTING, instructions, and README with manual sync checks and API reference. Co-authored-by: Cursor <cursoragent@cursor.com>
DigiRadio Firmware
Open-source Hi-Fi DAB+/FM receiver firmware for the ESP32-S3.
Status: Slice 2 — secure store and Wi-Fi STA provisioning.
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 (must exit 0):
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.2.0)
| Method | Path | Purpose |
|---|---|---|
| GET | /api/health |
{"status":"ok","fw":"0.2.0"} |
| POST | /api/wifi |
Provision STA credentials; reboot on success |
Full schemas, error tokens, and boot flow: docs/manual/ch-api.tex.
C++ signatures: generate with doxygen Doxyfile → docs/api/html/index.html.
Layout
See AGENTS.md §12 and instructions.md for
the authoritative repo layout, coding rules, and development roadmap.
Licence
Apache-2.0 — see LICENSE.