Skip to main content

Meshtastic serial device discovery gateway service and client built around socat plus other tooling

Project description

MeshCat (Meshcatstic)

Meshtastic serial device discovery gateway service and cli client built around socat and other tooling

MeshCat Logo

Requirements

  • Posix environment (tested with Ubunutu)
  • Python 3.10+ and Poetry (for development)
  • socat (sudo apt install socat)
  • Uvicorn server (comes with pypi installation or poetry install)
  • pipx install meshcatstic

Running for development

Server

  • Clone the repository
  • Install dependencies with poetry install
  • Run the service with poetry run start

Endpoints

  • GET /list: List all connected Meshtastic serial devices.
  • POST /connect?port=/dev/ttymythang: Initiate a socat server for the client connect to a meshtastic serial device on /dev/ttymythang. Should be unecessary to initiate manually, as background service handles this.
  • POST /update?port=/dev/ttymythang: Flash device with uploaded binary on selected port
  • POST /stop?port=/dev/ttymythang: Kill socat process on port

Client

Warning: Requires running with sudo because socat is creating virtual ports.

  • Clone the repository
  • Install dependencies with sudo poetry install
  • Set environment variable with the remote host MESHCAT_HOST="meshcathostname"
  • List devices on the remote service with poetry run meshcat list
  • Connect to a device on the remote service with poetry run meshcat connect /dev/ttyACM0
  • Take the generated TCP portnum for the gateway serial device and use meshtastic cli or any other client to connect to port /tmp/meshcat{tcpportnum}
  • To update (flash) a remote device on the service, poetry run meshcat flash /dev/ttymythang firmware-mythang-update.bin

Running

After pip installing meshcatstic, you can run both the server and client.

To run the server using uvicorn: uvicorn meshcatstic:app To run the client: meshcat ... command

Future features

  • Streaming text respsonse for progress
  • RP2040 support w/ picotool
  • Full erase and flash

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meshcatstic-0.1.3.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meshcatstic-0.1.3-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file meshcatstic-0.1.3.tar.gz.

File metadata

  • Download URL: meshcatstic-0.1.3.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for meshcatstic-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5e0869919ecd3a30c7da7aa46298d3599af056cb297f435505db7559b1144da0
MD5 cfd5042700782efdf0e0ba605683b66d
BLAKE2b-256 8416cf4f13e7ccc2bc136b9a8cfb9050ff8b1a7ef9a2d7113acabd858ff411db

See more details on using hashes here.

File details

Details for the file meshcatstic-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: meshcatstic-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for meshcatstic-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7a8afab31c7d32cd1e5975e2b1f8a3cb331198fa964627bf078c883209adf4c0
MD5 b79efe45a2dcdbc8ad98ca6fe3ec619c
BLAKE2b-256 2893f9eb50e044b6ec10a487a3f0c60edf3f016da6616a8741e33d50b3c44660

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page