Skip to content
cvhvizPublic

About

Cairn: custom MeshCore companion firmware with a touch UI for the Wio Tracker L2 Pro, Heltec V4 and LilyGO T-Display SF32, plus builds for the Wio Tracker L1 Pro, Heltec T096 and about 30 preview boards. Works with the official MeshCore apps. Release images.

Topics

Resources

Stars

63 stars

Watchers

4 watching

Forks

Latest commit

 

History

36 Commits

Folders and files

Repository files navigation

CAIRN

Cairn is a fork of the MeshCore companion firmware. Every board is built from one source tree that shares MeshCore's mesh and radio code, and every build works with the official MeshCore apps (web, Android, iOS).

Builds are numbered: the splash screen shows BUILD N, releases are tagged cairn-vN, and files are named MeshCore-<Board>-CairnN-<date>…, so you can match a device to a release from its own screen.

Download the files from the latest release. L1 Pro releases from before Cairn (builds 40 to 98) are archived in this repository's releases; the last of them is build 98.

Latest: Cairn 115 (12 Oct 2026)

  • L2 Pro microphone: the voice recorder works on the L2 Pro.
  • EQ and visualizer on the L2 Pro and T-Deck Plus: five bands with Flat, Voice, Bright, Warm and Custom presets shaped over the live spectrum, and Now playing as a full-screen visualizer with the controls a tap away. Player options are cards, and alert tones no longer interrupt music.
  • Cards everywhere: every chooser on the touch and key boards (button actions, setting lists, action menus) is a page of cards, and a node's "…" opens Discover path, Reset route, Favorite, Share contact, Admin and Remove as cards.
  • Packet details lead with the sender (name, type, distance, key), then the signal and route as large values. Tap a node on the map to see its route.
  • Clock: after a power cut the clock shows "--:--" until GPS, the app or Wi-Fi sets it, instead of the time the board was switched off (#18). Older T-Deck keyboards type again (#17).
  • T-Display SF32: no restart on the second * in a message, a faster Nodes tab, and card titles in Title Case. See its board page.
  • Updating: L2 Pro, Heltec V4 touch, ThinkNode M9, T-Deck and T-Display SF32 update over Wi-Fi in Settings › System › Firmware update. The L1 Pro family and the T096 update by copying the new .uf2 (UF2 guide); they and the compact repeaters are rebuilt as 115 with no changes of their own.
  • Other boards: the preview boards stay on Cairn 107 preview.

Cairn 114 added the Radios tabs and Traffic log, the Storage page with Files, USB drive mode and the card folders; see its release notes.

Supported boards

✅ Tested: used on real hardware before each release. ✅ Beta: tested on hardware but new to Cairn; its page lists what hasn't been tried yet. 🧪 Preview: builds from the same tree but hasn't been tried on hardware. Reports are welcome.

nRF52840 (install by copying a .uf2)

Board Screen and input Status Install guide
Seeed Wio Tracker L1 Pro OLED or e-ink, joystick ✅ UF2
Heltec Mesh Node T096 0.96" colour TFT, one button ✅ UF2
Preview boards OLED or colour TFT, one button 🧪 UF2

The L1 Pro takes the SH1106 OLED, the 2.42" SSD1309 "DV1" OLED or the e-ink display. nRF52840 preview boards: RAK4631, RAK3401, ProMicro, Nano G2 Ultra, Heltec T1, GAT562 boards, Meshtiny, Keepteen LT1, LilyGO T-Impulse Plus.

ESP32 / ESP32-S3 (install with esptool or a web flasher)

Board Screen and input Status Install guide
Seeed Wio Tracker L2 Pro 3.2" touchscreen ✅ esptool / web
Heltec V4 + Expansion Kit 2.8" touchscreen ✅ esptool / web
Elecrow ThinkNode M9 2.4" screen, keyboard, d-pad ✅ beta esptool / web
LilyGO T-Deck / T-Deck Plus 2.8" touchscreen, keyboard, trackball ✅ beta esptool / web
Preview boards OLED or colour TFT, one button 🧪 esptool / web

The L2 Pro, Heltec V4, ThinkNode M9 and T-Deck run the same Cairn interface; the M9 drives it by keys and the T-Deck by touch or keys.

ESP32 preview boards: Heltec V4 / V4-R8 / V3 (OLED), Heltec Wireless Tracker (V1, V2), LilyGO T-Beam Supreme and T-Beam 1W, T3S3, Station G2 / G3 (USB build only), XIAO ESP32-S3, ThinkNode M2, Meshnology W12, Ebyte EoRa-S3; and on the original ESP32, Heltec V2, LilyGO T-Beam (SX1262 / SX1276, Bluetooth build only), T-LoRa V2.1-1.6 and MeshAdventurer. The original-ESP32 boards install the same way; the ESP32 guide has the one difference.

SiFli SF32 (install with one double-click)

Board Screen and input Status Install guide
LilyGO T-Display SF32 480×480 AMOLED touchscreen, keypad ✅ installer

The T-Display SF32 sits on its 20-key keypad board and runs its own card-based interface. The installer runs on Mac, Windows and Linux.

Repeaters (compact screen)

Board Screen Status Install guide
Heltec Mesh Node T096 0.96" colour TFT ✅ beta UF2
Heltec T114 1.14" TFT 🧪 UF2
Heltec V2, V3, V4, V4-R8 0.96" OLED 🧪 esptool / web
Heltec Wireless Tracker V1, V2 0.96" colour TFT 🧪 esptool / web

The standard MeshCore repeater with a minimal Cairn screen: Status, Spectrum and a few Settings on the one button, and a power save that keeps the screen and TX LED off until a double-click. Holding the button on Status (~3 s, then release) turns it off; a press turns it back on. The screens below are simulated with fictional sample data.

Repeater Status
T096 repeater · Status
Repeater Spectrum
T096 repeater · Spectrum
Repeater Settings
T096 repeater · Settings

Coming soon

  • Map downloads on the device, straight over Wi-Fi, so you won't need a computer to prepare the offline map card. Until then, tools/maptiles.py builds the card on a computer.

Want another board? Ask for it.

Features

Feature L1 Pro L2 Pro Heltec V4 touch ThinkNode M9 T-Deck T-Display SF32 T096 Preview
MeshCore apps over Bluetooth ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅
Input joystick touch touch keys touch, keys touch, keypad button button
Colour emoji – ✅ ✅ ✅ ✅ ✅ – –
Wi-Fi – ✅ ✅ ✅ ✅ ✅ ¹ – –
Online updates – ✅ ✅ ✅ ✅ ² ✅ – –
GPS ✅ ✅ ✅ ³ ✅ Plus ✅ ✅ some
microSD card – ✅ ✅ ✅ ✅ ✅ – –
Offline map – ✅ ✅ untried ✅ coming – –
Spectrum and band scan – ✅ ✅ ✅ ✅ ✅ spectrum –
Repeater scan and admin – ✅ ✅ ✅ ✅ ✅ – –
USB-serial companion – – – – – – ✅ ✅
Contact QR code – ✅ ✅ ✅ ✅ – – –
Room server image ✅ – – – – – – –
Colour themes – ✅ ✅ ✅ ✅ ✅ ✅ some ⁴
Wi-Fi and Bluetooth scanners – ✅ ✅ ✅ ✅ ✅ – –
Music player – ✅ – – ✅ ⁵ ✅ – –
Voice recorder – ✅ ⁶ – – ✅ ⁵ ✅ – –
Traffic log, packet details – ✅ ✅ ✅ ✅ ✅ – –
File manager – ✅ ✅ ✅ ✅ – – –
USB drive (microSD) – ✅ – – ✅ – – –
IR remote, climate sensors – – – – – ✅ – –
Imperial units, 12-hour clock ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅

¹ Clock sync and online updates; no app link over Wi-Fi. ² From Cairn 108 on. ³ With the Expansion Kit. ⁴ The colour-screen boards (Wireless Tracker, T1). ⁵ From Cairn 113, tried on a T-Deck Plus. ⁶ From Cairn 115.

Which file do I need?

Each release carries every board's files, named MeshCore-<Board>-CairnN-<date>[-<variant>].<ext>. Your board page lists them all.

You want to… nRF52840 boards ESP32 boards T-Display SF32
First install the board's .uf2 -full.bin at 0x0 ⚠ the -install.zip: unzip, double-click
Update the board's .uf2 -update.bin at 0x10000, or Wi-Fi the -install.zip again, or Wi-Fi
Recover copy the .uf2 again erase, then -full.bin at 0x0 hold A for 12 s, then the installer
  • ⚠ An ESP32 first install erases the device. If it runs MeshCore, export your identity and contacts in the app first. Updates keep everything.
  • On ESP32 boards, write the -full.bin or the -update.bin, never both.
  • SHA256SUMS.txt in each release covers every file: shasum -a 256 -c SHA256SUMS.txt.

Install guides: nRF52840 (UF2) · ESP32 (esptool or web) · T-Display SF32 (one-click installer)

Wio Tracker L2 Pro: brochure, manual and screens

Cairn on the Wio Tracker L2 Pro

More promo images (free to share) are in docs/promo. All 19 screens, one by one: L2 Pro board page.

Screens on other boards

ThinkNode M9 and T-Deck

The same interface on the ThinkNode M9, driven by its keys, and on the T-Deck, by touch, keyboard and trackball. Captured on the devices.

M9 Battery
M9 · Battery
M9 Spectrum
M9 · Spectrum
M9 Quick panel
M9 · Quick panel
M9 Settings
M9 · Settings
T-Deck Home
T-Deck · Home

Heltec T096

The themed one-button interface on the T096's 0.96" screen, rendered by the firmware's own drawing code in a desktop simulator with fictional sample data. More, including all five themes, on the board page.

T096 Home
T096 · Home
T096 Spectrum
T096 · Spectrum
T096 Recent
T096 · Recent
T096 Night theme
T096 · Night theme
T096 Soft theme
T096 · Soft theme
T096 Radio
T096 · Radio

Reporting a problem

Open an issue and pick Bug report. The form asks for the board, the build number from the splash screen, how you installed it, and what happened. A serial log helps a lot. Reports on 🧪 preview boards are especially useful, including "it works".

Publishing a release (for the online updater)

The L2, Heltec V4 touch, ThinkNode M9, T-Deck and T-Display SF32 builds read https://api.github.com/repos/cvhviz/Cairn/releases/latest. For a build to be offered:

  • Tag it cairn-vN, where N is the build number shown on the splash (it must be higher than the device's own). Publish it as a normal release, not a draft or prerelease.
  • Attach each board's -update.bin under its exact name, with nothing between the date and -update.bin. The SF32 also accepts a .sha256 file next to its update.
  • GitHub records each file's SHA-256, which the device checks, along with the size and the board's OTA marker inside the image.
  • No other asset may start with one of these board prefixes and end in -update.bin. Preview boards use their own board names.
  • The release notes are shown on the device before installing, so keep the top of them short and plain.
Board Update file
L2 Pro MeshCore-WioL2Pro-CairnN-YYYY-MM-DD-update.bin
Heltec V4 touch MeshCore-HeltecV4Touch-CairnN-YYYY-MM-DD-update.bin
ThinkNode M9 MeshCore-ThinkNodeM9-CairnN-YYYY-MM-DD-update.bin
T-Deck MeshCore-TDeckPlus-CairnN-YYYY-MM-DD-update.bin
T-Display SF32 MeshCore-TDisplaySF32-CairnN-YYYY-MM-DD-update.bin

Relationship to upstream

This is a personal build, not a general-purpose distribution. All core mesh and radio behaviour comes from MeshCore. See that project for protocol documentation, the official flasher, its own list of supported hardware and the client apps. Cairn tracks MeshCore releases; the release notes say which version each build is based on. Credit to the MeshCore developers and community for the foundation.

License

MIT, same as upstream MeshCore. The firmware embeds third-party fonts, emoji and libraries under their own licences; see THIRD_PARTY_NOTICES.md and licenses/.

About

Cairn: custom MeshCore companion firmware with a touch UI for the Wio Tracker L2 Pro, Heltec V4 and LilyGO T-Display SF32, plus builds for the Wio Tracker L1 Pro, Heltec T096 and about 30 preview boards. Works with the official MeshCore apps. Release images.

Topics

Resources

Stars

63 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages