Skip to main content

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)

Source distribution for jumpstarter-driver-esp32 0.9.0
File Size Uploaded
jumpstarter_driver_esp32-0.9.0.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jumpstarter-driver-esp32 0.9.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page