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

nrf52840 slow rx characteristic time

The nRF52840 has a longer rx characteristic reception time than the nRF51822.

  --> android terminal log

first and second line nRF52840 , It takes almost 1.2 seconds to get the rx characteristic.

below nRF51822, It takes almost 0.4 seconds.

why It happens? What should I do to improve the performance?

NRF52840 -

SDK 15.3.0, with buttonless dfu service

NRF51822 - 

SDK 12.3.0 - w/o buttonless dfu service

Other application layer are almost same.

  • Hi

    I've looked at your sniffer traces, and according to the data that goes over the air, the time from connection to service discovered is just about the same in both instances. a few µs faster on the nRF52840 in the note10 log. And a few µs faster on the nRF51822 in the note4 log. But the difference is negligible, so this seems to be your logs taking longer to print on one side. Did you try setting NRF_LOG_DEFERRED to 0 in the nRF52840 application?

    Best regards,

    Simon

  • I tried to setting NRF_LOG_DEFERRED to 0 in the nRF52840 application. but, the result is same.

    There are differences in nrf51822-galaxy-note4 and nrf52840-galaxy-note4.

    the connected packet 

    nrf51822-galaxy-note4 - number: 66 time: 1.365

    nrf52840-galaxy-note4 - number: 51 time: 0.807

    the first packet in application

    nrf51822-galaxy-note4 - number: 138 time: 2.227

    nrf52840-galaxy-note4 - number: 156 time: 2.392

    I'm not sure of the connected packet. Assuming it's right,

    from the connected packet to the first packet in application

    nrf51822-galaxy-note4 - number: 138-66=72 time: 2.227-1.365=0.862

    nrf52840-galaxy-note4 - number: 156-51=105 time: 2.392-0.807=1.565

    It's similar to android log time.

  • Hi

    You've used two completely different "connected packets" when measuring the time here.

    If you use the same packet, say the CONNECT_REQ packet in both instances, the times will be:

    nRF51822_Galaxy_Note_4: 2.227 - 0.8359 = 1.39s

    nRF52840_Galaxy_Note_4: 2.392 - 0.8065 = 1.58s

    This is a very short time, and can not be counted as a delay. Furthermore, the time we see on the left side of the sniffer log is the time it takes for the computer to see the logs, so to be even more accurate, we should calculate the delta time (µs start to start) for each event to get the exact timing.

    Best regards,

    Simon

  • What is the connection confirm response message for connect request?

    As you say, I compare different packets.

  • Hi

    You should measure from the first Empty PDU in the sniffer trace until the packet you want to compare in order to get the most reliable timing.

    Best regards,

    Simon

Related