Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mishtastic Client Helper

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. rg35xxplus

Repository Layout

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.

Prerequisites

Host Machine (your PC)

  • Linux or macOS shell with bash, ssh, and scp.
  • sshpass for unattended credential entry (install via sudo apt install sshpass, brew install hudochenkov/sshpass/sshpass, etc.).
  • Git CLI for cloning the project.

Target Device (RG35XX / RG Cube)

  • 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 pip and pulls in packages).
  • At least ~50 MB free on /mnt/mmc for Python wheels and app assets.

Installation

  1. Clone this repository

    git clone https://github.com/<your-org>/<repo>.git
    cd <repo>
  2. Run the installer

    ./install.sh --host 192.168.1.xxx [--password password]

    The script will:

    • Ensure pip, meshtastic, and Pillow are available on the handheld.
    • Upload Meshtastic_Helper/ and Meshtastic.sh to /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.

  3. Launch on the device

    • Disconnect USB (if mounted) so the SD card is writable.
    • On the RG35XX, open App Center → Meshtastic.
    • Configure the connection: A to edit an octet, L1/R1/L2/R2 to adjust by bigger steps, A to save.
  4. 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.

Usage Highlights

  • Send Message: Compose via the on-screen keyboard. Press X to toggle between channel broadcast and node-directed messages. L1/R1 select the channel or node; SELECT refreshes node listings. Highlight SEND and press A to transmit.
  • Monitor Messages: Choose a duration with the D-pad; A starts 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 A to start/stop the scan and B to exit; the footer shows the last refresh timestamp and exit code if the CLI reports an error.
  • List Nodes/Channels: Node summaries support A to open a detail view with key/value pairs, while the channel list (from meshtastic --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.

Updating the App

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.

Troubleshooting

  • Installer fails with sshpass: command not found: Install sshpass on 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 Pillow via SSH.
  • Meshtastic command errors: Verify the IP/port configuration from the main menu. Use check_meshtastic.sh to confirm CLI connectivity.
  • UI font missing: The app expects DejaVuSansMono.ttf at /usr/share/fonts/TTF/. Install it on the device if custom firmware removed the default font pack.

Development Notes

  • 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; adjust input.py if your firmware maps the controller differently.
  • Logs are written to /mnt/mmc/Roms/APPS/Meshtastic_Helper/log.txt every time the launcher runs. Use ssh + tail -f while testing.

License

Specify your preferred license here (e.g., MIT, Apache 2.0). Add a LICENSE file in the repository root to formalize it.

About

No description, website, or topics provided.

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages