Add EEPROM EUI-48 device identity across firmware and API.

Read the factory 24AA025E48 serial after ADAU I2C boot, derive SoftAP SSID, BT name, STA hostname, and expose serialNumber on GET /api/health with graceful fallbacks.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-07 09:00:38 +02:00
co-authored by Cursor
parent 11ad6b43ad
commit cd94e36a9d
35 changed files with 999 additions and 83 deletions
@@ -112,6 +112,19 @@ public:
*/
[[nodiscard]] bool isBooted() const noexcept;
/**
* @brief i2cBusHandle — borrow the shared I2C master bus after boot.
*
* @dname i2cBusHandle
* @return Opaque bus handle for the 24AA025E48 on the same bus, or null
* before boot().
* @pubstate reads i2cBus_.
*
* @author Michele Bigi
* @date 2026-07-07
*/
[[nodiscard]] void* i2cBusHandle() const noexcept;
/**
* @brief applyProfile — safeload mixer, EQ, and master from snapshot.
*
@@ -122,6 +122,11 @@ bool Adau1701Driver::isBooted() const noexcept
return booted_;
}
void* Adau1701Driver::i2cBusHandle() const noexcept
{
return i2cBus_;
}
std::expected<void, Adau1701Error> Adau1701Driver::ensureBooted() const
{
if (!booted_) {