- boards/seeed/xiao_wio_sx1262: add overlay, .conf, board.yml - app: support full set of SX12xx bandwidths; default BW set to 62 (62.5 kHz) - Update Kconfig and prj.conf - Update lora_modem.h/c for validation and mapping
68 lines
2.1 KiB
Markdown
68 lines
2.1 KiB
Markdown
# LoRa KISS Modem
|
||
|
||
This project implements a KISS (Keep It Simple Stupid) modem for LoRa radios, targeting widely available commercial development boards (e.g., Heltec, RAK, Seeed, ESP32, nRF52840). It bridges a KISS serial interface to a LoRa radio, enabling packet radio applications over long-range wireless links.
|
||
|
||
## Features
|
||
- KISS TNC protocol over UART/USB serial
|
||
- LoRa radio support (Semtech LR11xx and compatible)
|
||
- Zephyr RTOS-based for portability and reliability
|
||
- No dynamic memory allocation (static stack/heap usage)
|
||
- Designed for low-power, embedded use
|
||
|
||
## Hardware Requirements
|
||
- Supported LoRa development board (e.g., Heltec, RAK, Seeed, ESP32, nRF52840)
|
||
- LoRa radio module (LR11xx or compatible)
|
||
- USB or UART connection to host
|
||
|
||
## Building the Firmware
|
||
|
||
### Prerequisites
|
||
- [Zephyr SDK](https://docs.zephyrproject.org/latest/develop/getting_started/index.html)
|
||
- [west](https://docs.zephyrproject.org/latest/develop/west/index.html) (Zephyr meta-tool)
|
||
- Board support package for your target board
|
||
|
||
### Steps
|
||
1. **Initialize Zephyr workspace (if not already):**
|
||
```sh
|
||
west init -l .
|
||
west update
|
||
west zephyr-export
|
||
```
|
||
2. **Build for your board:**
|
||
Replace `<board>` with your board's Zephyr name (e.g., `heltec_wifi_lora32_v2`).
|
||
```sh
|
||
west build -b <board> .
|
||
```
|
||
Example:
|
||
```sh
|
||
west build -b heltec_wifi_lora32_v2 .
|
||
```
|
||
|
||
## Flashing the Firmware
|
||
|
||
1. **Connect your board via USB.**
|
||
2. **Flash using west:**
|
||
```sh
|
||
west flash
|
||
```
|
||
(You may need to specify `--runner` or additional options depending on your board.)
|
||
|
||
## Serial Interface
|
||
- Default baud rate: 115200
|
||
- KISS protocol framing
|
||
- Connect to `/dev/ttyUSBx` or equivalent on your host
|
||
|
||
## Directory Structure
|
||
- `app/` – Zephyr application code
|
||
- `drivers/` – LoRa radio drivers (e.g., LR11xx)
|
||
- `boards/` – Board overlays and configuration
|
||
- `dts/` – Device tree sources
|
||
- `zephyr/` – Zephyr RTOS (west workspace)
|
||
|
||
## License
|
||
See LICENSE file for details.
|
||
|
||
## References
|
||
- [KISS TNC Protocol](https://en.wikipedia.org/wiki/KISS_(TNC))
|
||
- [Zephyr Project Documentation](https://docs.zephyrproject.org/)
|