KevsRobots Learning Platform
30% Percent Complete
By Kevin McAleer, 6 Minutes
The board is flashed and on the right frequency. Now we give it an identity and lock it down, because the passwords it shipped with are printed in the public documentation.
set name Liverpool-Makers-Room
Why this matters: the name is what your group looks for in their contacts list. Make it obvious what the room is for. Kev-Room-01 tells nobody anything; Village-Noticeboard tells them everything.
Names can run to roughly 24 to 32 bytes depending on the field, so keep it reasonably short - and remember it goes out over the air on every advert.
Do this before anything else touches the air.
password <your-new-admin-password>
The factory default is password. It is documented publicly, which means every MeshCore user in the world already knows it. Until you change it, anyone in radio range can log in as admin and reconfigure your node.
Write the new one down somewhere you will still have it in a year.
set guest.password <your-group-password>
The factory default is hello, and it is equally public.
How to think about this password: it is the one you actually hand out. It is what a member of your group types once to join the room. Pick something memorable and speakable - people will be reading it to each other. hedgehog-fields is a better group password than Xk9$2p.
Verify it took:
get guest.password
set allow.read.only on
With this on, anyone can read the roomβs posts without a password. They still need the guest password to post.
When to turn it on: a public noticeboard - emergency coordination, event info, a village mesh where you want passers-by to be able to read.
When to leave it off: anything that is meant to be a private group conversation.
A note on what βprivateβ means here: posts to a room are carried across the mesh as ordinary MeshCore traffic. Read-only off keeps strangers out of the room, which is real access control. Do not treat it as a guarantee that nobody anywhere could ever observe traffic. For genuinely sensitive things, direct messages between two nodes are the right tool.
set lat 53.4084
set lon -2.9916
Same guidance as the repeater in part one: use your own coordinates, and round to three decimal places (roughly 100 metres) if you would rather not publish your exact address.
set owner.info Kev - kevsrobots.com
Why this matters: if your room server ever misbehaves, floods, or needs turning off, this is how somebody finds you. It is a small courtesy that makes you a good neighbour on a shared mesh.
Pipe characters in this field convert to newlines, so you can fit a couple of lines in if you want.
set advert.interval 60
set flood.advert.interval 12
advert.interval is in minutes and accepts 60 to 240. flood.advert.interval is in hours and accepts 3 to 168.
The same etiquette applies as on a repeater: flood adverts are rebroadcast by every repeater in the region, so a room server that floods every three hours is being greedy with everyoneβs airtime. Twelve hours is plenty for a fixed node.
Then announce yourself:
advert
Note that plain advert sends a flood advert - it goes across the whole mesh. For a local-only announcement to nodes in direct range, use:
advert.zerohop
get name
get role
get radio
get guest.password
get allow.read.only
get lat
get lon
stats-core
Take a screenshot or copy the output somewhere. When something goes odd in three months, a record of the known-good configuration is worth a great deal.
| Command | Sets | Notes |
|---|---|---|
set name <name> |
Node name | What your group looks for |
password <pwd> |
Admin password | Default password - change it |
set guest.password <pwd> |
Guest password | Default hello - change it |
set allow.read.only on/off |
Passwordless reading | Default off |
set lat / set lon |
Location | For the map and for routing sense |
set owner.info <text> |
Who to contact | Pipe becomes newline |
set advert.interval <mins> |
Local advert | 60 to 240 |
set flood.advert.interval <hrs> |
Mesh-wide advert | 3 to 168 |
set repeat on/off |
Also act as a repeater | Default on - see lesson 8 |
get guest.password to confirm. Now try logging in from the app with the old one.allow.read.only on and off and note how the room appears differently to a client that has never authenticated.Problem: I changed the admin password and now I cannot get in.
Solution: Connect over USB serial and run password <new-password> again.
Why: The serial console is always trusted - the password only ever gates access over the air. Physical access is always the way back in.
Problem: set guest.password returns an error.
Solution: Check you are on room server firmware, not repeater firmware.
Why: A guest password only exists on roles that have guests. A repeater has no concept of one.
Problem: My group can read the room but cannot post.
Solution: They have joined as read-only guests. Give them the guest password.
Why: With allow.read.only on, joining without a password succeeds and grants read access only. It looks like a working join right up until they try to say something.
You can use the arrows β β on your keyboard to navigate between lessons.
Comments