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.2.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.2-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meshcatstic-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 bcab8f96bedd6549acb19f12265c401c7a94527c426fb65773e545844c5db130
MD5 c81729701cf6b9f884a14c0bbb4f0f2f
BLAKE2b-256 4d25868e53b8fc982e492d1691fa2ffb9d874ae643a8883d428e48ed015dc074

See more details on using hashes here.

File details

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

File metadata

  • Download URL: meshcatstic-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aba8620ddfe50a96c4c7117083e5444a016badb191bce2c6a9c8c92b64a94ca8
MD5 fbc3f8c1da8fb0fd0c0416987f1f2643
BLAKE2b-256 8491a7eb84fb380dde9958067b507b325a320be6ccc07bdb26d19a90bf5219c7

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