Why Nelos Separates People from Radios
A closer look at where "who you are in your team" actually lives - in the app on your phone, or on the physical radio - and why that choice matters the day a radio dies, breaks, or gets left at home.
It's the second morning of a trip and your radio's battery connector has come loose - or the unit slipped off a pack and cracked, or you simply forgot it at the trailhead. Someone hands you a spare, or you dig out the backup you packed just in case. The question that matters isn't "does this radio turn on" - it's whether your team still recognizes you once it does.
That question has a different answer depending on where the app you're using keeps "you." This guide looks at how Nelos handles it, how that compares to two well-known LoRa mesh projects - Meshtastic and the official MeshCore app - and where Nelos's own approach still falls short.
Two places an identity can live
A LoRa mesh setup is always a pair: a phone running an app, and a small radio the phone talks to over Bluetooth. Somewhere in that pair, something has to answer "who sent this message" and "whose location is this" - and that something can live in either half.
If it lives on the radio, the radio itself is your identity. Whatever key or number the radio generated when it first started up is what your team recognizes. Swap the radio, and you're carrying a different identity - your team sees a new, unfamiliar sender until everyone manually sorts out who's who again.
If it lives in the app, the radio is just the thing that gets your messages over the air. Whatever radio is plugged into your phone at the moment, the app still knows who you are, and so does everyone else's app on your team.
How Nelos does it
Nelos takes the second approach. The first time you install Nelos, it generates a private identifier for that install and saves it on your phone. That identifier - not anything the radio reports - is what labels your messages, your location, and your place in your team's roster.
Connect a different compatible radio over Bluetooth and Nelos recognizes it as a new physical unit, but your own identifier hasn't changed, so nothing about how your team sees you changes either. Nelos re-establishes your team's connection in the background automatically. The one moment it asks you anything is if the new radio's frequency settings don't already match what your team expects - then it shows a short confirmation so you can pick which settings to use, rather than guessing. Pairing itself is still a real step: you connect the new radio over Bluetooth like any other device, it isn't instant or automatic the first time.
The name, the team memberships, the chat history - all of that stays with the app install, completely independent of which physical radio happens to be connected right now.
How Meshtastic and MeshCore's own app do it
It's worth being precise here, because "LoRa mesh" covers several different projects that don't all work the same way, and Nelos itself is built on the MeshCore protocol - so this isn't a criticism of that technology, just a description of where each piece of software chooses to keep identity.
Meshtastic generates a public/private keypair on the radio itself, and Meshtastic's own documentation is explicit that the node's identity has historically been derived from the device's hardware MAC address, which is fixed by the manufacturer[1]. That keypair - and the identity it represents - lives on that physical unit. Meshtastic's own team has publicly discussed changing how node IDs are derived in a future firmware update[2], but as things stand today, resetting or replacing a Meshtastic node is understood to produce a new identity, with no documented, built-in way for an end user to carry the old one over to different hardware.
The official MeshCore companion app (from the MeshCore project itself, separate from any client app built on top of it) also generates the node's identity - an Ed25519 keypair - on the physical radio, and MeshCore's own documentation describes commands for reading or setting a device's private key, but only over a serial/USB connection, and only for repeaters and room servers - infrastructure nodes, not the companion radio a person carries[3]. The companion app does have an in-app Export Settings / Import Settings feature, but MeshCore's FAQ documents it as a way to back up and restore a device's own configuration around a factory reset - recovering the same unit[4] - not as a documented way to hand an existing identity to a different physical radio.
Comparison
| Question | Nelos | Meshtastic | Official MeshCore app |
|---|---|---|---|
| Where identity lives | In the app, on your phone | On the radio (keypair tied to the device) | On the radio (Ed25519 keypair stored on the device) |
| Switch to a different compatible radio | Same identity - your team still recognizes you | New identity on the new/reset node, not documented as transferable | Identity stays with that specific unit; no documented companion-radio transfer |
| Back up or restore a device's own settings | Not yet - planned | Not documented at the identity level | Yes, Export/Import Settings - for recovering the same device |
| New phone, or the app reinstalled | New identity (no recovery yet) | Not applicable - the phone doesn't hold the identity | Not applicable - the phone doesn't hold the identity |
What this means in practice
The practical upside of keeping identity in the app is mostly about hardware you don't have to think about too hard:
- Own more than one compatible radio - a main unit and a backup - without your team needing to treat you as two different people.
- Bring a different radio on different trips (a smaller one for a day hike, a longer-range one for a multi-day trip) without re-explaining who you are to everyone else.
- Borrow or lend a spare radio when someone's unit fails in the field, and keep talking to your team through it right away.
- Replace a lost or broken radio and pick up in the same conversations and the same team, once you've paired the replacement.
Where Nelos's approach still has limits
None of this is unconditional, and it's worth being just as clear about the edges:
- Switching radios still means pairing the new one over Bluetooth - it's not automatic before you do that, and if its radio settings differ from your team's, Nelos will ask you to confirm which to use.
- Your identity lives on your phone, tied to that one app install - not in an account, because Nelos doesn't have accounts. Reinstalling the app, clearing its data, or moving to a new phone currently starts a fresh identity. There's no backup or restore for it yet.
- A fresh identity means your team sees you as a new, unrecognized member again, the same way switching radios does in the other apps compared here - Nelos just moves where that risk sits, from the radio to the phone's own app data.
Swap the hardware, keep the person.
That's the whole idea: the radio is a replaceable part, not your identity. Whichever compatible unit ends up in your pack, your team still sees the same person on the other end.
Nelos is an independent application built on the MeshCore protocol, not affiliated with, sponsored by, or endorsed by the Meshtastic or MeshCore projects. Sources, checked directly against official documentation:
- Meshtastic - Encryption overview (node IDs based on hardware MAC address)
- Meshtastic firmware - "Generate node ID out of public key" discussion
- MeshCore Docs - CLI Commands (private-key commands, serial only, repeaters/room servers/sensors)
- MeshCore Docs - FAQ (Export Settings / Import Settings around a factory reset)
Looking for a modern off-grid group communication app? See how Nelos works.
Nelos brings group messaging, location sharing, and a live group map to LoRa mesh — with no cell service, no server, and no account.