posse

50 m thinknode m9 · a tag · meshcore · emulated first

find your people

A handheld that shows where your crew is, over its own LoRa mesh. Built on the Elecrow ThinkNode M9, with a keyboard, a compass that calibrates itself, and an emulator that runs the real firmware in your browser. For the friend who will not carry a handheld there is the tag: a credit-card tracker with one button that shows up on everyone's radar and chirps when you ask.

run the emulator how it works flash a device the real firmware, compiled to wasm. type on it.

200 m what is different

stock hardware

posse runs on the Elecrow ThinkNode M9: ESP32-S3, Semtech LR1110, GNSS, a magnetometer and IMU, a 2.4" colour screen and 2300 mAh, in a case that already exists. Buy one, flash posse. The board, the case and the supply chain already exist.

a keyboard

Thirty-seven keys. Six canned lines for 3 a.m., and your own words when you have them. Names and the crew passphrase are typed on the device, so the device is the whole setup.

MeshCore underneath

An open mesh that already runs on hundreds of boards. A crew is a passphrase-keyed group channel; friends relay for friends up to a hop count, and every other MeshCore node in earshot is a repeater in waiting.

simulated first

The firmware compiles to WebAssembly unchanged. The emulator runs twenty of them on a map over a LoRa channel model, with the M9 keyboard on screen. The UI, the beacon rate and the hop count got argued about before a board was flashed.

a compass that calibrates itself

The compass learns its own magnetometer offsets from the way you already move, cross-checked against GPS course and the IMU, and falls back to GPS heading while you walk.

checked, not hoped

The position-beacon protocol is model-checked in TLA+. The checker found the case where a delayed older beacon moves a friend backwards on the radar; the guard that prevents it is in the firmware, and the mutant that lacks it stays in the tree.

1 km the tag

a crew member with one button

The tag is posse on the Seeed SenseCAP T1000-E (order the E; the A and B are LoRaWAN-locked): a credit-card sized, IP65, 700 mAh tracker with the same radio as the M9. It beacons like everyone else and shows up on every radar in the crew, it just has one button and a buzzer instead of a screen. It beacons every 15 s while it is being carried and every two minutes at rest, with the GPS powered only around each beacon, which is what fits a weekend in 700 mAh. Anyone in the crew can make it chirp from their peer screen, so the friend carrying it can be found by ear. It joins a crew by invite: press the tag, then on any crew member's M9: CREW, the tag, ENTER, ENTER. The passphrase travels to the tag as a direct message encrypted to the tag's own key.

the button

  • press"Come to me" to the crew, or open the join window when it has no crew
  • hold 3 s"Need help, come to me"; the tag chirps at 3 s so you know when to let go
  • hold 8 sforget the crew
  • hold 15 spower off; a press wakes it

500 m what it runs on

the radio

  • boardElecrow ThinkNode M9, ships with MeshCore
  • radioLR1110, 910.525 MHz, SF7 / 62.5 kHz by default
  • reachhundreds of metres through people, kilometres across open ground
  • screen320 × 240 ST7789, landscape, drawn by the firmware itself
  • keys37-key QWERTY on a coprocessor, plus a function bar and d-pad
  • powera beacon every 15 s costs almost nothing

the screen

Four tabs: radar, crew, messages, setup. The radar puts you in the middle and everyone else on a ring by distance, heading-up when the compass is confident and north-up when it is not. Strangers running plain MeshCore show as adverts; crew show as beacons with a colour.

what a crew runs on the radios alone Every beacon and message above travels device to device.

2 km the emulator

the firmware itself

The screen in the hero is a real instance of the posse firmware compiled to WebAssembly, drawing its own pixels. The emulator runs a field of them at once, over a LoRa channel model with airtime, path loss, shadowing, collisions and capture, so a crowded field really does drop packets.

drag

Move anyone on the map and watch links appear and break.

type

Click a device and your keyboard is its keyboard.

tune

Change SF, bandwidth or crowd density mid-run.

why bother

Hardware arrives late and there is only ever one of it. An emulator lets the interface get argued about, the radio budget get checked and the mesh get stress-tested with twenty devices before the first board is soldered.

posse lives in a private monorepo where the firmware, the world engine and this site are one tree, which is why the wasm on this page is always the current build.