Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • crates-reorga
  • main
  • test-badgenet
  • tuxcoder_dome
  • tuxcoder_fix_captouch
  • wifi
6 results

Target

Select target project
  • Kezi/flow3-rs
  • kototama/flow3-rs
  • beanieboi/flow3-rs
  • tuxcoder/flow3-rs
  • Bakeromso/flow3-rs
  • mborges/flow3-rs
  • annoyatron/flow3-rs
  • flow3r/flow3-rs
8 results
Select Git revision
  • crates-reorga
  • main
  • rust-group
  • second-core
  • test-badgenet
  • wifi
6 results
Show changes

Commits on Source 2

Showing
with 3192 additions and 192 deletions
{
"rust-analyzer.checkOnSave.allTargets": false,
}
\ No newline at end of file
......@@ -5,15 +5,15 @@ edition = "2021"
authors = ["zdmx <hi@zdmx.me>"]
[dependencies]
embassy-time = "0.1.1"
embassy-time = "0.1.2"
embassy-sync = "0.2.0"
embassy-futures = "0.1.0"
embassy-net-driver-channel = "0.1.0"
embedded-hal = "0.2.7"
embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.10" }
embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.11" }
embedded-hal-async = "0.2.0-alpha.1"
serial-line-ip = "0.5.0"
heapless = "0.7.16"
esp32s3-hal = { version = "0.10.0", features = ["embedded-hal-async", "async"] }
esp32s3-hal = { version = "0.11.0", features = ["embedded-hal-async", "async"] }
esp-println = { version = "0.5.0", features = ["esp32s3"] }
......@@ -8,7 +8,6 @@ use embedded_hal_async::serial::Write;
use esp32s3_hal::uart::Instance;
use esp32s3_hal::Uart;
use esp_println::println;
use heapless::Vec;
use serial_line_ip::{Decoder, Encoder};
const MTU: usize = 1500;
......
File moved
This diff is collapsed.
[package]
name = "flow3-rs-rt"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
embassy-executor = { version = "0.2.0", features = ["nightly", "arch-xtensa", "executor-thread", "integrated-timers"] }
hal = { package = "esp32s3-hal", version = "0.11.0", features = ["embassy", "async", "embassy-time", "embassy-time-systick"] }
embassy-time = { version = "=0.1.2", features = ["nightly", "unstable-traits"] }
static_cell = "1.2.0"
shared-bus = { version = "0.3.0", features = ["xtensa"] }
flow3-rs = { path = "../flow3-rs" }
lazy_static = { version = "1.4.0", features = ["spin_no_std"] }
esp-println = { version = "0.5.0", features = ["esp32s3"] }
embassy-sync = "0.2.0"
File moved
use embassy_executor::{Executor, Spawner};
use embassy_time::{Duration, Timer};
use esp_println::println;
use hal::{
clock::{ClockControl, Clocks},
cpu_control::CpuControl,
......@@ -13,52 +10,23 @@ use hal::{
pulse_control::ClockSource,
systimer::SystemTimer,
timer::TimerGroup,
PulseControl, Rng, Rtc, Spi, Uart, IO, uart::{self, TxRxPins}, gpio::{Gpio6, Unknown, Gpio4, Gpio7, Gpio5},
PulseControl, Rtc, Spi, Uart, IO, uart::{self, TxRxPins}, Rng,
};
use static_cell::StaticCell;
use crate::flow3r::{
use flow3_rs::{
badgelink::BadgeLink,
captouch::{captouch_controller, CaptouchHandler},
captouch::{Captouch, CaptouchRunner},
display::Display,
imu::ImuHandler,
input::{input_controller, InputHandler},
input::{Inputs, InputRunner},
leds::init_leds,
Flow3r,
};
use crate::main;
const READ_BUF_SIZE: usize = 64;
static RNG: StaticCell<Rng> = StaticCell::new();
static EXECUTOR: StaticCell<Executor> = StaticCell::new();
//static APP_CORE_EXECUTOR: StaticCell<Executor> = StaticCell::new();
static CLOCKS: StaticCell<Clocks> = StaticCell::new();
pub fn start_runtime() -> ! {
let executor = EXECUTOR.init(Executor::new());
executor.run(|spawner| {
spawner.spawn(init_runtime()).ok();
});
}
#[embassy_executor::task]
async fn start_app_core(mut cpu_control: CpuControl) -> ! {
let mut app_core_function = || {
/*let executor = APP_CORE_EXECUTOR.init(Executor::new());
executor.run(|spawner| {
spawner.spawn(display_refresh()).ok();
})*/
};
let _guard = cpu_control.start_app_core(&mut app_core_function).unwrap();
loop {
Timer::after(Duration::from_secs(100)).await;
}
}
#[embassy_executor::task]
async fn init_runtime() {
esp_println::println!("Init!");
pub async fn init_flow3r() -> (Flow3r, InputRunner, CaptouchRunner) {
let peripherals = Peripherals::take();
let mut system = peripherals.SYSTEM.split();
let clocks = CLOCKS.init(ClockControl::boot_defaults(system.clock_control).freeze());
......@@ -85,8 +53,6 @@ async fn init_runtime() {
embassy::init(&clocks, SystemTimer::new(peripherals.SYSTIMER));
let _cpu_control = CpuControl::new(system.cpu_control);
// Async requires the GPIO interrupt to wake futures
hal::interrupt::enable(
hal::peripherals::Interrupt::GPIO,
......@@ -171,7 +137,7 @@ async fn init_runtime() {
};
let uart0_pins = TxRxPins::new_tx_rx(io.pins.gpio7.into_push_pull_output(), io.pins.gpio6.into_floating_input());
let mut uart0 = Uart::new_with_config(peripherals.UART1, Some(uart0_config), Some(uart0_pins), &clocks, &mut system.peripheral_clock_control);
uart0.set_rx_fifo_full_threshold(READ_BUF_SIZE as u16);
uart0.set_rx_fifo_full_threshold(64 as u16);
hal::interrupt::enable(
hal::peripherals::Interrupt::UART1,
......@@ -187,7 +153,7 @@ async fn init_runtime() {
};
let uart1_pins = TxRxPins::new_tx_rx(io.pins.gpio5.into_push_pull_output(), io.pins.gpio4.into_floating_input());
let mut uart1 = Uart::new_with_config(peripherals.UART2, Some(uart1_config),Some(uart1_pins), &clocks, &mut system.peripheral_clock_control);
uart1.set_rx_fifo_full_threshold(READ_BUF_SIZE as u16);
uart1.set_rx_fifo_full_threshold(64 as u16);
hal::interrupt::enable(
hal::peripherals::Interrupt::UART2,
......@@ -195,88 +161,31 @@ async fn init_runtime() {
)
.unwrap();
let rng = RNG.init(Rng::new(peripherals.RNG));
let rng = Rng::new(peripherals.RNG);
// Init Flow3r components
let mut badgelink = BadgeLink::new(i2c_busmanager.acquire_i2c());
let badgelink = BadgeLink::new(i2c_busmanager.acquire_i2c());
let imu = ImuHandler::new(i2c_busmanager.acquire_i2c());
let inputs = InputHandler;
let captouch = CaptouchHandler;
let inputs = Inputs;
let captouch = Captouch;
let leds = init_leds(pulse.channel0, io.pins.gpio14);
let flow3r = Flow3r::new(badgelink, captouch, display, imu, inputs, leds, uart0, uart1, rng);
// Spawn background tasks
let spawner = Spawner::for_current_executor().await;
spawner
.spawn(input_controller(
let input_runner = InputRunner::new(
i2c_busmanager.acquire_i2c(),
io.pins.gpio8,
io.pins.gpio0,
io.pins.gpio3,
))
.ok();
spawner
.spawn(captouch_controller(
);
let captouch_runner = CaptouchRunner::new(
i2c_busmanager.acquire_i2c(),
i2c_busmanager.acquire_i2c(),
io.pins.gpio16,
io.pins.gpio15,
))
.ok();
// Hand over to main task
spawner.spawn(main(flow3r)).ok();
/*spawner.spawn(test_pins_a(io.pins.gpio5)).unwrap();
spawner.spawn(test_pins_b(io.pins.gpio6)).unwrap();
spawner.spawn(test_pins_c(io.pins.gpio4)).unwrap();
spawner.spawn(test_pins_d(io.pins.gpio7)).unwrap();*/
}
/*
#[embassy_executor::task]
async fn test_pins_a(pin: Gpio5<Unknown>) -> ! {
let mut pin = pin.into_push_pull_output();
println!("toggle task running");
loop {
pin.set_high().unwrap();
Timer::after(Duration::from_secs(1)).await;
pin.set_low().unwrap();
Timer::after(Duration::from_secs(1)).await;
}
}
#[embassy_executor::task]
async fn test_pins_d(pin: Gpio7<Unknown>) -> ! {
let mut pin = pin.into_push_pull_output();
println!("toggle task running");
loop {
pin.set_high().unwrap();
Timer::after(Duration::from_secs(1)).await;
pin.set_low().unwrap();
Timer::after(Duration::from_secs(1)).await;
}
}
);
#[embassy_executor::task]
async fn test_pins_b(pin: Gpio6<Unknown>) -> ! {
let mut pin = pin.into_floating_input();
println!("wait task running");
loop {
pin.wait_for_any_edge().await.unwrap();
println!("pin 5 changed, is now {}", pin.is_high().unwrap());
}
}
let flow3r = Flow3r::new(Some(badgelink), Some(captouch), Some(display), Some(imu), Some(inputs), Some(leds), Some(uart0), Some(uart1), Some(rng));
#[embassy_executor::task]
async fn test_pins_c(pin: Gpio4<Unknown>) -> ! {
let mut pin = pin.into_floating_input();
println!("wait task running");
loop {
pin.wait_for_any_edge().await.unwrap();
println!("pin 4 changed, is now {}", pin.is_high().unwrap());
(flow3r, input_runner, captouch_runner)
}
\ No newline at end of file
} */
\ No newline at end of file
#![no_std]
#![feature(type_alias_impl_trait)]
mod runtime;
mod flow3r;
pub use runtime::start_runtime;
pub use runtime::EXECUTOR;
pub use flow3r::init_flow3r;
pub use runtime::captouch_task;
pub use runtime::input_task;
\ No newline at end of file
use embassy_executor::{Executor, Spawner, SpawnToken};
use esp_println::println;
use static_cell::StaticCell;
use flow3_rs::{Flow3r, input::InputRunner, captouch::CaptouchRunner};
use crate::flow3r::init_flow3r;
pub static EXECUTOR: StaticCell<Executor> = StaticCell::new();
pub fn start_runtime<S>(main: fn(Flow3r) -> SpawnToken<S>) -> !
{
println!("starting runtime");
let main: fn(Flow3r) -> SpawnToken<*mut ()> = unsafe { core::mem::transmute(main) };
let executor = EXECUTOR.init(Executor::new());
executor.run(|spawner| {
spawner.spawn(init_runtime(main)).unwrap();
});
}
#[embassy_executor::task]
async fn init_runtime(main: fn(Flow3r) -> SpawnToken<*mut ()>) {
let (flow3r, input_runner, captouch_runner) = init_flow3r().await;
// Spawn background tasks
let spawner = Spawner::for_current_executor().await;
spawner
.spawn(input_task(input_runner))
.unwrap();
spawner
.spawn(captouch_task(captouch_runner))
.unwrap();
// Hand over to main task
spawner.spawn(main(flow3r)).unwrap();
}
#[embassy_executor::task]
pub async fn input_task(runner: InputRunner) -> ! {
runner.run().await
}
#[embassy_executor::task]
pub async fn captouch_task(runner: CaptouchRunner) -> ! {
runner.run().await
}
\ No newline at end of file
[target.xtensa-esp32s3-none-elf]
runner = "espflash flash --monitor"
[build]
rustflags = [
"-C", "link-arg=-Tlinkall.x",
"-C", "link-arg=-nostartfiles",
]
target = "xtensa-esp32s3-none-elf"
[unstable]
build-std = ["core"]
This diff is collapsed.
[package]
name = "template"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ad7147 = { path = "../vendor/ad7147" }
bmi270 = { path = "../vendor/bmi270" }
byte-slice-cast = { version = "1.2.2", default-features = false }
display-interface = { path = "../vendor/display-interface", features = ["nightly", "async", "dma"] }
embassy-executor = { version = "0.2.0", features = ["nightly", "arch-xtensa", "executor-thread", "integrated-timers"] }
embassy-futures = "0.1.0"
embassy-net = { version = "0.1.0", features = ["medium-ethernet", "udp", "proto-ipv6", "nightly", "unstable-traits"] }
embassy-net-badgelink = { path = "../embassy-net-badgelink" }
embassy-sync = "0.2.0"
embassy-time = { version = "=0.1.1", features = ["nightly", "unstable-traits"] }
embedded-dma = "0.2.0"
embedded-graphics = "0.8.0"
embedded-graphics-framebuf = "0.5.0"
embedded-hal = "0.2.7"
embedded-hal-1 = { package = "embedded-hal", version = "=1.0.0-alpha.11" }
embedded-hal-async = "0.2.0-alpha.1"
embedded-hal-bus = "0.1.0-alpha.2"
esp-backtrace = { version = "0.7.0", features = ["esp32s3", "panic-handler", "exception-handler", "print-uart"] }
esp-println = { version = "0.5.0", features = ["esp32s3"] }
hal = { package = "esp32s3-hal", version = "0.155.0", features = ["embassy", "async", "embassy-time", "embassy-time-systick"] }
heapless = "0.7.16"
smart-leds = "0.3.0"
smoltcp = { version = "0.10.0", default-features = false }
static_cell = "1.2.0"
tinybmp = "0.5.0"
flow3-rs = { path = "../flow3-rs" }
flow3-rs-rt = { path = "../flow3-rs-rt" }
\ No newline at end of file
[toolchain]
channel = "esp"
use crate::flow3r::{captouch::CaptouchHandler, display::Display, imu::ImuHandler, badgelink::{BadgeLink, badgenet::{BadgenetUartLeft, BadgenetUartRight, start_badgenet_left, start_badgenet_right}}};
use embassy_executor::Spawner;
use embassy_futures::select::{select, select3, Either, Either3};
use embassy_net::{udp::{UdpSocket, PacketMetadata}, Ipv6Address, Stack, StaticConfigV6, Config, Ipv6Cidr};
......@@ -14,33 +13,38 @@ use embedded_graphics::{
};
use esp_backtrace as _;
use esp_println::println;
use hal::{Rng, uart};
use hal::Rng;
use heapless::Vec;
use smoltcp::wire::IpEndpoint;
use tinybmp::Bmp;
use smart_leds::SmartLedsWrite;
use crate::flow3r::input::InputHandler;
use flow3_rs::{display::Display, imu::ImuHandler, badgelink::{BadgeLink, badgenet::{BadgenetUartLeft, BadgenetUartRight, start_badgenet_left, start_badgenet_right}}, input::Inputs, captouch::Captouch};
#[embassy_executor::task]
pub async fn leds_fade(mut leds: crate::flow3r::leds::Leds) -> ! {
pub async fn leds_fade(mut leds: flow3_rs::leds::Leds) -> ! {
let mut b = (30, false);
println!("led task running");
loop {
println!("led loop entry");
leds.write(smart_leds::brightness(
smart_leds::gamma([smart_leds::colors::VIOLET; 40].into_iter()),
b.0,
))
.expect("failed to set leds");
println!("led loop");
Timer::after(Duration::from_millis(30)).await;
b = crate::flow3r::leds::brightness_fade_in_out(b, 30, 0);
b = flow3_rs::leds::brightness_fade_in_out(b, 30, 0);
}
}
pub async fn display_demo(display: &mut crate::flow3r::display::Display) {
let input = InputHandler;
pub async fn display_demo(display: &mut flow3_rs::display::Display) {
let input = Inputs;
let mut inputs = input.split();
display.set_backlight(100).unwrap();
......@@ -94,7 +98,7 @@ async fn move_rectangle<'a>(
}
pub async fn draw_start_screen(display: &mut Display) {
let bmp_data = include_bytes!("../img/logo.bmp");
let bmp_data = include_bytes!("../../img/logo.bmp");
let bmp = Bmp::from_slice(bmp_data).unwrap();
display
.fill_solid(&display.bounding_box(), Rgb565::WHITE)
......@@ -115,7 +119,7 @@ pub async fn draw_start_screen(display: &mut Display) {
}
pub async fn imu_demo(display: &mut Display, imu: &mut ImuHandler) {
let input = InputHandler;
let input = Inputs;
let mut inputs = input.split();
let circle = Circle::with_center(display.bounding_box().center(), 20);
......@@ -155,10 +159,10 @@ pub async fn imu_demo(display: &mut Display, imu: &mut ImuHandler) {
}
pub async fn captouch_demo(display: &mut Display) {
let input = InputHandler;
let input = Inputs;
let mut inputs = input.split();
let captouch = CaptouchHandler;
let captouch = Captouch;
let top = captouch.top_petals();
let bot = captouch.bottom_petals();
......
#![no_std]
#![no_main]
#![feature(type_alias_impl_trait)]
#![feature(async_fn_in_trait)]
mod demo_tasks;
mod ui;
use demo_tasks::draw_start_screen;
use embassy_executor::{Spawner, Executor};
use embassy_time::{Duration, Timer};
use esp_backtrace as _;
use esp_println::println;
use flow3_rs_rt::{init_flow3r, input_task, captouch_task};
use hal::prelude::*;
use crate::ui::main_menu::main_menu;
#[entry]
fn runtime() -> ! {
let executor = flow3_rs_rt::EXECUTOR.init(Executor::new());
executor.run(|spawner| {
spawner.spawn(main()).unwrap();
});
}
#[embassy_executor::task]
async fn main() -> ! {
let (mut flow3r, input_runner, captouch_runner) = init_flow3r().await;
// Spawn background tasks
let spawner = Spawner::for_current_executor().await;
spawner
.spawn(input_task(input_runner))
.unwrap();
spawner
.spawn(captouch_task(captouch_runner))
.unwrap();
println!("started main");
// draw_start_screen(&mut flow3r.take_display()).await;
let spawner = Spawner::for_current_executor().await;
spawner.spawn(demo_tasks::leds_fade(flow3r.take_leds())).unwrap();
println!("started led task");
Timer::after(Duration::from_secs(2)).await;
main_menu(flow3r).await
}
......@@ -6,24 +6,17 @@ use embedded_graphics::{
prelude::*,
text::Text,
};
use hal::Rng;
use static_cell::StaticCell;
use crate::{
demo_tasks::{display_demo, imu_demo, captouch_demo, badgelink_demo},
flow3r::{display::Display, input::InputHandler, imu::ImuHandler, badgelink::{badgenet::{BadgenetUartLeft, BadgenetUartRight}, BadgeLink}},
};
static UART_LEFT: StaticCell<BadgenetUartLeft> = StaticCell::new();
static UART_RIGHT: StaticCell<BadgenetUartRight> = StaticCell::new();
use flow3_rs::{display::Display, imu::ImuHandler, Flow3r};
pub async fn main_menu(mut display: Display, inputs: InputHandler, mut imu: ImuHandler, mut badgelink: BadgeLink, uart0: BadgenetUartLeft, uart1: BadgenetUartRight, mut rng: &'static mut Rng<'static>) -> ! {
let mut inputs = inputs.split();
use crate::demo_tasks::{display_demo, imu_demo, captouch_demo};
let mut uart0 = UART_LEFT.init(uart0);
let mut uart1 = UART_RIGHT.init(uart1);
pub async fn main_menu(mut flow3r: Flow3r) -> ! {
let mut inputs = flow3r.take_inputs().split();
let mut display = flow3r.take_display();
let mut imu = flow3r.take_imu();
let apps = ["input_test", "imu_test", "captouch_test", "badgenet_test"];
let apps = ["input_test", "imu_test", "captouch_test"];
let mut selected = 0usize;
display
......@@ -47,7 +40,7 @@ pub async fn main_menu(mut display: Display, inputs: InputHandler, mut imu: ImuH
.await
{
Either3::First(_) => {
(uart0, uart1, rng) = start_current_app(apps[selected], &mut display, &mut imu, &mut badgelink, uart0, uart1, rng).await;
start_current_app(apps[selected], &mut display, &mut imu).await;
display
.fill_solid(&display.bounding_box(), Rgb565::BLACK)
.unwrap();
......@@ -111,12 +104,11 @@ async fn play_transition_animation<'a>(
}
}
async fn start_current_app(app: &str, display: &mut Display, imu: &mut ImuHandler, badgelink: &mut BadgeLink, uart0: &'static mut BadgenetUartLeft, uart1: &'static mut BadgenetUartRight, rng: &'static mut Rng<'static>) -> (&'static mut BadgenetUartLeft, &'static mut BadgenetUartRight, &'static mut Rng<'static>) {
async fn start_current_app(app: &str, display: &mut Display, imu: &mut ImuHandler) {
match app {
"input_test" => {display_demo(display).await; (uart0, uart1, rng)}
"imu_test" =>{imu_demo(display, imu).await; (uart0, uart1, rng)}
"captouch_test" => {captouch_demo(display).await; (uart0, uart1, rng)}
//"badgenet_test" => badgelink_demo(badgelink, uart0, uart1, rng).await,
_ => (uart0, uart1, rng),
"input_test" => display_demo(display).await,
"imu_test" => imu_demo(display, imu).await,
"captouch_test" => captouch_demo(display).await,
_ => (),
}
}
File moved
[target.xtensa-esp32s3-none-elf]
runner = "espflash flash --monitor"
[build]
rustflags = [
"-C", "link-arg=-Tlinkall.x",
"-C", "link-arg=-nostartfiles",
]
target = "xtensa-esp32s3-none-elf"
[unstable]
build-std = ["core"]
......@@ -8,7 +8,7 @@ version = "0.1.0"
dependencies = [
"byte-slice-cast 1.2.2",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
"heapless",
]
......@@ -116,6 +116,12 @@ dependencies = [
"serde",
]
[[package]]
name = "bitfield"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac"
[[package]]
name = "bitflags"
version = "1.3.2"
......@@ -175,15 +181,15 @@ dependencies = [
"anyhow",
"enum-as-inner",
"regex",
"strum",
"strum_macros",
"strum 0.24.1",
"strum_macros 0.24.3",
]
[[package]]
name = "critical-section"
version = "1.1.1"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52"
checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
[[package]]
name = "darling"
......@@ -343,7 +349,7 @@ dependencies = [
"embassy-sync",
"embassy-time",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
"embedded-hal-async",
"esp-println",
"esp32s3-hal",
......@@ -383,15 +389,15 @@ dependencies = [
[[package]]
name = "embassy-time"
version = "0.1.1"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd403e218939bba4a1fe4b58c6f81bf0818852bdd824147f95e6dc4ff4166ac4"
checksum = "7a0461fa8de2cf03c4363a38f439a5d7e4cc16cd41947b51663ff4b2f155b902"
dependencies = [
"atomic-polyfill 1.0.3",
"cfg-if",
"critical-section",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
"embedded-hal-async",
"futures-util",
"heapless",
......@@ -460,36 +466,36 @@ dependencies = [
[[package]]
name = "embedded-hal"
version = "1.0.0-alpha.10"
version = "1.0.0-alpha.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f65c4d073f5d91c66e629b216818a4c9747eeda0debedf2deda9a0a947e4e93b"
checksum = "f7724ebabcadfeb15920571dd727bc8ccde8586e52f2890bdb8182fdf42c3ff2"
[[package]]
name = "embedded-hal-async"
version = "0.2.0-alpha.1"
version = "0.2.0-alpha.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8042370aa7af48de36d5312cda14c18ed8ca6b7ce64f5a07832fedc9dc83063f"
checksum = "918285ec7b18edb024d4adc64f6f16cdc7c4d72eadfc85c3313d1e0ff40e0229"
dependencies = [
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
]
[[package]]
name = "embedded-hal-bus"
version = "0.1.0-alpha.2"
version = "0.1.0-alpha.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ee7698943844cafc89032a6bfc01795b4c6f25b8f248e91a58a4bf873047872"
checksum = "0b36407d17c7b9de899bf9ff24d497d7bb02e52f2385045632f5e6b50187e954"
dependencies = [
"critical-section",
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
]
[[package]]
name = "embedded-hal-nb"
version = "1.0.0-alpha.2"
version = "1.0.0-alpha.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465fffd56a95bbc105c17965bca1c1d5815027b1cc6bb183bc05d04563d065c"
checksum = "a09e4c3f8a54e60803405e1cc17e36c963ab32e654f8d6bb49d48cd8116360d7"
dependencies = [
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
"nb 1.1.0",
]
......@@ -551,11 +557,12 @@ dependencies = [
[[package]]
name = "esp-hal-common"
version = "0.10.0"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05d4498ddbbbf9a21e64f9269d2b4dd4059c34863ff54c702fb99e435f967767"
checksum = "b9bb3220d63ba0ec4e9b1846edd47e8da3a884c6557b3ba7398494c56a93de35"
dependencies = [
"basic-toml",
"bitfield",
"bitflags 2.3.3",
"cfg-if",
"critical-section",
......@@ -565,7 +572,7 @@ dependencies = [
"embedded-can",
"embedded-dma",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
"embedded-hal-async",
"embedded-hal-nb",
"esp-hal-procmacros",
......@@ -577,7 +584,7 @@ dependencies = [
"nb 1.1.0",
"paste",
"serde",
"strum",
"strum 0.25.0",
"usb-device",
"void",
"xtensa-lx",
......@@ -600,9 +607,9 @@ dependencies = [
[[package]]
name = "esp-hal-smartled"
version = "0.3.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d01cd77e59c2e6d4a0529674596a679f4cfa1779ce82063a3adb2bfeb0c57d8"
checksum = "bd1c4e28c17b0b6f7aac56a5e27c71b5e5ece3e81b49fbcfa81be2ccb9cc2f82"
dependencies = [
"esp-hal-common",
"fugit",
......@@ -632,9 +639,9 @@ dependencies = [
[[package]]
name = "esp32s3"
version = "0.19.0"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f05672306ffd2f39665c7eaf4615fc1d26f4cebfd0ad51828f81e53377fec5c"
checksum = "93e482df6923df18ccd05ab80b54be5af32497f112f5b60ee05dc9d57562e68c"
dependencies = [
"critical-section",
"vcell",
......@@ -643,9 +650,9 @@ dependencies = [
[[package]]
name = "esp32s3-hal"
version = "0.10.0"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f9e7627629fb361e71e95a9b57d99b213fe58fc4f3bcfaf0cd9fb395f4444b6"
checksum = "7cd8d75d35f3286a1e1126758527b0d8ef1d98f6a137b77fed066800f74bc9c9"
dependencies = [
"bare-metal",
"embassy-time",
......@@ -687,7 +694,7 @@ dependencies = [
"embedded-graphics",
"embedded-graphics-framebuf",
"embedded-hal 0.2.7",
"embedded-hal 1.0.0-alpha.10",
"embedded-hal 1.0.0-alpha.11",
"embedded-hal-async",
"embedded-hal-bus",
"esp-backtrace",
......@@ -1131,18 +1138,18 @@ checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
[[package]]
name = "serde"
version = "1.0.181"
version = "1.0.183"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d3e73c93c3240c0bda063c239298e633114c69a888c3e37ca8bb33f343e9890"
checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.181"
version = "1.0.183"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be02f6cb0cd3a5ec20bbcfbcbd749f57daddb1a0882dc2e46a6c236c90b977ed"
checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
dependencies = [
"proc-macro2",
"quote",
......@@ -1233,8 +1240,14 @@ name = "strum"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
[[package]]
name = "strum"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
dependencies = [
"strum_macros",
"strum_macros 0.25.2",
]
[[package]]
......@@ -1250,6 +1263,19 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "strum_macros"
version = "0.25.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
dependencies = [
"heck",
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.28",
]
[[package]]
name = "syn"
version = "1.0.109"
......