ESP32 / WROOM

Vendor: Espressif
Features: BLE, External Flash, WiFi
Source on GitHub: esp32/ESP32_GENERIC
More info: Website

The following files are firmware that should work on most ESP32-based boards with 4MiB of flash, including WROOM WROVER, SOLO, PICO, and MINI modules.

This board has multiple variants available:

  • If your board is based on a WROVER module, or otherwise has SPIRAM (also known as PSRAM) then it's recommended to use the "spiram" variant. Look for heading Support for SPIRAM / WROVER).
  • If your board has a ESP32-D2WD chip (with only 2MiB flash) then use the "d2wd" variant. Look for heading ESP32 D2WD.
  • If your board has a single-core ESP32 (e.g. the "SOLO" modules) then choose the "unicore" variant. Look for heading ESP32 Unicore.
  • If you'd like to perform Over-the-Air updates of the MicroPython firmware, then choose the "ota" variant. This variant has less room in the flash for Python files as a result of supporting OTA. Look for heading Support for OTA.

Otherwise, download the generic variant (under the first heading below).

Installation instructions

Program your board using the esptool.py program, found here.

Windows users: You may find the installed program is called esptool instead of esptool.py.

Erasing

If you are putting MicroPython on your board for the first time then you should first erase the entire flash using:

esptool.py erase_flash

esptool.py will try to detect the serial port with the ESP32 automatically, but if this fails or there might be more than one Espressif-based device attached to your computer then pass the --port option with the name of the target serial port. For example:

esptool.py --port PORTNAME erase_flash
  • On Linux, the port name is usually similar to /dev/ttyUSB or /dev/ttyACM0.
  • On Mac, the port name is usually similar to /dev/cu.usbmodem01.
  • On Windows, the port name is usually similar to COM4.

Flashing

Then deploy the firmware to the board, starting at address 0x1000:

esptool.py --baud 460800 write_flash 0x1000 ESP32_BOARD_NAME-DATE-VERSION.bin

Replace ESP32_BOARD_NAME-DATE-VERSION.bin with the .bin file downloaded from this page.

As above, if esptool.py can't automatically detect the serial port then you can pass it explicitly on the command line instead. For example:

esptool.py --port PORTNAME --baud 460800 write_flash 0x1000 ESP32_BOARD_NAME-DATE-VERSION.bin

Troubleshooting

If flashing starts and then fails partway through, try removing the --baud 460800 option to flash at the slower default speed.

If these steps don't work, consult the MicroPython ESP32 Troubleshooting steps and the esptool documentation.

Important: From the options below, download the .bin file for your board.

Firmware

Releases

v1.24.1 (2024-11-29) .bin / [.app-bin] / [.elf] / [.map] / [Release notes] (latest)
v1.24.0 (2024-10-25) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.23.0 (2024-06-02) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.2 (2024-02-22) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.1 (2024-01-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.0 (2023-12-27) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.21.0 (2023-10-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.20.0 (2023-04-26) .bin / [.elf] / [.map] / [Release notes]
v1.19.1 (2022-06-18) .bin / [.elf] / [.map] / [Release notes]
v1.18 (2022-01-17) .bin / [.elf] / [.map] / [Release notes]
v1.17 (2021-09-02) .bin / [.elf] / [.map] / [Release notes]
v1.16 (2021-06-23) .bin / [.elf] / [.map] / [Release notes]
v1.15 (2021-04-18) .bin / [.elf] / [.map] / [Release notes]
v1.14 (2021-02-02) .bin / [.elf] / [.map] / [Release notes]
v1.13 (2020-09-02) .bin / [.elf] / [.map] / [Release notes]
v1.12 (2019-12-20) .bin / [.elf] / [.map] / [Release notes]

Preview builds

v1.25.0-preview.217.gb4f53a0e5 (2025-01-19) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.216.g6db29978a (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.211.gb6649b922 (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.203.gf2cd1a3db (2025-01-16) .bin / [.app-bin] / [.elf] / [.map]
(These are automatic builds of the development branch for the next release)

Firmware (Support for OTA)

Releases

v1.24.1 (2024-11-29) .bin / [.app-bin] / [.elf] / [.map] / [Release notes] (latest)
v1.24.0 (2024-10-25) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.23.0 (2024-06-02) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.2 (2024-02-22) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.1 (2024-01-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.0 (2023-12-27) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.21.0 (2023-10-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.20.0 (2023-04-26) .bin / [.elf] / [.map] / [Release notes]
v1.19.1 (2022-06-18) .bin / [.elf] / [.map] / [Release notes]
v1.18 (2022-01-17) .bin / [.elf] / [.map] / [Release notes]

Preview builds

v1.25.0-preview.217.gb4f53a0e5 (2025-01-19) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.216.g6db29978a (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.211.gb6649b922 (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.203.gf2cd1a3db (2025-01-16) .bin / [.app-bin] / [.elf] / [.map]
(These are automatic builds of the development branch for the next release)

Firmware (ESP32 Unicore)

Releases

v1.24.1 (2024-11-29) .bin / [.app-bin] / [.elf] / [.map] / [Release notes] (latest)
v1.24.0 (2024-10-25) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.23.0 (2024-06-02) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.2 (2024-02-22) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.1 (2024-01-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.0 (2023-12-27) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.21.0 (2023-10-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.20.0 (2023-04-26) .bin / [.elf] / [.map] / [Release notes]

Preview builds

v1.25.0-preview.217.gb4f53a0e5 (2025-01-19) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.216.g6db29978a (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.211.gb6649b922 (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.203.gf2cd1a3db (2025-01-16) .bin / [.app-bin] / [.elf] / [.map]
(These are automatic builds of the development branch for the next release)

Firmware (ESP32 D2WD)

Releases

v1.24.1 (2024-11-29) .bin / [.app-bin] / [.elf] / [.map] / [Release notes] (latest)
v1.24.0 (2024-10-25) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.23.0 (2024-06-02) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.2 (2024-02-22) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.1 (2024-01-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.0 (2023-12-27) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.21.0 (2023-10-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.20.0 (2023-04-26) .bin / [.elf] / [.map] / [Release notes]
v1.19.1 (2022-06-18) .bin / [.elf] / [.map] / [Release notes]
v1.18 (2022-01-17) .bin / [.elf] / [.map] / [Release notes]

Preview builds

v1.25.0-preview.217.gb4f53a0e5 (2025-01-19) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.216.g6db29978a (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.211.gb6649b922 (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.203.gf2cd1a3db (2025-01-16) .bin / [.app-bin] / [.elf] / [.map]
(These are automatic builds of the development branch for the next release)

Firmware (Support for SPIRAM / WROVER)

Releases

v1.24.1 (2024-11-29) .bin / [.app-bin] / [.elf] / [.map] / [Release notes] (latest)
v1.24.0 (2024-10-25) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.23.0 (2024-06-02) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.2 (2024-02-22) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.1 (2024-01-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.22.0 (2023-12-27) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.21.0 (2023-10-05) .bin / [.app-bin] / [.elf] / [.map] / [Release notes]
v1.20.0 (2023-04-26) .bin / [.elf] / [.map] / [Release notes]
v1.19.1 (2022-06-18) .bin / [.elf] / [.map] / [Release notes]
v1.18 (2022-01-17) .bin / [.elf] / [.map] / [Release notes]
v1.17 (2021-09-02) .bin / [.elf] / [.map] / [Release notes]
v1.16 (2021-06-23) .bin / [.elf] / [.map] / [Release notes]
v1.15 (2021-04-18) .bin / [.elf] / [.map] / [Release notes]
v1.14 (2021-02-02) .bin / [.elf] / [.map] / [Release notes]
v1.13 (2020-09-02) .bin / [.elf] / [.map] / [Release notes]
v1.12 (2019-12-20) .bin / [.elf] / [.map] / [Release notes]

Preview builds

v1.25.0-preview.217.gb4f53a0e5 (2025-01-19) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.216.g6db29978a (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.211.gb6649b922 (2025-01-17) .bin / [.app-bin] / [.elf] / [.map]
v1.25.0-preview.203.gf2cd1a3db (2025-01-16) .bin / [.app-bin] / [.elf] / [.map]
(These are automatic builds of the development branch for the next release)