From 548636779e358d0d2af7e33f8cea72f22d26b772 Mon Sep 17 00:00:00 2001 From: Pat Nakajima Date: Thu, 11 Jun 2026 22:04:17 -0700 Subject: [PATCH] wip --- .cargo/config.toml | 2 +- Cargo.lock | 1218 ++++++++++++++++++++++++++++++-------------- Cargo.toml | 29 +- src/bin/main.rs | 129 ++++- 4 files changed, 976 insertions(+), 402 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 572bdce..cb7b533 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -4,7 +4,7 @@ runner = "espflash flash --monitor -L defmt --no-skip --chip esp32c6" rustflags = ["-C", "force-frame-pointers"] [env] -DEFMT_LOG = "trace" +DEFMT_LOG = "info" [build] rustflags = [ diff --git a/Cargo.lock b/Cargo.lock index 708449c..f22fe7e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,16 +3,19 @@ version = 4 [[package]] -name = "allocator-api2" -version = "0.2.21" +name = "aho-corasick" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] [[package]] -name = "anyhow" -version = "1.0.98" +name = "allocator-api2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "c583acf993cf4245c4acb0a2cc2ab1f9cc097de73411bb6d3647ff6af2b1013d" [[package]] name = "autocfg" @@ -27,32 +30,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] -name = "basic-toml" -version = "0.1.10" +name = "base64" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" -dependencies = [ - "serde", -] +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "bitfield" -version = "0.18.1" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7e6caee68becd795bfd65f1a026e4d00d8f0c2bc9be5eb568e1015f9ce3c34" +checksum = "21ba6517c6b0f2bf08be60e187ab64b038438f22dd755614d8fe4d4098c46419" dependencies = [ "bitfield-macros", ] [[package]] name = "bitfield-macros" -version = "0.18.1" +version = "0.19.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331afbb18ce7b644c0b428726d369c5dd37ca0b815d72a459fcc2896c3c8ad32" +checksum = "f48d6ace212fdf1b45fd6b566bb40808415344642b76c3224c07c8df9da81e97" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] @@ -68,24 +68,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] -name = "bt-hci" -version = "0.3.0" +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f7f1f43de0439ca5d300a85848235db843d6386dd56c066469423d440f4872" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "defmt 0.3.100", - "embassy-sync", - "embedded-io", - "embedded-io-async", - "futures-intrusive", - "heapless", + "generic-array", ] [[package]] name = "bytemuck" -version = "1.22.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -93,26 +88,82 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "cc" +version = "1.2.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556e016178bb5662a08681bbe0f00f8e17631781a4dfc8c45e466e4b185ec27f" +dependencies = [ + "find-msvc-tools", + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "const-default" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" + +[[package]] +name = "cordyceps" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" +dependencies = [ + "loom", + "tracing", +] + [[package]] name = "critical-section" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "darling" version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", ] [[package]] @@ -126,7 +177,33 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 2.0.101", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.101", ] [[package]] @@ -135,9 +212,31 @@ version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core", + "darling_core 0.20.11", "quote", - "syn", + "syn 2.0.101", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.101", ] [[package]] @@ -169,7 +268,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] @@ -189,7 +288,17 @@ checksum = "b9b6483c2bbed26f97861cf57651d4f2b731964a28cd2257f934a4b452480d21" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.101", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", ] [[package]] @@ -203,13 +312,13 @@ dependencies = [ [[package]] name = "embassy-embedded-hal" -version = "0.3.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fea5ef5bed4d3468dfd44f5c9fa4cda8f54c86d4fb4ae683eacf9d39e2ea12" +checksum = "b0641612053b2f34fc250bb63f6630ae75de46e02ade7f457268447081d709ce" dependencies = [ "embassy-futures", - "embassy-sync", - "embassy-time", + "embassy-hal-internal", + "embassy-sync 0.8.0", "embedded-hal 0.2.7", "embedded-hal 1.0.0", "embedded-hal-async", @@ -220,35 +329,52 @@ dependencies = [ [[package]] name = "embassy-executor" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90327bcc66333a507f89ecc4e2d911b265c45f5c9bc241f98eee076752d35ac6" +checksum = "5d0d3b15c9d7dc4fec1d8cb77112472fb008b3b28c51ad23838d83587a6d2f1e" dependencies = [ + "cordyceps", "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "document-features", "embassy-executor-macros", + "embassy-executor-timer-queue", ] [[package]] name = "embassy-executor-macros" -version = "0.6.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3577b1e9446f61381179a330fc5324b01d511624c55f25e3c66c9e3c626dbecf" +checksum = "d11a246f53de5f97a387f40ac24726817cd0b6f833e7603baac784f29d6ff276" dependencies = [ - "darling", + "darling 0.20.11", "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] -name = "embassy-futures" -version = "0.1.1" +name = "embassy-executor-timer-queue" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f878075b9794c1e4ac788c95b728f26aa6366d32eeb10c7051389f898f7d067" +checksum = "2fc328bf943af66b80b98755db9106bf7e7471b0cf47dc8559cd9a6be504cc9c" + +[[package]] +name = "embassy-futures" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc2d050bdc5c21e0862a89256ed8029ae6c290a93aecefc73084b3002cdebb01" dependencies = [ - "defmt 0.3.100", + "defmt 1.0.1", +] + +[[package]] +name = "embassy-hal-internal" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f10ce10a4dfdf6402d8e9bd63128986b96a736b1a0a6680547ed2ac55d55dba" +dependencies = [ + "num-traits", ] [[package]] @@ -259,11 +385,11 @@ checksum = "ed041cc19a603d657124fddefdcbe5ef8bd60e77d972793ebb57de93394f5949" dependencies = [ "document-features", "embassy-net-driver", - "embassy-sync", - "embassy-time", - "embedded-io-async", + "embassy-sync 0.6.2", + "embassy-time 0.4.0", + "embedded-io-async 0.6.1", "embedded-nal-async", - "heapless", + "heapless 0.8.0", "managed", "smoltcp", ] @@ -282,11 +408,39 @@ checksum = "8d2c8cdff05a7a51ba0087489ea44b0b1d97a296ca6b1d6d1a33ea7423d34049" dependencies = [ "cfg-if", "critical-section", - "defmt 0.3.100", - "embedded-io-async", + "embedded-io-async 0.6.1", "futures-sink", "futures-util", - "heapless", + "heapless 0.8.0", +] + +[[package]] +name = "embassy-sync" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73974a3edbd0bd286759b3d483540f0ebef705919a5f56f4fc7709066f71689b" +dependencies = [ + "cfg-if", + "critical-section", + "embedded-io-async 0.6.1", + "futures-core", + "futures-sink", + "heapless 0.8.0", +] + +[[package]] +name = "embassy-sync" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bbd85cf5a5ae56bdf26f618364af642d1d0a4e245cdd75cd9aabda382f65a81" +dependencies = [ + "cfg-if", + "critical-section", + "defmt 1.0.1", + "embedded-io-async 0.7.0", + "futures-core", + "futures-sink", + "heapless 0.9.3", ] [[package]] @@ -299,7 +453,6 @@ dependencies = [ "critical-section", "document-features", "embassy-time-driver", - "embassy-time-queue-utils", "embedded-hal 0.2.7", "embedded-hal 1.0.0", "embedded-hal-async", @@ -307,22 +460,39 @@ dependencies = [ ] [[package]] -name = "embassy-time-driver" -version = "0.2.0" +name = "embassy-time" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d45f5d833b6d98bd2aab0c2de70b18bfaa10faf661a1578fd8e5dfb15eb7eba" +checksum = "592b0c143ec626e821d4d90da51a2bd91d559d6c442b7c74a47d368c9e23d97a" +dependencies = [ + "cfg-if", + "critical-section", + "document-features", + "embassy-time-driver", + "embassy-time-queue-utils", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0", + "embedded-hal-async", + "futures-core", +] + +[[package]] +name = "embassy-time-driver" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ee71af1b3a0deaa53eaf2d39252f83504c853646e472400b763060389b9fcc9" dependencies = [ "document-features", ] [[package]] name = "embassy-time-queue-utils" -version = "0.1.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc55c748d16908a65b166d09ce976575fb8852cf60ccd06174092b41064d8f83" +checksum = "168297bf80aaf114b3c9ad589bf38b01b3009b9af7f97cd18086c5bbf96f5693" dependencies = [ - "embassy-executor", - "heapless", + "embassy-executor-timer-queue", + "heapless 0.9.3", ] [[package]] @@ -396,6 +566,15 @@ dependencies = [ "defmt 0.3.100", ] +[[package]] +name = "embedded-io" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eb1aa714776b75c7e67e1da744b81a129b3ff919c8712b5e1b32252c1f07cc7" +dependencies = [ + "defmt 1.0.1", +] + [[package]] name = "embedded-io-async" version = "0.6.1" @@ -403,7 +582,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" dependencies = [ "defmt 0.3.100", - "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 = [ + "defmt 1.0.1", + "embedded-io 0.7.1", ] [[package]] @@ -421,7 +610,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", ] @@ -440,37 +629,26 @@ dependencies = [ "embedded-storage", ] -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "enumset" -version = "1.1.5" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" +checksum = "839c4174b41e75c8f7306110b2c51996a293b8d1d850edd529011841d9fede7d" dependencies = [ + "defmt 1.0.1", "enumset_derive", ] [[package]] name = "enumset_derive" -version = "0.10.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" +checksum = "4bd536557b58c682b217b8fb199afdff47cd3eff260623f19e77074eb073d63a" dependencies = [ - "darling", + "darling 0.21.3", "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] @@ -481,82 +659,105 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "esp-alloc" -version = "0.7.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ced060d4085858283df950b80a4da2348e1707d7d07b1e966308582dae79f5" dependencies = [ "allocator-api2", "cfg-if", - "critical-section", "document-features", "enumset", + "esp-config", + "esp-sync", "linked_list_allocator", + "rlsf", ] [[package]] name = "esp-backtrace" -version = "0.15.1" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37950e24b2dfd98f1581102d1798281d4d9547af881e6bffc2c2b534c026ec8f" dependencies = [ "cfg-if", - "defmt 0.3.100", - "esp-build", + "defmt 1.0.1", + "document-features", "esp-config", + "esp-metadata-generated", "esp-println", - "heapless", + "heapless 0.9.3", + "riscv", + "xtensa-lx", ] [[package]] -name = "esp-build" -version = "0.2.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +name = "esp-bootloader-esp-idf" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ffc117c3a9859835d89d0e90f5ee9886ce2264a71a849a7a22ab5308f6653c" dependencies = [ - "quote", - "syn", - "termcolor", + "cfg-if", + "document-features", + "embedded-storage", + "esp-config", + "esp-hal-procmacros", + "esp-metadata-generated", + "esp-rom-sys", + "jiff", + "strum", ] [[package]] name = "esp-config" -version = "0.3.1" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d9b92fd9cfb0b4f8f1b6219b9763269a335571e307b014903b8201619374b80" dependencies = [ "document-features", + "esp-metadata-generated", "serde", - "serde_json", + "serde_yaml", + "somni-expr", ] [[package]] name = "esp-hal" -version = "1.0.0-beta.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bfcf2a0842903717f4663f6a08512c32b0f6b2d7fb7db3c8a6895d2e6d49f72" dependencies = [ - "basic-toml", "bitfield", "bitflags 2.9.0", "bytemuck", "cfg-if", "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "delegate", + "digest", "document-features", "embassy-embedded-hal", "embassy-futures", - "embassy-sync", + "embassy-sync 0.8.0", "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-build", "esp-config", "esp-hal-procmacros", - "esp-metadata", + "esp-metadata-generated", "esp-riscv-rt", + "esp-rom-sys", + "esp-sync", "esp32", "esp32c2", "esp32c3", + "esp32c5", "esp32c6", + "esp32c61", "esp32h2", "esp32s2", "esp32s3", @@ -565,197 +766,212 @@ dependencies = [ "nb 1.1.0", "paste", "portable-atomic", + "rand_core 0.10.1", "rand_core 0.6.4", "rand_core 0.9.3", "riscv", - "serde", - "strum 0.27.1", + "strum", "ufmt-write", - "void", "xtensa-lx", "xtensa-lx-rt", ] -[[package]] -name = "esp-hal-embassy" -version = "0.7.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" -dependencies = [ - "critical-section", - "document-features", - "embassy-executor", - "embassy-sync", - "embassy-time", - "embassy-time-driver", - "embassy-time-queue-utils", - "esp-build", - "esp-config", - "esp-hal", - "esp-hal-procmacros", - "esp-metadata", - "portable-atomic", - "static_cell", -] - [[package]] name = "esp-hal-procmacros" -version = "0.17.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aebfabb2c21bec45e575e4f6cb6bb7aa8e1b33e7ac45b5dffa0f9d33ff59105" dependencies = [ - "darling", "document-features", - "litrs", "object", "proc-macro-crate", - "proc-macro-error2", "proc-macro2", "quote", - "syn", + "syn 2.0.101", + "termcolor", ] [[package]] -name = "esp-metadata" -version = "0.6.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" -dependencies = [ - "anyhow", - "basic-toml", - "serde", - "strum 0.26.3", -] +name = "esp-metadata-generated" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42c2ee95b945a4780796e4359e72c033aed3b45073880e8029458f538532db8a" [[package]] name = "esp-println" -version = "0.13.1" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42dee1e9ac7c3539bf6464db1707b0edd7557168f98278cf3c84fe70e63c6ce6" dependencies = [ - "critical-section", - "defmt 0.3.100", - "esp-build", + "defmt 1.0.1", + "document-features", + "esp-metadata-generated", + "esp-sync", "log", "portable-atomic", ] [[package]] name = "esp-riscv-rt" -version = "0.10.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a814ae91452de56a5e74f69aebfee40579511756837d3774a56fd24cf0ab79" dependencies = [ + "defmt 1.0.1", "document-features", "riscv", - "riscv-rt-macros", + "riscv-rt", ] [[package]] -name = "esp-wifi" -version = "0.13.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +name = "esp-rom-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae852ccb08971155023d1371c96d5490cbc26860f06aee2d629ef73f1a890c3" dependencies = [ - "allocator-api2", - "bt-hci", "cfg-if", - "critical-section", - "defmt 0.3.100", "document-features", - "embassy-net-driver", - "embassy-sync", - "embedded-io", - "embedded-io-async", - "enumset", - "esp-alloc", - "esp-build", + "esp-metadata-generated", + "esp32c6", +] + +[[package]] +name = "esp-rtos" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "551f90766e1527edaa0c91e8d559e9e2a60397b545e93357ac61fb31845e5712" +dependencies = [ + "cfg-if", + "defmt 1.0.1", + "document-features", + "embassy-executor", + "embassy-sync 0.8.0", + "embassy-time-driver", + "embassy-time-queue-utils", "esp-config", "esp-hal", - "esp-metadata", - "esp-wifi-sys", - "num-derive", - "num-traits", + "esp-hal-procmacros", + "esp-metadata-generated", + "esp-rom-sys", + "esp-sync", "portable-atomic", - "portable_atomic_enum", - "rand_core 0.6.4", - "smoltcp", + "riscv", + "xtensa-lx", ] [[package]] -name = "esp-wifi-sys" -version = "0.7.1" +name = "esp-sync" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b5438361891c431970194a733415006fb3d00b6eb70b3dcb66fd58f04d9b39" +checksum = "b4736bfbbb9e3f6353344e14fc61b6d18d3b877c3286914cf8c0a037be0ed224" dependencies = [ - "anyhow", - "defmt 0.3.100", + "cfg-if", + "defmt 1.0.1", + "document-features", + "embassy-sync 0.6.2", + "embassy-sync 0.7.2", + "embassy-sync 0.8.0", + "esp-metadata-generated", + "riscv", + "xtensa-lx", ] [[package]] name = "esp32" -version = "0.36.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.40.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5726e07689249d1a2cb7c492077bc424837fb68a64f7eb5d46569325352e9428" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "vcell", ] [[package]] name = "esp32c2" -version = "0.25.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.29.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef0b623533bbaa37e348c18b6b41cfd5b47c3cb64a4b9e44f0295941d62aa2e" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "vcell", ] [[package]] name = "esp32c3" -version = "0.28.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e89ed62cf6c043a6d29c520b02a13b359ec8a75d67b65d4330ed717d15fe97" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", + "vcell", +] + +[[package]] +name = "esp32c5" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6f8ba56195df10224263c60ceb93b4578450019ee838b7338039a281117cb02" +dependencies = [ + "defmt 1.0.1", "vcell", ] [[package]] name = "esp32c6" -version = "0.19.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f34ff2633968c12125efc7f4f8f101078d5d34c7cb60eab82268db20986f9" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", + "vcell", +] + +[[package]] +name = "esp32c61" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a926616351b1edfdb50b7ea6451a8dff0c7515c6ceb687063af7d32b117ec0d" +dependencies = [ + "defmt 1.0.1", "vcell", ] [[package]] name = "esp32h2" -version = "0.15.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5bab026020ed4606ce113b6fde598dbc48f7eefcc46e9469ece77cc2b1aa4be" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "vcell", ] [[package]] name = "esp32s2" -version = "0.27.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0ad6f21cdf6ec7b06b7f7e0fbe51f0d975fd6a5fa67c3f8a5a910d3981af531" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "vcell", ] [[package]] name = "esp32s3" -version = "0.31.0" -source = "git+https://github.com/esp-rs/esp-pacs?rev=2964cc4#2964cc46095c7e903fa32a909181d6fb00554ddc" +version = "0.35.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4b8c4e4d9f187553ecdb7173edec7b2deb2beea106eedefecdb1654b8ee25a" dependencies = [ - "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "vcell", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "float-cmp" version = "0.9.0" @@ -787,16 +1003,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", -] - [[package]] name = "futures-sink" version = "0.3.31" @@ -827,6 +1033,31 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" +[[package]] +name = "generator" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b854b0e584ead1a33f18b2fcad7cf7be18b3875c78816b753639aa501513ae" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows-link", + "windows-result", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "hash32" version = "0.3.1" @@ -838,9 +1069,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heapless" @@ -848,7 +1079,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ - "defmt 0.3.100", + "hash32", + "stable_deref_trait", +] + +[[package]] +name = "heapless" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ba4bd83f9415b58b4ed8dc5714c76e626a105be4646c02630ad730ad3b5aa4" +dependencies = [ "hash32", "stable_deref_trait", ] @@ -867,9 +1107,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.9.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", "hashbrown", @@ -883,15 +1123,15 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] name = "instability" -version = "0.3.7" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf9fed6d91cfb734e7476a06bde8300a1b94e217e1b523b6f0cd1a01998c71d" +checksum = "5eb2d60ef19920a3a9193c3e371f726ec1dafc045dac788d0fb3704272458971" dependencies = [ - "darling", + "darling 0.23.0", "indoc", "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] @@ -900,32 +1140,69 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-static" +version = "0.2.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "kinda" version = "0.1.0" dependencies = [ "critical-section", - "defmt 0.3.100", + "defmt 1.0.1", "embassy-executor", "embassy-futures", "embassy-net", - "embassy-time", + "embassy-time 0.5.1", "embedded-graphics", "embedded-hal 1.0.0", - "embedded-io", - "embedded-io-async", + "embedded-io 0.6.1", + "embedded-io-async 0.6.1", "esp-alloc", "esp-backtrace", + "esp-bootloader-esp-idf", "esp-hal", - "esp-hal-embassy", "esp-println", - "esp-wifi", - "heapless", + "esp-rtos", + "heapless 0.8.0", + "lm3630a", "smoltcp", "ssd1677", "static_cell", ] +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + [[package]] name = "linked_list_allocator" version = "0.10.5" @@ -937,18 +1214,15 @@ name = "litrs" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" -dependencies = [ - "proc-macro2", -] [[package]] -name = "lock_api" -version = "0.4.12" +name = "lm3630a" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "08f71595e2883ffcd431ed99e799dcdb7ba473685edd90780ad191d66723845b" dependencies = [ - "autocfg", - "scopeguard", + "embedded-hal 1.0.0", + "embedded-hal-async", ] [[package]] @@ -957,12 +1231,34 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "managed" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + [[package]] name = "memchr" version = "2.7.4" @@ -975,15 +1271,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c8dda44ff03a2f238717214da50f65d5a53b45cd213a7370424ffdb6fae815" -[[package]] -name = "minijinja" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98642a6dfca91122779a307b77cd07a4aa951fbe32232aaf5bad9febc66be754" -dependencies = [ - "serde", -] - [[package]] name = "nb" version = "0.1.3" @@ -1000,14 +1287,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" [[package]] -name = "num-derive" -version = "0.4.2" +name = "nu-ansi-term" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "proc-macro2", - "quote", - "syn", + "windows-sys", ] [[package]] @@ -1021,13 +1306,19 @@ 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", ] +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + [[package]] name = "paste" version = "1.0.15" @@ -1053,31 +1344,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] -name = "portable_atomic_enum" -version = "0.3.1" +name = "portable-atomic-util" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d48f60c43e0120bb2bb48589a16d4bed2f4b911be41e299f2d0fc0e0e20885" +checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" dependencies = [ "portable-atomic", - "portable_atomic_enum_macros", -] - -[[package]] -name = "portable_atomic_enum_macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33fa6ec7f2047f572d49317cca19c87195de99c6e5b6ee492da701cfe02b053" -dependencies = [ - "proc-macro2", - "quote", - "syn", ] [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] @@ -1101,7 +1380,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] @@ -1122,12 +1401,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "r0" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7a31eed1591dcbc95d92ad7161908e72f4677f8fabf2a32ca49b4237cbf211" - [[package]] name = "rand_core" version = "0.6.4" @@ -1141,10 +1414,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" [[package]] -name = "riscv" -version = "0.12.1" +name = "rand_core" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea8ff73d3720bdd0a97925f0bf79ad2744b6da8ff36be3840c48ac81191d7a7" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "riscv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05cfa3f7b30c84536a9025150d44d26b8e1cc20ddf436448d74cd9591eefb25" dependencies = [ "critical-section", "embedded-hal 1.0.0", @@ -1155,13 +1451,13 @@ 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", - "syn", + "syn 2.0.101", ] [[package]] @@ -1171,14 +1467,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 = [ + "defmt 1.0.1", + "riscv", + "riscv-pac", + "riscv-rt-macros", + "riscv-target-parser", +] + +[[package]] +name = "riscv-rt-macros" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def519ddeeb5e43c2b4fc3952c27b3a86782fc05192f322b2309125cd85b1fc3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.101", +] + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1646a59a9734b8b7a0ac51689388a60fe1625d4b956348e9de07591a1478457a" +dependencies = [ + "cfg-if", + "const-default", + "libc", + "rustversion", + "svgbobdoc", ] [[package]] @@ -1194,52 +1522,75 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] -name = "scopeguard" -version = "1.2.0" +name = "scoped-tls" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] -name = "serde_json" -version = "1.0.140" +name = "serde_yaml" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ + "indexmap", "itoa", - "memchr", "ryu", "serde", + "unsafe-libyaml", ] [[package]] -name = "serde_spanned" -version = "0.6.8" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "serde", + "lazy_static", ] +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + [[package]] name = "smoltcp" version = "0.12.0" @@ -1249,11 +1600,25 @@ dependencies = [ "bitflags 1.3.2", "byteorder", "cfg-if", - "defmt 0.3.100", - "heapless", + "heapless 0.8.0", "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 = "ssd1677" version = "0.1.0" @@ -1284,35 +1649,13 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - [[package]] name = "strum" version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" dependencies = [ - "strum_macros 0.27.1", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn", + "strum_macros", ] [[package]] @@ -1325,7 +1668,31 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 2.0.101", +] + +[[package]] +name = "svgbobdoc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" +dependencies = [ + "base64", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-width", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] @@ -1365,49 +1732,114 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] [[package]] -name = "toml" -version = "0.8.21" +name = "thread_local" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900f6c86a685850b1bc9f6223b20125115ee3f31e01207d81655bbcc0aea9231" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", + "cfg-if", ] [[package]] name = "toml_datetime" -version = "0.6.9" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "toml_edit" -version = "0.22.25" +version = "0.25.12+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10558ed0bd2a1562e630926a2d1f0b98c827da99fabd3fe20920a59642504485" +checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ "indexmap", - "serde", - "serde_spanned", "toml_datetime", - "toml_write", + "toml_parser", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.0" +name = "toml_parser" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28391a4201ba7eb1984cfeb6862c0b3ea2cfe23332298967c749dddc0d6cd976" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "typenum" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ufmt-write" @@ -1421,12 +1853,36 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "vcell" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + [[package]] name = "void" version = "1.0.2" @@ -1442,6 +1898,21 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.59.0" @@ -1517,46 +1988,41 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.7" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" dependencies = [ "memchr", ] [[package]] name = "xtensa-lx" -version = "0.10.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e012d667b0aa6d2592ace8ef145a98bff3e76cca7a644f4181ecd7a916ed289b" dependencies = [ "critical-section", - "document-features", ] [[package]] name = "xtensa-lx-rt" -version = "0.18.0" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409a9b4629d429e995cde4dfbd9fe562ccae66f7624514e200733fc5d0ea8905" dependencies = [ - "anyhow", + "defmt 1.0.1", "document-features", - "enum-as-inner", - "minijinja", - "r0", - "serde", - "strum 0.26.3", - "toml", "xtensa-lx", "xtensa-lx-rt-proc-macros", ] [[package]] name = "xtensa-lx-rt-proc-macros" -version = "0.2.2" -source = "git+https://github.com/esp-rs/esp-hal?rev=4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102#4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96fb42cd29c42f8744c74276e9f5bee7b06685bbe5b88df891516d72cb320450" dependencies = [ - "darling", "proc-macro2", "quote", - "syn", + "syn 2.0.101", ] diff --git a/Cargo.toml b/Cargo.toml index 8406948..fa5839f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ path = "./src/bin/main.rs" [dependencies] ssd1677 = { path = "../forks/SSD1677" } -defmt = "0.3.10" +defmt = "1.0.1" embassy-net = { version = "0.6.0", features = [ "dhcpv4", "medium-ethernet", @@ -18,8 +18,8 @@ embassy-net = { version = "0.6.0", features = [ ] } embedded-io = "0.6.1" embedded-io-async = "0.6.1" -esp-alloc = { git = "https://github.com/esp-rs/esp-hal", rev = "4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102" } -esp-hal = { git = "https://github.com/esp-rs/esp-hal", rev = "4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102", features = [ +esp-alloc = "0.10.0" +esp-hal = { version = "1.1.1", features = [ "defmt", "esp32c6", "unstable", @@ -36,30 +36,23 @@ smoltcp = { version = "0.12.0", default-features = false, features = [ ] } # for more networking protocol support see https://crates.io/crates/edge-net critical-section = "1.2.0" -embassy-executor = { version = "0.7.0", features = ["defmt", "nightly"] } -embassy-time = { version = "0.4.0", features = ["generic-queue-8"] } -esp-hal-embassy = { git = "https://github.com/esp-rs/esp-hal", rev = "4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102", features = [ - "esp32c6", -] } -esp-wifi = { git = "https://github.com/esp-rs/esp-hal", rev = "4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102", features = [ - "builtin-scheduler", - "defmt", - "esp-alloc", - "esp32c6", - "wifi", -] } +embassy-executor = { version = "0.10.0", features = ["defmt", "nightly"] } +embassy-time = { version = "0.5.0", features = ["generic-queue-8"] } +esp-rtos = { version = "0.3.0", features = ["embassy", "defmt", "esp32c6"] } heapless = { version = "0.8.0", default-features = false } static_cell = { version = "2.1.0", features = ["nightly"] } embedded-hal = { version = "1.0.0", features = ["defmt-03"] } -esp-println = { git = "https://github.com/esp-rs/esp-hal", rev = "4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102", features = [ +esp-println = { version = "0.17.0", features = [ "defmt-espflash", "esp32c6", - "log", + "log-04", ] } -esp-backtrace = { git = "https://github.com/esp-rs/esp-hal", rev = "4ec4e6cfbdc02f2fa92f85985f5d98fd6a22b102", features = ["exception-handler", "panic-handler", "esp32c6", "defmt"] } +esp-backtrace = { version = "0.19.0", features = ["panic-handler", "esp32c6", "defmt"] } +esp-bootloader-esp-idf = { version = "0.5.0", features = ["esp32c6"] } embedded-graphics = { version = "0.8.1", features = ["defmt"] } embassy-futures = { version = "0.1.1", features = ["defmt"] } +lm3630a = { version = "0.1.1", features = ["async"] } [profile.dev] # Rust debug is too slow. diff --git a/src/bin/main.rs b/src/bin/main.rs index 8c941f3..2f558fc 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -13,17 +13,25 @@ use embedded_graphics::text::Text; use embedded_hal::delay::DelayNs; use embedded_hal::spi::{ErrorType, Operation, SpiBus, SpiDevice}; use esp_backtrace as _; -use esp_hal::gpio::{Input, Level, Output}; -use esp_hal::timer::systimer::SystemTimer; -use esp_hal::{clock::CpuClock, spi::master::Spi}; +use esp_hal::gpio::{Input, InputConfig, Level, Output, Pull}; +use esp_hal::i2c::master::{Config as I2cConfig, I2c}; +use esp_hal::interrupt::software::SoftwareInterruptControl; +use esp_hal::timer::timg::TimerGroup; +use esp_hal::{clock::CpuClock, spi::master::Spi, time::Rate}; use esp_hal::{spi, Blocking}; use esp_println as _; +use lm3630a::{ + Address, Bank, Brightness, Configuration, ControlConfig, FullScaleCurrent, Led2Bank, Lm3630a, + Mapping, +}; // use panic_rtt_target as _; use ssd1677::display::{Dimensions, DisplayUpdateMode, Rotation}; use ssd1677::graphics::GraphicsDisplayBlackAndWhite; extern crate alloc; +esp_bootloader_esp_idf::esp_app_desc!(); + struct SpiDriver { inner: Spi<'static, Blocking>, delay: Delay, @@ -54,20 +62,38 @@ impl SpiDevice for SpiDriver { } } -#[esp_hal_embassy::main] +#[esp_rtos::main] async fn main(spawner: Spawner) { let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max()); let peripherals = esp_hal::init(config); esp_alloc::heap_allocator!(size: 48 * 1024); - let timer0 = SystemTimer::new(peripherals.SYSTIMER); - esp_hal_embassy::init(timer0.alarm0); + let software_interrupt = SoftwareInterruptControl::new(peripherals.SW_INTERRUPT); + let timg0 = TimerGroup::new(peripherals.TIMG0); + esp_rtos::start(timg0.timer0, software_interrupt.software_interrupt0); info!("Embassy initialized!"); let _ = spawner; + let button_bottom = Input::new( + peripherals.GPIO14, + InputConfig::default().with_pull(Pull::Up), + ); + let button_left = Input::new( + peripherals.GPIO19, + InputConfig::default().with_pull(Pull::Up), + ); + let button_right_up = Input::new( + peripherals.GPIO20, + InputConfig::default().with_pull(Pull::Up), + ); + let button_right_down = Input::new( + peripherals.GPIO21, + InputConfig::default().with_pull(Pull::Up), + ); + let spi_config = spi::master::Config::default().with_mode(spi::Mode::_0); let spi = Spi::new(peripherals.SPI2, spi_config) .expect("did not get SPI") @@ -115,6 +141,95 @@ async fn main(spawner: Spawner) { .expect("did not clear screen"); screen.update(DisplayUpdateMode::Slow).unwrap(); + let mut backlight_enable = Output::new(peripherals.GPIO18, Level::High, Default::default()); + backlight_enable.set_high(); + Timer::after_millis(10).await; + + let mut i2c = I2c::new( + peripherals.I2C0, + I2cConfig::default().with_frequency(Rate::from_khz(10)), + ) + .expect("did not get I2C") + .with_sda(peripherals.GPIO22) + .with_scl(peripherals.GPIO23); + + info!("Scanning I2C bus"); + let mut devices_found = 0u8; + for address in 0x08..=0x77 { + if i2c.write(address, &[]).is_ok() { + devices_found += 1; + info!("I2C device ACK at {}", address); + } + } + info!("I2C scan complete, found {} devices", devices_found); + + let mut backlight = Lm3630a::new(i2c, Address::SelLow); + backlight.wait_until_ready(&mut Delay); + + let current = FullScaleCurrent::from_code(6).expect("invalid backlight current code"); + let backlight_init: Result<(), esp_hal::i2c::master::Error> = (|| { + let revision = backlight.revision().map_err(|error| { + defmt::error!("LM3630A did not respond at 0x36: {:?}", error); + error + })?; + info!("LM3630A revision {}", revision); + + backlight + .set_configuration(Configuration::default()) + .map_err(|error| { + defmt::error!("LM3630A configuration write failed: {:?}", error); + error + })?; + backlight + .set_full_scale_current(Bank::A, current) + .map_err(|error| { + defmt::error!("LM3630A bank A current write failed: {:?}", error); + error + })?; + backlight + .set_full_scale_current(Bank::B, current) + .map_err(|error| { + defmt::error!("LM3630A bank B current write failed: {:?}", error); + error + })?; + backlight + .set_brightness(Bank::A, Brightness::from_raw(128)) + .map_err(|error| { + defmt::error!("LM3630A bank A brightness write failed: {:?}", error); + error + })?; + backlight + .set_brightness(Bank::B, Brightness::from_raw(128)) + .map_err(|error| { + defmt::error!("LM3630A bank B brightness write failed: {:?}", error); + error + })?; + backlight + .set_control(ControlConfig { + sleep: false, + bank_a_mapping: Mapping::Linear, + bank_b_mapping: Mapping::Linear, + bank_a_enabled: true, + bank_b_enabled: true, + led2_bank: Led2Bank::B, + }) + .map_err(|error| { + defmt::error!("LM3630A control write failed: {:?}", error); + error + })?; + + Ok(()) + })(); + + if backlight_init.is_ok() { + info!("LM3630A backlight enabled"); + if let Err(error) = backlight.set_brightness(Bank::A, Brightness::from_raw(100)) { + defmt::error!("LM3630A brightness update failed: {:?}", error); + } + } else { + defmt::error!("Skipping LM3630A brightness update because init failed"); + } + loop { info!("Turning {}", if is_on { "on" } else { "off" }); @@ -136,7 +251,7 @@ async fn main(spawner: Spawner) { .background_color(BinaryColor::Off) .build(); - Text::new(text, Point::new(16, 24), style) + Text::new(text, Point::new(16, 28), style) .draw(&mut screen) .expect("did not draw text");