diff --git a/controller/Cargo.lock b/controller/Cargo.lock index 87ba8f8..e64dc10 100644 --- a/controller/Cargo.lock +++ b/controller/Cargo.lock @@ -110,9 +110,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "az" @@ -147,7 +147,16 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ - "bit-vec", + "bit-vec 0.6.3", +] + +[[package]] +name = "bit-set" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" +dependencies = [ + "bit-vec 0.7.0", ] [[package]] @@ -156,6 +165,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bit-vec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" + [[package]] name = "bitfield" version = "0.13.2" @@ -176,9 +191,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "block-buffer" @@ -191,12 +206,12 @@ dependencies = [ [[package]] name = "bt-hci" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a6508c63d7d137e8188833d9ed3ca97e40d676cf5217874c8c1c24851b012d" +checksum = "d69c6b9d78fe4db539449fc8782dd2554fd4baee27f6e6dbf2e4757fcbc36139" dependencies = [ "defmt", - "embassy-sync 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "embassy-sync 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "embedded-io", "embedded-io-async", "futures-intrusive", @@ -227,9 +242,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -274,7 +289,6 @@ name = "controller" version = "0.1.0" dependencies = [ "assign-resources", - "bt-hci", "byte-slice-cast 1.2.2", "cortex-m", "cortex-m-rt", @@ -290,6 +304,7 @@ dependencies = [ "embassy-net", "embassy-net-wiznet", "embassy-rp", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-time", "embassy-usb", "embassy-usb-logger", @@ -308,14 +323,14 @@ dependencies = [ "mpu6050", "nalgebra", "panic-probe", - "pio", - "pio-proc", + "pio 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pio-proc 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "portable-atomic", "rand", "reqwless", "serde", "serde-json-core", - "smart-leds", + "smart-leds 0.3.0", "st7789", "static_cell", "usbd-hid", @@ -336,29 +351,29 @@ dependencies = [ [[package]] name = "cortex-m-rt" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee84e813d593101b1723e13ec38b6ab6abbdbaaa4546553f5395ed274079ddb1" +checksum = "801d4dec46b34c299ccf6b036717ae0fce602faa4f4fe816d9013b9a7c9f5ba6" dependencies = [ "cortex-m-rt-macros", ] [[package]] name = "cortex-m-rt-macros" -version = "0.7.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7" +checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.96", ] [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -374,9 +389,9 @@ dependencies = [ [[package]] name = "critical-section" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crunchy" @@ -417,8 +432,8 @@ dependencies = [ [[package]] name = "cyw43" -version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.3.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "bt-hci", "cortex-m", @@ -426,26 +441,26 @@ dependencies = [ "defmt", "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-time", "embedded-hal 1.0.0", "embedded-io-async", "futures", "heapless 0.8.0", - "num_enum", + "num_enum 0.5.11", ] [[package]] name = "cyw43-pio" -version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.3.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "cyw43", "defmt", "embassy-rp", "fixed", - "pio", - "pio-proc", + "pio 0.2.1 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", + "pio-proc 0.2.2 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", ] [[package]] @@ -469,7 +484,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -480,7 +495,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -491,9 +506,9 @@ checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" [[package]] name = "defmt" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99dd22262668b887121d4672af5a64b238f026099f1a2a1b322066c9ecfe9e0" +checksum = "86f6162c53f659f65d00619fe31f14556a6e9f8752ccc4a41bd177ffcf3d6130" dependencies = [ "bitflags 1.3.2", "defmt-macros", @@ -501,24 +516,24 @@ dependencies = [ [[package]] name = "defmt-macros" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9f309eff1f79b3ebdf252954d90ae440599c26c2c553fe87a2d17195f2dcb" +checksum = "9d135dd939bad62d7490b0002602d35b358dce5fd9233a709d3c1ef467d4bde6" dependencies = [ "defmt-parser", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] name = "defmt-parser" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4a5fefe330e8d7f31b16a318f9ce81000d8e35e69b93eae154d16d2278f70f" +checksum = "3983b127f13995e68c1e29071e5d115cd96f215ccb5e6812e3728cd6f92653b3" dependencies = [ - "thiserror", + "thiserror 2.0.11", ] [[package]] @@ -632,11 +647,11 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" -version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.3.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "embassy-futures", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-time", "embedded-hal 0.2.7", "embedded-hal 1.0.0", @@ -648,38 +663,36 @@ dependencies = [ [[package]] name = "embassy-executor" -version = "0.6.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.7.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "cortex-m", "critical-section", "defmt", "document-features", "embassy-executor-macros", - "embassy-time-driver", - "embassy-time-queue-driver", ] [[package]] name = "embassy-executor-macros" -version = "0.5.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.6.2" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] name = "embassy-futures" version = "0.1.1" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" [[package]] name = "embassy-hal-internal" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "cortex-m", "critical-section", @@ -689,16 +702,16 @@ dependencies = [ [[package]] name = "embassy-net" -version = "0.4.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.6.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "defmt", "document-features", "embassy-net-driver", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-time", "embedded-io-async", - "embedded-nal-async", + "embedded-nal-async 0.8.0", "heapless 0.8.0", "managed", "smoltcp", @@ -707,7 +720,7 @@ dependencies = [ [[package]] name = "embassy-net-driver" version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "defmt", ] @@ -715,17 +728,17 @@ dependencies = [ [[package]] name = "embassy-net-driver-channel" version = "0.3.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "embassy-futures", "embassy-net-driver", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", ] [[package]] name = "embassy-net-wiznet" -version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.2.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "defmt", "embassy-futures", @@ -737,8 +750,8 @@ dependencies = [ [[package]] name = "embassy-rp" -version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.3.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "atomic-polyfill", "cfg-if", @@ -750,9 +763,10 @@ dependencies = [ "embassy-embedded-hal", "embassy-futures", "embassy-hal-internal", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-time", "embassy-time-driver", + "embassy-time-queue-utils", "embassy-usb-driver", "embedded-hal 0.2.7", "embedded-hal 1.0.0", @@ -764,79 +778,84 @@ dependencies = [ "embedded-storage-async", "fixed", "nb 1.1.0", - "pio", - "pio-proc", + "pio 0.2.1 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", + "pio-proc 0.2.2 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", "rand_core", "rp-pac", "rp2040-boot2", "sha2-const-stable", + "smart-leds 0.4.0", ] [[package]] name = "embassy-sync" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e0c49ff02ebe324faf3a8653ba91582e2d0a7fdef5bc88f449d5aa1bfcc05c" +checksum = "8d2c8cdff05a7a51ba0087489ea44b0b1d97a296ca6b1d6d1a33ea7423d34049" dependencies = [ "cfg-if", "critical-section", "embedded-io-async", + "futures-sink", "futures-util", "heapless 0.8.0", ] [[package]] name = "embassy-sync" -version = "0.6.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.6.2" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "cfg-if", "critical-section", "embedded-io-async", + "futures-sink", "futures-util", "heapless 0.8.0", ] [[package]] name = "embassy-time" -version = "0.3.2" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "cfg-if", "critical-section", "defmt", "document-features", "embassy-time-driver", - "embassy-time-queue-driver", "embedded-hal 0.2.7", "embedded-hal 1.0.0", "embedded-hal-async", "futures-util", - "heapless 0.8.0", ] [[package]] name = "embassy-time-driver" -version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.2.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "document-features", ] [[package]] -name = "embassy-time-queue-driver" +name = "embassy-time-queue-utils" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" +dependencies = [ + "embassy-executor", + "heapless 0.8.0", +] [[package]] name = "embassy-usb" -version = "0.3.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "defmt", "embassy-futures", "embassy-net-driver-channel", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-usb-driver", "heapless 0.8.0", "ssmarshal", @@ -846,18 +865,18 @@ dependencies = [ [[package]] name = "embassy-usb-driver" version = "0.1.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "defmt", ] [[package]] name = "embassy-usb-logger" -version = "0.2.0" -source = "git+https://github.com/embassy-rs/embassy#0ede8479dc4c6a58cfab0a5d4df41c0592405971" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy#c39076724f052fed6781b056bb79c9fa576b87a3" dependencies = [ "embassy-futures", - "embassy-sync 0.6.0 (git+https://github.com/embassy-rs/embassy)", + "embassy-sync 0.6.2 (git+https://github.com/embassy-rs/embassy)", "embassy-usb", "log", ] @@ -960,6 +979,15 @@ dependencies = [ "no-std-net", ] +[[package]] +name = "embedded-nal" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56a28be191a992f28f178ec338a0bf02f63d7803244add736d026a471e6ed77" +dependencies = [ + "nb 1.1.0", +] + [[package]] name = "embedded-nal-async" version = "0.7.1" @@ -967,10 +995,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72229137a4fc12d239b0b7f50f04b30790678da6d782a0f3f1909bf57ec4b759" dependencies = [ "embedded-io-async", - "embedded-nal", + "embedded-nal 0.8.0", "no-std-net", ] +[[package]] +name = "embedded-nal-async" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76959917cd2b86f40a98c28dd5624eddd1fa69d746241c8257eac428d83cb211" +dependencies = [ + "embedded-io-async", + "embedded-nal 0.9.0", +] + [[package]] name = "embedded-sdmmc" version = "0.7.0" @@ -1122,9 +1160,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1136,9 +1174,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1146,9 +1184,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-intrusive" @@ -1162,38 +1200,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-macro", @@ -1312,9 +1350,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "heapless" @@ -1384,9 +1422,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "ident_case" @@ -1396,12 +1434,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -1433,6 +1471,24 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + [[package]] name = "lalrpop" version = "0.19.12" @@ -1440,12 +1496,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b" dependencies = [ "ascii-canvas", - "bit-set", + "bit-set 0.5.3", "diff", "ena", "is-terminal", - "itertools", - "lalrpop-util", + "itertools 0.10.5", + "lalrpop-util 0.19.12", "petgraph", "regex", "regex-syntax 0.6.29", @@ -1455,6 +1511,28 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "lalrpop" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e56f323e2d610628d1f5bdd39168a774674ac7989ed67011963bb3f71edd797" +dependencies = [ + "ascii-canvas", + "bit-set 0.6.0", + "ena", + "itertools 0.13.0", + "lalrpop-util 0.21.0", + "petgraph", + "pico-args", + "regex", + "regex-syntax 0.8.5", + "sha3", + "string_cache", + "term", + "unicode-xid", + "walkdir", +] + [[package]] name = "lalrpop-util" version = "0.19.12" @@ -1465,10 +1543,19 @@ dependencies = [ ] [[package]] -name = "libc" -version = "0.2.158" +name = "lalrpop-util" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "108dc8f5dabad92c65a03523055577d847f5dcc00f3e7d3a68bc4d48e01d8fe1" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libm" @@ -1482,7 +1569,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "libc", ] @@ -1504,9 +1591,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "managed" @@ -1629,7 +1716,16 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive 0.7.3", ] [[package]] @@ -1644,10 +1740,21 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.19.0" +name = "num_enum_derive" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -1724,10 +1831,16 @@ dependencies = [ ] [[package]] -name = "pin-project-lite" -version = "0.2.14" +name = "pico-args" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -1742,7 +1855,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e09694b50f89f302ed531c1f2a7569f0be5867aee4ab4f8f729bbeec0078e3" dependencies = [ "arrayvec", - "num_enum", + "num_enum 0.5.11", + "paste", +] + +[[package]] +name = "pio" +version = "0.2.1" +source = "git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4#fa586448b0b223217eec8c92c19fe6823dd04cc4" +dependencies = [ + "arrayvec", + "num_enum 0.7.3", "paste", ] @@ -1752,12 +1875,22 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77532c2b8279aef98dfc7207ef15298a5a3d6b6cc76ccc8b65913d69f3a8dd6b" dependencies = [ - "lalrpop", - "lalrpop-util", - "pio", + "lalrpop 0.19.12", + "lalrpop-util 0.19.12", + "pio 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.29", ] +[[package]] +name = "pio-parser" +version = "0.2.2" +source = "git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4#fa586448b0b223217eec8c92c19fe6823dd04cc4" +dependencies = [ + "lalrpop 0.21.0", + "lalrpop-util 0.21.0", + "pio 0.2.1 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", +] + [[package]] name = "pio-proc" version = "0.2.2" @@ -1765,9 +1898,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b04dc870fb3a4fd8b3e4ca8c61b53bc8ac4eb78b66805d2b3c2e5c4829e0d7a" dependencies = [ "codespan-reporting", - "lalrpop-util", - "pio", - "pio-parser", + "lalrpop-util 0.19.12", + "pio 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pio-parser 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro-error", "proc-macro2", "quote", @@ -1775,6 +1908,21 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "pio-proc" +version = "0.2.2" +source = "git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4#fa586448b0b223217eec8c92c19fe6823dd04cc4" +dependencies = [ + "codespan-reporting", + "lalrpop-util 0.21.0", + "pio 0.2.1 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", + "pio-parser 0.2.2 (git+https://github.com/rp-rs/pio-rs?rev=fa586448b0b223217eec8c92c19fe6823dd04cc4)", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "polyval" version = "0.6.2" @@ -1789,9 +1937,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" dependencies = [ "critical-section", ] @@ -1845,19 +1993,41 @@ dependencies = [ ] [[package]] -name = "proc-macro2" -version = "1.0.86" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1889,11 +2059,11 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -1904,30 +2074,30 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -1938,9 +2108,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwless" @@ -1953,7 +2123,7 @@ dependencies = [ "defmt", "embedded-io", "embedded-io-async", - "embedded-nal-async", + "embedded-nal-async 0.7.1", "embedded-tls", "heapless 0.8.0", "hex", @@ -1974,8 +2144,9 @@ dependencies = [ [[package]] name = "rp-pac" -version = "6.0.0" -source = "git+https://github.com/embassy-rs/rp-pac.git?rev=a7f42d25517f7124ad3b4ed492dec8b0f50a0e6c#a7f42d25517f7124ad3b4ed492dec8b0f50a0e6c" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af65855c40b2c35079514c5489abffc0429347fef25d8467ff98ad84b4322d3" dependencies = [ "cortex-m", "cortex-m-rt", @@ -2005,14 +2176,14 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.24", ] [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -2020,6 +2191,15 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2050,9 +2230,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "semver-parser" @@ -2062,9 +2242,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] @@ -2082,13 +2262,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] @@ -2108,6 +2288,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f179d4e11094a893b82fff208f74d448a7512f99f5a0acbd5c679b705f83ed9" +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + [[package]] name = "simba" version = "0.7.3" @@ -2138,7 +2328,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38dd45fa275f70b4110eac5f5182611ad384f88bb22b68b9a9c3cafd7015290b" dependencies = [ - "smart-leds-trait", + "smart-leds-trait 0.2.1", +] + +[[package]] +name = "smart-leds" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66df34e571fa9993fa6f99131a374d58ca3d694b75f9baac93458fe0d6057bf0" +dependencies = [ + "smart-leds-trait 0.3.0", ] [[package]] @@ -2150,10 +2349,20 @@ dependencies = [ "rgb", ] +[[package]] +name = "smart-leds-trait" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bc64ee02bbbf469603016df746c0ed224f263280b6ebb49b7ebadbff375c572" +dependencies = [ + "rgb", +] + [[package]] name = "smoltcp" -version = "0.11.0" -source = "git+https://github.com/smoltcp-rs/smoltcp?rev=dd43c8f189178b0ab3bda798ed8578b5b0a6f094#dd43c8f189178b0ab3bda798ed8578b5b0a6f094" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad095989c1533c1c266d9b1e8d70a1329dd3723c3edac6d03bbd67e7bf6f4bb" dependencies = [ "bitflags 1.3.2", "byteorder", @@ -2248,9 +2457,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -2279,22 +2488,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", ] [[package]] @@ -2314,9 +2543,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-width" @@ -2424,6 +2653,16 @@ dependencies = [ "vcell", ] +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2561,7 +2800,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.96", ] [[package]] diff --git a/controller/Cargo.toml b/controller/Cargo.toml index bffed1a..d9a5555 100644 --- a/controller/Cargo.toml +++ b/controller/Cargo.toml @@ -6,17 +6,17 @@ license = "MIT OR Apache-2.0" [dependencies] -embassy-executor = { version = "0.6.0", git="https://github.com/embassy-rs/embassy", features = ["task-arena-size-98304", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } -embassy-time = { version = "0.3.2", git="https://github.com/embassy-rs/embassy", features = ["defmt", "defmt-timestamp-uptime"] } -embassy-rp = { version = "0.2.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "unstable-pac", "time-driver", "critical-section-impl", "rp2040"] } +embassy-executor = { version = "0.7.0", git="https://github.com/embassy-rs/embassy", features = ["task-arena-size-98304", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] } +embassy-time = { version = "0.4.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "defmt-timestamp-uptime"] } +embassy-rp = { version = "0.3.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "unstable-pac", "time-driver", "critical-section-impl", "rp2040"] } embassy-sync = { version = "0.6.2", git="https://github.com/embassy-rs/embassy" } -embassy-usb = { version = "0.3.0", git="https://github.com/embassy-rs/embassy", features = ["defmt"] } -embassy-net = { version = "0.4.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "tcp", "udp", "raw", "dhcpv4", "medium-ethernet", "dns"] } -embassy-net-wiznet = { version = "0.1.0", git="https://github.com/embassy-rs/embassy", features = ["defmt"] } +embassy-usb = { version = "0.4.0", git="https://github.com/embassy-rs/embassy", features = ["defmt"] } +embassy-net = { version = "0.6.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "tcp", "udp", "raw", "dhcpv4", "medium-ethernet", "dns"] } +embassy-net-wiznet = { version = "0.2.0", git="https://github.com/embassy-rs/embassy", features = ["defmt"] } embassy-futures = { version = "0.1.0", git="https://github.com/embassy-rs/embassy"} -embassy-usb-logger = { version = "0.2.0", git="https://github.com/embassy-rs/embassy" } -cyw43 = { version = "0.2.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "firmware-logs", "bluetooth"] } -cyw43-pio = { version = "0.2.0", git="https://github.com/embassy-rs/embassy", features = ["defmt"] } +embassy-usb-logger = { version = "0.4.0", git="https://github.com/embassy-rs/embassy" } +cyw43 = { version = "0.3.0", git="https://github.com/embassy-rs/embassy", features = ["defmt", "firmware-logs", "bluetooth"] } +cyw43-pio = { version = "0.3.0", git="https://github.com/embassy-rs/embassy", features = ["defmt"] } defmt = "0.3" defmt-rtt = "0.4" @@ -58,7 +58,6 @@ pio = "0.2.1" rand = { version = "0.8.5", default-features = false } embedded-sdmmc = "0.7.0" -bt-hci = { version = "0.1.0", default-features = false, features = ["defmt"] } hex = { version = "0.4.3", default-features=false } mpu6050 = { git = "https://git.ank.dev/ank/mpu6050" } vl53l0x = "1.0.1" diff --git a/controller/src/main.rs b/controller/src/main.rs index d40e121..61e2f86 100644 --- a/controller/src/main.rs +++ b/controller/src/main.rs @@ -11,14 +11,16 @@ use core::array; use core::borrow::BorrowMut; use core::cell::RefCell; use core::fmt::Formatter; +use core::mem::transmute; use core::panic::PanicInfo; use core::str::from_utf8; -use bt_hci::cmd::info; -use cyw43_pio::PioSpi; +use cyw43_pio::{PioSpi, DEFAULT_CLOCK_DIVIDER}; use embassy_rp::i2c::{Async, I2c}; -use embassy_rp::multicore::spawn_core1; +use embassy_rp::multicore::{spawn_core1, Stack}; use embassy_rp::pwm::{self, Pwm}; +use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex; +use embassy_sync::channel::Channel; use embedded_hal_bus::i2c::RefCellDevice; use fixed::FixedU16; use log::*; @@ -37,7 +39,7 @@ use embedded_io_async::Write; use mpu6050::Mpu6050; use rand::RngCore; use reqwless::response; -use sensor_manager::{sensor_manager, SensorData}; +use sensor_manager::{sensor_manager, SensorData, SensorHardware}; use static_cell::StaticCell; use defmt_rtt as _; @@ -49,7 +51,7 @@ bind_interrupts!(struct Irqs { }); static mut CORE1_STACK: Stack<4096> = Stack::new(); -static CHANNEL: Channel = Channel::new(); +pub static CHANNEL: Channel = Channel::new(); #[embassy_executor::task] async fn logger_task(driver: Driver<'static, USB>) { @@ -101,57 +103,22 @@ async fn main(spawner: Spawner) { let scl = p.PIN_27; let config = embassy_rp::i2c::Config::default(); let bus1 = embassy_rp::i2c::I2c::new_async(p.I2C1, scl, sda, Irqs, config); - let bus1 = RefCell::new(bus1); - let mut tof2enable = Output::new(p.PIN_16, Level::Low); + let tof2enable = Output::new(p.PIN_16, Level::Low); + let hardware = SensorHardware { + bus_tof: unsafe {transmute(bus)}, + bus_gyro: unsafe {transmute(bus1)}, + tof2enable, + }; spawn_core1( p.CORE1, unsafe { &mut *core::ptr::addr_of_mut!(CORE1_STACK) }, move || { - sensor_manager(bus, tof2enable) + sensor_manager(hardware) } ); - info!("made RefCell"); - - info!("2"); - Timer::after_millis(1).await; - let mut tof = vl53l0x::VL53L0x::new(RefCellDevice::new(&bus1)).unwrap(); - info!("3"); - tof.set_address(0x32).unwrap(); - info!("4"); - tof2enable.set_high(); - Timer::after_micros(1200).await; // DS11555 3.2 - info!("5"); - let mut tof2 = vl53l0x::VL53L0x::new(RefCellDevice::new(&bus1)).unwrap(); - info!("6"); - - - let mut gyro = Mpu6050::new_with_addr(bus,0x68); - - Timer::after_millis(1300).await; - gyro.init(&mut Delay).unwrap(); - - gyro.set_gyro_range(mpu6050::device::GyroRange::D2000).unwrap(); - gyro.set_accel_range(mpu6050::device::AccelRange::G16).unwrap(); - info!("pinidtd"); - Timer::after_millis(1300).await; - - loop { - //info!("pos: {}", gyro.get_gyro().unwrap().x); - //info!("jerk: {}", gyro.get_acc().unwrap().x); - //info!("temp: {}", gyro.get_temp().unwrap() * (9./5.) + 32.); - if let Ok(dist) = tof.read_range_single_millimeters_blocking() { - info!("dist1: {dist}mm"); - } - Timer::after_millis(3).await; - if let Ok(dist) = tof2.read_range_single_millimeters_blocking() { - info!("dist2: {dist}mm"); - } - Timer::after_millis(23).await; - } - let fw = include_bytes!("../../cyw43-firmware/43439A0.bin"); let clm = include_bytes!("../../cyw43-firmware/43439A0_clm.bin"); @@ -165,7 +132,16 @@ async fn main(spawner: Spawner) { let pwr = Output::new(p.PIN_23, Level::Low); let cs = Output::new(p.PIN_25, Level::High); let mut pio = Pio::new(p.PIO0, Irqs); - let spi = PioSpi::new(&mut pio.common, pio.sm0, pio.irq0, cs, p.PIN_24, p.PIN_29, p.DMA_CH0); + let spi = PioSpi::new( + &mut pio.common, + pio.sm0, + DEFAULT_CLOCK_DIVIDER, + pio.irq0, + cs, + p.PIN_24, + p.PIN_29, + p.DMA_CH0, + ); static STATE: StaticCell = StaticCell::new(); let state = STATE.init(cyw43::State::new()); @@ -531,32 +507,6 @@ async fn main(spawner: Spawner) { let mut segs = buf[..n].trim_ascii().split(|c| *c == ' ' as u8); match char::from_u32(segs.next().unwrap()[0] as u32).unwrap() { - 'W' => { - let addr: [u8;1] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - let reg: [u8;1] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - let data: [u8;1] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - info!("writing {:?}", reg); - Timer::after_millis(30).await; - - bus.write_async(addr[0] as u16, [reg[0], data[0]]).await.unwrap(); - - buf[0] = b"O"[0]; - buf[1] = b"K"[0]; - n=2; - }, - 'R' => { - let addr: [u8;1] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - let reg: [u8;1] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); - info!("writing {:?}, addr {addr:?}", reg); - - let mut response: [u8;2] = [0;2]; - - let _ = bus.write_read_async(addr[0] as u16, reg, &mut response).await; - info!("recd {:?}", response); - info!("recd {:#02x}", response[0]); - let _ = hex::encode_to_slice(response, &mut buf); - n = 4; - }, 'D' => { let left: [u8;2] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); let right: [u8;2] = hex::FromHex::from_hex(segs.next().unwrap()).unwrap(); diff --git a/controller/src/sensor_manager.rs b/controller/src/sensor_manager.rs index aa475ab..0b82a19 100644 --- a/controller/src/sensor_manager.rs +++ b/controller/src/sensor_manager.rs @@ -12,15 +12,17 @@ use log::info; use mpu6050::Mpu6050; use nalgebra::Vector3; +use crate::CHANNEL; + pub struct SensorHardware { - bus_tof: I2c<'static, I2C1, Async>, - bus_gyro: I2c<'static, I2C0, Async>, - tof2enable: Output<'static>, + pub bus_tof: I2c<'static, I2C1, Async>, + pub bus_gyro: I2c<'static, I2C0, Async>, + pub tof2enable: Output<'static>, } pub fn sensor_manager(mut hardware: SensorHardware) -> ! { - let executor = Executor::new(); - let executor: &'static mut Executor = unsafe{transmute(&executor)}; + let mut executor = Executor::new(); + let executor: &'static mut Executor = unsafe{transmute(&mut executor)}; executor.run(move |spawner| { spawner.spawn(init_sensors(hardware)).unwrap(); }); @@ -35,7 +37,8 @@ enum PollState { Gyro, } -struct SensorData { +#[derive(Clone, Debug)] +pub struct SensorData { /// distance, mm tof1: Option, /// distance, mm @@ -95,8 +98,6 @@ async fn init_sensors(mut hardware: SensorHardware) { } POLL_STATE.store(PollState::None as u8, Ordering::SeqCst); - - - + CHANNEL.send(data.clone()).await; } }