feat: initial lora-dongle firmware scaffold
Transparent LoRa-over-USB dongle firmware supporting Heltec V3 (ESP32-S3) and RAK 4631 (nRF52840) boards. Actor-model architecture with typed channels between USB, radio, and display tasks. - Protocol: Command/Response enums with COBS+postcard framing design - Board abstraction: auto-discovered via build.rs Jinja2 codegen - Radio task: SX1262 state machine (Idle → Receiving ↔ Transmitting) - Display task: optional SSD1306 dashboard via StatusWatch - RAK 4631: fully wired SPI/USB/I2C peripherals, clippy-clean - Heltec V3: structure in place, awaits espup Xtensa toolchain
This commit is contained in:
20 files changed
+2599
No files matched your search
+49
@@ -0,0 +1,49 @@
|
||||
[package]
|
||||
name = "lora-dongle"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
build = "build.rs"
|
||||
|
||||
[dependencies]
|
||||
cfg-if = "1.0"
|
||||
critical-section = "1.2"
|
||||
defmt = "0.3"
|
||||
embassy-embedded-hal = "0.2"
|
||||
embassy-executor = { version = "0.6", features = ["task-arena-size-12288", "executor-thread"] }
|
||||
embassy-sync = "0.6"
|
||||
embassy-time = "0.3"
|
||||
embassy-usb = { version = "0.3", features = ["defmt"] }
|
||||
heapless = { version = "0.8", features = ["serde"] }
|
||||
lora-phy = "3.0"
|
||||
postcard = { version = "1.0", default-features = false }
|
||||
serde = { version = "1.0", default-features = false, features = ["derive"] }
|
||||
static_cell = "2.1"
|
||||
|
||||
# ESP32-S3 (Heltec V3)
|
||||
esp-backtrace = { version = "0.14", optional = true, features = ["esp32s3", "panic-handler", "defmt"] }
|
||||
esp-hal = { version = "0.22", optional = true, features = ["esp32s3"] }
|
||||
esp-hal-embassy = { version = "0.5", optional = true, features = ["esp32s3"] }
|
||||
esp-println = { version = "0.12", optional = true, features = ["esp32s3", "defmt-espflash"] }
|
||||
|
||||
# nRF52840 (RAK 4631)
|
||||
cortex-m-rt = { version = "0.7", optional = true }
|
||||
embassy-nrf = { version = "0.2", optional = true, features = ["nrf52840", "gpiote", "time-driver-rtc1", "defmt"] }
|
||||
panic-probe = { version = "0.3", optional = true, features = ["print-defmt"] }
|
||||
|
||||
[build-dependencies]
|
||||
minijinja = "2.0"
|
||||
owo-colors = "4.0"
|
||||
|
||||
[features]
|
||||
heltec_v3 = [
|
||||
"dep:esp-backtrace",
|
||||
"dep:esp-hal",
|
||||
"dep:esp-hal-embassy",
|
||||
"dep:esp-println",
|
||||
]
|
||||
rak_4631 = [
|
||||
"dep:cortex-m-rt",
|
||||
"dep:embassy-nrf",
|
||||
"dep:panic-probe",
|
||||
"embassy-executor/arch-cortex-m",
|
||||
]
|
||||
Reference in new issue
Block a user