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

Gazell data lag when more than 1 device is connected

Hi! I am fairly new to programming micro controllers so apologies if I ask many questions. I am using NRF52832. The situation is this - I have 2 devices and 1 host . After receiving data the host then sends data via UART to FT232RL and then to a computer. The devices are running on different pipes, however when both devices are sending data to the host some bytes are being skipped and there is this lagging as well - the data comes not consistently but in steps. Any ideas or advice ?

Here is the host's main code Host Device.txt

And here is the devices' code (it's quite a mess, sorry). Device.txt

Parents
  • Ok. I have managed to fix the byte skipping by using this answer. However, now I have data coming in little bursts at first and then it slows down gradually to a very slow rate... When I reset the host same thing happens again.

  • Hi

    Have you done some debugging to check how often the nrf_gzll_device_tx_failed(..) callback occurs?

    As it is I don't think you are handling this interrupt correctly. You handle it by re sending the data_payload buffer, but at this point that buffer might already have been overwritten by new sensor data.

    Secondly, you might want to check the return code from the nrf_gzll_add_packet_to_tx_fifo(..) calls, in case the internal buffers fill up. Once that happens the data will not be uploaded, and if you don't store it externally the packet will be lost.

    Best regards

Reply
  • Hi

    Have you done some debugging to check how often the nrf_gzll_device_tx_failed(..) callback occurs?

    As it is I don't think you are handling this interrupt correctly. You handle it by re sending the data_payload buffer, but at this point that buffer might already have been overwritten by new sensor data.

    Secondly, you might want to check the return code from the nrf_gzll_add_packet_to_tx_fifo(..) calls, in case the internal buffers fill up. Once that happens the data will not be uploaded, and if you don't store it externally the packet will be lost.

    Best regards

Children
No Data
Related