Meshtastic

MeshWatch - Testing and monitoring tool

I created a project called MeshWatch (originally MeshTalk, but that name was already in use). I use this tool to decode the messages being sent amongst the devices in my mesh. Packets are decoded and displayed in real time. There is a test function as well that will send out X messages every Y seconds. This is useful when moving devices around to see if they can still communicate. Each node in the mesh can be displayed along with their distance from the base (the node MeshWatch is attached to).

Feature suggestions are more than welcom.

meshtalk packet keys


Meshtalk help window send message

6 Likes

Does it work on a Mac?

How difficult would be adding a “host” paramenter and feed it to the meshtastic calls (equivalent to meshtastic --host 192.168.1.X parameter)? Would be neat to be able to run over IP besides direct USB connection.

I get

/Library/Frameworks/Python.framework/Versions/3.9/bin/python3: can't find '__main__' module in '/Users/garth/Documents/source/meshtalk'

Replacing line 1482: interface = meshtastic.SerialInterface()
with: interface = meshtastic.TCPInterface("192.168.1.X")

besides is getting a few lines in the Data Packets window with “RAW value not yet suported by DecodePacket function”, seems to work.

Wow, that is really cool. I’ll make a note of that in GitHub as a future enhancement.

As for the “Raw value…” that is an message generated whenever one of the payload packets is encountered. I am pretty sure both an encoded and a plain text value are sent, so it is not like we are missing any data. Something for me to look into of course as time permits.

1 Like

Hey Garth, I have made man updates to the main code. Can you try running from the main repository?

Works good now on my M1 Mac mini, connected to a RAK device, T-Beam and T-Echo devices. Logs always crashes for me.

That is great to hear! Any feedback is always welcome.

emoji receive well, but I can’t send them :grinning:

For those having stability issues, I happened to trip over this:

curses — Terminal handling for character-cell displays — Python 3.10.0 documentation

A bug in ncurses, the backend for this Python module, can cause SegFaults when resizing windows. This is fixed in ncurses-6.1-20190511. If you are stuck with an earlier ncurses, you can avoid triggering this if you do not call addstr() with a str that has embedded newlines. Instead, call addstr() separately for each line.

1 Like