NPR70/README.md
2025-12-31 12:23:22 +01:00

132 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NPR70 — New Packet Radio for 70 cm Band
A complete open-source hardware and firmware project for a modern IP packet
radio modem operating on the 70 cm amateur band (420450 MHz). Compatible with
the NPR [New Packet Radio](https://hackaday.io/project/164092-npr-new-packet-radio),
but with custom hardware and improvements for easier DIY assembly.
## What is NPR70?
**NPR70** is an open-source implementation of a New Packet Radio (NPR) modem — a
protocol and hardware design for transmitting IP packets over UHF (70 cm)
amateur radio, with the following goals:
- High throughput (typically 50500 kbps gross rate)
- Reliable point-to-multipoint IP networking (TCP/IP, UDP, etc.)
- Fully open hardware and software
- Minimal latency and straightforward configuration
This project is **primarily for amateur radio operators** interested in building
and experimenting with modern digital data networks, Hamnet, telemetry, or
similar applications on the UHF band.
It is a fork/derivative of the
[original NPR project by F4HDK](https://hackaday.io/project/164092-npr-new-packet-radio),
but with new custom hardware, simplified design, and refactored/cleaned firmware.
## Who is this for?
- Licensed amateur radio operators interested in high-speed IP digital modes
- Hamnet and HSMM enthusiasts
- Anyone interested in open hardware wireless networking on UHF
## Hardware Overview
- **MCU**: STM32 microcontroller (STM32L432KCU, as in original)
- **RF Module**: NiceRF module for 70 cm UHF band (based on SI4463)
- **Ethernet**: W5500 (SPI, 10/100 Mbps Ethernet controller)
- **Form Factor**: Two layer 69×100 mm PCB
- **Other**: 0402 SMD passives, SMA, Ethernet and USB-C connectors, etc.
The hardware is designed to be compact and affordable, with a focus on
DIY manufacturing and community development. All schematics and layout
files are in the [`pcb/`](pcb/) directory.
## Firmware Details
- Based on **MbedOS 5.6.6** (last version compatible with the original code)
- Derived from the [F4HDK NPR firmware]
(https://github.com/f4hdk/NewPacketRadio), but refactored and cleaned up for
different pinout
- Supports all main NPR features (TDMA master/slave, 2GFSK/4GFSK,
point-to-multipoint IP bridging)
- Compatible with official NPR protocol and other compatible modems
## Key Features
| Feature | Details |
|----------------|-------------------------------------------------------------|
| **Protocol** | NPR (custom IP radio, NOT AX.25; true L3) |
| **Topology** | Point-to-multipoint (master + up to 7 clients), TDMA |
| **Modulation** | 2GFSK / 4GFSK, up to 500 kbps gross (see protocol docs) |
| **RF Band** | 70 cm amateur band (configurable, typically 430440 MHz) |
| **Network** | Full IP stack, transparent bridging, works with DHCP, TCP/IP, UDP, etc. |
| **Range** | Up to 300 km line-of-sight (with suitable antennas and power) |
| **Hardware** | STM32 MCU, SI4463 radio, W5500 Ethernet, all open hardware |
| **License** | GPL v3.0 (same as original NPR project) |
## Repository Structure
- `pcb/` KiCAD project directory (schematic and PCB layout).
- `src/` Firmware source code, based on MbedOS (legacy version), derived and
adapted from the original NPR project.
## Quick Start
1. **Hardware**: Manufacture or assemble the PCB found in `pcb/`. BOM and
assembly notes are included.
2. **Firmware**:
- For building the code by youself, you will need Debian based system and
installed `gcc-arm-none-eabi`.
- Build firmware by running `make` in the `src/` directory.
- Firmware binary is in the `src/BUILD/NPR70.hex` file
- Flash firmware to the STM32 MCU using an SWD programmer
`pyocd load -t stm32l432kc BUILD/NPR70.hex`
3. **Configuration**: Adjust radio parameters (frequency, bandwidth,
master/client mode, IP addresses) as described in the
[original NPR documentation](https://cdn.hackaday.io/files/1640927020512128/NPR70_introduction_EN_v3.6.pdf)
4. **Connect**: Plug in Ethernet and power, connect antenna, and start experimenting
Basic settings to check (more details in the original NPR documentation):
* `display config`: show current configuration
* `set <param> <value>`: store value to the given parameter
* `save`: saves current configuration into the EEPROM
* `radio on`/`radio off`: turn RF on or off
* `reboot`: reboot the FW
You have to set your callsign, frequency and modulation. Rest of the parameters
is up to you and your setup.
```
set callsign AB1CDE
set frequency 434.200
set modulation 22
```
## Documentation and References
- [Original NPR project by F4HDK](https://hackaday.io/project/164092-npr-new-packet-radio)
- [Official NPR documentation (PDFs, guides, protocol)](https://cdn.hackaday.io/files/1640927020512128/NPR70_introduction_EN_v3.6.pdf)
- [Project homepage and build log (in Czech)](https://uart.cz/2773/the-new-packet-radio/)
## License
This project is released under the **GPL v3.0 license**, same as the original
NPR project by F4HDK. See [LICENSE](LICENSE) for full details.
## Contributing
Contributions are welcome! You can:
- Submit hardware design improvements (new PCB revisions, bugfixes)
- Help with firmware optimization, porting to newer MbedOS versions, or adding
features
- Share test results, deployment reports, and real-world feedback
- Translate documentation
For major changes, please open an issue first to discuss what you would like to
change.
If you have questions or suggestions, feel free to open an
[issue](https://github.com/slintak/NPR70/issues).