Skip to main content

Posts

Showing posts with the label ESP32

Matter on ESP32: Troubleshooting 'Commissioning Failed' with Apple Home

  If you are developing a Matter-over-Wi-Fi device on the ESP32, you have likely encountered the specific problem that is the Apple Home "Commissioning Failed" error. Android devices commission instantly. The   chip-tool   on Linux works perfectly. Yet, when you scan the QR code with an iPhone, the Home app spins on "Connecting..." for 30 seconds before unceremoniously dropping the connection. Apple provides zero logs to the user. However, the issue almost always boils down to two factors specific to the ESP32 implementation:  BLE Advertisement intervals violating Apple's strict accessory design guidelines  and  Memory exhaustion during the PASE (Passcode Authenticated Session Establishment) handshake . Here is the root cause analysis and the production-grade fix to stabilize your Matter commissioning. The Root Cause: Timing and Fragmentation Matter commissioning (specifically PASE) begins over Bluetooth Low Energy (BLE). The Commissioner (the iPhone) must ...

Debugging `CHIP_ERROR_INTERNAL` (0xAC) in ESP32 Matter Commissioning

  Few things are more demoralizing in firmware development than a generic error code during a critical phase. In the ESP32 Matter ecosystem,   CHIP_ERROR_INTERNAL   (0xAC) during the PASE (Passcode Authenticated Session Establishment) or commissioning phase is a notorious showstopper. You see the BLE connection succeed, the credentials exchange begin, and then the process hangs until the commissioner (Google Home, Apple Home, or  chip-tool ) throws  0xAC  and disconnects. This is almost never an internal memory error. It is usually a networking identity crisis caused by  stale Thread Operational Datasets . The Root Cause: Thread Dataset Mismatches To understand why  0xAC  occurs, you must look at how Matter commissioning hands over credentials. BLE Handshake:  The phone connects to the ESP32 via BLE. Thread Provisioning:  The phone sends the Thread Network credentials (PAN ID, Channel, Network Key) to the ESP32. Network Switch: ...