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

MicroESB Packet Configuration

Hi,

I am trying to make a communication between a nRF51(uESB) and a nRF24(ESB). The uESB uses tx_payload and rx_payload as buffer to send data. Bytes 0 to 4 are used for length, pipe, rssi, and noack.

Unfortunately, it seems that I am not able to get good tx_payload.data on the nRF24 side. It could be because I don't have the good packet configuration which is described as follow (Ref: nRF51 series ref manual).

Packet Configuration.jpg

Does anyone know if the entire tx_payload is the payload described in the packet configuration (including length, pipe...) or if the tx_payload four first bytes are the entity described in the packet configuration.

Thank you for your replies !

  • Hi, you can use the 'uesb_payload_t' struct to prepare the packet to transmit, as shown in the following example: github.com/.../main.c

    The 'data' field in 'uesb_payload_t' should only contain the actual packet, not the S0, LENGTH, and S1 field shown in your picture, as those fields will be generated by the uESB library before packet is sent.

    You must also make sure that you on the nRF24L use the same configuration as on the nRF51 (e.g. address and frequency), in addition you should make sure that you enable features on the nRF24L:

    hal_nrf_setup_dynamic_payload(0xFF);
    hal_nrf_enable_dynamic_payload(true);
    hal_nrf_enable_ack_payload(true);
    

    You can download 'nAN24-12.zip' for examples on how to setup the nRF24L in different radio modes. The hal_nrf should be ported to your MCU of choice.

Related