Python PyQt graphical desktop app to interface with a Meshtastic node using a TCP or serial connection. Possibility to subscribe to MQTT servers and retrieve nodes, messages,... Objective is to use an already configured Meshtastic device, and be able to inspect messages, packets, metrics,...
Initial work based on original repository of "Meshtastic Chat Desktop"
Main framework used is PyQt6. Linux compatible, debian based tested (should work on Windows, compatibility not ensured).
Warning: Work in progress !
Feature | Using local device | Using MQTT |
---|---|---|
Display nodes configuration (PK, hopsaway,...) | ✅ | ✅ |
Display map of nodes | ✅ | ✅ |
Display messages | ✅ | ✅ |
Display packets | ✅ | ✅ |
Send messages with acknowledgment | ✅ | ❌ |
Perform traceroute (with SNR) | ✅ | ❌ |
Export nodes (json) | ✅ | ✅ |
Export messages and packets (json) | ✅ | ✅ |
Export telemetry metrics (json) | ✅ | ✅ |
Export events logs | ✅ | ✅ |
Nodes telemetry metrics plotting (CHutil, power,...) | ✅ | ✅ |
Packets RF metrics plotting (RSSI, SNR,...) | ✅ | ✅ |
Based on X11, build the dockerfile and run the docker container. This example assumes your node is accessible at /dev/ttyACM0
.
$ export DISPLAY=:0.0
$ xhost +local:docker
$ docker build . -t meshtastic_visualizer:latest
$ docker run -it \
--env="DISPLAY=$DISPLAY" \
--privileged \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--device=/dev/ttyACM0 \
meshtastic_visualizer:latest \
python -m meshtastic_visualizer
To install on your computer:
$ python3 -m venv .venv
$ source .venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m meshtastic_visualizer
Note: If you rely on Wayland, you may experience Qt event not properly managed. To fall back on a X11
session, provide the following environment variable when launching the application: XDG_SESSION_TYPE=x11
.
Otherwise, you can try QT_QPA_PLATFORM=xcb
, by having previously installed libxcb-cursor0
package.
A lot ! Please fill an issue to add ideas or raise bugs.
Please open a Pull Request.