Cargo Features

[dependencies]
esp-hal = { version = "0.23.1", default-features = false, features = ["bluetooth", "usb-otg", "debug", "log", "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s2", "esp32s3", "flip-link", "defmt", "quad-psram", "octal-psram", "ci", "unstable", "digest"] }
default = unstable

FIXME: Unstable needs to be disabled before 1.0.0-beta.0

bluetooth ci?
usb-otg esp32s2? esp32s3?

Enables embassy-usb-driver, embassy-usb-synopsys-otg, esp-synopsys-usb-otg, and usb-device

debug

Enable debug features in the HAL (used for development).

Enables impl-register-debug of optional esp32, optional esp32c2, optional esp32c3, optional esp32c6, optional esp32h2, optional esp32s2, and optional esp32s3

esp32:

IMPORTANT:
Each supported device MUST have its PAC included below along with a corresponding feature.

log

Enable logging output using the log crate.

Enables log

esp32

Chip Support Feature Flags
Target the ESP32.

Enables esp32, rtc-slow of esp-hal-procmacros, esp32 of xtensa-lx-rt

esp32c2

Target the ESP32-C2.

Enables esp32c2, unsafe-assume-single-core of portable-atomic

esp32c3

Target the ESP32-C3.

Enables esp32c3, rtc-ram of esp-riscv-rt, unsafe-assume-single-core of portable-atomic

esp32c6

Target the ESP32-C6.

Enables esp32c6, rtc-ram of esp-riscv-rt, has-lp-core of esp-hal-procmacros

esp32h2

Target the ESP32-H2.

Enables esp32h2, rtc-ram of esp-riscv-rt

esp32s2 = usb-otg

Target the ESP32-S2.

Enables esp32s2, critical-section of portable-atomic, has-ulp-core and rtc-slow of esp-hal-procmacros, esp32s2 of xtensa-lx-rt

esp32s3 = usb-otg

Target the ESP32-S3.

Enables esp32s3, has-ulp-core and rtc-slow of esp-hal-procmacros, esp32s3 of xtensa-lx-rt

RISC-V Exclusive Feature Flags

Move the stack to start of RAM to get zero-cost stack overflow protection (ESP32-C6 and ESPS32-H2 only!).

Enables fix-sp of esp-riscv-rt

defmt ci?

Trait Implementation Feature Flags

Implement defmt::Format on certain types.

Enables defmt, defmt of embassy-futures and embassy-sync, defmt-03 of embedded-hal, embedded-io, and embedded-io-async, defmt of fugit, optional esp32, optional esp32c2, optional esp32c3, optional esp32c6, optional esp32h2, optional esp32s2, and optional esp32s3

quad-psram

PSRAM Feature Flags

Use externally connected Quad PSRAM

Affects esp32::psram, esp32s2::psram, esp32s3::psram, soc::MappedPsram, psram_common::psram_raw_parts, esp-hal::Config.psram

octal-psram

Use externally connected Octal RAM

Affects esp32s3::psram, soc::MappedPsram, psram_common::psram_raw_parts, esp-hal::Config.psram

ci = bluetooth, defmt

This feature is intended for testing; you probably don't want to enable it:

unstable default

Unstable APIs

Unstable APIs are drivers and features that are not yet ready for general use. They may be incomplete, have bugs, or be subject to change without notice. Unstable APIs are not covered by semver guarantees.

Enables APIs that are not stable and thus come with no stability guarantees.

Enables embassy-embedded-hal, embedded-can, embedded-io, and embedded-io-async

Affects esp-hal::Config.watchdog, esp-hal::Config.psram

Features from optional dependencies

digest implicit feature

Enables digest

digest:

Traits for cryptographic hash functions and message authentication codes