I'm trying to flash any of the official examples using PlatformIO on LilyGo-EPD47, which is ESP32-WROVER-E with eInk display.

The sketch builds, but when it starts uploading I get the following error

AVAILABLE: cmsis-dap, esp-bridge, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
BeforeUpload(["upload"], [".pio/build/t5-4.7/firmware.bin"])
Using manually specified: /dev/cu.usbserial-54FC0466991
"~/.platformio/penv/bin/python" "~/.platformio/packages/tool-esptoolpy/esptool.py" --chip esp32 --port "/dev/cu.usbserial-54FC0466991" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size 16MB 0x1000 ~/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/bin/bootloader_dio_40m.bin 0x8000 ~/projects/teneff/lilypad-ttgo-t5/lib/LilyGo-EPD47/examples/drawImages/.pio/build/t5-4.7/partitions.bin 0xe000 ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin 0x10000 .pio/build/t5-4.7/firmware.bin
esptool.py v4.4
Serial port /dev/cu.usbserial-54FC0466991
Traceback (most recent call last):
Chip is ESP32-D0WD-V3 (revision v3.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
  File "~/.platformio/packages/tool-esptoolpy/esptool.py", line 34, in <module>
Crystal is 40MHz
  File "~/.platformio/packages/tool-esptoolpy/esptool/__init__.py", line 1026, in _main
MAC: b4:8a:0a:2e:d7:e4
Uploading stub...
Running stub...
  File "~/.platformio/packages/tool-esptoolpy/esptool/__init__.py", line 810, in main
Stub running...
Changing baud rate to 921600
  File "~/.platformio/packages/tool-esptoolpy/esptool/loader.py", line 1145, in flash_set_parameters
Configuring flash size...
  File "~/.platformio/packages/tool-esptoolpy/esptool/loader.py", line 407, in check_command
    val, data = self.command(op, data, chk, timeout=timeout)
  File "~/.platformio/packages/tool-esptoolpy/esptool/loader.py", line 376, in command
    p = self.read()
  File "~/.platformio/packages/tool-esptoolpy/esptool/loader.py", line 308, in read
    return next(self._slip_reader)
*** [upload] Error 1

The board is connected and in the serial monitor I can see the output from the board on the same serial port

  • Try a lower upload_speed. Start at 115200.
    – romkey
    Mar 3, 2023 at 16:28
  • With the default settings I was able to flash it on Windows
    – Teneff
    Mar 3, 2023 at 16:43
  • Are you saying that the problem is solved, or that because you can flash it on Windows at that speed you expect you can flash it on another system at that speed?
    – romkey
    Mar 4, 2023 at 2:21
  • I was hoping to be able to flash it on Macos, presumably the problem is in the toolset
    – Teneff
    Mar 4, 2023 at 9:23
  • And have you tried a lower speed on macOS? Because Windows can flash it at a certain speed doesn't mean another system can flash it at that speed. There are differences in hardware, chipsets, drivers and the overall environment.
    – romkey
    Mar 4, 2023 at 18:25

1 Answer 1


Try updating your platformIO, the one in your home environment, as espTool 4.4 has been patched to improve various things. If you installed it manually then upgrade it manually, otherwise look at the Platforms section of platformIO and upgrade the espressif32 one.

I was suffering timeout issues so changed the configuration file to increase default timeouts https://docs.espressif.com/projects/esptool/en/latest/esp32/esptool/configuration-file.html

The errors in your output are weirdly interspaced so hard to read, but you may have the flashsize set incorrectly, so check your board definition in your platform.ini file, but maybe that's just the command that timed-out.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.