Major architecture reorganization, Wio Tracker L1 support, LED blink on packet activity, native USB for Heltec V3 (hardware mod required). See CHANGELOG.md for full details.
128 lines
3.1 KiB
TOML
128 lines
3.1 KiB
TOML
[workspace]
|
|
members = ["."]
|
|
|
|
[package]
|
|
name = "donglora"
|
|
version = "0.2.0"
|
|
edition = "2021"
|
|
build = "build.rs"
|
|
authors = ["Stephen Waits <steve@waits.net>"]
|
|
license = "MIT"
|
|
description = "Transparent LoRa radio over USB — plug in a board, talk LoRa from your host"
|
|
repository = "https://github.com/swaits/donglora"
|
|
keywords = ["lora", "radio", "embedded", "usb", "firmware"]
|
|
categories = ["embedded", "hardware-support", "no-std"]
|
|
|
|
# UPGRADE BLOCKED: embassy-executor 0.10 and ucobs 0.3 need Rust >= 1.93
|
|
# stable. The ESP Xtensa toolchain (espup) is a nightly fork that may not
|
|
# support the required language features or pass MSRV gating. Revisit when
|
|
# espup catches up. Check: rustup run esp rustc --version
|
|
[dependencies]
|
|
cfg-if = "1.0"
|
|
critical-section = "1.2"
|
|
defmt = "1.0"
|
|
embedded-hal = "1.0"
|
|
embedded-hal-async = "1.0"
|
|
embassy-embedded-hal = "0.6"
|
|
embassy-executor = "0.9"
|
|
embassy-sync = "0.8"
|
|
embassy-time = "0.5"
|
|
embassy-usb = { version = "0.6", features = ["defmt"] }
|
|
embassy-usb-driver = "0.2"
|
|
ucobs = { version = "0.3", features = ["legacy-msrv"] }
|
|
heapless = "0.9"
|
|
lora-phy = "3.0"
|
|
static_cell = "2.1"
|
|
|
|
# Display rendering
|
|
display-interface = "0.5"
|
|
embedded-graphics = "0.8"
|
|
ssd1306 = { version = "0.10", features = ["async"] }
|
|
|
|
# Async IO traits and combinators
|
|
embedded-io-async = "0.7"
|
|
embassy-futures = "0.1"
|
|
|
|
# ESP32-S3 (Heltec V3) — requires esp toolchain (espup)
|
|
esp-backtrace = { version = "0.18", optional = true, features = [
|
|
"esp32s3",
|
|
"panic-handler",
|
|
"defmt",
|
|
] }
|
|
esp-hal = { version = "1.0", optional = true, features = [
|
|
"esp32s3",
|
|
"unstable",
|
|
] }
|
|
esp-println = { version = "0.16", optional = true, features = [
|
|
"esp32s3",
|
|
"defmt-espflash",
|
|
] }
|
|
esp-rtos = { version = "0.2", optional = true, features = [
|
|
"esp32s3",
|
|
"embassy",
|
|
] }
|
|
|
|
# nRF52840 (RAK 4631)
|
|
cortex-m = { version = "0.7", optional = true, features = ["critical-section-single-core"] }
|
|
cortex-m-rt = { version = "0.7", optional = true, features = ["set-vtor"] }
|
|
defmt-rtt = { version = "1.0", optional = true }
|
|
embassy-nrf = { version = "0.10", optional = true, features = [
|
|
"nrf52840",
|
|
"gpiote",
|
|
"time-driver-rtc1",
|
|
"defmt",
|
|
] }
|
|
panic-probe = { version = "1.0", optional = true, features = ["print-defmt"] }
|
|
|
|
[build-dependencies]
|
|
minijinja = "2.18"
|
|
owo-colors = "4.3"
|
|
|
|
[features]
|
|
heltec_v3 = [
|
|
"dep:esp-backtrace",
|
|
"dep:esp-hal",
|
|
"dep:esp-println",
|
|
"dep:esp-rtos",
|
|
]
|
|
heltec_v3_uart = [
|
|
"dep:esp-backtrace",
|
|
"dep:esp-hal",
|
|
"dep:esp-println",
|
|
"dep:esp-rtos",
|
|
]
|
|
heltec_v4 = [
|
|
"dep:esp-backtrace",
|
|
"dep:esp-hal",
|
|
"dep:esp-println",
|
|
"dep:esp-rtos",
|
|
]
|
|
rak_wisblock_4631 = [
|
|
"dep:cortex-m",
|
|
"dep:cortex-m-rt",
|
|
"dep:defmt-rtt",
|
|
"dep:embassy-nrf",
|
|
"dep:panic-probe",
|
|
"embassy-executor/arch-cortex-m",
|
|
"embassy-executor/executor-thread",
|
|
]
|
|
wio_tracker_l1 = [
|
|
"dep:cortex-m",
|
|
"dep:cortex-m-rt",
|
|
"dep:defmt-rtt",
|
|
"dep:embassy-nrf",
|
|
"dep:panic-probe",
|
|
"embassy-executor/arch-cortex-m",
|
|
"embassy-executor/executor-thread",
|
|
]
|
|
|
|
[lints.clippy]
|
|
undocumented_unsafe_blocks = "deny"
|
|
|
|
[profile.release]
|
|
codegen-units = 1
|
|
lto = "fat"
|
|
opt-level = 3 # "s"/"z" break Xtensa (l32r literal range exceeded)
|
|
panic = "abort"
|
|
strip = true
|