Meshtastic

Android and device builds 1.1.46 now up for alpha testing

Hi ya’ll,

This release includes a really good protocol improvement. While investigating/fixing:

I noticed a funny side effect of lora being so slow: Usually when making a protocol there isn’t much need to use message priority to change the order of transmission (because interfaces are fairly fast). But for lora where packets can take a few seconds each, it is very important to make sure that critical packets are sent ASAP. In the case of meshtastic that means we want to send protocol acks as soon as possible (to prevent unneeded retransmissions), we want routing messages to be sent next, then messages marked as reliable and finally ‘background’ packets like periodic position updates.

So I bit the bullet and implemented a new (internal - not sent over the air) field in MeshPacket called ‘priority’. And the transmission queue in the router object is now a priority queue.

I also updated the position and node info plugins to never have more than one transmission queued. This also helps save airtime & power.

The combined effect of these changes is a dramatic increase in speed and reliability for ‘busy’ networks. Also the networks will become much less busy, because we can prevent unneeded flood routing events sooner.

The device build is up now. The android app (which also includes a layout fix for @luxonn) will go up in about an hour.

14 Likes

btw - I just noticed a case where firmware update could fail if the device was in a very chatty mesh. I think I’m going to “give up” on letting firmware updates happen while the net is up and I’ll have it disable the mesh radio during the update.

6 Likes

Are these changes backwards-compatible? I’m testing a T-Beam with 1.1.46 but it seems unable to mesh with 1.1.33 devices.

Hmm. Should be, the wire representation is unchanged, it is just smarter about which packet to send first.

I have updated 4 t-beams to 1.1.46 via BLE.
3 “normal nodes” → updated properly the first time.
1 relay node that could not be updated until I set manually a sleep period of 300 sec. Then it worked perfectly.

Everything has been stable so far. The ack is coming at times much faster than before, but I have not measured it properly.

So, good update, thanks!

1 Like

False alarm, it works! Thank you for the update.

1 Like

That seems very appropriate. Flashing firmware should be considered more important & is much more fragile. You can always not flash firmware if there is critical communication in progress.

1 Like

Devices: Three tbeams with T22_V1.1 20191212 M8N and T22_V1.020190612 6M
Tablet: Huawei MediaPad Android 7.0, App version: 1.1.44.

Updated via device.install.sh, changed position broadcast and device sleep both to 20 sec on both 6M devices. The menu buttons did not show on the M8N device. I also still see signal 0% on one tbeam even though all the tbeams are side by side. Calculated gps distances between devices are all accurate to <10m. Looks good apart from these minor issues. I will try to check both these odd issues further.

1 Like