Release fw 0.8.5: BT1035 I2S boot init and hardware doc alignment.

Switch BT1035 bring-up from Line-In to I2S slave (AT+AUXCFG=3, AT+I2SCFG=67) to match the ADAU1701 PCM routing, confirm 2 kΩ I2C pull-ups on R1/R16, and sync firmware docs, AGENTS rules, and the DATASHEET bundle.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-08 14:41:31 +02:00
co-authored by Cursor
parent 3e46b06d4b
commit 0a1188ad66
22 changed files with 244 additions and 125 deletions
@@ -48,7 +48,7 @@ struct Bt1035Pins {
* @dname Bt1035Driver
* @return n/a (type)
* @pubstate Owns UART port after boot(). booted_ true after init sequence
* including AT+AUXCFG=1 (Line-In from ADAU1701).
* including AT+AUXCFG=3 and AT+I2SCFG=67 (I2S slave from ADAU1701).
*
* @author Michele Bigi
* @date 2026-07-06
@@ -86,7 +86,7 @@ public:
*
* @dname boot
* @return Ok on success, or Bt1035Error.
* @pubstate sets booted_ after Ping + AT+AUXCFG=1 both return OK.
* @pubstate sets booted_ after Ping + I2S init both return OK.
*
* Sequence: hardware reset, UART @ 115200 with RTS/CTS, then
* core::bootInitSequence() (see manual chapter bt1035).
@@ -97,7 +97,7 @@ public:
[[nodiscard]] std::expected<void, Bt1035Error> boot();
/**
* @brief isBooted — query whether Line-In init succeeded.
* @brief isBooted — query whether I2S init succeeded.
*
* @dname isBooted
* @return true after successful boot().
@@ -177,7 +177,7 @@ public:
* @dname setDeviceName
* @param name Bluetooth name (Feasycom FSC-BT1035 AT+NAME command).
* @return Ok on success, or Bt1035Error.
* @pubstate sends AT+NAME after boot; does not alter AT+AUXCFG=1 init.
* @pubstate sends AT+NAME after boot; does not alter I2S init sequence.
*
* @author Michele Bigi
* @date 2026-07-07
@@ -169,10 +169,14 @@ std::expected<void, Bt1035Error> Bt1035Driver::setDeviceName(
if (auto ready = ensureBooted(); !ready) {
return ready;
}
if (name.empty() || name.size() > 32U) {
if (name.empty() || name.size() > 31U) {
return std::unexpected(Bt1035Error::UnexpectedResponse);
}
const std::string line =
core::buildBt1035SetNameLine(name, false);
if (line.empty()) {
return std::unexpected(Bt1035Error::UnexpectedResponse);
}
std::string line = std::string("AT+NAME=") + std::string(name) + "\r\n";
return transmitAndExpectOk(line);
}
@@ -315,7 +319,7 @@ std::expected<void, Bt1035Error> Bt1035Driver::boot()
}
booted_ = true;
ESP_LOGI(kTag, "Line-In mode enabled (AT+AUXCFG=1)");
ESP_LOGI(kTag, "I2S slave mode enabled (AT+AUXCFG=3, AT+I2SCFG=67)");
return {};
}