# 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/)
