The tag
A TrailMesh7 tag is a small LoRa radio running Meshtastic firmware. It carries a battery, an antenna, a button, and GPS. It is the part of the system that actually talks to other people’s tags. Your phone never transmits on the mesh; it talks to the tag over Bluetooth and the tag does the rest.
What the tag does without a phone
The tag keeps its own list of the other tags it has heard from, in its own flash, updated as packets arrive. Two tags left in a rucksack together will find each other with both phones switched off.
It also relays. A packet that reaches your tag may be forwarded on toward someone further away, which is what makes a group’s range larger than the range of any single radio in it.
What the tag needs a phone for
Rooms. A room’s encryption key lives in the app, not in the tag — the tag carries encrypted payloads it cannot read and has no way to join anything on its own. Two tags alone will never form a room, and a room’s membership does not change while no phone is running TrailMesh7.
That split is deliberate: it means the room’s contents are not sitting in plaintext on a device you might drop off a chairlift.
The imprint
Every tag has a code printed on it: two letters followed by six hex characters.
Earlier tags are labelled R6……; the current batch is labelled J6……. The
prefix is just what got printed — the six hex characters are the part that
identifies the tag, and the scheme behind them did not change. That code is the
tag’s durable identity, and it is what the app files backups and keys under.
It matters because the identifier the radio uses on the air, the node number, is derived from the tag’s keypair and is recomputed every time the tag boots. Change the keys and the node number changes with them. The printed code does not, so it is the one to quote when asking for help.
Because the app derives this code from the tag’s hardware address rather than
reading the label, it files every tag under one canonical form and may show you
R6 where your label says J6. Same tag, same code — only the letter differs,
and that is deliberate: filing a tag under its label as well would give one
device two sets of rooms.
Roles: client and tracker
A tag is set up either as a client — a tag a person carries, paired to a phone — or as a tracker, an unattended beacon.
Trackers are deliberately kept out of the room invite list and the direct-message picker, because the firmware marks them unmessagable and a room could never reach them. They appear in the tracker section of the room sheet instead. If a tag is missing from the invite list but visible under “add a tracker”, its role is the reason.
The role is not permanent: any tag can be made a tracker and converted back. See setting up a tracker and converting one back.
Firmware
TrailMesh7 requires its own firmware. It is a small fork of Meshtastic, and the app will not operate with a tag that is running anything else — it says so and sends you to the update rather than working partly. Three things depend on it, and on stock firmware every one of them fails silently:
- The tag button. A press — and the double press that raises a Group SOS — is handed to the phone as a trigger. The alert itself is composed, encrypted and sent by the app, which is why a tag with no phone connected cannot raise one.
- Identity. The fork tells the attached phone the tag’s own hardware address. That is what the imprint is derived from, and stock firmware stopped sending it to the phone in the 2.8 series. Without it, a tag reached over USB or on iOS has no stable identifier to file its backup and escrowed key under.
- Updating over Bluetooth. Stock firmware always reboots into USB drive mode, which a phone cannot reach — leaving a tag mid-update with no way to finish. The fork picks the mode that matches how you connected.
It also reports one failure stock firmware handles silently: a stored key the tag cannot sign for. That is the fault that leaves a tag looking completely healthy while every other tag discards its broadcasts.
A tag from a TrailMesh7 kit will have the right firmware already, but kits are not shipping yet. A tag that arrives on stock Meshtastic has to be updated once from a computer over USB, because stock firmware reboots into a USB drive a phone cannot reach. After that first update, the app handles them over Bluetooth.