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ř.
| Role | Arduino IDE | PlatformIO |
| Aplikace | Nazev.ino.bin | firmware.bin |
| Bootloader | Nazev.ino.bootloader.bin | bootloader.bin |
| Partition tabulka | Nazev.ino.partitions.bin | partitions.bin |
| Umístění | build/ · Export Compiled Binary | .pio/build/<env>/ |
| boot_app0.bin | Ani 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.
| Soubor | ESP32 | ESP32-S3 | ESP32-C3 |
| bootloader.bin | 0x1000 | 0x0 | 0x0 |
| partitions.bin | 0x8000 | 0x8000 | 0x8000 |
| boot_app0.bin | 0xe000 | 0xe000 | 0xe000 |
| aplikace .bin | 0x10000 | 0x10000 | 0x10000 |
Jak nástroj pozná, co je který soubor
Podle názvu ne — ten si každý pojmenuje jinak. Rozhoduje obsah:
- Bootloader a aplikace začínají magickým bytem
0xE9. Rozliší se velikostí: bootloader nikdy nepřesáhne 64 kB.
- Partition tabulka začíná dvojicí
0xAA 0x50 a je vždy menší než 4 kB.
- Merged obraz začíná
0xE9, ale uvnitř na 0x8000 má partition tabulku.
- Typ čipu je v hlavičce firmwaru na offsetu 12 jako
chip_id. Nástroj ho porovná s vaším výběrem i s reálným hardwarem.
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