Skip to main content
These are the kinds of bugs that build clean and pass review, then fail on hardware. A general agent reads your code and stops there. Adsum reads the board too, which is why it closes them.

BLE notifications stop working after a reconnect

  • Symptom notifications work on the first connection, then go silent after the central disconnects and reconnects.
  • Cause the Client Characteristic Configuration state is tied to the bond, and settings were never loaded, so the stack does not restore the subscription. Often a missing settings_load() after bt_enable().
  • How Adsum catches it it watches the live BLE exchange over the air and on the device log, sees the subscribe step never re-arm after reconnect, and traces it to the missing settings restore rather than to the notification call itself.

Bond is lost on every cold boot

  • Symptom pairing works, but the device forgets the bond after a power cycle and forces re-pairing.
  • Cause CONFIG_BT_SETTINGS is enabled without a working flash backing for the settings subsystem, so keys are held in RAM and never persisted.
  • How Adsum catches it it correlates the boot log with the Kconfig and storage setup, spots that settings have no non-volatile backend, and points at the configuration, not the pairing code.

ESP firmware builds clean but fails at runtime

  • Symptom idf.py build succeeds, but the device reboots, hangs, or cannot find an app on boot.
  • Cause a partition-table or sdkconfig mismatch: the flashed layout does not match what the build expects.
  • How Adsum catches it it reads the serial output through the boot sequence, matches the failure against the partition table and sdkconfig, and fixes the layout instead of chasing application code that was never the problem.

A bug that only appears across two devices

  • Symptom each board looks fine on its own, but a central and peripheral (or two nodes) misbehave when talking to each other.
  • Cause a timing, state, or protocol mismatch that is only visible when both sides are observed together.
  • How Adsum catches it it captures both log streams at once and correlates them on a shared timeline, so the interaction bug becomes visible instead of hiding between two passing single-device views.

These cases come straight from the failure modes our curated knowledge is built on. See the benchmark for the head-to-head, or contribute the bugs you have lived through.