github cvhviz/CAIRN experimental-m9usb-131
Experimental · ThinkNode M9 USB · Cairn 131

pre-releaseone hour ago

Experimental: a USB companion build for the Elecrow ThinkNode M9 (#52), for setting up M9s from a computer without pairing. This build ran on an M9 on the bench with a test client. Please tell us how it does with yours.

What experimental builds are. Use MeshCore-ThinkNodeM9-Cairn131-2026-11-11-usb-full.bin.

Cairn 131 for the Elecrow ThinkNode M9 -- USB companion test build (2026-11-11)

For the Elecrow ThinkNode M9. It is the normal Cairn 131 M9 build (the same screen, keys and
Bluetooth) with the companion protocol also on the USB cable, so a laptop script (meshcore_py, or
the MeshCore apps over USB serial) can talk to an M9 without pairing.

What to know:

- The protocol runs over the M9's USB port (its CH340 bridge) at 115200 baud. Bluetooth stays on, so
  the phone app still works on the same device.
- Opening the port restarts the M9: the USB bridge drives the chip's reset line, so every open is a
  fresh boot. Send a device query about once a second until one is answered; on our M9 the first
  reply came about 4.5 seconds after the open.
- Before that first reply the line carries the chip's own boot banner and a few start-up lines
  (nothing can turn the banner off), so skip anything that isn't a frame until then. After it, only
  protocol frames come down the cable: the build closes its log on that port when the companion
  starts.
- Tested on an M9 with a client that counts every byte outside a frame: device query, app start,
  time, battery and storage, contacts, channels, writing the node name and channels, three full
  rounds and a minute idle. Not one stray byte after the first reply.

Online update: this build carries the M9's normal update name, so Settings > System > Firmware
update installs the normal (Bluetooth only) M9 build from the latest release, not a USB one. To stay
on the USB build, flash the next one by hand.

File: MeshCore-ThinkNodeM9-Cairn131-2026-11-11-usb-full.bin


FLASH IT (Chrome or Edge on a computer)

1. Open https://espressif.github.io/esptool-js/
2. Plug the M9 in with a USB-C data cable. Click Connect and pick its port (on Windows, install
   WCH's CH340 driver if no COM port appears). The M9 has no download buttons: if it won't connect,
   replug it and try again.
3. To keep your identity, contacts and settings (from Cairn on the M9): skip the erase.
   From other firmware: click Erase Flash first, and back up your node's private key from the app
   before that.
4. Flash Address 0x0, the -usb-full.bin above, then Program.
5. When it says done, press Disconnect, then replug the M9.


WHAT TO TELL US

- Does your script or app connect cleanly with the wait above?
- How long does a full set-up run take per device?
- Any byte on the line after the first reply that isn't a frame?
- If it restarts or hangs: what the script sent last, and the time.

Don't miss a new CAIRN release

NewReleases is sending notifications on new releases.