Skip to content

MeshCore for the Badge — Touch Messenger + Companion

Choose a tag to compare

@skickar skickar released this 09 Jul 22:19

Off-grid LoRa mesh messaging on the badge, three ways. All builds: MeshCore v1.16.0 core, US 915 MHz preset (910.525 MHz / BW 62.5 / SF7) out of the box, hardware-verified badge-to-badge with delivery ACKs.

🖥️ Touch Messenger — the one to flash

meshcore-touch-messenger.factory.bin — a complete standalone mesh communicator on the badge's touchscreen: chats, contacts, channels, on-screen keyboard, emoji, RF monitor + spectrum analyzer apps, piezo notification chimes, D-pad navigation (A = select, hold A = power menu, B = back). No phone needed — but it's still a full BLE companion at the same time, so the MeshCore phone app can pair to it too. Built from the WADAMESH touch UI ported to the badge.

pip install esptool
esptool --chip esp32s3 --port <PORT> write-flash 0x0 meshcore-touch-messenger.factory.bin

First boot runs a ~1-minute setup wizard (name + region) on the touchscreen.

📱 Companion (BLE) — pair your phone

meshcore-companion-ble.factory.bin — the badge as a radio for the official MeshCore phone app (Android/iOS). Color status screen; the pairing PIN is shown on the badge's display when the app connects. If re-pairing after a reflash, "Forget device" in your phone's Bluetooth settings first.

🔌 Companion (USB) — drive it from a computer

meshcore-companion-usb.factory.bin — companion protocol over USB serial, for meshcore-cli, meshcore.js, or the web client. Also handy as a scriptable test peer.


  • Source: RetiaLLC/MeshCore (badge board variant, branch retia-badge) and RetiaLLC/wadamesh (touch messenger, branch retia-badge)
  • All images use the badge's DIO bootloader and 8 MB layout — flash at offset 0x0; settings/identity live in their own flash region and survive app-only updates
  • ⚠️ Never transmit without the LoRa antenna attached
  • MeshCore is the meshcore.io open-source mesh project (MIT); this is an independent port for the Retia badge