diff --git a/Cargo.lock b/Cargo.lock index bd63cac..ba90c82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,17 +72,29 @@ checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "bt-hci" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "211713d2e9fb4793ce4360a712c0764264aff6be48932ccf02ca2a331c0436a9" +checksum = "f63b3d6f0ef006d9b87a075705d6c142b03681ad34090659647f0e227c1c667f" dependencies = [ + "bt-hci-transport", "btuuid", "defmt 1.1.1", - "embassy-sync 0.8.0", + "embassy-sync", "embedded-io 0.7.1", "embedded-io-async 0.7.0", "futures-intrusive", - "heapless 0.9.3", + "heapless", +] + +[[package]] +name = "bt-hci-transport" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb9819c69cf88877f5eebc8c5ade0ab50f2bf9475bbb3eb714d66c55b0cb64" +dependencies = [ + "defmt 1.1.1", + "embedded-io 0.7.1", + "embedded-io-async 0.7.0", ] [[package]] @@ -315,7 +327,7 @@ dependencies = [ "defmt 1.1.1", "embassy-futures", "embassy-hal-internal 0.4.0", - "embassy-sync 0.8.0", + "embassy-sync", "embassy-time", "embedded-hal 0.2.7", "embedded-hal 1.0.0", @@ -390,9 +402,9 @@ dependencies = [ [[package]] name = "embassy-nrf" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b715380574504335c40ec3016bc44598fac3c385f82959b26c41b25c30b7648d" +checksum = "82051f67e8a06a8faebd183f62cfade184c96be68126c5f064abb8223a591ff1" dependencies = [ "bitflags 2.13.0", "cfg-if", @@ -404,10 +416,11 @@ dependencies = [ "embassy-embedded-hal", "embassy-futures", "embassy-hal-internal 0.5.0", - "embassy-sync 0.8.0", + "embassy-sync", "embassy-time-driver", "embassy-time-queue-utils", "embassy-usb-driver", + "embassy-usb-synopsys-otg", "embedded-hal 0.2.7", "embedded-hal 1.0.0", "embedded-hal-async", @@ -417,24 +430,11 @@ dependencies = [ "embedded-storage-async", "fixed", "nrf-pac", + "rand_core 0.10.1", "rand_core 0.6.4", "rand_core 0.9.5", ] -[[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" @@ -447,7 +447,7 @@ dependencies = [ "embedded-io-async 0.7.0", "futures-core", "futures-sink", - "heapless 0.9.3", + "heapless", ] [[package]] @@ -483,7 +483,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "168297bf80aaf114b3c9ad589bf38b01b3009b9af7f97cd18086c5bbf96f5693" dependencies = [ "embassy-executor-timer-queue", - "heapless 0.9.3", + "heapless", ] [[package]] @@ -497,6 +497,20 @@ dependencies = [ "embedded-io-async 0.7.0", ] +[[package]] +name = "embassy-usb-synopsys-otg" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6efd0c0e0b21bcf91b475b8fa47347c1df32c9a99728ae1e1b0e6625862dfd1a" +dependencies = [ + "critical-section", + "defmt 1.1.1", + "embassy-sync", + "embassy-time", + "embassy-usb-driver", + "portable-atomic", +] + [[package]] name = "embedded-hal" version = "0.2.7" @@ -709,16 +723,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "heapless" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" -dependencies = [ - "hash32", - "stable_deref_trait", -] - [[package]] name = "heapless" version = "0.9.3" @@ -849,15 +853,16 @@ dependencies = [ [[package]] name = "nrf-mpsl" -version = "0.3.0" -source = "git+https://github.com/alexmoon/nrf-sdc?rev=08620f00fa54e1423c4d54d2da073fb819602d27#08620f00fa54e1423c4d54d2da073fb819602d27" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c3fae25579f57d60d5cbc9b1838bc0c7f13539a5ede1667dc2e27fc0f539d2" dependencies = [ "cfg-if", "cortex-m", "critical-section", "defmt 1.1.1", "embassy-nrf", - "embassy-sync 0.8.0", + "embassy-sync", "embedded-io 0.7.1", "embedded-storage", "embedded-storage-async", @@ -866,8 +871,9 @@ dependencies = [ [[package]] name = "nrf-mpsl-sys" -version = "0.2.1" -source = "git+https://github.com/alexmoon/nrf-sdc?rev=08620f00fa54e1423c4d54d2da073fb819602d27#08620f00fa54e1423c4d54d2da073fb819602d27" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e0f91bc35e6d8192106f8d2c24be600e97769024e82f1babc6b4fd5b7b8995" dependencies = [ "bindgen", "doxygen-rs", @@ -875,9 +881,9 @@ dependencies = [ [[package]] name = "nrf-pac" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddd547fab92b0553ff37032034fd04ce8b8b60d3f9a83f89ea815dfd0400336" +checksum = "83531b9f1e19f493018da9b8b20359e4cedd6d1357553b1ac50f3fa27a0104fa" dependencies = [ "cortex-m", "cortex-m-rt", @@ -886,13 +892,15 @@ dependencies = [ [[package]] name = "nrf-sdc" version = "0.4.0" -source = "git+https://github.com/alexmoon/nrf-sdc?rev=08620f00fa54e1423c4d54d2da073fb819602d27#08620f00fa54e1423c4d54d2da073fb819602d27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5916d1521376d6876d0b0e3353e9affa03ce55daa9346188a5815db1c2eb84d" dependencies = [ "bt-hci", + "bt-hci-transport", "critical-section", "defmt 1.1.1", "embassy-nrf", - "embassy-sync 0.8.0", + "embassy-sync", "embedded-io 0.7.1", "embedded-io-async 0.7.0", "nrf-mpsl", @@ -902,8 +910,9 @@ dependencies = [ [[package]] name = "nrf-sdc-sys" -version = "0.2.1" -source = "git+https://github.com/alexmoon/nrf-sdc?rev=08620f00fa54e1423c4d54d2da073fb819602d27#08620f00fa54e1423c4d54d2da073fb819602d27" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "974a5010cc3a61b43e82ee6f9a2bfd80d894c8720dad08b87376f8a3048c1ecf" dependencies = [ "bindgen", "doxygen-rs", @@ -1048,6 +1057,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "regex" version = "1.12.4" @@ -1109,7 +1124,7 @@ version = "0.1.0" source = "git+https://tangled.org/sachy.dev/sachy-embed-core#b86fd0aee4dd367586eb28a9f161ec473da0d46d" dependencies = [ "defmt 1.1.1", - "heapless 0.9.3", + "heapless", "sachy-fmt", ] @@ -1133,7 +1148,7 @@ dependencies = [ "embassy-executor", "embassy-futures", "embassy-nrf", - "embassy-sync 0.8.0", + "embassy-sync", "embassy-time", "embedded-hal 1.0.0", "embedded-hal-async", @@ -1343,19 +1358,17 @@ dependencies = [ [[package]] name = "trouble-host" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df7817cead4b83dfbeeaa59736ecbc97c30b21dc3bfc0cc2ce8a6687f70b37a" +version = "0.8.0" +source = "git+https://github.com/embassy-rs/trouble?rev=42e3e04de00db3951b126741e1f3602bfdf5df47#42e3e04de00db3951b126741e1f3602bfdf5df47" dependencies = [ "bt-hci", "defmt 1.1.1", "embassy-futures", - "embassy-sync 0.7.2", + "embassy-sync", "embassy-time", "embedded-io 0.7.1", "futures", - "heapless 0.9.3", - "rand_core 0.6.4", + "heapless", "static_cell", "zerocopy", ] diff --git a/Cargo.toml b/Cargo.toml index 680fdd9..4dbcf95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,22 +70,22 @@ embassy-executor = { version = "0.10", features = [ "nightly", ] } embassy-futures = "0.1" -embassy-nrf = { version = "0.10", features = [ +embassy-nrf = { version = "0.11", features = [ "nrf52840", "gpiote", "time-driver-rtc1", "rt", ] } -nrf-pac = "=0.3.0" +nrf-pac = "=0.4.0" embassy-sync = "0.8" embassy-time = { version = "0.5" } embedded-hal = { version = "1.0.0" } embedded-hal-async = "1.0.0" -nrf-sdc = { git = "https://github.com/alexmoon/nrf-sdc", rev = "08620f00fa54e1423c4d54d2da073fb819602d27", features = ["multirole", "nrf52840"] } -nrf-mpsl = { git = "https://github.com/alexmoon/nrf-sdc", rev = "08620f00fa54e1423c4d54d2da073fb819602d27", features = ["critical-section-impl"] } -bt-hci = "0.8" -trouble-host = { version = "0.6", features = ["default-packet-pool", "peripheral"], default-features = false } +nrf-sdc = { version = "0.4", features = ["multirole", "nrf52840"] } +nrf-mpsl = { version = "0.4", features = ["critical-section-impl"] } +bt-hci = "0.10" +trouble-host = { git = "https://github.com/embassy-rs/trouble", rev = "42e3e04de00db3951b126741e1f3602bfdf5df47", features = ["default-packet-pool", "peripheral", "extended-advertising"], default-features = false } sachy-fmt = { git = "https://tangled.org/sachy.dev/sachy-embed-core", package = "sachy-fmt" } sachy-battery = { git = "https://tangled.org/sachy.dev/sachy-embed-core", package = "sachy-battery" } diff --git a/src/adc.rs b/src/adc.rs index d4d5829..8b15894 100644 --- a/src/adc.rs +++ b/src/adc.rs @@ -74,7 +74,7 @@ fn init_saadc<'scope>( let bat_config = ChannelConfig::single_ended(saadc::VddInput); let mut saadc_config = Config::default(); - saadc_config.resolution = Resolution::_10BIT; + saadc_config.resolution = Resolution::_10bit; Saadc::new( saadc, diff --git a/src/ble.rs b/src/ble.rs index ba73f3c..b33466b 100644 --- a/src/ble.rs +++ b/src/ble.rs @@ -43,13 +43,10 @@ pub async fn task( static STACK: StaticCell = StaticCell::new(); let resources = RESOURCES.init_with(HostResources::new); - let stack = STACK.init_with(|| trouble_host::new(controller, resources)); - let Host { - peripheral, runner, .. - } = stack.build(); + let stack = STACK.init_with(|| trouble_host::new(controller, resources).build()); - spawner.spawn(unwrap!(ble_stack_runner(runner))); - spawner.spawn(unwrap!(ble_advertise(peripheral))); + spawner.spawn(unwrap!(ble_stack_runner(stack.runner()))); + spawner.spawn(unwrap!(ble_advertise(stack.peripheral()))); } #[embassy_executor::task] @@ -97,6 +94,7 @@ async fn ble_advertise(mut peripheral: BlePeripheral) -> ! { .encode(); let set = [AdvertisementSet { + address: None, params, data: Advertisement::NonconnectableNonscannableUndirected { adv_data }, }];