Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Flashing a custom OS—or, more precisely, custom firmware—onto a Waveshare ESP32-S3 e-paper board depends on the exact board variant and the image format supplied by the project. The documented procedure in this guide applies specifically to the Waveshare ESP32-S3-ePaper-1.54G. Confirm that model before using any image, address, pin definition, or flashing utility.

For that board, Waveshare documents USB programming. If the computer does not detect the port, hold BOOT while connecting USB, release BOOT, flash the correct image, then power-cycle the board. The manufacturer’s 0x00 address applies to its bundled example firmware only; a third-party project may require a merged image, several files, different offsets, a different erase policy, or another tool entirely.

Before you flash: identify the board and the firmware package

ESP32-S3 e-paper boards can look similar while using different displays, pin assignments, flash layouts, and firmware packages. Do not treat an image for one Waveshare model as interchangeable with another. Read the silkscreen, product label, and the custom project’s release notes and verify all of the following:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • The exact board name, including “ESP32-S3-ePaper-1.54G” where applicable.
  • Board revision support and any required hardware changes.
  • The ESP-IDF or other framework target used by the project.
  • Whether the release is a single merged .bin or several binaries.
  • Every filename, flash offset, partition-table location, and bootloader location supplied by the project.
  • Assumptions about flash capacity, encryption, secure boot, and migration from an older installation.
  • Whether the project requires a full erase before the first boot.

If the project does not identify the exact Waveshare variant, stop and ask its maintainer before flashing. A successful upload does not prove that the display wiring, buttons, power circuitry, or partition map is compatible.

#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

What “custom OS” means on this hardware

On an ESP32-S3, “OS” usually means application firmware built on a framework such as ESP-IDF, rather than a desktop operating system. The download may contain a bootloader, partition table, application, and optional data images. The project’s build instructions define how those pieces fit together; the Waveshare example guide does not define a universal layout for third-party firmware.

What you need

  • The ESP32-S3-ePaper-1.54G board, or another model explicitly supported by the project.
  • A USB connection that supports data and a computer with the project’s required drivers and flashing software.
  • The exact release files and instructions from the custom firmware project.
  • A way to recover the board by holding BOOT and resetting or reconnecting power.
  • A backup of any settings or files stored in flash if the project recommends an erase.

Waveshare states that its development board uses USB for programming. Its guide does not establish a particular cable connector type, so verify the connector on your own revision rather than buying a cable based on a generic ESP32-S3 assumption. A TF card is needed only by examples that explicitly use one; it is not documented as a requirement for USB flashing.

Choose the correct flashing path

Use the method named by the custom project first. The three common routes are not interchangeable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Route Best fit What must be known Important limitation
Waveshare online flasher The firmware bundled with the ESP32-S3-ePaper-1.54G example package COM port, the supplied .bin, and the documented address 0x00 Waveshare documents this for its own example image, not an unspecified custom OS.
Desktop Flash Download Tool The same manufacturer-provided image when you need a desktop utility ESP32-S3 as the MCU, USB as the download interface, COM port, image path, address, and baud setting A project with multiple binaries or different offsets needs its own instructions.
Project ESP-IDF or esptool workflow Firmware whose maintainer supplies build and flash commands Target, generated files, partition map, offsets, erase policy, and drivers Commands and image layout vary by project.
ESP-IDF USB-OTG DFU Projects specifically built for Espressif’s DFU workflow USB-OTG hardware, bootloader DFU support, dfu-util, and host-driver setup A USB connector alone does not establish DFU support on this board.

Do not substitute DFU simply because the board has USB. Espressif distinguishes the usual serial or USB_SERIAL_JTAG programming path from USB-OTG DFU. The internal PHY is normally connected to USB_SERIAL_JTAG; USB-OTG may require a board with an external USB PHY or a permanent USB_PHY_SEL eFuse configuration.

Flash the bundled Waveshare example firmware

This section is a board-specific reference procedure, useful for confirming that the board and USB connection work. It is not a recipe for choosing offsets for a custom project.

Locate the documented image

  1. Download the example package for ESP32-S3-ePaper-1.54G.
  2. Open its ESP32-S3-ePaper-1.54GFirmware directory.
  3. Use the Waveshare .bin supplied there. Do not replace it with a third-party file while following this example procedure.

Use the online flasher

  1. Connect the board to the computer over USB.
  2. If no port appears, hold BOOT, connect USB, and release BOOT after the connection is established.
  3. In the online flasher, select the board’s COM port.
  4. Set the flash address to 0 (the guide documents this as 0x00).
  5. Select the .bin from the model’s Firmware directory.
  6. Start the flash operation and wait for completion.
  7. Press reset or power-cycle the board, then verify that the example starts.

Use the desktop Flash Download Tool

  1. Start the Flash Download Tool and choose the MCU that matches the board: ESP32-S3.
  2. Select the download interface shown for the board, which Waveshare illustrates as USB.
  3. Select the board’s COM port.
  4. Add the Waveshare .bin and enter the documented address 0x00.
  5. Use the guide’s maximum baud setting of 1152000 for this example procedure.
  6. Start the download and wait for the tool to report completion.
  7. Press reset and confirm that the example firmware runs.

The address and baud values above belong to the manufacturer’s supplied example. Carrying them over to custom firmware without a project-specific statement can write the wrong data to flash.

Rank #2
Sale
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Flash a third-party custom firmware image

A custom project should tell you whether it produces one merged image or several files. Follow that project’s order and offsets exactly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When the project supplies one merged image

  1. Confirm that the release explicitly names the ESP32-S3-ePaper-1.54G or your exact board revision.
  2. Read whether the merged image is intended for address 0x0, 0x00, or another location. Do not infer the value from the Waveshare example.
  3. Use the project’s named utility—often an ESP-IDF command, esptool, or a project-specific wrapper.
  4. Enter only the settings documented for that release, including chip target, flash mode, and erase behavior.
  5. Put the board in download mode if the tool cannot synchronize, flash the image, reset, and inspect serial output or the display for the project’s expected first boot.

When the project supplies several binaries

  1. Make a table from the project’s release instructions listing each filename and its exact offset.
  2. Check that the bootloader, partition table, application, and optional data images are all for the same release.
  3. Use the project’s command or flashing profile rather than entering offsets from memory.
  4. Confirm whether an erase is required. If it is, save anything that must survive because erasing removes existing flash contents.
  5. Flash all files in the documented order, reset the board, and verify the partition and application versions reported by the project.

If no offsets, partition table, or image type are published, the package is not ready for a safe manual flash. Obtain clarification instead of guessing.

Using an ESP-IDF project

Some projects are built and flashed from their source tree. Their instructions should specify the board target and any required configuration. For projects that explicitly support Espressif’s USB-OTG DFU flow, Espressif documents this sequence:

  1. Set the ESP32-S3 target in the project with idf.py set-target esp32s3.
  2. Build the DFU image with idf.py dfu.
  3. Send it to the device with idf.py dfu-flash.

The project must support DFU for these commands to be appropriate. The DFU workflow requires dfu-util. On Windows, a WinUSB driver may be needed; Linux may require a udev rule; macOS should work without extra setup according to Espressif’s guide.

DFU hardware and security checks

  • The chip must be in bootloader mode before it can be detected as a DFU device.
  • The board design must expose a usable USB-OTG path. USB_SERIAL_JTAG and USB-OTG are separate functions.
  • An external USB PHY or a permanent USB_PHY_SEL eFuse change may be required for USB-OTG.
  • Secure Boot, flash encryption, or Secure Download Mode can disable or prevent the described USB-OTG DFU procedure.

If a project instead documents serial or USB_SERIAL_JTAG flashing, use that route. Do not modify eFuses or security settings merely to make an unverified DFU method work.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Putting the board into BOOT or download mode

Use BOOT when the port is missing, synchronization fails, or the tool waits for the chip to enter download mode.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
  1. Disconnect USB or remove power from the board.
  2. Press and hold BOOT.
  3. Connect USB or restore power while continuing to hold BOOT.
  4. Release BOOT after the computer or flashing tool detects the device.
  5. Start or retry the download.
  6. After a successful flash, press reset or power-cycle the board.

The exact button timing can vary by board revision. If the board has separate reset and BOOT controls, avoid releasing BOOT before the connection is established.

Troubleshooting failed flashes

The COM port is not visible

  • Use the BOOT-while-connecting procedure above.
  • Try a different USB port and check whether the operating system reports a newly attached serial or JTAG device.
  • Close other serial monitors and flashing programs that may hold the port.
  • Confirm that the selected port belongs to this board, not another connected device.
  • Check the project’s driver requirements before changing drivers.

The tool says “Waiting for power-on sync”

Waveshare recommends holding BOOT and power-cycling the board into download mode, then retrying. Keep BOOT pressed during the power cycle and release it only after the tool begins communicating.

Erase fails or the board does not respond

Repeat the BOOT-plus-power-cycle sequence and retry. Erasing is destructive: it removes existing flash contents, including firmware, settings, and any data stored in the erased region. Use it only when the project or recovery instructions call for it, and preserve required data first.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The flash completes but the display stays blank

  • Recheck the exact model and revision in the project’s support list.
  • Verify that every binary was written at the project’s stated offset.
  • Confirm that a multi-file release included its partition table and bootloader.
  • Reset or power-cycle after flashing.
  • Use the project’s serial-log instructions to distinguish a boot failure from an e-paper refresh or display-driver problem.

A successful transfer only confirms that bytes were written; it does not confirm display-pin compatibility or a valid partition layout.

DFU is not detected

Check that the project actually supports USB-OTG DFU, that the chip is in bootloader mode, and that the board has the required USB-OTG hardware. Install the host setup required by the operating system, including WinUSB on Windows or a udev rule on Linux where applicable. If the board uses USB_SERIAL_JTAG for normal programming, use the project’s serial/JTAG method instead of forcing DFU.

Image-layout and migration pitfalls

Many failed first boots are caused by treating a release archive as if every binary were interchangeable. A merged image normally packages the components in the layout expected by that project, while a multi-file release depends on each file being placed at its specified offset. Mixing a bootloader from one version with an application or partition table from another can leave the chip apparently flashed but unable to boot. Keep all files from one release together and record their checksums or filenames before starting.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Migration deserves the same care. A project may change partition names, application slots, or stored-data formats between releases. If its upgrade notes request an erase, assume that old settings may be lost and export credentials or configuration first. If no migration or erase instruction is supplied, do not invent one; ask the maintainer whether an in-place update is supported.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Host-computer and workflow checks

Choose the host workflow that matches the project, not the one that is merely most convenient. The browser-based Waveshare flasher is straightforward for the supplied example image, while the desktop utility exposes MCU, interface, port, address, and baud settings. A source-based ESP-IDF or esptool process is preferable when the project generates several files or needs repeatable builds. DFU adds another layer of requirements: dfu-util, bootloader mode, and operating-system driver setup.

Before pressing Flash, close serial terminals, note the selected port, and disconnect other ESP32 boards. Save the project’s release notes alongside the image files so that offsets and erase instructions remain available during recovery. Do not interrupt power while an erase or write is in progress. Afterward, reset the board deliberately rather than assuming the tool’s completion message means the application has started.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Post-flash verification

  1. Reset or power-cycle the board after the tool reports success.
  2. Confirm that the custom firmware’s boot screen, serial banner, or log identifies the expected release.
  3. Test the e-paper refresh, buttons, storage, and any wireless or sensor functions that the project claims to support.
  4. Check that settings persist across a second reset if persistence is expected.
  5. Record the board revision, firmware version, image files, offsets, and erase state for the next recovery.

If the custom OS offers a diagnostics page or command, use it to verify flash size and partition names rather than assuming the values from another ESP32-S3 board.

Quick decision checklist

  • Exact model confirmed? Proceed only when the project names your Waveshare variant or explicitly documents compatibility.
  • Image layout known? Identify merged versus multi-file images and copy every offset from the project instructions.
  • USB path identified? Distinguish serial/USB_SERIAL_JTAG programming from USB-OTG DFU.
  • BOOT recovery ready? Know how to hold BOOT while connecting or power-cycling.
  • Erase decision made? Back up data before any destructive erase.
  • Verification planned? Have a reset, display test, and serial-log check ready before flashing.

The safest workflow is therefore: match the board, follow the custom project’s image and layout instructions, enter download mode when necessary, flash with the project’s designated tool, then reset and verify. Waveshare’s 0x00 example setting is a useful test for the bundled firmware, not a universal custom-OS address.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Which Waveshare board does this procedure cover?

The detailed manufacturer steps apply to the Waveshare ESP32-S3-ePaper-1.54G. Other ESP32-S3 e-paper boards may use different displays, pinouts, flash layouts, or images, so confirm the exact model and revision first.

Best Value
Sale
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

What flash address should I use?

Use 0x00 only for the bundled ESP32-S3-ePaper-1.54G example firmware, as specified by Waveshare. A custom project must provide its own address or offsets; never infer them from the example.

How do I put the board in BOOT mode?

Disconnect power, hold BOOT, reconnect USB or power, and release BOOT after the computer or flashing tool detects the device. Retry the download, then reset after it completes.

What should I do if the tool says “Waiting for power-on sync”?

Hold BOOT while power-cycling the board into download mode, keep it held until communication starts, and retry. This is the recovery sequence Waveshare recommends.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do I need to erase the flash first?

Only when the custom project or its recovery instructions require it. Erasing removes existing firmware, settings, and other data in the erased region, so back up anything important first.

Can I use USB-OTG DFU because the board has a USB connector?

Not necessarily. Espressif’s USB-OTG DFU path is distinct from serial or USB_SERIAL_JTAG programming and requires compatible hardware, bootloader mode, and host setup. A connector alone does not prove DFU support.

What files are needed for a multi-file release?

Use every bootloader, partition-table, application, and optional data image named by the project, with the exact offsets it specifies. Keep all files from the same release and do not mix versions.

Is a TF card required for flashing?

No general TF-card requirement is documented for USB programming. Waveshare mentions a TF card only for examples that explicitly use one.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Bottom Line

Confirm that your board is the Waveshare ESP32-S3-ePaper-1.54G or another explicitly supported variant, then follow the custom project’s image, offset, and erase instructions. Use BOOT mode when the port or synchronization fails, distinguish ordinary USB serial/JTAG flashing from USB-OTG DFU, and reset and test the display after writing. The manufacturer’s 0x00 setting is for its example firmware—not a universal address for custom operating-system images.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.