amateur radio
ham radio
meshtastic
radio amatur
amateur radio digital, fldigi, ham radio, ham radio projects, hamtastic, hf messaging, HF radio, js8call, js8net, lora to hf bridge, meshtastic, meshtastic ham radio, meshtastic integration, meshtastic js8call, meshtastic pi setup, node-red ham radio, open source ham radio, packet radio, python flask node-red, Raspberry Pi ham radio
9M2PJU
0 Comments
Bridging Meshtastic and HF Radios with Hamtastic
Amateur radio has always been about innovation, and Hamtastic is a fine example of that spirit. Built using Python, Flask, and Node-RED, this open-source project lets you send messages from low-power Meshtastic LoRa radios to HF bands using JS8Call and FLdigi. It’s a fun, flexible integration that combines modern mesh networking with traditional amateur radio communications.
If you’re looking for a way to extend the reach of your LoRa setup into HF frequencies—or just want to tinker with some cool ham tech—Hamtastic is worth exploring.
What Hamtastic Does
At its core, Hamtastic acts as a bridge between Meshtastic (a LoRa-based mesh radio platform) and JS8Call (a weak signal digital mode for HF bands). It uses:
- Python + Flask for a lightweight web server.
- Node-RED to manage message routing and flows.
- pyserial for talking to the Meshtastic device.
- JS8Net for communicating with JS8Call.
The result: a system that listens for Meshtastic messages, processes them, and transmits them on HF. You can also build a user interface using Node-RED Dashboard if desired.
Setup Overview
You’ll need to clone the Hamtastic GitHub repo, create a Python virtual environment, and install the required libraries. A few highlights:
git clone https://github.com/TheWatchMker/Hamtastic
cd Hamtastic
python -m venv .
. bin/activate
pip install flask pyserial requests json
pip install pip@git+https://github.com/jfrancis42/js8net
For the Node-RED side, you’ll want:
npm install node-red-node-serialport node-red-dashboard node-red-contrib-http-request node-red-contrib-json
Running the Services
Hamtastic comes with two core scripts:
MeshtasticImport.py
for handling incoming messages from your LoRa device.Node-red-Js8call.py
for pushing those messages into JS8Call.
It’s a good idea to run these as systemd services on your Raspberry Pi. Here’s a quick template for that:
[Unit]
Description=Meshtastic Integration Service
After=network.target
[Service]
ExecStart=/usr/bin/python3 /path/to/MeshtasticImport.py
WorkingDirectory=/path/to
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Enable with:
sudo systemctl enable meshtastic.service
sudo systemctl start meshtastic.service
Node-RED Flow
The project also includes a sample flow file (Node-redFlow.json
) that you can import into Node-RED for testing and routing logic. It includes components like inject nodes, function processors, HTTP handlers, and debugging output—everything needed to wire together your message pipeline.
Final Thoughts
Hamtastic is a brilliant DIY solution for hams who want to bridge mesh networks and HF. It’s not plug-and-play, but it’s not overly complex either—perfect for weekend experimentation. If you’re a Raspberry Pi user with an interest in packet radio, JS8Call, or digital comms, this project is definitely worth checking out.
Special thanks to @TheWatchMker and @yNosGR for building and maintaining the project. And also credit to JS8Net by jfrancis42 for the Python-JS8Call glue.
🔗 GitHub Repository: github.com/TheWatchMker/Hamtastic
Post Comment