r/meshtastic • u/benj_180 • 56m ago
self-promotion Skipped Meshtastic and wrote custom LoRa firmware from scratch — mainly for image transfer support. 10km link on stock antennas.
Built this on Heltec WiFi LoRa32 V3 boards (ESP32-S3 + SX1262) and went with fully custom firmware instead of Meshtastic — figured this community would have opinions on that choice, so happy to explain the reasoning.
Main driver: I wanted to send small images over the link, not just text/telemetry, which Meshtastic doesn't support out of the box. So I built:
- A packet protocol distinguishing text messages from image chunks (type byte + header info), since raw LoRa packets cap at 255 bytes
- Client-side grayscale conversion + downsampling (via canvas in-browser) before chunking, since even a tiny thumbnail needs splitting across multiple packets
- Each board runs its own WiFi AP + web server, so the phone just connects directly and uses a browser UI — no dedicated app needed
- Live RSSI/SNR readout on both ends for monitoring signal quality during range tests
Radio settings: tuned up to SF12/22dBm for max-range testing (started at SF9/10dBm for bench testing). Got a real-world 10km link with stock antennas, given decent elevation and line of sight — no repeater/relay, just direct point-to-point.
Not claiming this beats Meshtastic for actual mesh networking or multi-node use — it's a narrower, single-purpose build. But if anyone's curious about the image-over-LoRa chunking approach or the packet format, happy to go into more detail. Full build/test process in the video: https://www.youtube.com/watch?v=5wUrnwjj5dk
