KevsRobots Learning Platform
66% Percent Complete
By Kevin McAleer, 5 Minutes
Two boards, two roles, matching settings. This is the lesson where it becomes a network.
Put the repeater at one end of the house and take the client with you. Both powered, both with antennas.
In the app, look at your contacts list. Within a minute or two of the repeater’s next advert - or immediately if you press advert on the repeater’s console - your repeater should appear there by name.
That is your mesh working. Two radios, no infrastructure, no bill.
The repeater transmitted an advert - a small packet containing its name, its public key and its role. Your client heard it directly, over the air, and added it to the contact list along with the signal quality it was received at.
No pairing, no handshake, no registration. In a mesh, being heard is joining.
Tap the repeater in your contacts list and you will see figures like:
How to read them together: RSSI tells you how loud the signal arrived; SNR tells you how loud it was compared to the noise around it. A strong RSSI with a terrible SNR means something local is generating interference. A weak RSSI with a good SNR means you are simply far away, which is fine.
MeshCore has two ways to say something:
Tap a contact and type. The message is end-to-end encrypted to that node’s public key. Only they can read it - not the repeaters in between.
Channels are group chat. Everyone with the same channel key sees the messages. We cover channels properly in the next lesson.
With only two nodes, a repeater is not a great conversation partner - it has no human on the end. So there are three ways to actually get a message through:
Try 1 first. Check map.meshcore.io or your local community group to see whether anyone else is on air near you.
Adverts are the heartbeat of MeshCore. There are two flavours, and the difference matters:
| Type | Who hears it | When to use it |
|---|---|---|
| Zero-hop | Only nodes in direct radio range | Normal use - cheap and polite |
| Flood | Every node in the mesh, via every repeater | When you first join, or after changing your name |
A key MeshCore behaviour: clients do not advertise automatically. Repeaters do, on their timer, but a companion node stays quiet until you press the button. This is deliberate - it keeps the airwaves clear.
Why this matters: If you change your node’s name and nobody sees the new one, send a flood advert. If your contacts list is empty, send an advert and wait for the repeater’s next one.
Contacts persist in the app. Each one records the node’s public key, which is what encryption is built on, plus the last known path to reach it.
If a contact stops working after you have moved house or the repeater has moved, you can reset the path for that contact and let the mesh rediscover it. More on that in lesson 12.
Problem: The repeater never shows up in my contacts.
Solution: Check radio settings match exactly on both nodes, then press advert on the repeater console while watching the app.
Why: Mismatched frequency, bandwidth or spreading factor is the cause more than nine times out of ten.
Problem: RSSI is around -30 and messages still fail.
Solution: Move the two nodes further apart - at least a few metres.
Why: LoRa receivers can be overloaded by an extremely strong nearby transmitter. Two boards touching on a desk is a genuinely bad test setup.
Problem: I can see the repeater, but I have nobody to message.
Solution: Join your local community network and check the map. Failing that, add a third board.
Why: A two node mesh with one repeater has exactly one human on it. That is a limitation of the network, not a fault.
You can use the arrows ← → on your keyboard to navigate between lessons.
Comments