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

nRF52 ACK with payload in static payload mode

Hello,

I am working with the nRF52 Development Kit and the Enhanced Shock Burst Protocol. I am trying to send Data from one Development Board to the other with static Payload size configured on both boards.

My sending message flow looks like this:

  • message from PTX to PRX with payload (works fine)
  • ACK with payload back from PRX to PTX works partly (I received the ACK but not the Payload)

I looked into the sources of nrf_esb.c and find the following code snippet in the function on_radio_disabled_rx():

case NRF_ESB_PROTOCOL_ESB:
            {
                update_rf_payload_format(0);
                m_tx_payload_buffer[0] = m_rx_payload_buffer[0];
                m_tx_payload_buffer[1] = 0;
            }

That tells me only a ACK payload size of zero is send. Now I want to change that in the code to the following:

  case NRF_ESB_PROTOCOL_ESB:
            {
                update_rf_payload_format(2);
                p_pipe_info->ack_payload = true;
                m_tx_payload_buffer[0] = m_rx_payload_buffer[0];
                m_tx_payload_buffer[1] = 0;    
                m_tx_payload_buffer[2] = 0x01;
                m_tx_payload_buffer[3] = 0x02;
            }

Is that possible. I tried it and I never get the payload. Do I miss something?

Related