nRF91 - Maximizing nb-iot data throughput

Hi,

I´ve been trying to improve data transmission from an nRF91 dev board through nb-iot to Azure IOT-hub and always got a socket disconnection event when I tried to send too much. Found out it probably had to do with the tx buffer for TLS transmissions being only 2kb. The function azure_iot_hub_send(&msg) seems to stall (~400 - 700ms) after several transmissions (like it´s waiting to send the buffer to the cellular tower) or the socket disconnects. I´ve been using SDK 1.9.1 and based my code on the Azure iot hub example.

What are your recommendation to configure modem/socket for optimal data throughput using nb-iot? Is there anything I can request my service provider to do to improve things?

Best regards,

Atli

Parents
  • Hello Atli,

    I´ve been trying to improve data transmission from an nRF91 dev board through nb-iot to Azure IOT-hub and always got a socket disconnection event when I tried to send too much.

    Socket disconnection might be an issue with libmodem < 2.0.0. The suggestion from our developers is to try NCS v2.0.0 with libmodem v2.0.1+b1. Additionally, you can turn on CONFIG_NRF_MODEM_LOG for some helpful messages. 

    The function azure_iot_hub_send(&msg) seems to stall (~400 - 700ms) after several transmissions (like it´s waiting to send the buffer to the cellular tower) or the socket disconnects.

    As for the stalling, that's to be expected when the application sends more data than how much the modem can transmit on-air with the time it is given by the cellular network. Data to be sent on air is buffered, and when that buffer is full send() waits for memory at the socket as per POSIX.

    Cheers,

    Markus

Reply
  • Hello Atli,

    I´ve been trying to improve data transmission from an nRF91 dev board through nb-iot to Azure IOT-hub and always got a socket disconnection event when I tried to send too much.

    Socket disconnection might be an issue with libmodem < 2.0.0. The suggestion from our developers is to try NCS v2.0.0 with libmodem v2.0.1+b1. Additionally, you can turn on CONFIG_NRF_MODEM_LOG for some helpful messages. 

    The function azure_iot_hub_send(&msg) seems to stall (~400 - 700ms) after several transmissions (like it´s waiting to send the buffer to the cellular tower) or the socket disconnects.

    As for the stalling, that's to be expected when the application sends more data than how much the modem can transmit on-air with the time it is given by the cellular network. Data to be sent on air is buffered, and when that buffer is full send() waits for memory at the socket as per POSIX.

    Cheers,

    Markus

Children
No Data
Related