Last week, the two biggest things that we accomplished were making one node in the mesh network into an MQTT bridge, which would connect to an MQTT broker to be able to use the dash with the mesh network, as well as set up the RFM69HCW 433 MHz packet radios into a unicast mesh network.
So, using the dash, I performed a latency test for sending a message through both my 2.4 GHz and 433 MHz mesh networks simultaneously. I measured the time from right before sending the message up until an acknowledgement was received. Here is a video of me using the dash to control the node on the right and obtain latency data.
I decided to plot the values that I got as a message number versus latency graph to show how the painlessMesh 2.4 GHz protocol is a lot more variable over time due to the station scanning and synchronization traffic that it introduces onto the network periodically.
Note the spike of the 2.4 GHz latency at 1125 milliseconds on the 18th message: this demonstrates the variability of the latency of the 2.4 GHz mesh. As you can see, the 433 MHz packet radio is obviously much faster and much more consistent than the 2.4 GHz mesh network. Furthermore, the maximum of the 433 MHz latency of 13 milliseconds right at the beginning can be attributed to the automatic route discovery which is performed at the first message sent, but, once the route is found, the latency stays constant at 7 milliseconds.
One thing that I have been having issues with is the Radiohead library for the 433 MHz radio that helps with hopping packets across nodes. When I try to use the automatic route discovery to a destination with three nodes in the system, often each radio can only talk to one other radio. When the node tries to send a packet to the node that it can’t reach, the function for finding a route times out after searching for four seconds. Furthermore, even though I send the message over the 2.4 GHz mesh network first, those four seconds completely block out the communication, so the painlessMesh delay for that message ends up being inflated by four seconds and the 433 MHz message isn’t received at all. I was able to get the network working when I did manual route discovery, where I have to manually indicate the routes and which nodes they hop over. So, that might be the direction that I have to take in order to increase the reliability and decrease the latency of the system with more nodes.