Fix Si4684 FM/DAB tune commands: ARG offset bug caused total RF blackout
writeCommand() always prepends a fixed ARG1=0x00 byte before the payload; tuneFm()/tuneDab() built their argument arrays starting at what the author believed was ARG1, so every byte landed one slot right of its real AN649 position and an extra unused byte was appended. The chip never received the requested frequency. This is the root cause of the months-long total RF blackout (RSQ frozen at all-zero on every frequency/ANTCAP value) previously attributed to a QFN exposed-pad hardware defect — that hypothesis is now overturned, confirmed live: RSSI/SNR now read real, frequency-dependent values with zero STC timeouts after the fix. Also make BT1035 boot failure non-fatal in HardwareBootstrap::boot() so a companion-chip fault no longer halts the whole device (Si4684 tuning, web UI, Wi-Fi already isolate BT1035 readiness via CompanionChipStatus). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0178rASQ6ZETPMUamvpoR2KR
This commit is contained in:
@@ -127,17 +127,18 @@ std::expected<void, HardwareBootError> HardwareBootstrap::boot()
|
||||
}
|
||||
|
||||
if (auto btResult = gBt1035.boot(); !btResult) {
|
||||
ESP_LOGE(kTag, "BT1035 boot failed");
|
||||
return std::unexpected(HardwareBootError::Bt1035BootFailed);
|
||||
}
|
||||
ESP_LOGE(kTag, "BT1035 boot failed — continuing without Bluetooth");
|
||||
} else {
|
||||
if (auto nameResult =
|
||||
gBt1035.setDeviceName(gDeviceIdentity.bluetoothName());
|
||||
!nameResult) {
|
||||
ESP_LOGW(kTag, "BT1035 device name set failed");
|
||||
}
|
||||
|
||||
if (auto nameResult =
|
||||
gBt1035.setDeviceName(gDeviceIdentity.bluetoothName()); !nameResult) {
|
||||
ESP_LOGW(kTag, "BT1035 device name set failed");
|
||||
}
|
||||
|
||||
if (auto reconnectResult = gBt1035.setAutoReconnect(3U); !reconnectResult) {
|
||||
ESP_LOGW(kTag, "BT1035 auto-reconnect set failed");
|
||||
if (auto reconnectResult = gBt1035.setAutoReconnect(3U);
|
||||
!reconnectResult) {
|
||||
ESP_LOGW(kTag, "BT1035 auto-reconnect set failed");
|
||||
}
|
||||
}
|
||||
|
||||
gReady = true;
|
||||
|
||||
Reference in New Issue
Block a user