chiptron.cz

Web Serial · esptool-js · bez instalace

Nahrajte firmware do ESP32 přímo z prohlížeče

Vyberte čip, přetáhněte .bin soubory z Arduino IDE nebo PlatformIO a nástroj se postará o zbytek. Sám přečte typ čipu z hardwaru, rozpozná role souborů podle jejich obsahu a doplní správné offsety. Když něco nesedí, flash neproběhne.

Špatný firmware desku nezničí

Flash paměť jde vždy přepsat znovu. Nejhorší, co se může stát, je že se deska zacyklí v restartech — pak ji jednoduše přeflashujete správně. Nevratně zabít ESP32 lze jen zápisem eFuse pojistek, což tento nástroj nedělá.

Tento prohlížeč neumí Web Serial

Nástroj potřebuje Web Serial API, které mají jen prohlížeče postavené na Chromiu. Otevřete stránku v Chrome, Edge nebo Opeře. Firefox, Safari ani iOS Web Serial nepodporují.

1

Vyberte čip na své desce

Offsety znát nemusíte — nástroj je dosadí sám. Výběr si po připojení desky ověří proti skutečnému hardwaru.

2

Přidejte zkompilované soubory

Funguje s Arduino IDE i PlatformIO — nemusíte nic přepínat. Nástroj čte hlavičku každého souboru a sám pozná, co je co. Na názvech nezáleží.

Přetáhněte sem .bin soubory nebo klepněte a vyberte je

boot_app0.bin hledat nemusíte — je vestavěný.

3

Připojte desku a ověřte čip

Nástroj přečte typ čipu, MAC adresu a velikost flash přímo z desky. Pokud se skutečný čip liší od vašeho výběru, nahrání se zablokuje.

4

Nahrajte firmware

0 %
Sériový monitor
odpojeno

Arduino IDE nebo PlatformIO? Nástroj to nezajímá

Obě prostředí produkují obsahově identické soubory — liší se jen názvy a umístění. Nástroj rozpoznává role podle hlavičky souboru, ne podle názvu, takže mezi Arduinem a PlatformIO nemusíte nic přepínat. Prostě hodíte soubory dovnitř.

RoleArduino IDEPlatformIO
AplikaceNazev.ino.binfirmware.bin
BootloaderNazev.ino.bootloader.binbootloader.bin
Partition tabulkaNazev.ino.partitions.binpartitions.bin
Umístěníbuild/ · Export Compiled Binary.pio/build/<env>/
boot_app0.binAni jedno ho neexportuje — nástroj ho doplní sám

Pozor na sloučený „merged" obraz

PlatformIO (a příkaz esptool merge_bin) umí vyrobit jeden soubor, ve kterém jsou bootloader, tabulka i aplikace slepené dohromady — typicky firmware.factory.bin. Takový obraz se zapisuje celý na 0x0 a nesmí se k němu přidávat nic dalšího, jinak by se části ve flash překryly. Nástroj ho pozná automaticky: hledá partition tabulku uvnitř souboru na offsetu 0x8000, což běžná aplikace nikdy nemá. Když ho najde, zablokuje přidání ostatních souborů.

PlatformIO s frameworkem ESP-IDF

Pokud v platformio.ini nemáte framework = arduino, ale espidf, soubor boot_app0.bin se nepoužívá vůbec a offsety mohou být jiné podle vaší konfigurace. V tom případě nástroj bootloader a tabulku rozpozná, ale ověřte si offsety proti výstupu pio run -t upload -v.

Offsety flash paměti u ESP32, S3 a C3

Tohle je nejčastější zdroj chyb při ručním flashování. ESP32-S3 a ESP32-C3 mají bootloader na offsetu 0x0, zatímco původní ESP32 na 0x1000. Když použijete offset od jiného čipu, deska se zasekne v restartové smyčce. Nástroj výše dosazuje offsety sám podle detekovaného čipu, takže se v nich splést nemůžete.

SouborESP32ESP32-S3ESP32-C3
bootloader.bin0x10000x00x0
partitions.bin0x80000x80000x8000
boot_app0.bin0xe0000xe0000xe000
aplikace .bin0x100000x100000x10000

Jak nástroj pozná, co je který soubor

Podle názvu ne — ten si každý pojmenuje jinak. Rozhoduje obsah:

chip_id v hlavičce firmwaru

ESP32 = 0 · ESP32-S2 = 2 · ESP32-C3 = 5 · ESP32-S3 = 9 · ESP32-C6 = 13 · ESP32-H2 = 16. Firmware s cizím chip_id nástroj odmítne zapsat.

Když se něco pokazí

Deska se v dialogu portu vůbec neobjeví

Skoro vždy je na vině kabel. Spousta USB kabelů umí jen napájení a nemá datové vodiče — deska se rozsvítí, ale počítač o ní neví. Zkuste jiný kabel. Pokud to nepomůže, chybí ovladač převodníku (CP2102 nebo CH340); u desek s nativním USB (ESP32-S3, C3) žádný ovladač potřeba není.

Připojení selže nebo se zasekne na „Connecting…"

Deska nepřešla do bootovacího režimu. Podržte tlačítko BOOT, krátce stiskněte RESET, pusťte BOOT a zkuste připojení znovu. Některé klony desek nemají osazené automatické resetovací tranzistory a tenhle postup vyžadují vždy.

Nahrálo se to, ale deska se pořád restartuje

Otevřete sériový monitor a přečtěte si důvod restartu. Nejčastěji jde o špatný offset bootloaderu (typicky 0x1000 místo 0x0 u S3), chybějící partition tabulku, nebo firmware očekávající PSRAM na desce, která ji nemá. Zapněte volbu Smazat celou flash a nahrajte znovu.

Po nahrání se deska nehlásí jako sériový port (S3 / C3)

U desek s nativním USB musí být ve firmwaru zapnuté USB CDC. V Arduino IDE nastavte Tools → USB CDC On Boot: Enabled, v PlatformIO přidejte build_flags = -DARDUINO_USB_CDC_ON_BOOT=1. Bez toho program běží, ale port zmizí.

Firmware čte obrázky nebo data ze souborového systému

Export z Arduino IDE ani běžný build v PlatformIO nevytvoří obraz SPIFFS ani LittleFS. Ten musíte vygenerovat zvlášť (pio run -t buildfs) a nahrát jako další soubor na offset z vaší partition tabulky.

Časté dotazy

Můžu špatným firmwarem zničit ESP32?

Ne. Flash paměť lze vždy přepsat znovu. Špatný firmware způsobí, že se deska zacyklí v restartech nebo nenaběhne, ale trvale ji nepoškodí. Nevratně zničit ESP32 lze pouze zápisem eFuse pojistek — tento nástroj do eFuse nikdy nesahá. Pokud deska po nahrání nefunguje, prostě ji přeflashujete správnými soubory.

Na jakém offsetu začíná bootloader u ESP32-S3?

Na 0x0. Stejně tak u ESP32-C3. U původního ESP32 je bootloader na 0x1000. Toto je zdaleka nejčastější chyba při ručním flashování — deska po ní naběhne do restartové smyčky. Partition tabulka je u všech tří čipů na 0x8000, boot_app0.bin na 0xe000 a aplikace na 0x10000.

Jaký je rozdíl mezi soubory z Arduino IDE a z PlatformIO?

Liší se jen názvy a umístění, obsah je stejný. Arduino IDE dělá Nazev.ino.bin, PlatformIO firmware.bin. Nástroj rozpoznává soubory podle obsahu, ne podle názvu, takže mezi prostředími nemusíte nic přepínat.

Co je sloučený „merged" obraz firmwaru?

Jeden soubor, ve kterém jsou bootloader, partition tabulka i aplikace slepené dohromady — vzniká příkazem esptool merge_bin nebo v některých konfiguracích PlatformIO jako firmware.factory.bin. Zapisuje se celý na 0x0 a nesmíte k němu přidávat nic dalšího. Nástroj ho pozná sám a ostatní soubory zablokuje.

Kde najdu soubor boot_app0.bin?

Ani Arduino IDE, ani PlatformIO ho neexportují. V Arduinu leží v Arduino15/packages/esp32/.../tools/partitions/, v PlatformIO v ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/. Tento nástroj ho má vestavěný a doplní ho sám.

Proč flashování nefunguje ve Firefoxu?

Firefox ani Safari nepodporují Web Serial API, bez kterého se prohlížeč k desce nepřipojí. Použijte Chrome, Edge, Operu nebo jiný prohlížeč postavený na Chromiu. Na Androidu funguje Chrome, na iOS Web Serial dostupné není vůbec.

Odesílají se moje soubory někam na server?

Ne. Celý nástroj běží v prohlížeči a komunikuje jen se sériovým portem vaší desky. Soubory nikam neputují, žádný backend tu není.

Jaký je rozdíl mezi nahráním firmwaru a smazáním flash?

Nahrání přepíše jen oblasti, kam zapisujete soubory — WiFi hesla a NVS data zůstanou. Smazání flash vymaže celý čip. Použijte ho, když deska po novém firmwaru zlobí nebo když chcete čistý start.

Nástroj je zdarma. Pomůže i drobnost

Provoz i vývoj stojí čas. Pokud vám flasher ušetřil večer hledání, co je špatně, mrkněte na nákup přes odkaz níže — cena zůstává stejná, jen se malý díl vrátí zpátky do dalších nástrojů a článků na Chiptronu.

Podpořit nákupem na Alze → Affiliate odkaz · pro vás bez příplatku
Další nástroje na Chiptronu

Po nahrání firmwaru se hodí sériový monitor s plotterem, při ladění registrů převodník číselných soustav. Návody, recenze a projekty najdete na chiptron.cz.