esp-bsp

Crates.ioesp-bsp
lib.rsesp-bsp
version0.2.0
sourcesrc
created_at2024-01-18 09:06:13.568283
updated_at2024-01-30 15:56:14.413524
descriptionRust Bare Metal Board Support Packages for ESP32 related boards with focus on Embassy Async
homepage
repositoryhttps://github.com/georgik/esp-bsp-rs
max_upload_size
id1103989
size20,359
Juraj Michálek (georgik)

documentation

README

ESP-BSP-RS

Rust Bare Metal Board Support Packages for ESP32 based boards with focus on Embassy Async

List of boards

Older boards

These boards are supported by the package, but it is not recommended to use them for new projects:

  • ESP32-S3-BOX - HW discontinued - replaced by ESP32-S3-BOX-3

Usage

cargo add esp-bsp

Display configuration

The configuration code for PINs intended to be used at main function

use esp_bsp_rs::lcd_gpios;

let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let (lcd_sclk, lcd_mosi, lcd_cs, lcd_miso, lcd_dc, _lcd_backlight, lcd_reset) = lcd_gpios!(BoardType::ESP32C6DevKitC1, io);

The configuration code for Rust Embasy task

#[cfg(feature = "esp32_c6_devkit_c1")]
type AppDisplay = define_display_type!(BoardType::ESP32C6DevKitC1);
#[cfg(feature = "m5stack_cores3")]
type AppDisplay = define_display_type!(BoardType::M5StackCoreS3);
#[cfg(feature = "esp32_s3_box")]
type AppDisplay = define_display_type!(BoardType::ESP32S3Box);

#[embassy_executor::task]
pub async fn app_loop(mut display:AppDisplay)

If you intend to use suggested features then add similar configuration to Cargo.toml:

[dependencies]
esp32-hal = { version = "0.17.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32s2-hal = { version = "0.14.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32s3-hal = { version = "0.14.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32c3-hal = { version = "0.14.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32c6-hal = { version = "0.7.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }
esp32h2-hal = { version = "0.5.0", optional = true, default-features = false, features = ["embassy", "async", "embassy-time-timg0", "rt", "embassy-executor-thread"] }

[features]
esp32 =   [ "esp32-hal" ]
esp32s2 = [ "esp32s2-hal" ]
esp32s3 = [ "esp32s3-hal" ]
esp32c3 = [ "esp32c3-hal" ]
esp32c6 = [ "esp32c6-hal" ]
esp32h2 = [ "esp32h2-hal" ]

esp32_c6_devkit_c1 = [ "esp32c6" ]
esp32_s3_box = [ "esp32s3", "esp32s3-hal/opsram-8m" ]
m5stack_cores3 = [ "esp32s3", "esp32s3-hal/psram-8m" ]

Change log

0.2.0

  • renamed
Commit count: 0

cargo fmt