no_std Hardware Abstraction Layers for ESP32 microcontrollers
Go to file
ris a7612ada45
Some checks failed
CI - nightly / esp-hal | nightly (${{ matrix.device.soc }}) (map[soc:esp32c2 target:riscv32imc-unknown-none-elf]) (push) Has been cancelled
CI - nightly / esp-hal | nightly (${{ matrix.device.soc }}) (map[soc:esp32c3 target:riscv32imc-unknown-none-elf]) (push) Has been cancelled
CI - nightly / esp-hal | nightly (${{ matrix.device.soc }}) (map[soc:esp32c6 target:riscv32imac-unknown-none-elf]) (push) Has been cancelled
CI - nightly / esp-hal | nightly (${{ matrix.device.soc }}) (map[soc:esp32h2 target:riscv32imac-unknown-none-elf]) (push) Has been cancelled
LED data gets transmitted using signal but not stable yet
2025-01-09 19:43:59 -05:00
.cargo Rewrite time driver (#2559) 2024-11-25 17:02:47 +00:00
.github Test all feature sets (#2901) 2025-01-09 13:58:14 +00:00
documentation Remove all instance type params (#2907) 2025-01-09 11:27:48 +00:00
esp-alloc Allow clippy to break API, ignore a few initialism errors (#2840) 2025-01-03 14:13:07 +00:00
esp-backtrace Fix C-METADATA violations (#2874) 2025-01-02 09:44:27 +00:00
esp-build Add CHANGELOG.md for remaining packages which do not have one (#2518) 2024-11-12 10:17:11 +00:00
esp-config Use _CONFIG_ to separate config prefix and key (#2848) 2025-01-03 14:36:30 +00:00
esp-hal Mark Flex methods as unstable (#2917) 2025-01-09 16:13:12 +00:00
esp-hal-embassy Remove all instance type params (#2907) 2025-01-09 11:27:48 +00:00
esp-hal-procmacros Annotate builder functions with #[must_use] (#2841) 2024-12-19 10:10:23 +00:00
esp-ieee802154 Use _CONFIG_ to separate config prefix and key (#2848) 2025-01-03 14:36:30 +00:00
esp-lp-hal Fix C-METADATA violations (#2874) 2025-01-02 09:44:27 +00:00
esp-metadata feat: add support for internal temperature sensor (tsens) for esp32c6 and esp32c3 (#2875) 2025-01-07 16:40:12 +00:00
esp-println Allow clippy to break API, ignore a few initialism errors (#2840) 2025-01-03 14:13:07 +00:00
esp-riscv-rt Fix C-METADATA violations (#2874) 2025-01-02 09:44:27 +00:00
esp-storage Add package metadata to esp-storage to make documentation build (#2891) 2025-01-06 08:03:53 +00:00
esp-wifi LED data gets transmitted using signal but not stable yet 2025-01-09 19:43:59 -05:00
examples LED data gets transmitted using signal but not stable yet 2025-01-09 19:43:59 -05:00
extras esp-wifi: Remove unneeded features (#2446) 2024-11-08 13:30:33 +00:00
hil-test Test all feature sets (#2901) 2025-01-09 13:58:14 +00:00
qa-test LEDs write correctly and mulitcore now 2025-01-09 15:34:38 -05:00
resources Some xtask/metadata cleanups (#1965) 2024-08-19 06:49:05 +00:00
xtask Test all feature sets (#2901) 2025-01-09 13:58:14 +00:00
xtensa-lx Trim down xtensa-lx (#2357) 2024-11-23 01:01:37 +00:00
xtensa-lx-rt Updates for Xtensa enabled 1.83 compiler (#2615) 2024-12-17 15:02:03 +00:00
.gitattributes Set merge=union git attribute for CHANGELOG.md 2023-07-12 09:24:09 -07:00
.gitignore Tweak the documentation URL slightly (#1250) 2024-03-07 17:19:07 +00:00
Cargo.toml Add the qa-test package (#2558) 2024-11-18 11:00:17 +00:00
LICENSE-APACHE Initial commit 2021-10-19 15:00:41 -07:00
LICENSE-MIT Initial commit 2021-10-19 15:00:41 -07:00
README.md Alter stability note in README and briefly explain unstable feature (#2894) 2025-01-07 09:03:30 +00:00
rustfmt.toml Begin adding some doc comments, update rustfmt config 2022-01-10 15:23:01 -08:00

esp-hal

GitHub Actions Workflow Status GitHub Actions Workflow Status MIT/Apache-2.0 licensed Matrix

Bare-metal (no_std) hardware abstraction layer for Espressif devices. Currently supports, to varying degrees, the following devices:

  • ESP32 Series: ESP32
  • ESP32-C Series: ESP32-C2, ESP32-C3, ESP32-C6
  • ESP32-H Series: ESP32-H2
  • ESP32-S Series: ESP32-S2, ESP32-S3

Additionally provides limited support for programming the low-power RISC-V cores found on the ESP32-C6, ESP32-S2, and ESP32-S3 via the esp-lp-hal package.

These packages are all no_std; if you are looking for std support, please use esp-idf-svc instead.

If you have any questions, comments, or concerns, please open an issue, start a new discussion, or join us on Matrix. For additional information regarding any of the crates in this repository, please refer to the relevant crate's README.

Note

This repository includes crates that are at various stages of maturity and stability. While many functionalities have already been implemented and are usable for most tasks, certain advanced or less common features may still be under development. Each crate may offer different levels of functionality and guarantees.

Getting Started

For information relating to the development of Rust applications on ESP devices, please first read The Rust on ESP Book.

For information about the HAL and how to use it in your own projects, please refer to the documentation.

Resources

Crates

This repository is home to a number of different packages; for more information regarding a particular package, please refer to its README.md and/or documentation.

Contributing

We have a number of living documents to aid contributing to the project, please give these a read before modifying code:

License

Licensed under either of:

at your option.

Contribution notice

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.