Terms
Details on some terms I will use:
- LoRa (“Long Range”) is a technology for transmitting data via radio signals. It’s designed for much longer distances than Wifi: the record for LoRa is around 300km, and typical distance 10km. Downsides: less throughput than Wifi, and higher latency. LoRa defines various profiles, these allow to fine tune latency/ throughput versus distance of the participating stations.
- meshtastic is an OpenSource firmware, designed to run on a variety of devices. Meshtastic implements a mesh network, so even if participating nodes can not reach each other directly via radio, they can exchange data via nodes in the middle.
- BBS (“Bulletin board system”) are a kind of software. In the early 1980s, a BBS software did run on a system, and other computers or terminals could dial into this system and interact with the software. The software allows data exchange between multiple users, they can leave messages for each other, or data like pictures. Messages could also be exchanged with other BBSs. With the internet, the “always on” style appeared. Some BBSs are still run, and can be accesed via dialup or over the internet.
The idea of BBS over LoRa
Since some time, you can get a small LoRa device with antenna for $30. Such a device can have an own keyboard, and you can exchange messages with similiar devices within your range. This requires that the node sending and the one receiving the message are online at the same time.
Quickly also simple mailbox software appeared: here you have one central node running constantly. It can store messages which are sent in from other nodes, and hand out the message to the recipient.
The idea: how about a revival of the colourful BBS software we had in the past? Basic functionality was also message exchange, but then also file exchange, simple games and more! So we are again limited with throughput here, but we would be using a medium completely independent from the internet!
My main question here: is the required software around? Are throughput and latency of LoRa sufficient for this? Spoiler: not sure. We are in the right ballpark, throughput/latency are almost usable, with tuning this might work. For my testing I am using the plain access via LoRa, but have not yet hosted the BBS software myself, and the software setup is a bit complicated.
The hardware
Meshtastic supports quite some hardware, I was going with Heltec LoRa32 V3 devices. These are based on the ESP32 chip, have no own keyboard but allow connections via USB-C, bluetooth an Wifi. In Germany, mostly the 868MHz band is used for LoRa, but also 433MHz. Here in Japan, the 923MHz area is used. I did ordered:
- 2x devices for 868MHz
- 2x devices for 923MHz
- 1x device for 433MHz
I had not done my research properly: turns out one device type can use both areas, 868+923MHz. Just the 433MHz device is different.

Initial Setup
The vendor recommends to install Arduino software, then test and program the devices - I did not follow that but directly installed meshtastic. I did this on a Fedora 42 as well as a Debian 12 system, steps on Debian, to be executed as user:
sudo apt update
sudo apt install python3
python3 --version
pip3 --version
The user should then be added to the group ‘dialout’, to get access to the Heltec. Then I connect the Heltec via USB-C to the system, and continue:
pip3 install --upgrade esptool
# This does a first communication
esptool chip-id
# get firmware from https://meshtastic.org/downloads/
./device-install.sh -f firmware-heltec-v3-2.6.11.60ec05e.bin
pip3 install --upgrade pytap2
pip3 install --upgrade meshtastic
With the next step, we configure the Heltec for our region, for me Japan. Let’s then query the current settings:
meshtastic --set lora.region JP
meshtastic --get lora
meshtastic --get lora.region
meshtastic --get 0
If we did all of this also on the other Heltec, we can now query for peers, and send messages. For message transmission, one node should be listening via “meshtastic –reply” and the Wother node should send via “–sendtext”:
meshtastic --nodes
meshtastic --sendtext 'Hello Mesh!'
meshtastic --reply
With this, message exchange should work! Of course, instread of using USB-C and the command line, the Heltec can also be controlled via Wifi or Bluetooth.
For connexting to the device with the Android mestastic app via Bluetooth, let’s also set the pin:
meshtastic --set bluetooth.fixed_pin <some-pin-here>
meshtastic --set bluetooth.mode FIXED_PIN
The BBS test
So will colourful BBSen work?
For the test, I did not host the BBS software myself, but connected to a BBS over the internet. My test uses these layers:
- IP network over the LoRA connection, this gives me an IP for each node, and they can reach each other.
- Login via SSH, over the IP-over-LoRA connection.
- Once logged into the remote system, I access the BBS over the internet with telnet, i.e. ’telnet ip port’.
Various other combinations are also possible, for example instead of the SSH login the traffic tto the BBS system could be routet over the link.

The IP-over-LoRa network setup
Let’s do a step back and consider the network setup. This is new in meshtastic, and requires to be initiated by the root user. My steps:
python3 -m venv meshtastic
export PATH=/root/meshtastic/bin/:$PATH
pip3 install --upgrade esptool
pip3 install --upgrade pytap2
pip3 install --upgrade meshtastic
meshtastic --tunnel
With these steps executed on both nodes, meshtastic outputs the IPs of both nodes. We see in ‘ip link show’ that an interface mesh0 appears, and we can reach the IPs over mesh0. First test was of course ‘ping remote-ip’, and the round trip time turned out to be 20-30 seconds. This would be way to much for convenient access of a classic BBS.
But LoRa supports ‘profiles’, and after executing
meshtastic --set lora.modem_preset SHORT_FAST
on both nodes, we get ~2sec round trip time. So after that accessing the remote BBS is somehow barable.

The Future
There might be optimizations to improve this - but after all we are using here networking designed for IoT to send sensor data over big distances. The fact it works like this is already surprising. Will this catch on? Unlikely.. after all, the frequencies are a shared medium! It’s not like a dedicated phone line directly to the BBS.
Besides meshtestic, also further software is appearing for networking over LoRa, for example lorapipe. Also the full stack could be changed. We actually do not need full networking.. just a serial terminal over LoRa would be enough to make a BBS available.
Reticulum Network Stack looks also promising: it comes apparently with a lean remote shell.
The Wiki has now a page on Meshtastic.
Corrections? Questions? -> Fediverse thread