🚲 Mesh Buddy
A small GPS tracker that puts you on aprs.fi through the MeshCore LoRa mesh. You build it from three off-the-shelf RAKwireless WisBlock parts, then flash and set it up from Kelly Page with one click. Your callsign comes from Kelly, so it's set up as you and only you.
#meshprs channel. MeshCore repeaters carry it across the mesh. A licensed ham
running a MeshPRS iGate, such as Kelly Page's APRS iGate, hears it and passes it to APRS-IS, and it appears on
aprs.fi under your callsign. No internet or SIM is needed on the tracker.- 1. Who can use it
- 2. Parts
- 3. Putting it together
- 4. Flash and set up with Kelly
- 5. Getting onto aprs.fi
- 6. On the road
- 7. Telemetry
- 8. Settings by USB (no Kelly)
- 9. Troubleshooting
- 10. Credits and licences
1. Who can use it
- Licensed amateurs only. Mesh Buddy sends your callsign. Kelly's iGate only gates a station whose node name
has a VK or ZL callsign as its first or second word, and Kelly's setup names your tracker
<CALLSIGN> Buddy(or whatever word you pick) for exactly that reason. - The radio side is not amateur radio. MeshCore in Australia runs in the 915-928 MHz band under the LIPD Class Licence 2025, which allows up to 1 W EIRP for digital modulation. Mesh Buddy sends at 22 dBm into the kit's 2 dBi antenna, about 0.25 W EIRP. MeshCore traffic doesn't go out on amateur bands.
- New Zealand: the rules differ. Check your local requirements before you transmit.
- Default radio settings are the SEQ / MBUG settings: 923.125 MHz, 62.5 kHz, SF8, CR 4/5. Elsewhere, Kelly lets you enter your local mesh's settings.
2. Parts
Everything comes from Core Electronics. These are the parts in the first Mesh Buddy. Prices are as listed on 31 October 2026, including GST.
| Part | Core Electronics SKU | Price | Why |
|---|---|---|---|
| WisBlock Meshtastic Starter Kit, 9xx MHz: RAK4631 core (nRF52840 + LoRa), RAK19003 mini base board, 2 dBi antenna | RW-115093 | $39.30 | The radio and processor. It comes with Meshtastic installed, and flashing replaces it. |
| RAK12500 WisBlock GNSS module: u-blox ZOE-M8Q, with a GPS antenna | RW-110016 | $32.05 | The GPS. GPS, GLONASS, BeiDou, QZSS. |
| RAK19001 WisBlock Dual IO Base Board: USB-C cable, battery cable and screws included | RW-110081 | $21.80 | The base board: an on/off switch, battery and solar connectors, and room for more modules. |
| A 3.7 V single-cell LiPo battery | (your choice) | Mesh Buddy runs from it and charges it over USB. Choose a size for how long you ride. |
About $93 for the three WisBlock parts. The starter kit's small RAK19003 base board is spare in this build. RAKwireless says the GNSS module also works on a base board's Slot C, but the first Mesh Buddy was built on the RAK19001.
3. Putting it together
- RAK4631 core into the base board's core slot. Line up the connector, press it down evenly until it clicks, and fit the small screws from the board's bag.
- RAK12500 GNSS into Slot A. Same again, with its screw. Slot A is RAKwireless's recommended slot for it.
- Connect both antennas before you power it up. The LoRa antenna goes on the RAK4631's antenna connector,
and the GPS antenna on the RAK12500's tiny connector. Press it straight down; it clicks. The GPS antenna's flat
ceramic face goes up, towards the sky.
Never power the tracker without the LoRa antenna connected. Transmitting into nothing can damage the radio.
- Battery into the battery socket, after the polarity check above. Leave the switch off for now.
- Case: any case that keeps out rain and lets the GPS see the sky. Mount the LoRa antenna vertically and as high as you can, away from your body. On the first ride every lost packet was lost on the bike's own first hop, so antenna placement is the biggest improvement you can make.
4. Flash and set up with Kelly
Kelly Page carries the Mesh Buddy firmware and flashes it over USB from the browser. You don't need any programming tools.
https:// address, on localhost, or as a file. Browsers only allow USB access on secure
pages. You'll also need a USB-C cable that carries data; some charge-only cables don't.- Set your callsign in Kelly: Admin › My station › Callsign, for example
VK4ABC. Mesh Buddy uses this one, and the tracker page has no box for typing a different callsign. - Open LoRa Mesh › 🚲 Mesh Buddy. Check the line Goes on air as VK4ABC-12 named "VK4ABC Buddy".
- Pick the SSID: -12 is the usual for a tracker, -9 for a vehicle. Then pick the word after your callsign (Bike, Ute ...), the symbol, an optional comment and status line, and the radio: SEQ / MBUG, or your local mesh's settings.
- Tick Patchy coverage if you'll often be at the edge of the mesh. The tracker then beacons up to every 60 s instead of every 120 s, which fills gaps on aprs.fi but doubles the airtime it uses.
- Plug the tracker into the computer by USB, switch it on, and click ⚡ Flash Mesh Buddy and set it up.
- Choose the tracker's port. It's usually the only new one.
- The tracker restarts into its bootloader as a new USB port. If Kelly asks, click 🔌 Choose the bootloader port and pick it.
- Flashing takes about 70 seconds. Don't unplug it.
- Kelly then sets your callsign, name, symbol, beaconing and radio, and gives the tracker a new random admin password. Write the password down; Kelly also keeps it under My Mesh Buddies.
- To change settings later, plug it in and use ⚙️ Set up only. It doesn't flash again.
5. Getting onto aprs.fi
A Mesh Buddy only reaches aprs.fi through a MeshPRS iGate whose operator has listed it. That stops anyone else putting stations on aprs.fi in your name.
- If you run Kelly with a MeshCore node at home: after setup, click ➕ Add it to my iGate list. Your home node must have heard the tracker's advert, which it sends as it starts, so switch the tracker on near your node. Kelly's iGate then gates it whenever your node hears it, directly or through repeaters.
- If you don't: ask a local MeshPRS iGate operator to list your tracker. Give them its node name and the first 8 characters of its node key, both shown when Kelly finishes.
- Your station:
https://aprs.fi/#!call=a/VK4ABC-12, with your own call and SSID.
6. On the road
- First GPS fix: outdoors, with a clear sky, it takes a minute or two after a cold start. Nothing is sent without a fix.
- Smart beaconing (MeshPRS spec §5.5): a beacon when you've moved 100 m or turned more than 15°, never sooner than 120 s (or 60 s with Patchy coverage), and every 30 min while you're parked.
- Flooded: every MeshCore repeater that hears a beacon passes it on, so the first repeater can be several kilometres away. On the first ride, repeaters 3-5 km away picked it up.
- On aprs.fi: iGates pass one position per station every 2 minutes, or every 30 s once you've moved 500 m. The comment goes out every 10th beacon. Your status line goes out after the first fix (sent twice, 75 s apart, in case the first is lost), again whenever you change it, and otherwise every 12 hours -- aprs.fi keeps showing it in between.
- Coverage: it depends on the repeaters near your route far more than on distance. Losses come in runs in bad spots. A better-placed antenna, or a repeater on your route, helps most.
7. Telemetry
Mesh Buddy also sends APRS telemetry: every 10 min while moving, every 30 min parked, and straight away if the battery goes low or the board gets hot. aprs.fi graphs it on your station's telemetry page.
| Channel | Name | What it shows |
|---|---|---|
| A1 | Battery | Battery voltage, 3.00-4.27 V |
| A2 | EchoSNR | How strongly the nearest repeater was heard passing on your last packet. A repeater passing it on proves your packet got through the first hop. |
| A3 | Echo% | How many of your last 10 packets a repeater passed on: your first-hop coverage |
| A4 | Sats | GPS satellites in use |
| A5 | Temp | Processor temperature, a little above the air inside the case |
| B1-B8 | Charge (USB power), LowBt (under 3.5 V), Fix, Move, Echo, Fld (flooding), Rbt (just restarted), Hot (over 50 °C) | |
8. Settings by USB (no Kelly)
Any serial terminal at 115200 baud works. Send each command with Enter, and replies start with ->.
All of MeshCore's own commands work (get name, gps, get radio ...), plus:
| Command | Does |
|---|---|
| mprs | Status: version, callsign, symbol, route, beaconing, GPS fix, satellites, frames sent |
| set name VK4ABC Bike | Node name. Your callsign must be its first or second word, or no iGate will gate it |
| mprs call VK4ABC-12 | Callsign-SSID it sends as. Until one is set, Mesh Buddy sends nothing |
| mprs sym /b | APRS symbol: /b bike, /> car, /[ walker ... |
| mprs comment … | Comment (23 characters at most) |
| mprs status … | Status line (62 at most; empty = none) |
| mprs min 120 | Shortest gap between beacons, in seconds (60 in patchy coverage; never below 30) |
| mprs route flood | Repeaters pass it on (zerohop = heard directly only, for testing) |
| mprs tlm on | Telemetry on / off; mprs tlm shows the current values |
| set radio 923.125,62.5,8,5 | Frequency, bandwidth, spreading factor, coding rate (reboot to apply) |
| password … | A new admin password, for logging in to it over the air |
| reboot | Restart |
9. Troubleshooting
| Problem | Try |
|---|---|
| Kelly says USB flashing needs a secure page | Open Kelly through your bridge's https:// address
(or localhost), in Chrome or Edge. |
| No port to choose | Use a data-capable USB-C cable and switch the tracker on. Close anything else using the port: Kelly's own LoRa Mesh USB connection, a terminal, the Meshtastic web client. |
| Kelly never finds the bootloader | Click 🔌 Choose the bootloader port when it appears. If the tracker is stuck, double-press the RAK4631's reset button quickly to start its bootloader, then try again. |
| Flashed, but not on aprs.fi | Check, in order: a GPS fix (outdoors); your callsign is the first or second word of the node name; the tracker is on an iGate's list; a repeater or iGate is in range. |
| Kelly says "isn't running Mesh Buddy" | Use ⚡ Flash, not ⚙️ Set up only. |
| Going back to Meshtastic | Flash Meshtastic again with its own web flasher. Mesh Buddy changes nothing that stops that. |
10. Credits and licences
- MeshCore by Scott Powell / rippleradios.com, MIT licence. Mesh Buddy is MeshCore companion-v1.18.0's sensor firmware with a MeshPRS tracker added. Kelly ships MeshCore's licence beside the firmware.
- MeshPRS, the APRS ↔ MeshCore interface standard: cargobike21.github.io/MeshPRS.
- Kelly Page is free software for amateurs. The flasher follows Adafruit's adafruit-nrfutil serial DFU byte for byte.
- WisBlock, RAK4631, RAK12500, RAK19001 and RAK19003 are RAKwireless products. This guide isn't from RAKwireless or Core Electronics.
Mesh Buddy 1.1 · guide written 31 October 2026 · the first unit is VK4AZ-12.