Skip to content

Rust Bare Metal Support Packages for ESP32 based boards

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

georgik/esp-bsp-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP-BSP-RS

Rust Bare Metal Board Support Packages (BSP) for ESP32-based boards with focus on Embassy Async.

List of Supported Boards

Actively Supported Boards

Older boards

These boards are available in BSP for backward compatibility, but not recommended for new projects:

Usage

Adding the BSP to Your Project

To add the ESP-BSP crate to your project:

cargo add esp-bsp

Board-Specific Features

Ensure the correct feature flag is enabled in your Cargo.toml:

[features]
esp-bsp = { version = "0.4.0", features = ["esp32-s3-box-3"] }

Board Initialization

Use the prelude for a streamlined initialization process.

use esp_bsp::prelude::*;

#[entry]
fn main() -> ! {
    let peripherals = esp_hal::init(esp_hal::Config::default());
    esp_alloc::psram_allocator!(peripherals.PSRAM, esp_hal::psram);

    let mut delay = Delay::new();

    // Initialize I2C for peripherals like accelerometers
    let i2c = i2c_init!(peripherals);

    // Initialize SPI with DMA for LCD display
    let spi = lcd_dma_spi!(peripherals);

    // Create the display interface
    let di = lcd_display_interface!(peripherals, spi);

    // Initialize the display
    let mut display = lcd_display!(peripherals, di)
        .init(&mut delay)
        .unwrap();

    // Turn on the backlight
    lcd_backlight_init!(peripherals);

    // Your application code here
    println!("Display initialized!");
    loop {}
}

Simplified Display Initialization

With esp_bsp::prelude::*, the macros ensure correct initialization per board based on the enabled feature.

Examples

Changelog

0.4.1

  • LCD_H_RES, LCD_V_RES, LCD_BYTES_PER_PIXEL, LCD_MEMORY_SIZE are exported via prelude

0.4.0

  • Renamed BSPs
  • Added BSPs for common boards for ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6

0.3.0

  • Unified BSP initialization using shared macros.
  • Introduced prelude for simplified imports and initialization.

0.2.0

  • renamed

About

Rust Bare Metal Support Packages for ESP32 based boards

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages