Skip to content

feat: add bond-clear and shutdown service in firmware 2.3.2 - #371

Open
TobiasRoeddiger wants to merge 3 commits into
mainfrom
codex/clear-bonds-shutdown-2.3.2
Open

TobiasRoeddiger wants to merge 3 commits into
mainfrom
codex/clear-bonds-shutdown-2.3.2

Conversation

@TobiasRoeddiger

@TobiasRoeddiger TobiasRoeddiger commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Firmware 2.3.2 adds an encrypted GATT command to clear all Bluetooth bonds and shut down after a production test. It waits for confirmation of the acceptance indication, inhibits advertising, erases and checks bonds, then uses the existing power-down path. UICR hardware, left/right and CSIP identity are preserved. A one-shot retained marker keeps a cleanup-triggered reboot on external power in the charging loop until deliberate wake.

Reduce the log buffer from 4 KiB to 1 KiB in both regular and FOTA configurations, reclaiming 3,072 bytes of RAM. Logging and shell stacks remain unchanged. Bursts can drop log messages under the existing overflow policy.

Validation: clean FOTA build with SDK 3.4.1 passed after the buffer reduction. The linked application heap is 118,448 bytes, leaving 3,248 bytes above the configured 115,200-byte audio budget, which already includes an 8 KiB reserve. These are build-time capacity figures; full audio/sensor runtime-memory headroom remains unmeasured. No separate thread stack is added.

Prior hardware validation of the GATT cleanup: both earphones flashed and tested with the Pixel 9a. Both deleted their phone bond and entered Power off; the tester removed both Android pairings. Neither appeared in a subsequent 30-second scan, and bond storage remained empty after reboot. The latest log-buffer change has been build-validated, not reflashed. Charging-only behavior remains unverified.

The acceptance indication confirms the request, not completion of flash erasure.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

✅ Unit tests passed

6 passed, 0 failed/error, 0 skipped — view workflow run

Test scenario Platform Result
openearable.unit.sensor_component native_sim/native/64 ✅ passed
openearable.unit.sensor_transport native_sim/native/64 ✅ passed
openearable.unit.ring_buffer native_sim/native/64 ✅ passed
openearable.unit.audio_encoder native_sim/native/64 ✅ passed
openearable.unit.audio_startup native_sim/native/64 ✅ passed
openearable.unit.csip_identity native_sim/native/64 ✅ passed

Download the unit-test-results artifact for full Twister reports and logs.

@github-actions

Copy link
Copy Markdown

Build output available:
openearable_v2_firmware.zip
openearable_v2_fota.zip

@github-actions

Copy link
Copy Markdown

CodeChecker static analysis

✅ No non-style issues found.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Compiler warnings

The extended-warning build completed successfully.

Application compiler warnings

Show warnings
unicast_server/main.cpp:78:33: warning: 'int usb_enable(usb_dc_status_callback)' is deprecated [-Wdeprecated-declarations]

View this workflow run

@github-actions

Copy link
Copy Markdown

Build output available:
openearable_v2_firmware.zip
openearable_v2_fota.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant