diff --git a/Cargo.lock b/Cargo.lock index be7d6b0..8a32830 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,21 +158,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" -[[package]] -name = "basic-toml" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" -dependencies = [ - "serde", -] - [[package]] name = "bit_field" version = "0.10.3" @@ -232,8 +229,8 @@ dependencies = [ "bleps-dedup", "bleps-macros", "critical-section", - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io-async 0.6.1", "futures", "log", "rand_core 0.6.4", @@ -274,25 +271,32 @@ dependencies = [ [[package]] name = "bt-hci" -version = "0.3.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7f7c19df9648c1da4f5356c4256533e38bd65633b6a41654922475a1c6d777" +checksum = "bb938a3b4c5cc6c2409275bad789c0346a0495fa071a0acc5d72b9bd3175a2f7" dependencies = [ + "btuuid", "embassy-sync 0.7.2", - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io-async 0.6.1", "futures-intrusive", - "heapless 0.8.0", + "heapless 0.9.2", ] +[[package]] +name = "btuuid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0acfef8a77a02866e04f7e2ad3f4c7b32d575696c49c4bbad742b4aecb8e4a3" + [[package]] name = "buffered-io" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5698b2eda4613b62f3aa3119805df1ca6739e00167a2600b3a234ac49b14803" dependencies = [ - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io-async 0.6.1", ] [[package]] @@ -315,9 +319,9 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -384,6 +388,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "const-default" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" + [[package]] name = "const-oid" version = "0.9.6" @@ -670,11 +680,11 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" dependencies = [ - "litrs 0.4.2", + "litrs 1.0.0", ] [[package]] @@ -702,41 +712,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "embassy-embedded-hal" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c62a3bf127e03832fb97d8b01a058775e617653bc89e2a12c256485a7fb54c1" -dependencies = [ - "embassy-embedded-hal 0.4.0", - "embassy-futures", - "embassy-sync 0.6.2", - "embassy-time 0.4.0", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "embedded-storage", - "embedded-storage-async", - "nb 1.1.0", -] - -[[package]] -name = "embassy-embedded-hal" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1611b7a7ab5d1fbed84c338df26d56fd9bded58006ebb029075112ed2c5e039" -dependencies = [ - "embassy-futures", - "embassy-hal-internal", - "embassy-sync 0.7.2", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "embedded-storage", - "embedded-storage-async", - "nb 1.1.0", -] - [[package]] name = "embassy-embedded-hal" version = "0.5.0" @@ -756,21 +731,22 @@ dependencies = [ [[package]] name = "embassy-executor" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90327bcc66333a507f89ecc4e2d911b265c45f5c9bc241f98eee076752d35ac6" +checksum = "06070468370195e0e86f241c8e5004356d696590a678d47d6676795b2e439c6b" dependencies = [ "critical-section", "document-features", "embassy-executor-macros", + "embassy-executor-timer-queue", "log", ] [[package]] name = "embassy-executor-macros" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3577b1e9446f61381179a330fc5324b01d511624c55f25e3c66c9e3c626dbecf" +checksum = "dfdddc3a04226828316bf31393b6903ee162238576b1584ee2669af215d55472" dependencies = [ "darling 0.20.11", "proc-macro2", @@ -778,6 +754,12 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "embassy-executor-timer-queue" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fc328bf943af66b80b98755db9106bf7e7471b0cf47dc8559cd9a6be504cc9c" + [[package]] name = "embassy-futures" version = "0.1.2" @@ -802,8 +784,8 @@ dependencies = [ "document-features", "embassy-net-driver", "embassy-sync 0.7.2", - "embassy-time 0.5.0", - "embedded-io-async", + "embassy-time", + "embedded-io-async 0.6.1", "embedded-nal-async", "heapless 0.8.0", "managed", @@ -824,7 +806,7 @@ checksum = "8d2c8cdff05a7a51ba0087489ea44b0b1d97a296ca6b1d6d1a33ea7423d34049" dependencies = [ "cfg-if", "critical-section", - "embedded-io-async", + "embedded-io-async 0.6.1", "futures-sink", "futures-util", "heapless 0.8.0", @@ -838,28 +820,12 @@ checksum = "73974a3edbd0bd286759b3d483540f0ebef705919a5f56f4fc7709066f71689b" dependencies = [ "cfg-if", "critical-section", - "embedded-io-async", + "embedded-io-async 0.6.1", "futures-core", "futures-sink", "heapless 0.8.0", ] -[[package]] -name = "embassy-time" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f820157f198ada183ad62e0a66f554c610cdcd1a9f27d4b316358103ced7a1f8" -dependencies = [ - "cfg-if", - "critical-section", - "document-features", - "embassy-time-driver", - "embedded-hal 0.2.7", - "embedded-hal 1.0.0", - "embedded-hal-async", - "futures-util", -] - [[package]] name = "embassy-time" version = "0.5.0" @@ -888,31 +854,31 @@ dependencies = [ [[package]] name = "embassy-time-queue-utils" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc55c748d16908a65b166d09ce976575fb8852cf60ccd06174092b41064d8f83" +checksum = "80e2ee86063bd028a420a5fb5898c18c87a8898026da1d4c852af2c443d0a454" dependencies = [ - "embassy-executor", + "embassy-executor-timer-queue", "heapless 0.8.0", ] [[package]] name = "embassy-usb-driver" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "340c5ce591ef58c6449e43f51d2c53efe1bf0bb6a40cbf80afa0d259c7d52c76" +checksum = "17119855ccc2d1f7470a39756b12068454ae27a3eabb037d940b5c03d9c77b7a" dependencies = [ - "embedded-io-async", + "embedded-io-async 0.6.1", ] [[package]] name = "embassy-usb-synopsys-otg" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08e753b23799329780c7ac434264026d0422044d6649ed70a73441b14a6436d7" +checksum = "288751f8eaa44a5cf2613f13cee0ca8e06e6638cb96e897e6834702c79084b23" dependencies = [ "critical-section", - "embassy-sync 0.6.2", + "embassy-sync 0.7.2", "embassy-usb-driver", ] @@ -980,13 +946,28 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" +[[package]] +name = "embedded-io" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7" + [[package]] name = "embedded-io-async" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" dependencies = [ - "embedded-io", + "embedded-io 0.6.1", +] + +[[package]] +name = "embedded-io-async" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2564b9f813c544241430e147d8bc454815ef9ac998878d30cc3055449f7fd4c0" +dependencies = [ + "embedded-io 0.7.1", ] [[package]] @@ -1004,7 +985,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76959917cd2b86f40a98c28dd5624eddd1fa69d746241c8257eac428d83cb211" dependencies = [ - "embedded-io-async", + "embedded-io-async 0.6.1", "embedded-nal", ] @@ -1032,8 +1013,8 @@ dependencies = [ "aes-gcm", "atomic-polyfill", "digest", - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io-async 0.6.1", "generic-array 0.14.7", "heapless 0.6.1", "heapless 0.8.0", @@ -1114,41 +1095,49 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "esp-alloc" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e95f1de57ce5a6600368f3d3c931b0dfe00501661e96f5ab83bc5cdee031784" +checksum = "641e43d6a60244429117ef2fa7a47182120c7561336ea01f6fb08d634f46bae1" dependencies = [ "allocator-api2", "cfg-if", - "critical-section", "document-features", "enumset", + "esp-config", + "esp-sync", "linked_list_allocator", + "rlsf", ] [[package]] name = "esp-backtrace" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f270a29a3c4e492399b13e157b10151a7616cba69c4d554076ea93ed1bd2916" +checksum = "3318413fb566c7227387f67736cf70cd74d80a11f2bb31c7b95a9eb48d079669" dependencies = [ "cfg-if", + "document-features", "esp-config", + "esp-metadata-generated", "esp-println", - "heapless 0.8.0", + "heapless 0.9.2", + "riscv", "semihosting", + "xtensa-lx", ] [[package]] name = "esp-bootloader-esp-idf" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a093dbdc64b0288baacc214c2e8c2f3f13ecbf979c36ee2f63797ecf22538f1" +checksum = "02a56964ab5479ac20c9cf76fa3b0d3f2233b20b5d8554e81ef5d65f63c20567" dependencies = [ "cfg-if", "document-features", "embedded-storage", "esp-config", + "esp-hal-procmacros", + "esp-metadata-generated", "esp-rom-sys", "jiff", "strum", @@ -1156,22 +1145,22 @@ dependencies = [ [[package]] name = "esp-config" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abd4a8db4b72794637a25944bc8d361c3cc271d4f03987ce8741312b6b61529c" +checksum = "102871054f8dd98202177b9890cb4b71d0c6fe1f1413b7a379a8e0841fc2473c" dependencies = [ "document-features", "esp-metadata-generated", - "evalexpr", "serde", "serde_yaml", + "somni-expr", ] [[package]] name = "esp-hal" -version = "1.0.0-rc.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3887eda2917deef3d99e7a5c324f9190714e99055361ad36890dffd0a995b49" +checksum = "54786287c0a61ca0f78cb0c338a39427551d1be229103b4444591796c579e093" dependencies = [ "bitfield 0.19.2", "bitflags 2.9.4", @@ -1181,22 +1170,25 @@ dependencies = [ "delegate", "digest", "document-features", - "embassy-embedded-hal 0.3.2", + "embassy-embedded-hal", "embassy-futures", - "embassy-sync 0.6.2", + "embassy-sync 0.7.2", "embassy-usb-driver", "embassy-usb-synopsys-otg", "embedded-can", "embedded-hal 1.0.0", "embedded-hal-async", - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io 0.7.1", + "embedded-io-async 0.6.1", + "embedded-io-async 0.7.0", "enumset", "esp-config", "esp-hal-procmacros", "esp-metadata-generated", "esp-riscv-rt", "esp-rom-sys", + "esp-sync", "esp-synopsys-usb-otg", "esp32", "esp32c2", @@ -1214,44 +1206,19 @@ dependencies = [ "rand_core 0.6.4", "rand_core 0.9.3", "riscv", - "serde", "strum", "ufmt-write", "xtensa-lx", "xtensa-lx-rt", ] -[[package]] -name = "esp-hal-embassy" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d000d94064c485f86adc6b02b541e2f072e03321b4f03d4303b7ff3062c7e692" -dependencies = [ - "cfg-if", - "critical-section", - "document-features", - "embassy-executor", - "embassy-sync 0.6.2", - "embassy-time 0.4.0", - "embassy-time-driver", - "embassy-time-queue-utils", - "esp-config", - "esp-hal", - "esp-hal-procmacros", - "esp-metadata-generated", - "log", - "portable-atomic", - "static_cell", -] - [[package]] name = "esp-hal-procmacros" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbece384edaf0d1eabfa45afa96d910634d4158638ef983b2d419a8dec832246" +checksum = "3e025a7a7a0affdb4ff913b5c4494aef96ee03d085bf83c27453ae3a71d50da6" dependencies = [ "document-features", - "litrs 0.4.2", "object", "proc-macro-crate", "proc-macro2", @@ -1262,73 +1229,138 @@ dependencies = [ [[package]] name = "esp-hal-smartled" -version = "0.16.0" -source = "git+https://github.com/esp-rs/esp-hal-community.git#bbe8484a013267132cd3fb4693606de2c8317a53" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23eaae863a73f9bd1626687f539ff38942b442ae3974838ceeae5e932ddf0a2a" dependencies = [ "document-features", "esp-hal", + "rgb", "smart-leds-trait", ] [[package]] -name = "esp-metadata" -version = "0.8.0" +name = "esp-metadata-generated" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6fbc1d166be84c0750f121e95c8989ddebd7e7bdd86af3594a6cfb34f039650" -dependencies = [ - "anyhow", - "basic-toml", - "indexmap", - "proc-macro2", - "quote", - "serde", - "strum", -] +checksum = "9a93e39c8ad8d390d248dc7b9f4b59a873f313bf535218b8e2351356972399e3" [[package]] -name = "esp-metadata-generated" -version = "0.1.0" +name = "esp-phy" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "189d36b8c8a752bdebec67fd02a15ebb1432feea345553749bca7ce2393cc795" +checksum = "6b1facf348e1e251517278fc0f5dc134e95e518251f5796cfbb532ca226a29bf" dependencies = [ - "esp-metadata", + "cfg-if", + "document-features", + "esp-config", + "esp-hal", + "esp-metadata-generated", + "esp-sync", + "esp-wifi-sys", + "log", ] [[package]] name = "esp-println" -version = "0.15.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7e3ab41e96093d7fd307e93bfc88bd646a8ff23036ebf809e116b18869f719" +checksum = "5a30e6c9fbcc01c348d46706fef8131c7775ab84c254a3cd65d0cd3f6414d592" dependencies = [ - "critical-section", "document-features", "esp-metadata-generated", + "esp-sync", "log", "portable-atomic", ] [[package]] -name = "esp-riscv-rt" -version = "0.12.0" +name = "esp-radio" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a00370dfcb0ccc01c6b2540076379c6efd6890a27f584de217c38e3239e19d5" +checksum = "684c4de2f8907b73c9b891fbda65286a86d34fced4b856f36a7896c211f2f265" +dependencies = [ + "allocator-api2", + "bt-hci", + "cfg-if", + "document-features", + "embassy-net-driver", + "embedded-io 0.6.1", + "embedded-io 0.7.1", + "embedded-io-async 0.6.1", + "embedded-io-async 0.7.0", + "enumset", + "esp-alloc", + "esp-config", + "esp-hal", + "esp-hal-procmacros", + "esp-metadata-generated", + "esp-phy", + "esp-radio-rtos-driver", + "esp-sync", + "esp-wifi-sys", + "heapless 0.9.2", + "instability", + "log", + "num-derive", + "num-traits", + "portable-atomic", + "portable_atomic_enum", + "xtensa-lx-rt", +] + +[[package]] +name = "esp-radio-rtos-driver" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "543bc31d1851afd062357e7810c1a9633f282fd3993583499a841ab497cbca6c" + +[[package]] +name = "esp-riscv-rt" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502744a5b1e7268d27fd2a4e56ad45efe42ead517d6c517a6961540de949b0ee" dependencies = [ "document-features", "riscv", - "riscv-rt-macros", + "riscv-rt", ] [[package]] name = "esp-rom-sys" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "646aca2b30503b6c6f34250255fbd5887fd0c4104ea90802c1fea34f3035e7d6" +checksum = "cd66cccc6dd2d13e9f33668a57717ab14a6d217180ec112e6be533de93e7ecbf" dependencies = [ "cfg-if", "document-features", "esp-metadata-generated", ] +[[package]] +name = "esp-rtos" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ec711c8d06e79c67b75d01595539e86b0aac209643af98ca87a12250428b3" +dependencies = [ + "allocator-api2", + "cfg-if", + "document-features", + "embassy-executor", + "embassy-sync 0.7.2", + "embassy-time-driver", + "embassy-time-queue-utils", + "esp-alloc", + "esp-config", + "esp-hal", + "esp-hal-procmacros", + "esp-metadata-generated", + "esp-radio-rtos-driver", + "esp-sync", + "log", + "portable-atomic", +] + [[package]] name = "esp-storage" version = "0.7.0" @@ -1341,6 +1373,21 @@ dependencies = [ "esp-rom-sys", ] +[[package]] +name = "esp-sync" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d44974639b4e88914f83fe60d2832c00276657d7d857628fdfc966cc7302e8a8" +dependencies = [ + "cfg-if", + "document-features", + "embassy-sync 0.6.2", + "embassy-sync 0.7.2", + "esp-metadata-generated", + "riscv", + "xtensa-lx", +] + [[package]] name = "esp-synopsys-usb-otg" version = "0.4.2" @@ -1354,40 +1401,11 @@ dependencies = [ "vcell", ] -[[package]] -name = "esp-wifi" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69336f3f30938a644077d2a9747e3cd325436dcaf57d9dc8d58f139e02104889" -dependencies = [ - "allocator-api2", - "bt-hci", - "cfg-if", - "critical-section", - "document-features", - "embassy-net-driver", - "embedded-io", - "embedded-io-async", - "enumset", - "esp-alloc", - "esp-config", - "esp-hal", - "esp-metadata-generated", - "esp-wifi-sys", - "log", - "num-derive", - "num-traits", - "portable-atomic", - "portable_atomic_enum", - "rand_core 0.9.3", - "xtensa-lx-rt", -] - [[package]] name = "esp-wifi-sys" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b5438361891c431970194a733415006fb3d00b6eb70b3dcb66fd58f04d9b39" +checksum = "89b6544f6f0cb86169d1f93ba2101a8d50358a040c5043676ed86b793e09b12c" dependencies = [ "anyhow", "log", @@ -1395,9 +1413,9 @@ dependencies = [ [[package]] name = "esp32" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7680f79e3a4770e59c2dc25b17dcd852921ee57ffae9a4c4806c9ca5001d54d" +checksum = "b76170a463d18f888a1ad258031901036fd827a9ef126733053ba5f8739fb0c8" dependencies = [ "critical-section", "vcell", @@ -1405,9 +1423,9 @@ dependencies = [ [[package]] name = "esp32c2" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da1bcf86fca83543e0e95561cba27bbcc6b6e7adc5428f49187f5868bc0c3ed2" +checksum = "e62cf8932966b8d445b6f1832977b468178f0a84effb2e9fda89f60c24d45aa3" dependencies = [ "critical-section", "vcell", @@ -1415,9 +1433,9 @@ dependencies = [ [[package]] name = "esp32c3" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2c5a33d4377f974cbe8cadf8307f04f2c39755704cb09e81852c63ee4ac7b8" +checksum = "356af3771d0d6536c735bf71136594f4d1cbb506abf6e0c51a6639e9bf4e7988" dependencies = [ "critical-section", "vcell", @@ -1425,9 +1443,9 @@ dependencies = [ [[package]] name = "esp32c6" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca8fc81b7164df58b5e04aaac9e987459312e51903cca807317990293973a6e" +checksum = "8f5e511df672d79cd63365c92045135e01ba952b6bddd25b660baff5e1110f6b" dependencies = [ "critical-section", "vcell", @@ -1435,9 +1453,9 @@ dependencies = [ [[package]] name = "esp32h2" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80171d08c17d8c63b53334c60ca654786a7593481531d19b639c4e5c76d276de" +checksum = "ed4a50bbd1380931e095e0973b9b12f782a9c481f2edf1f7c42e7eb4ff736d6d" dependencies = [ "critical-section", "vcell", @@ -1445,9 +1463,9 @@ dependencies = [ [[package]] name = "esp32s2" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c90d347480fca91f4be3e94b576af9c6c7987795c58dc3c5a7c108b6b3966dc" +checksum = "98574d4c577fbe888fe3e6df7fc80d25a05624d9998f7d7de1500ae21fcca78f" dependencies = [ "critical-section", "vcell", @@ -1455,20 +1473,14 @@ dependencies = [ [[package]] name = "esp32s3" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3769c56222c4548833f236c7009f1f8b3f2387af26366f6bd1cea456666a49d" +checksum = "1810d8ee4845ef87542af981e38eb80ab531d0ef1061e1486014ab7af74c337a" dependencies = [ "critical-section", "vcell", ] -[[package]] -name = "evalexpr" -version = "12.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a3229bec56a977f174b32fe7b8d89e8c79ebb4493d10ad763b6676dc2dc0c9" - [[package]] name = "exr" version = "1.73.0" @@ -1813,6 +1825,16 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "heapless" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" +dependencies = [ + "hash32 0.3.1", + "stable_deref_trait", +] + [[package]] name = "heck" version = "0.5.0" @@ -1903,8 +1925,6 @@ checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown", - "serde", - "serde_core", ] [[package]] @@ -2050,12 +2070,9 @@ dependencies = [ [[package]] name = "litrs" -version = "0.4.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" -dependencies = [ - "proc-macro2", -] +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lock_api" @@ -2330,9 +2347,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.7" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] @@ -2595,12 +2612,6 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "r0" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" - [[package]] name = "ral-registers" version = "0.1.3" @@ -2721,11 +2732,11 @@ dependencies = [ "critical-section", "csv", "display-interface", - "embassy-embedded-hal 0.5.0", + "embassy-embedded-hal", "embassy-executor", "embassy-net", "embassy-sync 0.7.2", - "embassy-time 0.5.0", + "embassy-time", "embedded-graphics", "embedded-hal-async", "embedded-storage", @@ -2735,11 +2746,11 @@ dependencies = [ "esp-backtrace", "esp-bootloader-esp-idf", "esp-hal", - "esp-hal-embassy", "esp-hal-smartled", "esp-println", + "esp-radio", + "esp-rtos", "esp-storage", - "esp-wifi", "figments", "figments-render", "futures", @@ -2765,10 +2776,10 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb1be74cb817fa6dbda417110f575d9b9ad5488817f1eb65f2f6468fe6d5d663" dependencies = [ - "base64", + "base64 0.21.7", "buffered-io", - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io-async 0.6.1", "embedded-nal-async", "embedded-tls", "heapless 0.8.0", @@ -2800,9 +2811,9 @@ dependencies = [ [[package]] name = "riscv" -version = "0.12.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" +checksum = "b05cfa3f7b30c84536a9025150d44d26b8e1cc20ddf436448d74cd9591eefb25" dependencies = [ "critical-section", "embedded-hal 1.0.0", @@ -2813,9 +2824,9 @@ dependencies = [ [[package]] name = "riscv-macros" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f265be5d634272320a7de94cea15c22a3bfdd4eb42eb43edc528415f066a1f25" +checksum = "7d323d13972c1b104aa036bc692cd08b822c8bbf23d79a27c526095856499799" dependencies = [ "proc-macro2", "quote", @@ -2829,16 +2840,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8188909339ccc0c68cfb5a04648313f09621e8b87dc03095454f1a11f6c5d436" [[package]] -name = "riscv-rt-macros" -version = "0.4.0" +name = "riscv-rt" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc71814687c45ba4cd1e47a54e03a2dbc62ca3667098fbae9cc6b423956758fa" +checksum = "3d07b9f3a0eff773fc4df11f44ada4fa302e529bff4b7fe7e6a4b98a65ce9174" +dependencies = [ + "riscv", + "riscv-pac", + "riscv-rt-macros", + "riscv-target-parser", +] + +[[package]] +name = "riscv-rt-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c3138fdd8d128b2d81829842a3e0ce771b3712f7b6318ed1476b0695e7d330" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] +[[package]] +name = "riscv-target-parser" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1376b15f3ff160e9b1e8ea564ce427f2f6fcf77528cc0a8bf405cb476f9cea7" + +[[package]] +name = "rlsf" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" +dependencies = [ + "cfg-if", + "const-default", + "libc", + "svgbobdoc", +] + [[package]] name = "rmp" version = "0.8.14" @@ -3021,9 +3062,9 @@ dependencies = [ [[package]] name = "smart-leds-trait" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edeb89c73244414bb0568611690dd095b2358b3fda5bae65ad784806cca00157" +checksum = "a7f4441a131924d58da6b83a7ad765c460e64630cce504376c3a87a2558c487f" dependencies = [ "rgb", ] @@ -3042,6 +3083,21 @@ dependencies = [ "managed", ] +[[package]] +name = "somni-expr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed9b7648d5e8b2df6c5e49940c54bcdd2b4dd71eafc6e8f1c714eb4581b0f53" +dependencies = [ + "somni-parser", +] + +[[package]] +name = "somni-parser" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0f368519fc6c85fc1afdb769fb5a51123f6158013e143656e25a3485a0d401c" + [[package]] name = "ssd1306" version = "0.10.0" @@ -3105,6 +3161,19 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "svgbobdoc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +dependencies = [ + "base64 0.13.1", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-width", +] + [[package]] name = "syn" version = "1.0.109" @@ -3297,6 +3366,12 @@ version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "universal-hash" version = "0.5.1" @@ -3489,30 +3564,29 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "xtensa-lx" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a564fffeb3cd773a524e8d8a5c66ca5e9739ea7450e36a3e6a54dd31f1e652f" +checksum = "e012d667b0aa6d2592ace8ef145a98bff3e76cca7a644f4181ecd7a916ed289b" dependencies = [ "critical-section", ] [[package]] name = "xtensa-lx-rt" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520a8fb0121eb6868f4f5ff383e262dc863f9042496724e01673a98a9b7e6c2b" +checksum = "8709f037fb123fe7ff146d2bce86f9dc0dfc53045c016bfd9d703317b6502845" dependencies = [ "document-features", - "r0", "xtensa-lx", "xtensa-lx-rt-proc-macros", ] [[package]] name = "xtensa-lx-rt-proc-macros" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5a56a616147f5947ceb673790dd618d77b30e26e677f4a896df049d73059438" +checksum = "96fb42cd29c42f8744c74276e9f5bee7b06685bbe5b88df891516d72cb320450" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 6786da1..3e87e9b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ real-output = [] simulation = ["dep:rmp"] radio = [ "dep:bleps", - "dep:esp-wifi", + "dep:esp-radio", "dep:reqwless" ] motion = ["mpu", "gps"] @@ -31,36 +31,37 @@ demo = [] # The basic requirements for all features figments = { path = "../figments/figments/", features = ["alloc", "embedded-graphics"] } figments-render = { path = "../figments/figments-render/", features = ["smart-leds", "micromath"], default-features = false } -esp-bootloader-esp-idf = { version = "0.2.0", features = ["esp32s3"] } -esp-hal = { version = "=1.0.0-rc.0", features = [ +esp-bootloader-esp-idf = { version = "0.4.0", features = ["esp32s3"] } +esp-hal = { version = "1.0.0", features = [ "esp32s3", "log-04", "unstable", ] } -esp-alloc = "0.8.0" -esp-backtrace = { version = "0.17.0", features = [ +esp-alloc = "0.9.0" +esp-backtrace = { version = "0.18", features = [ "esp32s3", - "exception-handler", "panic-handler", "println", ] } -esp-println = { version = "0.15.0", features = ["esp32s3", "log-04"] } +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.7.0", features = [ +embassy-executor = { version = "0.9.0", features = [ "log", - "task-arena-size-98304", + # "task-arena-size-98304", ] } embassy-time = { version = "0.5.0", features = ["log"] } -esp-hal-embassy = { version = "0.9.0", features = [ +esp-rtos = { version = "0.2.0", features = [ + "esp-radio", + "embassy", + "esp-alloc", "esp32s3", "log-04" ] } -log = "0.4.27" +log = "0.4" static_cell = "2.1.1" rgb = "0.8.52" -# esp-hal-smartled = { version = "0.15.0", features = ["esp32c3"] } -esp-hal-smartled = { git = "https://github.com/esp-rs/esp-hal-community.git", features = ["esp32s3"] } +esp-hal-smartled = { version = "0.17.0", features = ["esp32s3"] } smart-leds = "0.4.0" embassy-sync = "0.7.2" embassy-embedded-hal = "0.5.0" @@ -73,13 +74,14 @@ enumset = "1.1.10" enum-map = "2.7.3" # Telemetry outputs -esp-wifi = { version = "0.15.0", optional = true, features = [ - "builtin-scheduler", +esp-radio = { version = "*", optional = true, features = [ "esp-alloc", "esp32s3", "log-04", "wifi", - "ble" + "ble", + "coex", + "unstable" ] } bleps = { git = "https://github.com/bjoernQ/bleps", optional = true, package = "bleps", rev = "a5148d8ae679e021b78f53fd33afb8bb35d0b62e", features = [ "macros", "async"] } embedded-graphics = { version = "0.8.1", features = ["nalgebra_support"] } diff --git a/src/bin/main.rs b/src/bin/main.rs index f7ddc9c..2d8cd0b 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -18,12 +18,13 @@ use esp_hal::{ clock::CpuClock, system::{AppCoreGuard, CpuControl, Stack}, timer::{systimer::SystemTimer, timg::{TimerGroup, Wdt}} }; -use esp_hal_embassy::{Executor, InterruptExecutor}; use log::*; use renderbug_embassy::{logging::RenderbugLogger, tasks::{oled::{OledUI, OledUiSurfacePool, oled_ui}, safetyui::{SafetyUi, safety_ui_main}, ui::UiSurfacePool}}; use renderbug_embassy::events::BusGarage; use static_cell::StaticCell; use esp_backtrace as _; +use esp_rtos::embassy::{Executor, InterruptExecutor}; +use esp_hal::interrupt::software::SoftwareInterruptControl; use renderbug_embassy::tasks::{ motion::motion_task, @@ -37,14 +38,15 @@ extern crate alloc; // For more information see: esp_bootloader_esp_idf::esp_app_desc!(); -static STATIC_HI_EXEC: StaticCell> = StaticCell::new(); +static STATIC_HI_EXEC: StaticCell> = StaticCell::new(); static CORE2_EXEC: StaticCell = StaticCell::new(); static BUS_GARAGE: StaticCell = StaticCell::new(); static mut CORE2_STACK: Stack<16384> = Stack::new(); -static CORE_HANDLE: StaticCell = StaticCell::new(); +#[cfg(feature="radio")] +static WIFI_INIT: StaticCell> = StaticCell::new(); -#[esp_hal_embassy::main] +#[esp_rtos::main] async fn main(spawner: Spawner) { critical_section::with(|_| { RenderbugLogger::init_logger(); @@ -56,7 +58,7 @@ async fn main(spawner: Spawner) { esp_alloc::heap_allocator!(size: 128 * 1024); let sys_timer = SystemTimer::new(peripherals.SYSTIMER); - esp_hal_embassy::init([sys_timer.alarm0, sys_timer.alarm1, sys_timer.alarm2]); + esp_rtos::start(sys_timer.alarm0); info!("Embassy initialized!"); let timer0 = TimerGroup::new(peripherals.TIMG0); @@ -82,10 +84,10 @@ async fn main(spawner: Spawner) { let mut wdt = timer0.wdt; wdt.set_timeout(esp_hal::timer::timg::MwdtStage::Stage0, esp_hal::time::Duration::from_secs(5)); let swi = SoftwareInterruptControl::new(peripherals.SW_INTERRUPT); - let hi_exec = STATIC_HI_EXEC.init(InterruptExecutor::new(swi.software_interrupt0)); + let hi_exec = STATIC_HI_EXEC.init(InterruptExecutor::new(swi.software_interrupt2)); let hi_spawn = hi_exec.start(esp_hal::interrupt::Priority::max()); - wdt.enable(); + //wdt.enable(); hi_spawn.must_spawn(renderbug_embassy::tasks::render::render(peripherals.RMT, peripherals.GPIO5.degrade(), surfaces, safety_surfaces, garage.display.clone(), wdt)); #[cfg(feature="motion")] @@ -97,8 +99,8 @@ async fn main(spawner: Spawner) { static I2C_BUS: StaticCell>> = StaticCell::new(); info!("Launching i2c sensor tasks"); - let sda = peripherals.GPIO3; - let scl = peripherals.GPIO4; + let sda = peripherals.GPIO4; + let scl = peripherals.GPIO3; let i2c = I2c::new(peripherals.I2C1, Config::default()).unwrap().with_scl(scl).with_sda(sda).into_async(); let i2c_bus = I2C_BUS.init(Mutex::new(i2c)); #[cfg(feature="mpu")] @@ -148,48 +150,44 @@ async fn main(spawner: Spawner) { #[cfg(feature="radio")] let wifi_init = { info!("Configuring wifi"); - - static WIFI_INIT: StaticCell> = StaticCell::new(); - let rng = esp_hal::rng::Rng::new(peripherals.RNG); - WIFI_INIT.init_with(|| {esp_wifi::init(timer0.timer0, rng).expect("Failed to initialize radio controller")}) + //let rng = esp_hal::rng::Rng::new(peripherals.RNG); + WIFI_INIT.init_with(|| {esp_radio::init().expect("Failed to initialize radio controller")}) }; info!("Starting core 2"); - let mut cpu_control = CpuControl::new(peripherals.CPU_CTRL); - CORE_HANDLE.init_with(|| { - cpu_control.start_app_core(unsafe { &mut *addr_of_mut!(CORE2_STACK) }, || { - let exec = CORE2_EXEC.init_with(|| { Executor::new() }); - exec.run(|spawner| { - info!("Launching Safety UI"); - spawner.must_spawn(safety_ui_main(garage.notify.dyn_subscriber().unwrap(), safety_ui)); - info!("Launching UI"); - spawner.must_spawn(ui_main(garage.notify.dyn_subscriber().unwrap(), garage.telemetry.dyn_publisher().unwrap(), ui)); - info!("Launching OLED UI"); - spawner.must_spawn(oled_ui(garage.telemetry.dyn_subscriber().unwrap(), oledui)); + //let mut cpu_control = CpuControl::new(peripherals.CPU_CTRL); + esp_rtos::start_second_core(peripherals.CPU_CTRL, swi.software_interrupt0, swi.software_interrupt1, unsafe { &mut *addr_of_mut!(CORE2_STACK) }, || { + let exec = CORE2_EXEC.init_with(|| { Executor::new() }); + exec.run(|spawner| { + info!("Launching Safety UI"); + spawner.must_spawn(safety_ui_main(garage.notify.dyn_subscriber().unwrap(), safety_ui)); + info!("Launching UI"); + spawner.must_spawn(ui_main(garage.notify.dyn_subscriber().unwrap(), garage.telemetry.dyn_publisher().unwrap(), ui)); + info!("Launching OLED UI"); + spawner.must_spawn(oled_ui(garage.telemetry.dyn_subscriber().unwrap(), oledui)); - #[cfg(feature="radio")] - { - info!("Launching networking stack"); - spawner.must_spawn(renderbug_embassy::tasks::wifi::wireless_task(garage.telemetry.dyn_subscriber().unwrap(), wifi_init, peripherals.WIFI)); - } + #[cfg(feature="radio")] + { + info!("Launching networking stack"); + spawner.must_spawn(renderbug_embassy::tasks::wifi::wireless_task(garage.telemetry.dyn_subscriber().unwrap(), wifi_init, peripherals.WIFI)); + } - #[cfg(feature="demo")] - { - warn!("Launching with demo sequencer"); - spawner.must_spawn(renderbug_embassy::tasks::demo::demo_task(garage.notify.dyn_publisher().unwrap())); - } - #[cfg(not(feature="demo"))] - { - info!("Launching prediction engine"); - spawner.must_spawn(renderbug_embassy::tasks::predict::prediction_task(garage.predict.dyn_receiver(), garage.notify.dyn_publisher().unwrap(), garage.telemetry.dyn_publisher().unwrap())); - } + #[cfg(feature="demo")] + { + warn!("Launching with demo sequencer"); + spawner.must_spawn(renderbug_embassy::tasks::demo::demo_task(garage.notify.dyn_publisher().unwrap())); + } + #[cfg(not(feature="demo"))] + { + info!("Launching prediction engine"); + spawner.must_spawn(renderbug_embassy::tasks::predict::prediction_task(garage.predict.dyn_receiver(), garage.notify.dyn_publisher().unwrap(), garage.telemetry.dyn_publisher().unwrap())); + } - info!("Launching core 2 watchdog"); - spawner.must_spawn(wdt_task(ui_wdt)); + info!("Launching core 2 watchdog"); + spawner.must_spawn(wdt_task(ui_wdt)); - info!("System is ready in {}ms", Instant::now().as_millis()); - }); - }).unwrap() + info!("System is ready in {}ms", Instant::now().as_millis()); + }); }); } diff --git a/src/tasks/mpu.rs b/src/tasks/mpu.rs index 63f7e2f..842c1da 100644 --- a/src/tasks/mpu.rs +++ b/src/tasks/mpu.rs @@ -29,7 +29,7 @@ fn gyro_raw_to_rads(raw: i16) -> f32 { (raw as f32 / 16.4) * (DEG2RAD) } -#[esp_hal::ram(rtc_fast, persistent)] +#[esp_hal::ram(unstable(rtc_fast, persistent))] static mut MPU_WAS_CALIBRATED: u8 = 0; #[embassy_executor::task] diff --git a/src/tasks/render.rs b/src/tasks/render.rs index 4577fce..776fa8b 100644 --- a/src/tasks/render.rs +++ b/src/tasks/render.rs @@ -16,10 +16,9 @@ pub async fn render(rmt: esp_hal::peripherals::RMT<'static>, gpio: AnyPin<'stati .expect("Failed to initialize RMT").into_async(); let rmt_channel = rmt.channel0; - let rmt_buffer = [0u32; buffer_size_async(NUM_PIXELS)]; + let mut rmt_buffer = esp_hal_smartled::smart_led_buffer!(NUM_PIXELS); - //let target = SmartLedsAdapterAsync::new(rmt_channel, gpio, rmt_buffer); - let target = SmartLedsAdapterAsync::new(rmt_channel, gpio, rmt_buffer); + let target = SmartLedsAdapterAsync::new_with_color(rmt_channel, gpio, &mut rmt_buffer); // Change this to adjust the power available; the USB spec says 500ma is the standard limit, but sometimes you can draw more from a power brick const POWER_MA : u32 = 500; diff --git a/src/tasks/wifi.rs b/src/tasks/wifi.rs index 0474c38..52cbd86 100644 --- a/src/tasks/wifi.rs +++ b/src/tasks/wifi.rs @@ -1,7 +1,8 @@ use alloc::string::ToString; use embassy_executor::Spawner; use embassy_sync::pubsub::DynSubscriber; -use esp_wifi::{EspWifiController, wifi::{ClientConfiguration, WifiDevice}}; +use esp_radio::Controller; +use esp_radio::wifi::{ClientConfig, WifiDevice}; use log::*; use alloc::format; @@ -24,19 +25,17 @@ static RESOURCES: StaticCell> = StaticCell::new(); // TODO: Wifi task needs to know when there is data to upload, so it only connects when needed. #[embassy_executor::task] -pub async fn wireless_task(mut telemetry: DynSubscriber<'static, Telemetry>, wifi_init: &'static mut EspWifiController<'static>, wifi_device: esp_hal::peripherals::WIFI<'static>) { - let (mut wifi, interfaces) = esp_wifi::wifi::new(wifi_init, wifi_device) +pub async fn wireless_task(mut telemetry: DynSubscriber<'static, Telemetry>, wifi_init: &'static mut Controller<'static>, wifi_device: esp_hal::peripherals::WIFI<'static>) { + let (mut wifi, interfaces) = esp_radio::wifi::new(wifi_init, wifi_device, esp_radio::wifi::Config::default()) .expect("Failed to initialize WIFI!"); - wifi.set_configuration(&esp_wifi::wifi::Configuration::Client( - ClientConfiguration { - ssid: "The Frequency".to_string(), - auth_method: esp_wifi::wifi::AuthMethod::WPA2Personal, - password: "thepasswordkenneth".to_string(), - ..Default::default() - } + wifi.set_config(&esp_radio::wifi::ModeConfig::Client( + ClientConfig::default() + .with_ssid("The Frequencey".to_string()) + .with_auth_method(esp_radio::wifi::AuthMethod::Wpa2Personal) + .with_password("thepasswordkenneth".to_string()) )).unwrap(); - wifi.set_mode(esp_wifi::wifi::WifiMode::Sta).unwrap(); - wifi.set_power_saving(esp_wifi::config::PowerSaveMode::Maximum).unwrap(); + wifi.set_mode(esp_radio::wifi::WifiMode::Sta).unwrap(); + wifi.set_power_saving(esp_radio::wifi::PowerSaveMode::Maximum).unwrap(); wifi.start_async().await.unwrap(); let device = interfaces.sta; @@ -46,7 +45,7 @@ pub async fn wireless_task(mut telemetry: DynSubscriber<'static, Telemetry>, wif let config = Config::dhcpv4(Default::default()); let (stack, runner) = embassy_net::new(device, config, RESOURCES.init_with(|| { StackResources::new() }), seed as u64); info!("Launching network task"); - Spawner::for_current_executor().await.must_spawn(net_task(runner)); + unsafe { Spawner::for_current_executor().await }.must_spawn(net_task(runner)); loop { Backoff::from_secs(3).forever().attempt(async || {