1#![allow(missing_docs)]
2#![cfg(feature = "wifi")]
5#![no_std]
6#![no_main]
7#![allow(clippy::future_not_send, reason = "single-threaded")]
8
9extern crate defmt_rtt as _;
10extern crate panic_probe as _;
11
12use core::convert::Infallible;
13use core::future;
14use device_envoy::{
15 Result,
16 button::PressedTo,
17 flash_array::FlashArray,
18 wifi_auto::WifiAuto,
19};
20
21#[embassy_executor::main]
22async fn main(spawner: embassy_executor::Spawner) -> ! {
23 let err = inner_main(spawner).await.unwrap_err();
24 core::panic!("{err}");
25}
26
27async fn inner_main(spawner: embassy_executor::Spawner) -> Result<Infallible> {
28 let p = embassy_rp::init(Default::default());
29
30 let [wifi_flash] = FlashArray::<1>::new(p.FLASH)?;
31
32 let wifi_auto = WifiAuto::new(
33 p.PIN_23, p.PIN_24, p.PIN_25, p.PIN_29, p.PIO0, p.DMA_CH0, wifi_flash,
40 p.PIN_13, PressedTo::Ground,
42 "PicoAccess", [], spawner,
45 )?;
46
47 let (_stack, _button) = wifi_auto.connect(|_event| async move { Ok(()) }).await?;
48
49 future::pending().await }