Files
renderbug-bike/Cargo.toml
2026-03-09 10:27:34 +01:00

137 lines
4.1 KiB
TOML

[package]
edition = "2024"
name = "renderbug-bike"
rust-version = "1.92"
version = "0.1.0"
default-run = "renderbug-bike"
[[bin]]
name = "renderbug-bike"
path = "./src/bin/main.rs"
[features]
default = ["real-output", "radio", "motion", "oled"]
real-output = []
dual-core = []
simulation = []
radio = [
"dep:esp-radio",
"dep:reqwless",
"dep:trouble-host",
"esp-rtos/esp-radio"
]
motion = ["mpu", "gps"]
max-usb-power = []
wokwi = ["max-usb-power"]
mpu = ["dep:mpu6050-dmp"]
gps = ["dep:nmea"]
oled = ["dep:ssd1306", "dep:display-interface"]
rtt = ["dep:rtt-target"]
demo = []
[dependencies]
# The basic requirements for all features
figments = { path = "../figments/figments/", features = ["alloc", "embedded-graphics", "log-04"] }
figments-render = { path = "../figments/figments-render/", features = ["smart-leds", "micromath", "log-04"], default-features = false }
figments-esp32-ws2812-dma = { path = "../figments/figments-esp32-ws2812-dma/", features = ["esp32s3"] }
esp-bootloader-esp-idf = { version = "0.4.0", features = ["esp32s3"] }
esp-hal = { version = "1.0.0", features = [
"esp32s3",
"unstable",
"log-04"
] }
esp-alloc = { version = "0.9.0", default-features = false, features = ["internal-heap-stats"] }
esp-backtrace = { version = "0.18", features = ["esp32s3", "halt-cores", "panic-handler", "println"] }
esp-println = { version = "0.16", features = ["esp32s3", "log-04"] }
# for more networking protocol support see https://crates.io/crates/edge-net
critical-section = "1.2.0"
embassy-executor = { version = "0.9.0", default-features = false, features = [
"log",
] }
embassy-time = { version = "0.5.0", default-features = false, features = ["log"] }
esp-rtos = { version = "0.2.0", features = [
"embassy",
"esp-alloc",
"esp32s3",
# "rtos-trace",
"log-04"
] }
log = "0.4"
static_cell = "2.1.1"
rgb = "0.8.52"
smart-leds = "0.4.0"
embassy-sync = "0.7.2"
embassy-embedded-hal = "0.5.0"
embedded-hal-async = "1.0.0"
nalgebra = { version = "0.33.2", default-features = false, features = ["alloc", "libm"] }
xtensa-lx-rt = { version = "*", features = ["float-save-restore"] }
micromath = "2.1.0"
enumset = "1.1.10"
enum-map = "2.7.3"
portable-atomic = { version = "1.11", features = ["critical-section"] }
embassy-futures = { version = "0.1.2", features = ["log"] }
embedded-graphics = { version = "0.8.1", features = ["nalgebra_support"] }
ssd1306 = { version = "0.10.0", features = ["async"], optional = true }
display-interface = { version = "0.5.0", optional = true }
# Telemetry outputs
esp-radio = { version = "*", optional = true, features = [
"esp-alloc",
"esp32s3",
"log-04",
"wifi",
"ble",
"coex",
"unstable"
] }
embassy-net = { version = "0.7.1", features = ["alloc", "dns", "medium-ethernet", "proto-ipv4", "tcp", "udp", "dhcpv4"] }
reqwless = { version = "0.13.0", optional = true, features = ["log", "alloc"] }
trouble-host = { version = "0.5.1", optional = true, features = ["log"] }
# Sensors
nmea = { version = "0.7.0", optional = true, default-features = false, features = [
"GGA",
"GSA",
"GSV",
"RMC",
"VTG",
"GLL",
"GST",
"all-sentences"
] }
mpu6050-dmp = { version = "0.6.1", features = ["async"], optional = true }
# RTT debugging
rtt-target = { version = "0.6.2", optional = true }
# Simulation
esp-storage = { version = "0.7.0", features = ["esp32s3", "critical-section"] }
embedded-storage = "0.3.1"
rmp = { path = "../msgpack-rust/rmp/", default-features = false }
heapless = { version = "0.9.1", features = ["portable-atomic"] }
num-traits = { version = "0.2.19", default-features = false }
rtos-trace = { version = "0.2.1", default-features = false, features = ["trace_impl"] }
[profile.dev]
# Rust debug is too slow.
# For debug builds always builds with some optimization
opt-level = "s"
[profile.release]
codegen-units = 1 # LLVM can perform better optimizations using a single thread
debug = 2
debug-assertions = false
incremental = false
lto = 'fat'
opt-level = 's'
overflow-checks = false
[profile.dev.package.esp-radio]
opt-level = 3
[build-dependencies]
image = "0.25"
rmp = { path = "../msgpack-rust/rmp/" }
csv = "1.3"