< >

MCTerm

MeshCore · LoRa · off-grid

When the grid goes dark, your messages don't.

MCTerm turns a LoRa handheld into a complete off-grid messenger. Chats, direct messages, a map and every setting run on the radio itself — no phone, no internet, no cell towers, no accounts. Just radio.

NO INTERNET NO SIM E2E DMs MULTI-HOP WebUI AUTO MAP ALARM LOCK SCREEN 6 DEVICES
MCTerm v0.9.14 · MeshCore v1.17.1
Radio    869.618 MHz BW62.5 SF8 CR8   OK
Sensors  BME280 @0x76                 OK
Storage  SD card                      OK
Contacts 42 loaded
WiFi     AP 192.168.4.1 · WebUI on
Ready. Listening on the mesh_
LilyGO T-Deck Plus running MCTerm: contact list with repeaters, badges and hop counts
MCTerm on a LilyGO T-Deck Plus — real device, real mesh.
<>

More than a messenger

Everything below is built in — no add-ons, no cloud. Four things people don't expect from a LoRa radio:

The WebUI — your radio in any browser

Connect to the device's WiFi (or let it join your router), type its IP address or device-name.local, log in with the 6-digit BLE PIN — done. These are real screenshots of the WebUI on a phone:

MCTerm WebUI login screen with user and BLE PIN, opened at bmksindicatorpro.local
Login with your device PIN.
WebUI contacts list with repeater, user and favourite badges
Contacts, search, favourites.
WebUI channel list with unread counters
Channels with unread counters.
WebUI map with mesh nodes by type on OpenStreetMap tiles
Live map with every node.
WebUI sensors page with live graphs of temperature, humidity, CO2 and VOC
Live sensor graphs and calibration.
WebUI Management grid with Device, Radio, Network, Location and Maintenance tiles
All settings, same as on the device.

Same settings and same features as on the device — change one, the other follows live.

Runs on real hardware

One firmware family, five more screens besides the T-Deck Plus — same tabs, same badges, same features. Every photo below is a real device running MCTerm:

MCTerm running on the Seeed SenseCAP Indicator: map view on the sensecap indicator
Seeed SenseCAP Indicator
480×480 touch · ESP32-S3 + RP2040
MCTerm running on the Heltec V4 TFT Extended: contacts on the heltec v4 extended
Heltec V4 TFT Extended
touch TFT · GPS with expansion kit
MCTerm running on the Elecrow CrowPanel Advanced 7
Elecrow CrowPanel Advanced 7" (ESP32-P4)
1024×600 touch
MCTerm running on the Elecrow CrowPanel 3.5
Elecrow CrowPanel 3.5" (ESP32)
480×320 touch
MCTerm running on the LilyGO T-Display P4: contacts on the lilygo t-display p4
LilyGO T-Display P4
large touch display · preview
< >

Why 6/6

Your phone needs a cell tower. A cell tower needs power and a backbone. When one of them fails, the chat apps go quiet. A MeshCore radio talks straight to the next radio — and MCTerm puts the whole messenger on it.

How the mesh works

YOU RPT RPT FRIEND

Every message hops from radio to radio. Repeaters — often solar-powered, on rooftops and hills — pass it on. The first message floods the mesh to find a path; after that MeshCore sends it along that path directly, which keeps the channel free. MCTerm runs the unchanged MeshCore core (v1.17.1), so it talks to every MeshCore node, repeater, room server and app.

Why a screen on the radio?

Headless radioMCTerm
Works when your phone is dead or lostNOYES
Read and write on the radio itselfNOYES
Offline map on the radioNOYES
Pager siren on a trigger wordNOYES
Full setup in any browserNOYES
Still use the MeshCore appYESYES
< >

Msgs 6/20

Messaging the way you know it from your phone — on the radio. Tap a row.

  • Public channel, #hashtag channels (just type #name) and private channels with a secret key. Share a channel as QR code. Region scopes keep flood traffic in your area. Tap a #hashtag in a message to join it — or paste someone's contact/channel share link into a chat and tap it to add them, no QR scanner needed.
  • End-to-end encrypted with your contact's public key. A check mark appears when the delivery confirmation (ACK) comes back; if it doesn't, MCTerm retries and finds a new route — or tap Resend on the message yourself.
  • Log in to MeshCore room servers: shared group chats that store the history, so you catch up when you're back in range. Admins can manage rooms and repeaters over the air.
  • Every single emoji of Unicode 18.0 and 259 country flags are built into the firmware (Google Noto Emoji) and drawn on the screen — no ? boxes. The keyboard's EMO page has the 40 favourites; on the T-Deck press Alt+E.
  • One tap sends your canned text (“OK”, “Heading back”). Two reply templates fill in hops, SNR and RSSI of the message you answer — perfect for range tests.
  • For every message: full text, hops and path, SNR/RSSI, repeats heard, delivery state. Tap Path to draw the route on the map, or Resend to send the same text again.
MCTerm channel list: Public, #austria, #vienna, #test with unread counters and region scope badges
Channel list with unread counters and region scopes.

Pager alarm

ALARM

Turn your radio into a pager. Choose a trigger phrase — for example FIRE or CALL ME. When a direct or channel message contains it, MCTerm sounds a siren until you touch the screen.

  • Trigger by DM, by channel message, or both
  • Only from the contacts you pick (checked by public key) or from chosen channels
  • Four siren styles, duration of your choice
  • Optional full-screen popup and screen blink; keyboard blink on the T-Deck Plus
  • Set up on the device or in the WebUI
Base: ALARM — flood gate open, come now

Plays the same siren sweep as the T-Deck Plus speaker. Tap anywhere to stop.

Sounds

SPK

Know what arrived without looking. Every sound can be switched on or off, with volume Low / Med / High and quiet hours for the night. These are the device's real tones:

  • Boot
  • New DM
  • New channel
  • Ack (delivered)

Contacts

RPTFGPS

Everyone the radio hears shows up in Contacts: users, repeaters, room servers and sensors, with hop count, last heard and distance. Search by name or key, mark favourites, sort by distance. Log in to your own repeaters over the air: status, neighbours, telemetry and a remote command line.

< >

Map

Tiles: OpenStreetMap
  • Offline firstMap tiles come from the SD card or internal flash in the standard {z}/{x}/{y}.png layout. No signal needed.
  • Auto-download over WiFiWhen WiFi is up, missing tiles are downloaded as you pan and saved to the cache — next time they're there offline.
  • Pick your mapOpenStreetMap, OSM Germany, OpenTopoMap, Humanitarian, CyclOSM — or your own tile URL. The WebUI map uses the same source.
  • Everyone on the mapNodes that share their position appear with their short ID. Tap to select, double-tap for details. ME jumps to you.
  • See the routeTap Path on any message and the map shows each hop it took.
  • GPS & trackingFollow-me, altitude bar, GPS time sync, and tracking: send your new position automatically every few metres you move.

Mgmt

Everything is configurable on the device — 22 settings pages, the same grid you see on the screen. Tap a tile.

Global

Your name, up to 4 identities on internal storage or 8 on SD, primary disk (internal or SD), reboot and firmware update.

Sensors & telemetry

LIVE

Plug an I2C sensor in and MCTerm finds it at boot. Readings show up as live graphs (last 96 samples), go out as telemetry to the mesh, and can be calibrated with an offset per value.

  • Temperature21.4 °C
  • Humidity48 %
  • CO2612 ppm
  • Battery4.12 V

Demo values. Supported: BME280, BME680, BMP280, AHT10/AHT20, INA219 / INA226 / INA260 / INA3221 power monitors, HC-SR04 distance, CrowTail light sensor, and the SenseCAP Indicator's built-in CO2, temperature, humidity and VOC sensors.

MCTerm Mgmt overview grid on the T-Deck Plus: GPS, Radio, Advert, Messages, Stats, Log, Tele, Sensors, Contacts
The same grid on the device.
< >

Get it

Devices

Install in 5 steps

  1. 1
    Download the firmware file for your device. Releases
  2. 2
    Open the MeshCore web flasher in Chrome or Edge: flasher.meshcore.io → Custom Firmware.
  3. 3
    First install: choose a full flash erase. Later updates keep your settings.
  4. 4
    SenseCAP Indicator: also flash the matching RP2040 .uf2 from the same release.
  5. 5
    Antenna on, power on. The first boot takes 1–2 minutes. Set your name and your region's radio settings in Mgmt → Radio (EU/UK default: 869.618 MHz, BW 62.5, SF 8, CR 8).

! Never transmit without an antenna — it can damage the radio.

FAQ