Description
MicroPython v1.22.1 on 2024-01-05; Raspberry Pi Pico W with RP2040
This error occurs as part of a BLE central implementation. I'm using the BLE class direct rather than the aioble library.
Following scanning and a successful _IRQ_PERIPHERAL_CONNECT event, service discovery is initiated. During service discovery the attribute tree is navigated recording service handles, characteristic handles and descriptor handles. This includes recording handles for the CCC descriptor for characteristics with Notify enabled (UUID = 0x2902). Following service discovery MTUs are exchanged. The CCC descriptors then have 1 written to them, to enable notifications to be reported by the server. The first of these generates an _IRQ_GATTC_WRITE_DONE with a result of 0 (OK). The second write causes the OSError 114.
This failure is specific to the Pico-W with the Infineon radio. The code works as expected without the OSError on both an ESP32 and an Arduino Nano RP2040 Connect (Nina W102 uBlox radio). I've also tried it with two different peripheral implementations - micropython on the RP2040 Connect and c++/ARM mbed Bluetooth library on an Arduino Nano BLE. The failure happens consistently with both peripheral implementations.