Mishtastic Client Helper bundles a framebuffer-native launcher for Meshtastic CLI tasks on the Anbernic RG35XX / RG Cube handhelds. It provides:
- Connection presets (host/port/transport) stored on-device.
- Quick actions for sending messages to channels or individual nodes.
- Live monitoring, node listing, and channel summaries adapted for the small display.
- A self-contained launcher (
Meshtastic.sh) so the app appears inside the stock App Center.
The repository also includes automation scripts for installing Meshtastic CLI, copying the UI assets to the handheld, and checking remote prerequisites.

| Path | Description |
|---|---|
Meshtastic_Helper/ |
Python framebuffer UI (graphics, input handling, main workflow). |
Meshtastic.sh |
App Center launcher script executed on the device. |
install.sh |
Host-side helper that installs Meshtastic CLI + Pillow on the device and uploads the project files. |
check_meshtastic.sh |
Optional readiness probe to confirm a target device can run Meshtastic CLI. |
- Linux or macOS shell with
bash,ssh, andscp. sshpassfor unattended credential entry (install viasudo apt install sshpass,brew install hudochenkov/sshpass/sshpass, etc.).- Git CLI for cloning the project.
- Device must be on the same network with SSH enabled (default root password
root). - Python 3 preinstalled (stock firmware ships with it; the installer upgrades
pipand pulls in packages). - At least ~50 MB free on
/mnt/mmcfor Python wheels and app assets.
-
Clone this repository
git clone https://github.com/<your-org>/<repo>.git cd <repo>
-
Run the installer
./install.sh --host 192.168.1.xxx [--password password]
The script will:
- Ensure
pip,meshtastic, andPilloware available on the handheld. - Upload
Meshtastic_Helper/andMeshtastic.shto/mnt/mmc/Roms/APPS/. - Mark the launcher executable so “Meshtastic” appears in the App Center list.
Tip: the script accepts any reachable hostname/IP and an alternate root password via
--password. - Ensure
-
Launch on the device
- Disconnect USB (if mounted) so the SD card is writable.
- On the RG35XX, open App Center → Meshtastic.
- Configure the connection:
Ato edit an octet,L1/R1/L2/R2to adjust by bigger steps,Ato save.
-
Verify CLI connectivity (optional)
Use the readiness probe from your host:
./check_meshtastic.sh --host 192.168.1.xxx --password yourpass
The script reports Python, pip, and Meshtastic versions running on the device.
- Send Message: Compose via the on-screen keyboard. Press
Xto toggle between channel broadcast and node-directed messages.L1/R1select the channel or node;SELECTrefreshes node listings. HighlightSENDand pressAto transmit. - Monitor Messages: Choose a duration with the D-pad;
Astarts a live capture that now filters the CLI’s debug flood. Each received text shows the sender, destination channel (if any), and message body; if Meshtastic changes its output format the raw text is shown instead. Results stay inside a scrollable card view. - Scan Direct Nodes: The scanner refreshes every few seconds to highlight peers heard directly (no hops). Press
Ato start/stop the scan andBto exit; the footer shows the last refresh timestamp and exit code if the CLI reports an error. - List Nodes/Channels: Node summaries support
Ato open a detail view with key/value pairs, while the channel list (frommeshtastic --info) highlights primary/secondary entries, PSK state, and URLs.
Results screens support D-pad Up/Down to scroll and A/B to return to the main menu. Continuous monitor mode is still available from the duration picker for long-running captures.
After modifying any Python or launcher files, rerun:
./install.sh --host <device-ip>The script replaces the remote application directory and refreshes dependencies if required.
- Installer fails with
sshpass: command not found: Installsshpasson the host and rerun the script. - Pillow build errors: Ensure the device has enough free space; rerun the installer. If Pillow still fails, pre-install it manually:
python3 -m pip install Pillowvia SSH. - Meshtastic command errors: Verify the IP/port configuration from the main menu. Use
check_meshtastic.shto confirm CLI connectivity. - UI font missing: The app expects
DejaVuSansMono.ttfat/usr/share/fonts/TTF/. Install it on the device if custom firmware removed the default font pack.
- The framebuffer drawing utilities expect RGB32 byte order and will auto-detect the screen resolution via
/mnt/vendor/oem/board.ini. - Input events are read from
/dev/input/event1; adjustinput.pyif your firmware maps the controller differently. - Logs are written to
/mnt/mmc/Roms/APPS/Meshtastic_Helper/log.txtevery time the launcher runs. Usessh+tail -fwhile testing.
Specify your preferred license here (e.g., MIT, Apache 2.0). Add a LICENSE file in the repository root to formalize it.