From f6767d18273073df5964cad7ca748032477a0613 Mon Sep 17 00:00:00 2001 From: Empire Date: Thu, 13 Nov 2025 21:33:01 +0100 Subject: [PATCH] refactor: organize dependencies in Cargo.toml for clarity and consistency --- Software/MainBoard/rust/Cargo.toml | 134 ++++++++++++----------------- 1 file changed, 57 insertions(+), 77 deletions(-) diff --git a/Software/MainBoard/rust/Cargo.toml b/Software/MainBoard/rust/Cargo.toml index e49a396..cf4c5f7 100644 --- a/Software/MainBoard/rust/Cargo.toml +++ b/Software/MainBoard/rust/Cargo.toml @@ -37,19 +37,27 @@ partition_table = "partitions.csv" [dependencies] -# Shared CAN API +# Project/Shared canapi = { path = "../../Shared/canapi" } -#ESP stuff -esp-bootloader-esp-idf = { version = "0.4.0", features = ["esp32c6"] } -esp-hal = { version = "1.0.0", features = [ - "esp32c6", - "log-04", - "unstable", - "rt" -] } -log = "0.4.28" -embassy-net = { version = "0.7.1", default-features = false, features = [ +# Platform and ESP-specific runtime/boot/runtime utilities +log = "0.4.28" +esp-bootloader-esp-idf = { version = "0.4.0", features = ["esp32c6", "log-04"] } +esp-hal = { version = "1.0.0", features = ["esp32c6", "log-04"] } +esp-rtos = { version = "0.2.0", features = ["esp32c6", "embassy", "esp-radio"] } +esp-backtrace = { version = "0.18.1", features = ["esp32c6", "panic-handler", "println", "colors", "custom-halt"] } +esp-println = { version = "0.16.1", features = ["esp32c6", "log-04", "auto"] } +esp-storage = { version = "0.8.1", features = ["esp32c6"] } +esp-radio = { version = "0.17.0", features = ["esp32c6", "log-04", "smoltcp", "wifi", "unstable"] } +esp-alloc = { version = "0.9.0", features = ["esp32c6", "internal-heap-stats"] } + +# Async runtime (Embassy core) +embassy-executor = { version = "0.9.1", features = ["log", "nightly"] } +embassy-time = { version = "0.5.0", features = ["log"], default-features = false } +embassy-sync = { version = "0.7.2", features = ["log"] } + +# Networking and protocol stacks +embassy-net = { version = "0.7.1", features = [ "dhcpv4", "log", "medium-ethernet", @@ -58,33 +66,6 @@ embassy-net = { version = "0.7.1", default-features = false, features = [ "proto-ipv4", "dns" ] } -embedded-io = "0.7.1" -embedded-io-async = "0.7.0" -esp-alloc = "0.8.0" -esp-backtrace = { version = "0.18.1", features = [ - "esp32c6", - "panic-handler", - "println", - "colors", - "custom-halt" -] } -esp-println = { version = "0.16.1", features = ["esp32c6", "log-04"] } -# for more networking protocol support see https://crates.io/crates/edge-net -embassy-executor = { version = "0.9.1", features = [ - "log", - "nightly" -] } -embassy-time = { version = "0.5.0", features = ["log"], default-features = false } -esp-storage = { version = "0.8.1", features = ["esp32c6"] } - -esp-radio = { version = "0.17.0", features = [ - "esp-alloc", - "esp32c6", - "log-04", - "smoltcp", - "wifi", - "unstable" -] } smoltcp = { version = "0.12.0", default-features = false, features = [ "alloc", "log", @@ -100,56 +81,55 @@ smoltcp = { version = "0.12.0", default-features = false, features = [ "socket-tcp", "socket-udp", ] } -#static_cell = "2.1.1" -embedded-hal = "1.0.0" -embedded-hal-bus = { version = "0.3.0" } - -#Hardware additional driver - -#bq34z100 = { version = "0.3.0", default-features = false } -onewire = "0.4.0" -#strum = { version = "0.27.0", default-feature = false, features = ["derive"] } -measurements = "0.11.1" -ds323x = "0.7.0" - -#json -serde = { version = "1.0.228", features = ["derive", "alloc"], default-features = false } -serde_json = { version = "1.0.145", default-features = false, features = ["alloc"] } - -chrono = { version = "0.4.42", default-features = false, features = ["iana-time-zone", "alloc", "serde"] } -chrono-tz = { version = "0.10.4", default-features = false, features = ["filter-by-regex"] } -eeprom24x = "0.7.2" -crc = "3.3.0" -strum_macros = "0.27.2" -unit-enum = "1.4.3" -pca9535 = { version = "2.0.0" } -ina219 = { version = "0.2.0" } -embedded-storage = "0.3.1" -portable-atomic = "1.11.1" -embassy-sync = { version = "0.7.2", features = ["log"] } -async-trait = "0.1.89" -bq34z100 = { version = "0.4.0", default-features = false } +sntpc = { version = "0.6.1", default-features = false, features = ["log", "embassy-socket", "embassy-socket-ipv6"] } edge-dhcp = "0.6.0" edge-nal = "0.5.0" edge-nal-embassy = "0.6.0" -static_cell = "2.1.1" edge-http = { version = "0.6.1", features = ["log"] } + +# Hardware abstraction traits and HAL adapters +embedded-hal = "1.0.0" +embedded-storage = "0.3.1" +embassy-embedded-hal = "0.5.0" +embedded-can = "0.4.1" +nb = "1.1.0" + +# Concrete hardware drivers and sensors/IO expanders +onewire = "0.4.0" +ds323x = "0.7.0" +eeprom24x = "0.7.2" +pca9535 = { version = "2.0.0" } +ina219 = { version = "0.2.0" } +bq34z100 = { version = "0.4.0", default-features = false } + +# Storage and filesystem littlefs2 = { version = "0.6.1", features = ["c-stubs", "alloc"] } littlefs2-core = "0.1.2" + +# Serialization / codecs +serde = { version = "1.0.228", features = ["derive", "alloc"], default-features = false } +serde_json = { version = "1.0.145", default-features = false, features = ["alloc"] } +bincode = { version = "2.0.1", default-features = false, features = ["derive"] } + +# Time and time zones +chrono = { version = "0.4.42", default-features = false, features = ["iana-time-zone", "alloc", "serde"] } +chrono-tz = { version = "0.10.4", default-features = false, features = ["filter-by-regex"] } + +# Utilities and pure functional code (no hardware I/O) +heapless = { version = "0.7.17", features = ["serde"] } # stay in sync with mcutie version +static_cell = "2.1.1" +portable-atomic = "1.11.1" +crc = "3.3.0" bytemuck = { version = "1.24.0", features = ["derive", "min_const_generics", "pod_saturating", "extern_crate_alloc"] } deranged = "0.5.5" -embassy-embedded-hal = "0.5.0" -bincode = { version = "2.0.1", default-features = false, features = ["derive"] } -sntpc = { version = "0.6.1", default-features = false, features = ["log", "embassy-socket", "embassy-socket-ipv6"] } +strum_macros = "0.27.2" +unit-enum = "1.4.3" +async-trait = "0.1.89" option-lock = { version = "0.3.1", default-features = false } +measurements = "0.11.1" -#stay in sync with mcutie version here! -heapless = { version = "0.7.17", features = ["serde"] } +# Project-specific mcutie = { version = "0.3.0", default-features = false, features = ["log", "homeassistant"] } -nb = "1.1.0" -embedded-can = "0.4.1" -esp-rtos = { version = "0.2.0", features = ["esp32c6", "embassy"] } - [patch.crates-io] mcutie = { git = 'https://github.com/empirephoenix/mcutie.git' }