This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Central GATT write ignored on Raspberry Pi

Hi,

I've been trying to get an implementation of the HTTP Proxy working with nRF52. The nRF52 is in central mode, accessing the proxy (running on a Pi with Bleno) which is exposing some characteristics.

I can access the proxy using the nRF connect app just fine, can read and write characteristics, and everything works great.

I can also connect with the nRF52 now (thanks!), I can list services and characteristics, and I can read characteristics. However: when I write to a characteristic the command succeeds and I get a BLE_EVT_TX_COMPLETE event, but the Raspberry Pi doesn't register the write at all (for single byte or multibyte characteristics).

However it works perfectly when writing characteristics on another nRF52.

Any thoughts on what the problem could be here? I'm using sd_ble_gattc_write with BLE_GATT_OP_WRITE_CMD and BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE.

On the multibyte characteristic it can also fail with a DATA_SIZE error if the string is too long - but the nRF connect app doesn't. Is there some other type of write command that I'm missing, or does it need to send another write with a special offset to 'end' the transmission?

Related