Practical latency test and Airtime

Hello meshtastic community,

I am currently testing some LoRa modules for range and latency tests, and I have deployed meshtastic firmware-tbeam-1.2.64.179a262 on these modules (T-BEAM). So far the test results are good, even I was able to test “mesh” routing of the messages.

Now, I want to analyze different test scenarios and from the data I collect eventually do some statistics around it. Main focus is range and latency tests. From the web app (range test plugin enabled), and from mobile devices connected to LoRa modules, I get the csv files, which have very useful data. However, I needed more than that, so I tried to get the serial logs. And interestingly, it does give some useful insights. Although I didn’t understand everything quite well from the logs, and hence have some queries.

  1. From the logs → AirTime - Packet received = 20ms. Is this 20ms the AirTime? And what is Packet received? (assuming ‘-’ as a minus operator here, maybe I am wrong!)

  2. Should this AirTime be the same as mentioned earlier in this forum, the airtime and current calculator?

  3. To measure latency, there is an rx timestamp in the csv and also in the serial logs. But no mention of sender time. Although, in the sender’s android app → logs, I can see the time the message was sent. So is there any way to include that in csv, besides doing it manually? (attaching a screenshot for this)

  4. Is there any other, better way to find the time taken for transmission of a message? Another thing, the timestamp has precision of seconds, but for latency calculations, I was thinking to have millisecond precision. Any clues, how to get this?

Here are some sample serial logs, (not the same test occurrence as in the screenshots) :

14:27:00 1392 [RadioIf] (bw=500, sf=7, cr=4/5) packet symLen=0 ms, payloadSize=22, time 20 ms
14:27:00 1392 [RadioIf] Lora RX (id=0xe696f303 Fr0x30 To0xff, WantAck0, HopLim5 Ch0x53 encrypted rxSNR=5.25)
14:27:00 1392 [RadioIf] AirTime - Packet received : 20ms
14:27:00 1392 [Router] Add packet record (id=0xe696f303 Fr0x30 To0xff, WantAck0, HopLim5 Ch0x53 encrypted rxSNR=5.25)
14:27:00 1392 [Router] Using channel 0 (hash 0x53)
14:27:00 1392 [Router] Warning: User provided a too short AES128 key - padding
14:27:00 1392 [Router] Installing AES128 key!
14:27:00 1392 [Router] decoded message (id=0xe696f303 Fr0x30 To0xff, WantAck0, HopLim5 Ch0x0 Portnum=1 rxtime=1657204020 rxSNR=5.25)
14:27:00 1392 [Router] handleReceived(REMOTE) (id=0xe696f303 Fr0x30 To0xff, WantAck0, HopLim5 Ch0x0 Portnum=1 rxtime=1657204020 rxSNR=5.25)
14:27:00 1392 [Router] Plugin ‘text’ wantsPacket=1
14:27:00 1392 [Router] Received text msg from=0x2504f230, id=0xe696f303, msg=Hi

If you have some insights regarding this, just drop by, thanks :wink:

I would also like to thank the developers and contributors behind this. A few tests, worked out well so far.

2 Likes