Ryan Malloy dbed318124 Initial commit: Heltec V3 MeshCore repeater
Standalone PlatformIO project using MeshCore as a library.

Features:
- Heltec LoRa32 V3 support (ESP32-S3 + SX1262)
- OLED display integration
- OTA firmware updates via WiFi
- Serial CLI for configuration

Uses symlinked MeshCore library from ../MeshCore
2026-01-25 12:15:15 -07:00

74 lines
1.8 KiB
Markdown

# Heltec V3 MeshCore Repeater
A standalone MeshCore repeater project for the Heltec LoRa32 V3 board.
## Overview
This project builds a LoRa mesh repeater using the [MeshCore](https://github.com/ryanmalloy/MeshCore) library. The repeater:
- Forwards mesh packets between nodes
- Displays status on the onboard OLED
- Supports OTA (Over-The-Air) firmware updates
- Provides a serial CLI for configuration
## Project Structure
```
repeater/
├── platformio.ini # Build configuration
├── src/
│ ├── main.cpp # Entry point
│ ├── MyMesh.cpp # Repeater mesh logic
│ ├── MyMesh.h
│ ├── UITask.cpp # Display handling
│ ├── UITask.h
│ └── RateLimiter.h
└── docs/ # Documentation
```
## Quick Start
```bash
# Build
pio run
# Flash via USB
pio run -t upload
# Monitor serial output
pio device monitor
```
See [Building](building.md) and [Flashing](flashing.md) for details.
## Configuration
Edit `platformio.ini` to customize your repeater:
```ini
; ===== CUSTOMIZE THESE =====
-D ADVERT_NAME='"RPM Repeater"' ; Name shown to other nodes
-D ADVERT_LAT=0.0 ; GPS latitude
-D ADVERT_LON=0.0 ; GPS longitude
-D ADMIN_PASSWORD='"password"' ; Admin password for CLI
-D MAX_NEIGHBOURS=50 ; Max tracked neighbors
```
## Serial Commands
Connect at 115200 baud to access the CLI. See [Serial Commands](serial-commands.md).
## OTA Updates
The repeater supports wireless firmware updates. See [Flashing](flashing.md#ota-updates).
## Hardware
- **Board:** Heltec WiFi LoRa 32 V3 (ESP32-S3 + SX1262)
- **Display:** 128x64 SSD1306 OLED
- **Radio:** SX1262 LoRa @ 910.525 MHz (US default)
## Dependencies
This project uses MeshCore as a symlinked library from `../MeshCore`. Ensure that directory exists.