espflash
Serial flasher utility for Espressif SoCs and modules based on esptool.py.
Currently supports the ESP32, ESP32-C3, ESP32-S2, ESP32-S3, and ESP8266.
This repository contains two applications:
Application | Description |
---|---|
cargo-espflash | Cargo subcommand for espflash |
espflash | Library and espflash binary (without Cargo integration) |
NOTE: requires
rustc >= 1.56.0
in order to build either application
Installation
$ cargo install cargo-espflash
$ cargo install espflash
cargo-espflash
cargo-espflash is a subcommand for Cargo which utilizes the espflash library. This tool integrates with your Cargo projects and handles compilation, flashing, and monitoring for target devices.
Please see the cargo-espflash README for more information.
Example
$ cargo espflash --release --example=blinky /dev/ttyUSB0
espflash
espflash is a standalone binary and library contained within the same crate. This tool does not integrate with Cargo, but supports all of the same features as cargo-espflash which are not related to compilation.
Please see the espflash README for more information.
Example
$ espflash /dev/ttyUSB0 target/xtensa-esp32-none-elf/release/examples/blinky
Notes on Building
In order to build from source, in addition to the Rust toolchain libuv must be present on your system. This can be installed via most popular package managers.
macOS
$ brew install libuv
Ubuntu
$ sudo apt-get install libuv-dev
Fedora
$ dnf install systemd-devel
Quickstart - Docker
The esprs/espflash
Docker image contains all necessary toolchains and tooling (including espflash) to build an application and flash it to a target device.
To clone, build and flash the esp32-hal examples run the following:
$ git clone https://github.com/esp-rs/esp32-hal
$ cd esp32-hal
$ docker run -v "$(pwd):/espflash" --device=/dev/ttyUSB0 -ti esprs/espflash --release --example=blinky /dev/ttyUSB0
Custom Docker Build
$ git clone --depth 1 https://github.com/esp-rs/espflash.git
$ cd espflash
$ docker build -t esprs/espflash .
License
Licensed under the GNU General Public License Version 2. See LICENSE for more details.