ESP32 Driver
jumpstarter-driver-esp32 provides functionality for flashing and managing
ESP32 devices using esptool as a
library. It implements the FlasherInterface from jumpstarter-driver-opendal.
Installation
:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-esp32
Configuration
Example configuration:
export:
storage:
type: jumpstarter_driver_esp32.driver.Esp32Flasher
config:
baudrate: 115200
chip: "esp32"
children:
serial:
ref: serial
serial:
type: jumpstarter_driver_pyserial.driver.PySerial
config:
url: "/dev/ttyUSB0"
baudrate: 115200
Config parameters
| Parameter | Description | Type | Required | Default |
|---|---|---|---|---|
| baudrate | Baud rate for esptool communication | int | no | 115200 |
| chip | Target chip type | str | no | esp32 |
The ESP32 driver requires a serial child driver (PySerial) for serial port
access. DTR/RTS control signals and the serial port path are managed through
the child driver. Use a ref proxy to share the serial driver with the
top-level composite, enabling both j serial start-console and
j storage flash to work.
Usage
CLI
$ j storage
Usage: j storage [OPTIONS] COMMAND [ARGS]...
Commands:
bootloader Enter download mode
chip-info Get chip info (name, features, MAC)
dump Dump flash content to file
erase Erase entire flash
flash Flash firmware to ESP32
reset Hard reset the chip
$ j serial
Usage: j serial [OPTIONS] COMMAND [ARGS]...
Commands:
start-console Start serial port console
pipe Pipe serial port data to stdout or file
CLI usage
# Flash MicroPython firmware
j storage flash firmware.bin --address 0x1000
# Get chip info
j storage chip-info
# Enter download mode
j storage bootloader
# Erase entire flash
j storage erase
# Hard reset
j storage reset
# Open serial console
j serial start-console
# Read serial output
j serial pipe
Python API
# Get chip information
info = client.storage.get_chip_info()
print(info["chip"]) # e.g. "ESP32-D0WD-V3 (revision v3.1)"
print(info["features"]) # e.g. "Wi-Fi, BT, Dual Core"
print(info["mac"]) # e.g. "5c:01:3b:68:ab:0c"
# Flash firmware
client.storage.flash("/path/to/firmware.bin", target="0x1000")
# Enter download mode
client.storage.enter_bootloader()
# Erase flash
client.storage.erase()
# Hard reset
client.storage.hard_reset()
# Serial console via pexpect
console = client.serial.open()
console.sendline("import machine")
console.expect(">>>")
API Reference
.. autoclass:: jumpstarter_driver_esp32.client.Esp32FlasherClient()
:members: flash, dump, get_chip_info, erase, hard_reset, enter_bootloader
Release files for jumpstarter-driver-esp32 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jumpstarter_driver_esp32-0.9.0.tar.gz | 6.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jumpstarter_driver_esp32-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.9 kB
Release files / jumpstarter_driver_esp32-0.9.0.tar.gz
| Download URL | jumpstarter_driver_esp32-0.9.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
227ff2e64d446ef5695e7a0f01ec38368c5565ea525d996251490c36021282b3
|
|
BLAKE2b-256 checksum How to use checksums |
7b2bd44d3d36c06df56a461b26c466f885f49690e06ff5bc94af4521b2761233
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / jumpstarter_driver_esp32-0.9.0-py3-none-any.whl
| Download URL | jumpstarter_driver_esp32-0.9.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b43c3f7a1d8e23fe6da6b58b134cce206a878b08972634526c9ee70ed2f4f614
|
|
BLAKE2b-256 checksum How to use checksums |
4244e99a20724d9c8148dde5f9ae039761b524996ffaf375f0fba7cf545d2830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|