ESB RF transmission is too slow

Hello, 

I'm trying to figure out what I am doing wrong (or what I misunderstood) about the bitrate.

According to my benchmark, it takes 1.42ms to send 128 bytes using ESB as following:

- protocol: ESB_PROTOCOL_ESB_DPL
- bitrate: ESB_BITRATE_2MBPS
- no retransmit

This means that I can push around ~90,140 bytes / second (not including protocol related data). 

2Mpbs is around 0.25MB/s, I'm getting 0.1MB/s

Questions:

1. Any obvious reason why my bitrate is too slow? (acks or protocol overhead?)

2. Using 2 pipes at same time could improve performance or will it lead to some "packet collision" issue?

Thanks in advance!

Parents
  • Hi,

     

    I'm trying to figure out what I am doing wrong (or what I misunderstood) about the bitrate.

    According to my benchmark, it takes 1.42ms to send 128 bytes using ESB as following:

    - protocol: ESB_PROTOCOL_ESB_DPL
    - bitrate: ESB_BITRATE_2MBPS
    - no retransmit

    Are you also getting data back from the PRX device, using the ACK payload?

     

    1. Any obvious reason why my bitrate is too slow? (acks or protocol overhead?)

    If you are sending 128 bytes, I'm rounding up to 140 bytes incl. overhead, it should take:

    t_ramp_up + 140 bytes * 8 bits / 2 Mbit = 130 us + (1120 bits / 2 Mbit) = ~690 us.

    Then you also have to account for the ACK from the PRX.

    If this is a zero byte packet, the packet is approx. 10 bytes (approximation, I do not know your address + crc settings):

    130 + 10 * 8 / 2 MBit = 170 us.

     

    Add those together, and you're just shy of 900 us for one ideal transmission.

    If you also send 128 bytes back from the PRX to the PTX (ie. an ACK payload), you're at approx. 1.4 ms.

    2. Using 2 pipes at same time could improve performance or will it lead to some "packet collision" issue?

    If you have a one-to-one transmission, using several pipes does not help wrt. performance.

     

    Kind regards,

    Håkon

Reply
  • Hi,

     

    I'm trying to figure out what I am doing wrong (or what I misunderstood) about the bitrate.

    According to my benchmark, it takes 1.42ms to send 128 bytes using ESB as following:

    - protocol: ESB_PROTOCOL_ESB_DPL
    - bitrate: ESB_BITRATE_2MBPS
    - no retransmit

    Are you also getting data back from the PRX device, using the ACK payload?

     

    1. Any obvious reason why my bitrate is too slow? (acks or protocol overhead?)

    If you are sending 128 bytes, I'm rounding up to 140 bytes incl. overhead, it should take:

    t_ramp_up + 140 bytes * 8 bits / 2 Mbit = 130 us + (1120 bits / 2 Mbit) = ~690 us.

    Then you also have to account for the ACK from the PRX.

    If this is a zero byte packet, the packet is approx. 10 bytes (approximation, I do not know your address + crc settings):

    130 + 10 * 8 / 2 MBit = 170 us.

     

    Add those together, and you're just shy of 900 us for one ideal transmission.

    If you also send 128 bytes back from the PRX to the PTX (ie. an ACK payload), you're at approx. 1.4 ms.

    2. Using 2 pipes at same time could improve performance or will it lead to some "packet collision" issue?

    If you have a one-to-one transmission, using several pipes does not help wrt. performance.

     

    Kind regards,

    Håkon

Children
Related