Meshtastic

Character Encoding & Minimizing Payload

Hi folks. I’m new to this mesh world. But not to radio, not to tech, and not to coding.

I’m wondering if anybody knows what character encoding limitations there are on the network. I’m designing a system for minimizing payload per message while carrying the maximized amount of data per message. I wanted to get some input with regards to suitable compression, while avoiding encodings that ultimately need to be expanded in order to reach its destination.

Not sure how this will present itself here on the forum, but this is what I’m wanting to send:

�Ėhe���nL��p�Ӻg2�6
���y�pt�����p��/�^��
                    ��Ij����,�OtM>

Will this get through? Two more examples:

�Ėhe�x��nI��q�Ӻg2��7	���{�tq�����s��#�X���#�������9ڷ



�Ėhe�~��nJ��{�Ӻg2��
6
 ���x�xq�����p��*�[����7�2�7^��C*��

A message can have up to 240bytes. Any character encoding is the responsibility of the client sending / receiving the message. What is packed into those 240 bytes is (as far as anyone is concerned) untouched by the time it’s received on the other end.

Good to know. My current data items are ~4KB.

Sounds like 18 packets of data to send that many bytes. Totally doable, just not in the same packet.

OK, so with regards to optimization of reaching their destination, what’s the strategy on all this? This is essentially a data acquisition strategy. I’m not clear on how transmission is covered with regards to full transmission completion. The mesh network seems rather unique in terms of any checks for completion. In fact, routing is pretty much absent, but then again I don’t know much how the network works.

You can send the series of packets and ask for acknowledgement. You can then keep track of what packets have not received the acknowledgement and resend what wasn’t received. On the receiver side, if you have received all the packets, reassemble them in the right order (if they came in disordered).

This will likely require developing a plugin for Meshtastic if you want to be at a low level or by using the python API.