Articles
How MeshTRX works inside, why it was built this way, and what it cost.
The button that pretended to work
Three complaints in a row, and not one of them a radio bug. A look at the errors that live at the seam between firmware and interface: a command that never went on the air, an icon that read backwards, and a false alarm caused by the test itself.
Read →Encryption in 39 bytes
At the time of writing MeshTRX traffic was unencrypted (encryption arrived in 4.4.19). Here is why "just turn on AES" does not work in a 39-byte packet, what an authentication tag costs in milliseconds of air time, and what a shared channel key actually buys you.
Read →A repeater doubles your range and divides the air
How forwarding works in a LoRa network: TTL, memory of forwarded packets, and the channel arithmetic showing why three repeaters cannot carry voice. Plus the story of a counter that swallowed every second phrase.
Read →One chip pin and fifty-eight decibels
A look at the bugs that surfaced only once the radios reached real people: an amplifier bypassed entirely, WiFi jamming reception, "not delivered" marks on messages that arrived. And why a two-board bench cannot catch everything.
Read →A crowded band: interference, channels, and moving a whole group at once
In a city the 868 MHz band is shared with door phones, meters and alarms. How the radio learned to find a quiet channel, why everyone has to move at once, and the mistakes we made getting there.
Read →Five kilometres on paper, two in the field
First range measurements on live radios: solid voice up to two kilometres, text further out. Why voice gives up before text does, what a repeater changes, and why comparing this to sensor networks is unfair.
Read →How voice fits into LoRa
LoRa was designed for humidity sensors, not conversations. Here is what it took to fit speech into that channel: Codec2 at 3200 bps, a 39-byte packet, a ten-second limit — and what we gave up for it.
Read →