9 releases (5 breaking)

0.5.1 Jul 19, 2022
0.5.0 Sep 28, 2021
0.4.0 Sep 23, 2020
0.3.2 Aug 30, 2020
0.0.1 Jun 14, 2018

#1884 in Embedded development

Download history 39/week @ 2024-02-19 30/week @ 2024-02-26

69 downloads per month
Used in d1-mini

MIT/Apache

75KB
2K SLoC

esp8266-hal

⚠️ NOTE this HAL is now in maintenence mode. No further development is planned at this time, however PRs may still be accepted.

An experimental hardware abstraction layer for the ESP8266 written in Rust.

Join in on the discussion: https://matrix.to/#/#esp-rs:matrix.org!

An example project using the crate can be found here.

Setting up the compiler

In order to build Rust for the Xtensa architecture, you must use the esp-rs/rust compiler fork.

This can be installed via the installation scripts and pre-built artifacts found in the esp-rs/rust-build repository. Alternatively, you can build and install the compiler from source.

For more information relating to the Rust compiler fork please refer to the Installing Rust section of The Rust on ESP Book.

Using the Installation Scripts

Linux/macOS

$ curl -LO https://raw.githubusercontent.com/esp-rs/rust-build/main/install-rust-toolchain.sh
$ chmod +x install-rust-toolchain.sh
$ ./install-rust-toolchain.sh

Windows

PS> Invoke-WebRequest https://raw.githubusercontent.com/esp-rs/rust-build/main/Install-RustToolchain.ps1 -OutFile Install-RustToolchain.ps1
PS> .\Install-RustToolchain.ps1

Rust with Podman

Alternatively you might build the project in the container where image already contains pre-installed Rust and ESP-IDF.

$ podman run --device /dev/ttyUSB0 -it docker.io/espressif/idf-rust

This container is lacking the utilities for the ESP8266, but you can install them using these instructions inside the container:

$ apt update && apt install gcc-xtensa-lx106 binutils-xtensa-lx106

Flashing the examples

Once you have the Rust compiler fork installed you can flash the examples using cargo-espflash:

$ cargo install cargo-espflash
$ cargo espflash --release --example blinky /dev/ttyUSB0

License

Licensed under either of

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.

Dependencies

~4MB
~104K SLoC