Write to Cypress peripheral from nRF52840 fails


I am writing a single byte value to a cypress module using write with response (BLE_GATT_OP_WRITE_REQ). For some reason the peripheral will receive the value but will not carry out the action I expect as a result of the write. When I do the write from the nRF connect app, the peripheral receives the byte and actions accordingly.

BLE_GATT_OP_WRITE_CMD returns invalid op so I think it needs to be a write with response. Does anyone have any idea why this would be the case?

What could the nRF app be doing that I am not when carrying out this simple write?

Thanks in advance for any help!


  • HI Lewis, 

    Could you try to capture a sniffer trace of the communication ? You only need a NRF52 DK to use as a sniffer.  With that we can see the difference when you do a write request from the nRF52840 and when you do write request from nRF Connect. 

    Could you explain what exactly  you meant by "but will not carry out the action I expect as a result of the write." What exactly missing ? Did you receive the event BLE_GATTC_EVT_WRITE_RSP ?

  • Hi Hung Bui,

    I am waiting for a sniffer I have ordered to arrive as currently I do not have one. It should be with me in the next day or so and I will update then.

    The Cypress module (peripheral) is attached to a servo and moves in response to a characteristic value being written to. It is a production item and I know there is nothing wrong with this side of things. As proof, things happen as I expect when using the mobile apps (nRF connect, BLE Hero, CySmart etc...). 

    When I write to the same characteristic from my Adafruit nRF52 feather, I do indeed receive the BLE_GATTC_EVT_WRITE_RSP  along with a GATT_SUCCESS. When I then check the value of the characteristic, it has indeed changed. BUT for some reason the servo does not move UNLESS I disconnect the two devices and then re-connect.

    Is there anything you can think of that would cause this behaviour? It feels like a connection event is not terminating?

    Thank you