Skip to main content

Meshtastic serial device discovery gateway service and client built around socat and 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.1.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.1-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meshcatstic-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 adaa6e811f30b9e32fc4f82238074e364a7710f8d05aeff64b14eec57a385d28
MD5 6ea7a572f33928898a0b9d68607623e1
BLAKE2b-256 f9224ffe0df995d0b46e0a504adfb84b2f22b7de578b9ea7a73116824ffcdde0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: meshcatstic-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 df83c15d8591953a75ef5f7f0ad8c2ffac4ae67e43959e48d229cdd1a9dd75e9
MD5 0b8c7a01b639d80d7c95b55601462151
BLAKE2b-256 f0cbc5b311925fabd809563191c8e93aeae6bbdeea8b9d730f171833471478a7

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