mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-28 04:40:52 +00:00

* Hide most of the unstable peripherals * Lint with correct toolchain, lint with unstable enabled * Require unstable feature and lint using it * Auto-lint xtensas with esp toolchain * Fix msrv and ieee802154 * Add feature to examples * Don't require building ieee802154 for all examples * Mark modules in documentation
64 lines
4.1 KiB
Markdown
64 lines
4.1 KiB
Markdown
# esp-wifi
|
|
|
|
[](https://crates.io/crates/esp-wifi)
|
|
[](https://docs.esp-rs.org/esp-hal)
|
|

|
|

|
|
[](https://matrix.to/#/#esp-rs:matrix.org)
|
|
|
|
A WiFi, BLE and ESP-NOW driver for Espressif microcontrollers.
|
|
|
|
Note that this crate currently requires you to enable the `unstable` feature on `esp-hal`.
|
|
|
|
## Current support
|
|
|
|
If a cell contains an em dash (—) this means that the particular feature is not present for a chip. A check mark (✓) means that some driver implementation exists. A Tilde (˜) means it is implemented but buggy. An empty cell means that the feature is present in the chip but not implemented yet.
|
|
|
|
| | [Wifi](https://github.com/esp-rs/esp-wifi/issues/94) | [BLE](https://github.com/esp-rs/esp-wifi/issues/93) | [Coex](https://github.com/esp-rs/esp-wifi/issues/92) | ESP-NOW |
|
|
| :------: | :--------------------------------------------------: | :-------------------------------------------------: | :--------------------------------------------------: | :-----: |
|
|
| ESP32 | ✓ | ✓ | ✓ | ✓ |
|
|
| ESP32-C2 | ✓ | ✓ | ✓ | ✓ |
|
|
| ESP32-C3 | ✓ | ✓ | ✓ | ✓ |
|
|
| ESP32-C6 | ✓ | ✓ | ✓ | ✓ |
|
|
| ESP32-H2 | — | ✓ | — | — |
|
|
| ESP32-S2 | ✓ | — | — | ✓ |
|
|
| ESP32-S3 | ✓ | ✓ | ✓ | ✓ |
|
|
|
|
Minimum supported Rust compiler version: 1.79.0
|
|
|
|
## Missing / To be done
|
|
|
|
- Support for non-open SoftAP
|
|
|
|
## Directory Structure
|
|
|
|
- `src/timer/`: systimer code used for timing and task switching
|
|
- `src/preemt/`: a bare minimum RISCV and Xtensa round-robin task scheduler
|
|
- `src/compat/`: code needed to emulate enough of an (RT)OS to use the driver
|
|
- `common.rs`: basics like semaphores and recursive mutexes
|
|
- `timer_compat.rs`: code to emulate timer related functionality
|
|
- `examples/*.rs`: examples
|
|
|
|
## Driver version
|
|
|
|
This uses the WiFi drivers from https://github.com/esp-rs/esp-wireless-drivers-3rdparty
|
|
|
|
v5.1.2-602-gdb1e54a0c5-dirty commit db1e54a0c537d8b2cc2bd109ee88b50e1ca0ea80
|
|
|
|
https://github.com/esp-rs/esp-wireless-drivers-3rdparty/ (commit ca2809144cf6d2f89d413f1d415f1c4454ee6249)
|
|
|
|
## License
|
|
|
|
Licensed under either of:
|
|
|
|
- Apache License, Version 2.0 ([LICENSE-APACHE](../LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
|
- MIT license ([LICENSE-MIT](../LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
|
|
|
at your option.
|
|
|
|
### Contribution
|
|
|
|
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.
|