IQRF // mesh in the walls
Meshes in your radio network?
It may be more likely than you think.
Today I introduce you to a weird little Czech technology that consumed a year of my life. It is an open-source system for encrypted radio communication in a mesh network of up to 255 devices, called IQRF. Built for citywide reliable encrypted communication on minimal power. If you need a stable MAN IoT network where WiFi is useless and radio towers are overkill this is what you reach for.
nodes
The network is built from Nodes and Coordinators. Nodes receive data from whatever sensors they're attached to and simultaneously act as routing paths for nodes further out in the mesh. Two flavours:
Sensor nodes — actually sense things.
Repeater nodes — dedicated routing only.
They exist purely to extend reach without signal amplifiers.
The logic that runs on a node is called a Custom DPA Handler. IQRF IDE ships a few pre-built interoperable ones. If you feel brave you can write your own in C. The word "brave" is doing a lot of work in that sentence.
DPA packets // lain would be proud
Nodes communicate through DPA (Direct Peripheral Access) packets their own protocol, their own framing. Every packet follows a strict field order:
PNUM — which peripheral on the node you want to talk to.
PCMD — FRC command ID to execute on the node OS.
HWPID — unique hardware ID for the selected sensor.
DATA — raw bytes to send along.
Every packet is encrypted with a three-layer AES-128 scheme using a 16-byte password baked into the node via a physical debugger. And if that's somehow not paranoid enough, the DATA payload can be separately encrypted with its own key, so cracking the packet wrapper still leaves you with encrypted contents. Layers upon layers.
coordinator
The Coordinator is the gateway the one node that bridges the radio mesh to the outside world. It dispatches commands to all other nodes via FRC.
In production, coordinators are commercial gateways. They accept MQTT JSON from the outside and convert it into DPA packets fired into the radio mesh. Most ship with full API documentation for their JSON-to-DPA translation. They also tend to include SSH access, VPN tunnelling, and WebSocket support a surprisingly civilised set of features for something embedded in a wall cavity.
FRC // the fast part
FRC (Fast Remote Control) is a patented broadcast mechanism. Instead of polling every node one by one, which in a 255-node mesh is a long wait, FRC sends a single command from the Coordinator to all (or selected) nodes and collects all responses. Orders of magnitude faster than sequential polling.
2 bits ← from up to 239 nodes
1 byte ← from up to 63 nodes
2 bytes ← from up to 31 nodes
4 bytes ← from up to 15 nodes
The more data you want back per node, the fewer nodes per poll. Physics. Non-negotiable.
IQRF IDE4 // it's fine
IQRF IDE4 is the configuration software. Charitably described as archaic. In it you select the DPA handler, set bonding and data passwords, configure communication frequency and channel, and access the CATS service. To configure a node you physically connect it to a debugger, which you then connect to your PC via USB. Very 2003. Very tactile.
creating a network // bonding & discovery
Network setup is a two-step ritual: Bonding then Discovery.
Every node gets bonded to a coordinator. They must share the same frequency, channel, and bonding password. Up to 255 nodes per coordinator. After bonding, run Discovery — the coordinator counts all bonded nodes and builds its routing table. Fast process. The main failure mode is choosing the wrong DPA handler for your node type. Don't do that.
If everything goes right you can either use IQRF IDE to send raw DPA packets directly, or use a commercial gateway's interface for something resembling comfort.
And that's how you get your own mesh radio network in a matter of minutes. // signal ends here