My first Meshtastic node in Singapore is a US$15 to US$45 LoRa board set to the SG_923 region, on the default LongFast channel, with an antenna placed high. This guide covers the rules, the hardware, the setup, and the mistakes one Geylang East gateway made so yours doesn’t.
The rules
Set the region to SG_923 and keep radiated power at or under 100 mW e.r.p.; no licence or approval is needed. IMDA’s short-range device spec (TS SRD, Issue 1 Rev 3, 2023) puts general-purpose devices like Meshtastic under item 30d.
| Band | Max power | Conditions | Use it? |
|---|---|---|---|
| 917–925 MHz (item 30d) | 100 mW e.r.p. (20 dBm) | “Suitable mitigation techniques” | Yes: Meshtastic region SG_923 |
| 433–434 MHz | 10 mW e.r.p. | 10% duty cycle | Only with a 433 MHz board (EU_433); few people here use it |
| 866–869 MHz | 500 mW e.r.p. | Under review for refarming | No: EU_868 boards won’t talk to SG_923 nodes |
| 902–928 MHz US plan | — | Overlaps mobile networks outside 917–925 | No: never use the US region |
- Power maths: e.r.p. counts the antenna. A board at 20 dBm with a 3 dBi antenna radiates about 21 dBm e.r.p. (20 + 3 − 2.15), a little over the limit. With a 3 dBi antenna, set TX power to 19 dBm; with a 5 dBi antenna, 17 dBm.
- Region decides who you hear. Nodes on different regions never hear each other, even through MQTT.
- Buy the right frequency. Pick the 915 or 923 MHz version of a board; 868 MHz hardware is tuned for the wrong band.
Choosing hardware
For a first node, buy a Heltec WiFi LoRa 32 (V3 or V4) if it will sit at home on WiFi, or a Seeed / Heltec nRF52 device if it will live on a battery. ESP32 boards have WiFi (needed for an MQTT gateway) but drain batteries in a day or two; nRF52 boards have no WiFi but run for days.
| Device | Maker | Price (USD, list) | Chip | WiFi | Best for |
|---|---|---|---|---|---|
| WiFi LoRa 32 V3 / V4.3 | Heltec | 18–28 | ESP32-S3 | Yes | Home node, WiFi-to-MQTT gateway. Node 7430 is a V3 |
| XIAO ESP32S3 + Wio-SX1262 kit | Seeed | about 13–16 | ESP32-S3 | Yes | Cheapest node; ships pre-flashed, no screen |
| Mesh Node T114 | Heltec | 18–34 | nRF52840 | No | Battery node with a screen |
| Wio Tracker L1 / L1 Pro | Seeed | 28–43 | nRF52840 | No | Handheld with GPS, screen, solar input |
| SenseCAP Card Tracker T1000-E | Seeed | about 40 | nRF52840 | No | Pocket tracker, IP65, no screen |
| SenseCAP Solar Node P1 / P1 Pro | Seeed | 70–90 | nRF52840 | No | Rooftop or corridor solar repeater |
- Frequency: order the 915 MHz (or “863–928 MHz”) version. Shops in Singapore sometimes stock 868 MHz boards; avoid them.
- Heltec V4 transmits up to 28 dBm. With region SG_923 the firmware caps it lower, but check TX power after setup (see The rules) and use firmware 2.7.20 or later on a V4.
- Never power a board without its LoRa antenna attached: transmitting into nothing can damage the radio.
- Some Heltec boards won’t charge or power from a USB-C to USB-C cable (missing resistors). A USB-A to USB-C cable works (ndoo.sg).
- The stock antenna is the cheapest upgrade. A tuned 915 MHz dipole of 3 dBi, mounted high and vertical, beats any board swap. In HDB blocks, a corridor or window facing open space matters more than the board.
First setup
An hour gets you from box to a node others can hear. Do the steps in this order; region comes before anything else because nothing transmits until it is set.
- Antenna on, then power. Screw the LoRa antenna on before the USB cable goes in.
- Flash current firmware at flasher.meshtastic.org in Chrome or Edge, unless the board came pre-flashed and recent. Choose “full erase” on a second-hand or re-purposed board.
- Pair the phone app (Meshtastic for Android or iOS) over Bluetooth, or use the web client at client.meshtastic.org over USB.
- Set LoRa region to SG_923. Leave the preset on LongFast. Then set TX power for your antenna (The rules).
- Name it. Long name and 4-character short name; neighbours see these, so a place-based name (“GeylangEast 7430”) helps them map the mesh.
- Role: CLIENT. Leave it there unless the node sits somewhere high and always powered and you have talked to locals first; extra ROUTER nodes in a dense area make the mesh worse, not better.
- Position: share it fuzzy. For a home node, set a fixed position and lower position precision on channel 0, so the map shows the neighbourhood, not your flat.
- Back up the config once it works:
meshtastic --export-config > my-node.yaml(Python CLI,pip install meshtastic). Keep that file private; it holds your WiFi password and channel keys. - Optional, for a home gateway: WiFi + MQTT. On ESP32 boards, turning WiFi on switches Bluetooth off, so finish phone setup first and use the web client or CLI after. Set the MQTT server, then switch uplink on for channel 0 (see the next section for why that matters).
- Check you are heard. Send “hello” on LongFast and look for your node on a public map (Joining the Singapore mesh).
Lessons from node 7430
Node 7430 is a Heltec V3 in Geylang East that relays the mesh to a home server over WiFi and MQTT. It went silent while looking healthy: it heard five neighbours, was on WiFi, and logged in to its broker, but one switch was off. Every lesson below came from getting it back, in November 2026.
| What you see | What was wrong | What fixed it |
|---|---|---|
| “My node vanished” from the app and the map | It had been renamed (“GOSH-gsh1” to “GeylangEast 7430”) and its WiFi hostname changed with it | Find a node by its ID, not its name. !433c7430 never changes: it is the end of the board’s MAC address (…74:30) |
| Node hears the mesh, but nothing arrives over MQTT | Channel 0 uplink was off. Editing settings in the app had reset it | After any settings change, check uplinkEnabled: true on channel 0. MQTT on is not enough |
| A CLI command says it worked, but the setting is unchanged | Over WiFi, the write was lost when the connection closed too soon | Write, wait about 20 s, disconnect, reconnect, and read the setting back. USB is more reliable than WiFi for changes |
| Config backup over WiFi times out | Full exports are slow over the TCP API | Take backups over USB |
Broker log: disconnected: protocol error | Old firmware (2.5.x) against a newer broker; a likely mismatch, not confirmed | Keep firmware current; read the broker log first when packets stop |
Topic changed from msh/... to msh/SG_923/... | The app now sets a regional MQTT root | Fine, as long as whatever reads the broker subscribes to msh/# |
| Reboot counter above 40,000 | The board restarts on its own: weak USB supply or a crash loop | A solid 5 V 2 A supply and short cable; watch the counter for a day |
The habits that would have caught it the same day:
- Diagnose read-only first. List USB ports, look the node up on the LAN (the Meshtastic API answers on TCP port 4403), and read the broker log before changing anything.
- Back up before every change, and keep the backups dated; comparing two of them shows what moved.
- Give the gateway’s server a fixed LAN address (a DHCP reservation in your router). The radio’s MQTT setting points at an IP, and a new IP silently cuts it off.
- Put a check on a schedule. A daily “did any packets arrive?” alert turns a silent failure into a message.
Joining the Singapore mesh
The mesh here is patchy: urban range is about 2 km between nodes without line of sight, and the clusters have gaps, so MQTT over the internet still links them. Join the chat first; locals know which rooftops and corridors carry traffic.
- Talk to people: the 9V1 Meshtastic Telegram group run by the LPWAN & IoT Interest Group Singapore (aligned with SARTS), which holds meetups; and the Singapore LPWAN Group listed on Meshtastic’s local groups page.
- Radio settings that match everyone else: region SG_923, preset LongFast, default channel 0, frequency slot left at its default. Node 7430 runs exactly this and hears five neighbours from Geylang East.
- MQTT for a gateway: the shared Malaysia/Singapore config uses the community server
mqtt.lucifernet.comwith rootmsh/SG_923. You can also point a gateway at your own broker, as node 7430 does, to log your area’s traffic. - Privacy before you uplink: MQTT publishes your node’s messages and position to the public internet. The shared config sends full-precision position; lower position precision on channel 0 and in map reports if the node is at home.
- See yourself on a map: with map reporting on, your node appears on public maps such as meshmap.net within the hour.
- Be a good neighbour: CLIENT role unless asked otherwise, no spamming LongFast with test pings, and keep ROUTER or repeater roles for well-sited, always-on nodes agreed with the group.
Where your node can go next: CitizenQuack and PLANETAI
A Meshtastic node can carry more than chat: it can carry sensor readings to a place that acts on them. Node 7430 does exactly that for two Edible Makerspace projects.
- CitizenQuack SG puts environmental sensors inside 3D-printed creatures, mostly ducks, so air quality and humidity get a face people notice. The project started at the “Smart Citizen Meets Meshtastic” hackathon, and the Singapore duck’s live readings sit a few meters from node 7430.
- PLANETAI is a Fab City programme: one open machine per place that reads local conditions, suggests what to do, and records whether anyone acted. Edible Makerspace runs an unofficial Singapore node in alpha testing, fed by NEA data, the CitizenQuack kit, indoor sensors and node 7430 as its radio gateway.
- How the radio fits: a PLANETAI node runs its own MQTT broker, and one gateway radio passes what the mesh hears into it. LoRa sensor nodes (temperature, humidity, PM, CO2, water level) report over the mesh, and their readings are filed under the radio that measured them (PLANETAI radios docs).
- Run your own: the node software installs in a few minutes on a spare computer; check which machines it supports first (PLANETAI docs). Your first Meshtastic board from this guide can be its gateway.
- Or just add a sensor near us: if you are in the east of Singapore, a LoRa sensor node on SG_923 within range of Geylang East can report into the Singapore node. Get in touch through Edible Makerspace.
Sources
- IMDA TS SRD, Issue 1 Revision 3 (2023): band 917–925 MHz, item 30d
- Meshtastic in Singapore, ndoo.sg (Andrew Yong, updated May 2025)
- Getting Started with Meshtastic, SARTS and its slides (PDF)
- Meshtastic configuration for Malaysia and Singapore
- Meshtastic local groups
- Heltec Meshtastic products
- Seeed XIAO ESP32S3 & Wio-SX1262 kit wiki
- The Best Meshtastic Devices for Every Use Case (2026 Edition), Adrelien
- Node 7430’s own logs and configs, Geylang East, 5 November 2026











































