From 3ef2496193fb931d706543abb3c706f8f4ef6a1c Mon Sep 17 00:00:00 2001 From: Michele Bigi Date: Mon, 6 Jul 2026 15:16:43 +0000 Subject: [PATCH] Update on Overleaf. --- README.md | 20 ++++++++++--------- .../net/include/net/SetupWebServer.hpp | 10 ++++++---- Software/main/hardware_bootstrap.hpp | 14 +++++++++++++ WHERE-TO-PUT-THESE.md | 11 ++++++---- 4 files changed, 38 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 49b06dd..59d9170 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,9 @@ no analogue conversions are introduced between the tuner and the wireless link. ``` DigiRadio/ -├── docs/ Technical Reference Manual (LaTeX source + PDF) -│ └── DigiRadio_Manual.pdf +├── docs/ → symlink to Software/docs/manual (canonical LaTeX manual) +│ ├── manual.tex build with: cd docs && latexmk -lualatex manual.tex +│ └── manual.pdf ├── Hardware/ │ ├── schematics/ Schematic (PDF) │ ├── gerber/ Gerber + drill files (fabrication) @@ -73,10 +74,11 @@ DigiRadio/ ## Documentation -The full design is described in the **[Technical Reference Manual](docs/DigiRadio_Manual.pdf)**, -covering the system architecture, signal chain, clock and power design, the 6-layer -stack-up and controlled-impedance strategy, the functional blocks, and the design -decisions behind the key choices. +The full design is described in the **[Technical Manual](docs/manual.pdf)**, +covering hardware, firmware architecture, companion-chip drivers (Si4684, +ADAU1701, FSC-BT1035), the HTTP JSON API, and build instructions. LaTeX +sources live in `Software/docs/manual/`; the repository root `docs/` entry +is a symbolic link to that folder (single source of truth). --- @@ -107,9 +109,9 @@ decisions behind the key choices. The board is manufactured with **PCBWay** as a 6-layer, impedance-controlled PCB with turnkey assembly. The FSC-BT1035 Bluetooth module is sourced from Feasycom -(the footprint uses a BT806-compatible, pin-identical land pattern). See the -[Manufacturing chapter](docs/DigiRadio_Manual.pdf) of the manual for fabrication -notes, impedance-control settings and MSL-3 handling of the BT module. +(the footprint uses a BT806-compatible, pin-identical land pattern). See +[Chapter Hardware](docs/manual.pdf) and manufacturing notes in the manual for +fabrication settings and MSL-3 handling of the BT module. --- diff --git a/Software/components/net/include/net/SetupWebServer.hpp b/Software/components/net/include/net/SetupWebServer.hpp index 3619b48..6d8c587 100644 --- a/Software/components/net/include/net/SetupWebServer.hpp +++ b/Software/components/net/include/net/SetupWebServer.hpp @@ -17,6 +17,7 @@ */ #pragma once +#include "core/CompanionChipStatus.hpp" #include "core/ISecureStore.hpp" #include "net/NetError.hpp" #include "net/NetState.hpp" @@ -52,6 +53,7 @@ struct HttpRouteContext { core::ISecureStore* store; ///< Secure store for Wi-Fi provisioning. tuner::TunerService* tuner; ///< Tuner service for tuner REST routes. audio::AudioService* audio; ///< Audio service for ADAU1701 REST routes. + core::CompanionChipStatus companionChips; ///< Boot flags for /api/health. }; /** @@ -131,10 +133,10 @@ public: * @author Michele Bigi * @date 2026-07-06 */ - [[nodiscard]] std::expected start(core::ISecureStore& store, - NetState netState, - tuner::TunerService& tuner, - audio::AudioService& audio); + [[nodiscard]] std::expected start( + core::ISecureStore& store, NetState netState, + tuner::TunerService& tuner, audio::AudioService& audio, + core::CompanionChipStatus companionChips); private: httpd_handle* server_; diff --git a/Software/main/hardware_bootstrap.hpp b/Software/main/hardware_bootstrap.hpp index 6b19ab8..81626bb 100644 --- a/Software/main/hardware_bootstrap.hpp +++ b/Software/main/hardware_bootstrap.hpp @@ -12,6 +12,8 @@ */ #pragma once +#include "core/CompanionChipStatus.hpp" + #include namespace audio { @@ -94,6 +96,18 @@ public: * @date 2026-07-06 */ [[nodiscard]] static audio::AudioService& audioService(); + + /** + * @brief companionChipStatus — snapshot of companion-chip boot flags. + * + * @dname companionChipStatus + * @return Ready flags for Si4684, ADAU1701, BT1035. + * @pubstate reads static driver isBooted() after boot(). + * + * @author Michele Bigi + * @date 2026-07-06 + */ + [[nodiscard]] static core::CompanionChipStatus companionChipStatus() noexcept; }; } // namespace hardware diff --git a/WHERE-TO-PUT-THESE.md b/WHERE-TO-PUT-THESE.md index 351e179..70443d3 100644 --- a/WHERE-TO-PUT-THESE.md +++ b/WHERE-TO-PUT-THESE.md @@ -17,17 +17,20 @@ DigiRadio/ <- repo root ├── tools/ │ └── check-manual-sync.py enforces "a section per public class" └── docs/ - └── manual/ the technical manual (LaTeX) + └── manual/ the technical manual (LaTeX) — canonical ├── manual.tex main file ├── digiradio-manual.sty style (Optima-like, boxes, listings) ├── ch-*.tex chapters └── manual.pdf compiled preview + +At the **repository root**, `docs/` is a **symbolic link** to +`Software/docs/manual/` (one source of truth; do not duplicate .tex here). ``` ## Build the manual - cd Software/docs/manual - latexmk -lualatex manual.tex # real Optima on macOS - # or: pdflatex manual.tex x3 # Biolinum fallback + cd docs # symlink → Software/docs/manual + latexmk -lualatex manual.tex # real Optima on macOS + # or: cd Software/docs/manual && latexmk -lualatex manual.tex ## Enforcement in CI (run from Software/) doxygen Doxyfile # API docs must pass