[package]
edition = "2024"
name = "protoflight"
version = "0.1.2"
authors = ["Martin Budden"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Protoflight flight controller."
readme = "README.md"
keywords = [
"flight",
"no-std",
]
categories = [
"embedded",
"mathematics",
"no-std",
"science::robotics",
"aerospace::drones",
]
license = "GPL-3.0-or-later"
repository = "https://github.com/martinbudden/crate-protoflight"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
align = [
"vqm/align",
"signal-filters/align",
]
autopilot = []
barometer = ["blackbox-logger/barometer"]
battery = []
blackbox = [
"dep:blackbox-logger",
"dep:embedded-sdmmc",
]
cms = []
dashboard = []
debug = []
default = [
"libm",
"std",
"barometer",
"blackbox",
"debug",
"dshot_telemetry",
"gps",
"huffman",
"msp",
"rpm_filters",
"rtt-debug",
"serde",
]
dshot_telemetry = ["blackbox-logger/dshot_telemetry"]
eight_motors = [
"blackbox-logger/eight_motors",
"motor-mixers/eight_motors",
]
gps = ["blackbox-logger/gps"]
huffman = ["blackbox-logger/huffman"]
libm = [
"dep:libm",
"num-traits/libm",
"vqm/libm",
"signal-filters/libm",
"radio-controllers/libm",
]
magnetometer = ["blackbox-logger/magnetometer"]
max7456 = []
msp = []
multicore = []
optical_flow = []
osd = []
osd_hd = []
rangefinder = ["blackbox-logger/rangefinder"]
rp2350 = [
"dep:cortex-m-rt",
"dep:embassy-rp",
"dep:cyw43-pio",
"embassy-rp/rp235xa",
"embassy-rp/rt",
"embassy-rp/executor-thread",
"embassy-rp/executor-interrupt",
"embassy-executor/platform-cortex-m",
]
rpm_filters = []
rtt-debug = ["dep:rtt-target"]
serde = [
"dep:serde",
"blackbox-logger/serde",
"imu-sensors/serde",
"motor-mixers/serde",
"radio-controllers/serde",
"simple-bitset/serde",
"vqm/serde",
]
servos = ["blackbox-logger/servos"]
simd = [
"vqm/simd",
"signal-filters/simd",
]
std = [
"critical-section/std",
"derive_more/std",
"embassy-time/std",
"embassy-executor/platform-std",
"imu-sensors/std",
"num-traits/std",
"signal-filters/std",
"vqm/std",
"log/std",
"dep:embedded-storage-file",
"dep:env_logger",
"dep:env_filter",
]
vtx = []
[[bin]]
name = "protoflight"
path = "src/main.rs"
[dependencies.blackbox-logger]
version = "0.1.9"
optional = true
default-features = false
[dependencies.cortex-m-rt]
version = "0.7.5"
optional = true
[dependencies.critical-section]
version = "1.2.0"
[dependencies.cyw43-pio]
version = "0.10.0"
optional = true
[dependencies.derive_more]
version = "2.1.1"
features = ["display"]
default-features = false
[dependencies.embassy-embedded-hal]
version = "0.6.0"
[dependencies.embassy-executor]
version = "0.10.0"
default-features = false
[dependencies.embassy-futures]
version = "0.1.2"
default-features = false
[dependencies.embassy-rp]
version = "0.10.0"
features = [
"time-driver",
"critical-section-impl",
]
optional = true
default-features = false
[dependencies.embassy-sync]
version = "0.8.0"
default-features = false
[dependencies.embassy-time]
version = "0.5.1"
default-features = false
[dependencies.embedded-hal-async]
version = "1.0.0"
default-features = false
[dependencies.embedded-hal-bus]
version = "0.3.0"
features = ["async"]
[dependencies.embedded-sdmmc]
version = "0.9.0"
features = ["log"]
optional = true
default-features = false
[dependencies.embedded-storage-async]
version = "0.4.1"
default-features = false
[dependencies.embedded-storage-file]
version = "0.2.0"
optional = true
default-features = false
[dependencies.env_filter]
version = "2.0.0"
optional = true
default-features = false
[dependencies.env_logger]
version = "0.11.10"
optional = true
default-features = false
[dependencies.imu-sensors]
version = "0.1.3"
[dependencies.libm]
version = "0.2.16"
optional = true
[dependencies.log]
version = "0.4.33"
default-features = false
[dependencies.motor-mixers]
version = "0.1.5"
[dependencies.num-traits]
version = "0.2.19"
default-features = false
[dependencies.paste]
version = "1.0.15"
default-features = false
[dependencies.pidsk-controller]
version = "0.1.8"
[dependencies.postcard]
version = "1.1.3"
features = ["embedded-io"]
optional = true
default-features = false
[dependencies.radio-controllers]
version = "0.1.6"
[dependencies.rtt-target]
version = "0.6.2"
optional = true
[dependencies.sensor-fusion]
version = "0.1.9"
[dependencies.sequential-storage]
version = "7.2.0"
features = ["postcard"]
default-features = false
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true
default-features = false
[dependencies.signal-filters]
version = "0.1.10"
[dependencies.simple-bitset]
version = "0.1.5"
[dependencies.static_cell]
version = "2.1.1"
[dependencies.stream-buf]
version = "0.1.2"
[dependencies.strum]
version = "0.28.0"
features = ["derive"]
default-features = false
[dependencies.tinyrand]
version = "0.5.0"
[dependencies.vqm]
version = "0.1.14"
[dev-dependencies.approx]
version = "0.5.1"
default-features = false
[build-dependencies.rustc_version]
version = "0.4.1"
[profile.debugging]
debug = 2
inherits = "dev"
[profile.dev]
opt-level = 0
lto = false
codegen-units = 256
debug = "line-tables-only"
debug-assertions = true
rpath = false
panic = "unwind"
overflow-checks = true
incremental = true
strip = "none"
[profile.dev.package."*"]
debug = 0
[profile.release]
opt-level = 3
lto = false
codegen-units = 16
debug = 0
debug-assertions = false
rpath = false
panic = "abort"
overflow-checks = false
incremental = false
strip = "none"
[profile.release-lto]
lto = true
codegen-units = 1
inherits = "release"