Work
Projects- 3D Printing Projects
- Amateur Radio
- Automotive Projects
- Electronics Projects
- Homelab Projects
- Horticulture Projects
- Other Projects
- Project Projects
- Software Projects
- Tumblr (photography)
-
Work
ProjectsMeshtastic® is a project that enables you to use inexpensive LoRa radios as a long range off-grid communication platform in areas without existing or reliable communications infrastructure. This project is 100% community driven and open source!
Meshtastic provides a phone app that looks and feels similar to other messaging apps, except that it does not require any cellular data or Wi-Fi. Instead, communications take place over a network of devices (nodes) that are owned and operated by the users, with nodes relaying messages to other nodes in range (typically several kilometers).
Meshtastic is a great platform with opportunities to observe and experiment with radio communications in the real world, urban and outdoors. The software, firmware and protocol are open source and extensible; the protocol can send GPS coordinates, telemetry such as weather data, GPIO sensors and more. Various integrations for other software to send data over Meshtastic have also been written e.g. ATAK.
For more information about the LoRa modulation/encoding Meshtastic uses, have a read of what is LoRa.
Do not power up LoRa boards without an antenna attached, the transmitter may get damaged by the reflected signal
Minimum hardware needed to get connected:
When ordering, select the 923 MHz option if available, otherwise, 915 MHz, or 868 MHz if no other 900 MHz band is available
The device hardware for 868/915/923 MHz selection is the same, just with different antennae in the box; 433 MHz has hardware differences and can't be used for 900 MHz band
Some Heltec ESP32-based devices are missing USB-C Configuration Channel resistors, so USB-C PD compliant supplies will likely not supply power. Using a USB-A to USB-C cable solves this issue. LILYGO boards have the correct CC resistors (i.e. 5.1 kΩ from pins CC1 and CC2 to ground) and do not have this issue.
Connects to the Meshtastic node over Bluetooth LE, USB serial or Wi-Fi. Optional if you have a standalone node with keyboard.
Flash the latest firmware with the Meshtastic web flasher.
A freshly installed Meshtastic device must have its region set, which limits the LoRa radio to operate within local regulatory restrictions; the Meshtastic device will not transmit until the region is set. The exact firmware limits for each region can be found in the firmware definitions.
Devices are only visible to, and can only communicate with, devices configured with the same region.
meshtastic –set lora.region 18
Usable regions in Singapore:
Because we don't currently have enough nodes in Singapore to form a full mesh, we need to enable MQTT forwarding to use the Internet as a backhaul to forward messages between isolated nodes and meshes. The node must either be connected to Wi-Fi directly (mesh router-client to MQTT bridge), or be paired with an Android or iOS device with “MQTT Client Proxy” enabled (mobile node).
In future, when a full mesh is formed, MQTT can be disabled for a truly decentralized and private mesh, or left enabled as a backup in case of dead zones in the mesh.
Your personal data (sensor, position, telemetry, etc.) are sent out to the public Internet with this configuration. Disable the MQTT module if you are not comfortable with this. You can also decrease position precision in each channel's settings, and Position → Map Report.
meshtastic –set mqtt.enabled true
meshtastic –set mqtt.proxy_to_client_enabled true
meshtastic –ch-set downlink_enabled true –ch-index 0 –ch-set uplink_enabled true –ch-index 0 –ch-set downlink_enabled true –ch-index 1 meshtastic –ch-set uplink_enabled true –ch-index 1
Turning Wi-Fi on turns BLE off, so further configuration will have to be done over the Web Client, Android client or Python CLI.
meshtastic --set device.role ROUTER_CLIENT --set network.wifi_enabled true --set network.wifi_ssid "your network" --set network.wifi_psk yourpassword
meshtastic --set position.fixed_position true --setlat x.x --setlon y.y --setalt z.z
meshtastic --set store_forward.enabled true
To find GPS coordinates for your address, you can use the Google Maps geocoding demo
Please write to me@ndoo.sg if you have a site to offer for a Wi-Fi to MQTT router; we will sponsor the hardware.
Meshtastic devices are primarily development boards, thus being bare PCBs; many also use U.FL/IPEX connections for their LoRa antenna, which are extremely fragile. For your Meshtastic device to leave your desk, you are likely to want an enclosure.
Have a look at Device Enclosures for some ideas and recommendations.
If you have used Meshtastic before and just want to switch over to SG_923, here is a configuration file to quickly configure your device for SG_923, and an MQTT server operated by 9W2LWK.
Your personal data (sensor, position, telemetry, etc.) are sent out to the public Internet with this configuration.
Disable the MQTT module if you are not comfortable with this. You can also decrease position precision in each channel's settings, and Position → Map Report.
curl -O "https://raw.githubusercontent.com/ndoo/meshtastic-config-my-sg/refs/heads/main/SG_923_lucifernet.yaml" || wget "https://raw.githubusercontent.com/ndoo/meshtastic-config-my-sg/refs/heads/main/SG_923_lucifernet.yaml"
curl -O "https://raw.githubusercontent.com/ndoo/meshtastic-config-my-sg/refs/heads/main/SG_923_lucifernet.yaml"
pip3 install –upgrade meshtastic || install meshtastic
python3 -m meshtastic –configure SG_923_lucifernet.yaml
Android/iOS app: Skip ahead to First Use Configuration
Channel setting | Alt Channel Name | Data-Rate | SF / Symbols | Coding Rate | Bandwidth | Link Budget |
---|---|---|---|---|---|---|
Short Range / Fast | Short Fast | 10.94 kbps | 7 / 128 | 4/5 | 250 | 143dB |
Short Range / Slow | Short Slow | 6.25 kbps | 8 / 256 | 4/5 | 250 | 145.5dB |
Medium Range / Fast | Medium Fast | 3.52 kbps | 9 / 512 | 4/5 | 250 | 148dB |
Medium Range / Slow | Medium Slow | 1.95 kbps | 10 / 1024 | 4/5 | 250 | 150.5dB |
Long Range / Fast | Long Fast | 1.07 kbps | 11 / 2048 | 4/5 | 250 | 153dB |
Long Range / Moderate | Long Moderate | 0.34 kbps | 11 / 2048 | 4/8 | 125 | 156dB |
Long Range / Slow | Long Slow | 0.18 kbps | 12 / 4096 | 4/8 | 125 | 158.5dB |
python3 -m pip install --upgrade pip
pip3 install meshtastic