Because complex networks shouldn't require complex setup.
RETCON is a streamlined, deployment-focused solution for Reticulum mesh networking. While Reticulum provides powerful customization options, RETCON packages these capabilities into a solution that is ready-to-deploy en masse.
RETCON enables quick creation of pre-configured Raspberry Pi images that automatically form resilient mesh networks once deployed. It is designed for scenarios where rapid consistent deployment matters more than configuration flexibility - e.g. conferences, maker camps, community events, emergency response situations, and other environments where you need reliable communication infrastructure quickly.
Note: This is currently alpha dev release. Use at your own risk and please give feedback on improvements or potenial PRs!
- One-command image creation: Create SD card images pre-configured with Reticulum settings
- Auto-detection: Automatically identifies and connects to USB attached RNodes and Meshtastic devices so users don't need to fiddle with config files
- WiFi mesh capability: Forms device-to-device mesh networks using raspi's built-in WiFi chip, no additional hardware required for small distance mesh hops
- Dual operation modes:
- Transport mode: Headless operation focused solely on extending the mesh network
- Client mode: Provides user-accessible access point with pre-configured Meshchat app for immediate communication
For running a RETCON image:
- Raspberry Pi 3/4/5 or Pi Zero 2W
- MicroSD card (8GB+ recommended)
- Optional: Compatible LoRa hardware (RNode, Meshtastic devices, etc.)
These are only needed for building a flashable RETCON image
- Debian 12+
- 8GB+ of RAM
- arm64 environment or qemu supported emulation of arm64 and armf
# Clone from source
git clone https://github.com/DanBeard/RETCON.git
cd retcon
sudo ./install_prereqs.sh
profile configuration is in retcon_profiles/active Copy a default profile to 'active' and modify to meet your needs
Note: 'active' is gitignored. Other configs can be stored here and checked into git for easy copying e.g. dc33.config but be mindful of checking in config with passwords you'd rather not share publically.
./build_retcon.sh
Grab your favorite drink and relax because it will take a while. The last line printed will include the file location of the image.
Use dd or raspi imager in "custom image" mode to flash the .img file to an sd card.
For devices in client mode:
- Connect to the RETCON access point (ssid is defined in the config file)
- Open a web browser and navigate to
retcon.local(or retcon.radio, or anything.retcon) - The Reticulum Meshchat interface will be available for immediate communication
In Transport mode, RETCON operates headlessly with no access point for end users. This mode is ideal for:
- Extending the physical range of your mesh network
- Deploying relay nodes in strategic locations
Transport nodes automatically connect to other RETCON nodes via WiFi when in range and will utilize any attached LoRa hardware for extended communication.
Client mode provides both mesh networking capabilities and end-user access:
- Creates a separate access point for users to connect
- Pre-configures Meshchat for immediate communication
- Maintains mesh connectivity to other RETCON nodes
- Automatically bridges communications across the entire network
This mode is meant for user-facing nodes where people can access the mesh network.
Each node comes with a text based administration console that can be used over LXMF. Look for the identity with the same name as the wifi mesh SSID.
Contributions are welcome and appreciated!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- LXMF based configuration interface
- Client mode where wifi AP password is different meshchat is launched automatically
- Web based app in client mode to instruct users how to connect to meshchat and change wifi ap details
- Captive portal in client mode directing to web app (retcon.local)
- Set Meshchat default config from RETCON config file. (e.g. default ident name/announce/etc)
- Ability to change from client to transport mode via admin interfaces
- Ability to change from client mode details from admin interface (like AP password)
- Configure rpi-image-gen from retcon config (for things like ssh, username and extra apt packages)
- Nomadnet/micron configuration interface for field adjustments
- 'microRetcon' for hardware platforms (ESP32, etc.)
- Integration with more transports (Bluetooth mesh, additional radio modules)
- Better error handling around meshchat crashed
- Wifi Mesh 2.0 protocol using raw 802.11 data frames (requires monitor mode. If you know how to do this let me know)
SSH in enabled in the raspi build but disabled on first boot by RETCON. It can be temporarily turned on via the web interface.
default username is retcon and password is retcon. If the node is somewhere people have easy phsyical access to it (or if SSH server is turned on) then this absolutely needs to be changed!
You can change or configure files on teh SD card without booting. All retcon files are in /home/retcon/retcon/
Make sure that the wifi frequencies are the same. Raspberry pi hardware can't connect to a network while hosting its own at the same time unless they are the same frequency. If you know the wifi channel, then use the below json object mapping (U.S. Based) to set the proper freqency:
wifi_channel_to_freq = {
1: 2412,
2: 2417,
3: 2422,
4: 2427,
5: 2432,
6: 2437,
7: 2442,
8: 2447,
9: 2452,
10: 2457,
11: 2462,
12: 2467,
13: 2472,
14: 2484
}
Note. Only 2.4 Ghz wifi is supported for now.
This project is licensed under the MIT License - see the LICENSE file for details.