/prefs holds a header (magic, format version, size, CRC-32), the node's position and NodePrefs as it is in memory, in place of /new_prefs' two hand-kept field lists and 0xC0DE00xx schema bumps. A new field goes at the end of the struct; moving one bumps PREFS_VERSION. sanitize() keeps every value in range. The first boot after an update from before 2.0 imports only the first block of the old file, laid out the same in upstream MeshCore and Solo (name, position, radio, BLE PIN, scope), then deletes it; everything else starts from the defaults. Contacts, channels, scopes, waypoints and trails are untouched. Gone: the page-order and GPS-interval migrations, the unused trail_interval_idx / trail_units_idx / repeat_extra_scopes; fav_sort_off and msg_wake_screen_off become fav_sort and msg_wake (on by default). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MeshCore Solo
Solo is a MeshCore companion firmware that works on its own: messages, contacts, GPS navigation and tools right on the device, no phone needed. The phone app still connects as with the stock firmware, over Bluetooth or USB.
Try it in your browser: solo.marekzegarek.com
What it does
- Messages without a phone: channels, direct messages and rooms, with
quick replies, live placeholders (
{loc},{time}, sensor readings) and keyboards for Latin, Cyrillic, Greek and European diacritics. - GPS navigation: trail recording with GPX export, waypoints, a compass, navigate to any node, waypoint or shared location, live location sharing and a geofence alert (Locator).
- Nearby nodes: who's around, signal and distance, ping, and remote admin of your repeaters and rooms.
- Tools: clock with alarm, timer and stopwatch, a remote bot that answers commands over the mesh, repeater mode, a ringtone editor, and a status screen with the radio, GPS, battery and mesh counters.
- Screen lock with an optional PIN.
- On the Wio Tracker L2: an offline map, message history on the SD card, the SD card as a USB drive, updates over WiFi.
Devices
The firmware is the same everywhere; how you drive it depends on the device. These docs mark the differences with notes like this:
Note
Wio Tracker L2: what's different on the touch screen.
| Group | Devices | Controls |
|---|---|---|
| Joystick | Wio Tracker L1 (OLED / e-ink), GAT562 30S, GAT562 Watch13, Heltec V3/V4 with a joystick | Four directions, Enter, Back |
| Keyboard | M5Stack Cardputer ADV, T-Echo Lite + KeyShield, any board with a CardKB | Keys; arrows or their Fn combinations for the directions |
| Touch | Wio Tracker L2 | Taps, swipes and holds; two side buttons |
| OLED | E-ink | Wio Tracker L2 |
|---|---|---|
![]() |
![]() |
![]() |
The joystick and keyboard devices share one interface, sized for small OLED and e-ink screens. The Wio Tracker L2 has its own, built for a 320 × 240 colour touch screen, with extras its hardware allows: an offline map, message history on the SD card and updates over WiFi.
Pages
- Getting started: controls, the home screen and its quick panels, the phone app, updates
- Messages: channels, direct messages, rooms, typing
- Contacts: nearby nodes, favourites, remote admin
- Navigation: GPS, trail, waypoints, compass, sharing your location, the map
- Tools: clock tools, bot, repeater, ringtones, the Status screen
- Settings: what is where
- Screen lock: locking, auto-lock, PIN
- Hardware: external keyboards and joysticks, e-ink, SD card, WiFi
For developers: UI Core, UI framework, build flags.
Contributors
Big thanks to the people who contributed to Solo: vanous, marczykm, tchellow and 3urobeat.



