FlashESP is an all-in-one web-based tool for ESP32/ESP8266 Arduino development and firmware flashing

FlashESP is a web-based tool allowing the development of Arduino sketches and firmware flashing for ESP32 and ESP8266 hardware platforms.

I initially thought it was similar to ESP Web Tools for flashing firmware from the web and used by projects like ESPHome, but it goes further than that, and it looks like an Arduino Cloud Editor for ESP32/ESP8266 instead, since users can select boards, write code, load libraries, and flash the resulting firmware from a compatible web browser without installing anything else on their computer.

FlashESP Web-based ESP32 programming tool

FlashESP key features:

  • Cloud Compilation – Real-time compilation with live logs.
  • Auto Configuration – Intelligent board and library detection.
  • One-Click Flash – Web Serial integration. Connect your ESP via USB and flash directly from a compatible browser (WebSerial support needed) without any drivers or downloads.
  • Public Explorer – Discover community projects.
  • Flexible Visibility – Create private projects for your team, public for the world, or unlisted for sharing specific links.
  • Build Analytics – Track compilation time, resource usage, and build success rate.

Let’s head over to the FlashESP website to give it a try in Google Chrome (Firefox won’t work since it lacks WebUSB/WebSerial). I happen to have an M5Stack CardPuter Adv ESP32-S3 mini computer in my office, so I’ll use that.

The easiest way to start is to go to the demo. The platform is set to ESP8266, but I thought it would ask me to select the hardware once I click the “Flash Device Now” button. However, after selecting the serial device, I was promptly informed that the installation failed with a message reading: “Your ESP32-S3 board is not supported”.

FlashESP ESP32-S3 failed

I would need an ESP8266 board for a quick test, but I don’t have any where I am right now. So I explored public projects and found a few ESP32-S3-based ones, including the XIAO-WIFI-BLINK-AP, which creates an open WiFi access point to monitor a blinking LED on the XIAO ESP32S3 board.

FlashESP XIAO WiFi Blink AP

Logging in requires an account, so I created one, and I could then click “Flash to Device” to proceed with the installation on the CardPuter Adv.

FlashESP Flash to Device

After a power cycle, I clicked the Flash to Device button again to access the serial log, and we can see the XIAO WiFi Blink AP demo is running.

XIAO WiFi Blink AP on CardPuter Adv ESP32 S3 devkit

Since the hardware is different, the LED on the Stamp-S3A module on the CardPuter Adv is not blinking, but I could confirm the access point and web interface were accessible.

FlashESP ESP32-S3 access point demo

At this point, I decided I wanted to change the code to make the LED work on the CardPuter Adv. So I opened the main.ino right from the web browser, but a message popped up “Cannot edit in read-only editor”. There’s no option to make a copy of a public project either, so I just created a new project called “CardPuter-Adv-Blink-RGB-AP” for the M5CardPuter board.

FlashESP New Project

I then created a main.ino file, copied the code from the “XIAO-WiFi-Blink-AP” project, and started modifying it.

Edit ESP32 Arduino Code in Google Chrome

I needed the FastLED library. The user interface provides a Library Manager, similar to the one in the Arduino IDE, so I searched for the library and installed it.

ESPFlash Library Manager

Time to build the code. I took five tries to get something building successfully. It’s easy to debug as we can access the live build logs. I could open multiple windows to access the source code and the build interface.

ESPFlash Build Success

The final step should be easy (so I thought), so I just clicked “Flash Device”, but it failed to work.

FlashESP Installation failed

I spent around 45 minutes trying to fix it, trying again, and eventually reproducing the board configuration from the CardPuter Adv documentation website.

FlashESP board configuration

But no luck. There’s no log for that part (or I missed it), so it’s harder to find out what’s wrong. I eventually downloaded the firmware.bin from the interface and flashed it with esptool:


Flashing worked that way. However, looking at the log, there’s a SHA-256 comparison error.

FlashESP SHA-256 comparison failed

I’ll stop here. I also noticed uncaught runtime errors when changing the zoom level in the code editor. It’s quite an interesting tool with most features implemented, but it’s still new, and more work is needed to polish it. As a side note, it is somewhat similar to the FlashMyPico website for Raspberry Pi Pico/Pico 2 boards, which supports C/C++ and MicroPython programming.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress. We also use affiliate links in articles to earn commissions if you make a purchase after clicking on those links.

Radxa Orion O6 Armv9 mini-ITX motherboard

Leave a Reply

Your email address will not be published. Required fields are marked *

Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC
Boardcon MINI1126B-P AI vision system-on-module wit Rockchip RV1126B-P SoC