Original NPR Firmware and PacketRF
PacketRF would not exist without Guillaume F4HDK, and his original NPR firmware. He invented New Packet Radio, designed the original modem hardware around an STM32 and an SI4463, wrote the protocol specification, published a thoroughly maintained advanced user guide, and put the whole project under a permissive license. Existing NPR deployments around Europe run his firmware on his hardware. None of that is being replaced here. NPR networks worked before PacketRF and they work next to PacketRF now.
PacketRF started in a different place. The platform is RP2350, the codebase is C++ on FreeRTOS with lwIP, and the goal from day one was a platform for packet radio rather than a single-purpose modem. Once that direction was fixed, an RP2350-based reimplementation of NPR became natural — a clean codebase with proper module boundaries, room for typed configuration, authenticated remote management, host-runnable tests, and eventually a second protocol family alongside NPR.
The most important constraint, from the very first commit, was simple: stay compatible. The on-air behavior, the framing, the timing, the address allocation rules, the connect/disconnect handshake — all of that follows the original NPR specification, and a PacketRF node is meant to be indistinguishable from an F4HDK node on the channel. A mixed network of original modems and PacketRF nodes is a normal deployment.
What changed in the firmware
The differences between the two firmwares are inside the box rather than on the air. They mostly come from PacketRF being written for hardware that has considerably more headroom than the original NPR modem.
| Aspect | Original NPR firmware | PacketRF |
|---|---|---|
| MCU family | STM32L432KCU (Cortex-M4F, single-core) | RP2350B (dual Cortex-M33) |
| CPU clock | 80 MHz | 150 MHz |
| On-chip SRAM | 64 KB | 520 KB |
| Flash | typically 256 KB on-chip | larger external flash, 16 MB on RFBB-A |
| RF chip | SI4463 | SI4463 (same family, same air behavior) |
| Host link | Ethernet | USB CDC-NCM, W5500 Ethernet, optional PPP |
| Software shape | tightly coupled, field-proven firmware | modular C++ on FreeRTOS + lwIP |
| Configuration | text command set over telnet/USB-serial | typed CBOR configuration with persistent sections |
| Remote management | telnet (no authentication) | CoAP + COSE, signed writes, key bootstrap |
| Pseudo-bridge / ProxyARP | built-in | explicit, controlled, per-interface policy |
| Host tests | none / hardware-only | host-runnable unit and contract tests |
| Lock-in | one board, one protocol | board-agnostic, protocol-agnostic platform |
What changed around the firmware
The bigger difference is everything that is not the firmware proper. The original NPR project is a modem. PacketRF tries to be a usable platform: a host-side management tool (prf-mgmt), a documented control protocol, host-side hardware-in-the-loop testing for real radio links, scenario scripts for repeatable configuration, an extension proposal process for protocol-facing changes, and a documentation tree intended to be readable by operators rather than only by people who have already studied the code.
That part is, frankly, where most of the actual work has gone. The radio itself is a fairly small fraction of the time and effort put into this project; everything around it — the network stack, the management interface, the cryptography, the persistent configuration, the diagnostics, all the tests — is what makes a single modem into something that can be run as part of a real network and not as a one-off bench experiment.
Acknowledgement
Special thanks to Guillaume F4HDK for the original NPR design and specification, for releasing it as a real open source project, and for patiently maintaining a public Advanced user guide that is still the best single document on how NPR actually behaves. PacketRF treats his work as a reference, not as a target to replace. If you are interested in NPR at all, please go and read his Hackaday project page and his published guides — they are the foundation everything here builds on.