Add DAB ANTCAP calibration and fix BT1035 boot banner timing

Extend the FM-only ANTCAP antenna-varactor override to DAB, mirroring the
existing mechanism end to end (driver, tuner, service, EEPROM storage,
HTTP API). Live sweep on real hardware found no ANTCAP value beating
auto-tune on the ensembles tested, so DAB stays on auto-tune by default.

Also fix BT1035 boot: the module's real boot banner doesn't appear until
~18-24s after RESET# releases, not the 3.5s previously waited; add a
2-attempt retry and a baud-rate probe fallback for diagnostics.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 08:12:08 +02:00
co-authored by Claude Sonnet 5
parent 9ad2e42fe2
commit 3a58d33aad
38 changed files with 1444 additions and 115 deletions
+10 -4
View File
@@ -3,11 +3,17 @@
# dsp: updatable ADAU1701 program blob (task 3.1).
# nvs_keys: NVS encryption keys (secure-store slice).
# First flash after this layout: idf.py erase-flash flash (wired), not OTA.
# nvs: bumped 24 KiB -> 64 KiB (2026-08-19) — the small original size was a
# suspected contributor to intermittent NvsAudioProfileStore::saveProfile()
# store_failed under this project's accumulated write traffic (wifi creds,
# station_list, audio_profile_json, last_preset). otadata/nvs_keys/phy_init
# shift forward to make room; they still fit before ota_0's existing 64 KiB
# alignment boundary (0x20000), so ota_0/ota_1/dsp offsets are unchanged.
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x6000,
otadata, data, ota, 0xf000, 0x2000,
nvs_keys, data, nvs_keys, 0x11000, 0x1000,
phy_init, data, phy, 0x12000, 0x1000,
nvs, data, nvs, 0x9000, 0x10000,
otadata, data, ota, 0x19000, 0x2000,
nvs_keys, data, nvs_keys, 0x1b000, 0x1000,
phy_init, data, phy, 0x1c000, 0x1000,
ota_0, app, ota_0, 0x20000, 0x400000,
ota_1, app, ota_1, 0x420000, 0x400000,
dsp, data, 0x40, 0x820000, 0x40000,
1 # DigiRadio partition table (16 MB flash — ESP32-S3-WROOM-1)
3 # dsp: updatable ADAU1701 program blob (task 3.1).
4 # nvs_keys: NVS encryption keys (secure-store slice).
5 # First flash after this layout: idf.py erase-flash flash (wired), not OTA.
6 # nvs: bumped 24 KiB -> 64 KiB (2026-08-19) — the small original size was a
7 # suspected contributor to intermittent NvsAudioProfileStore::saveProfile()
8 # store_failed under this project's accumulated write traffic (wifi creds,
9 # station_list, audio_profile_json, last_preset). otadata/nvs_keys/phy_init
10 # shift forward to make room; they still fit before ota_0's existing 64 KiB
11 # alignment boundary (0x20000), so ota_0/ota_1/dsp offsets are unchanged.
12 # Name, Type, SubType, Offset, Size, Flags
13 nvs, data, nvs, 0x9000, 0x6000, nvs, data, nvs, 0x9000, 0x10000,
14 otadata, data, ota, 0xf000, 0x2000, otadata, data, ota, 0x19000, 0x2000,
15 nvs_keys, data, nvs_keys, 0x11000, 0x1000, nvs_keys, data, nvs_keys, 0x1b000, 0x1000,
16 phy_init, data, phy, 0x12000, 0x1000, phy_init, data, phy, 0x1c000, 0x1000,
17 ota_0, app, ota_0, 0x20000, 0x400000,
18 ota_1, app, ota_1, 0x420000, 0x400000,
19 dsp, data, 0x40, 0x820000, 0x40000,