Update on Overleaf.

This commit is contained in:
Michele Bigi
2026-07-06 15:19:50 +00:00
committed by node
parent e7982401ee
commit 3ef2496193
4 changed files with 38 additions and 17 deletions
+11 -9
View File
@@ -57,8 +57,9 @@ no analogue conversions are introduced between the tuner and the wireless link.
``` ```
DigiRadio/ DigiRadio/
├── docs/ Technical Reference Manual (LaTeX source + PDF) ├── docs/ → symlink to Software/docs/manual (canonical LaTeX manual)
── DigiRadio_Manual.pdf ── manual.tex build with: cd docs && latexmk -lualatex manual.tex
│ └── manual.pdf
├── Hardware/ ├── Hardware/
│ ├── schematics/ Schematic (PDF) │ ├── schematics/ Schematic (PDF)
│ ├── gerber/ Gerber + drill files (fabrication) │ ├── gerber/ Gerber + drill files (fabrication)
@@ -73,10 +74,11 @@ DigiRadio/
## Documentation ## Documentation
The full design is described in the **[Technical Reference Manual](docs/DigiRadio_Manual.pdf)**, The full design is described in the **[Technical Manual](docs/manual.pdf)**,
covering the system architecture, signal chain, clock and power design, the 6-layer covering hardware, firmware architecture, companion-chip drivers (Si4684,
stack-up and controlled-impedance strategy, the functional blocks, and the design ADAU1701, FSC-BT1035), the HTTP JSON API, and build instructions. LaTeX
decisions behind the key choices. 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 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 with turnkey assembly. The FSC-BT1035 Bluetooth module is sourced from Feasycom
(the footprint uses a BT806-compatible, pin-identical land pattern). See the (the footprint uses a BT806-compatible, pin-identical land pattern). See
[Manufacturing chapter](docs/DigiRadio_Manual.pdf) of the manual for fabrication [Chapter Hardware](docs/manual.pdf) and manufacturing notes in the manual for
notes, impedance-control settings and MSL-3 handling of the BT module. fabrication settings and MSL-3 handling of the BT module.
--- ---
@@ -17,6 +17,7 @@
*/ */
#pragma once #pragma once
#include "core/CompanionChipStatus.hpp"
#include "core/ISecureStore.hpp" #include "core/ISecureStore.hpp"
#include "net/NetError.hpp" #include "net/NetError.hpp"
#include "net/NetState.hpp" #include "net/NetState.hpp"
@@ -52,6 +53,7 @@ struct HttpRouteContext {
core::ISecureStore* store; ///< Secure store for Wi-Fi provisioning. core::ISecureStore* store; ///< Secure store for Wi-Fi provisioning.
tuner::TunerService* tuner; ///< Tuner service for tuner REST routes. tuner::TunerService* tuner; ///< Tuner service for tuner REST routes.
audio::AudioService* audio; ///< Audio service for ADAU1701 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 * @author Michele Bigi
* @date 2026-07-06 * @date 2026-07-06
*/ */
[[nodiscard]] std::expected<void, NetError> start(core::ISecureStore& store, [[nodiscard]] std::expected<void, NetError> start(
NetState netState, core::ISecureStore& store, NetState netState,
tuner::TunerService& tuner, tuner::TunerService& tuner, audio::AudioService& audio,
audio::AudioService& audio); core::CompanionChipStatus companionChips);
private: private:
httpd_handle* server_; httpd_handle* server_;
+14
View File
@@ -12,6 +12,8 @@
*/ */
#pragma once #pragma once
#include "core/CompanionChipStatus.hpp"
#include <expected> #include <expected>
namespace audio { namespace audio {
@@ -94,6 +96,18 @@ public:
* @date 2026-07-06 * @date 2026-07-06
*/ */
[[nodiscard]] static audio::AudioService& audioService(); [[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 } // namespace hardware
+7 -4
View File
@@ -17,17 +17,20 @@ DigiRadio/ <- repo root
├── tools/ ├── tools/
│ └── check-manual-sync.py enforces "a section per public class" │ └── check-manual-sync.py enforces "a section per public class"
└── docs/ └── docs/
└── manual/ the technical manual (LaTeX) └── manual/ the technical manual (LaTeX) — canonical
├── manual.tex main file ├── manual.tex main file
├── digiradio-manual.sty style (Optima-like, boxes, listings) ├── digiradio-manual.sty style (Optima-like, boxes, listings)
├── ch-*.tex chapters ├── ch-*.tex chapters
└── manual.pdf compiled preview └── 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 ## Build the manual
cd Software/docs/manual cd docs # symlink → Software/docs/manual
latexmk -lualatex manual.tex # real Optima on macOS latexmk -lualatex manual.tex # real Optima on macOS
# or: pdflatex manual.tex x3 # Biolinum fallback # or: cd Software/docs/manual && latexmk -lualatex manual.tex
## Enforcement in CI (run from Software/) ## Enforcement in CI (run from Software/)
doxygen Doxyfile # API docs must pass doxygen Doxyfile # API docs must pass