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 podle toho, jestli na offsetu 4 je adresa vstupního bodu v ROM (bootloader), nebo v RAM/flash (aplikace).
- Partition tabulka začíná dvojicí
0xAA 0x50 a je vždy menší než 4 KB.
- Typ čipu je zapsaný v hlavičce firmwaru na offsetu 12 jako
chip_id. Nástroj ho přečte a 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 timeout 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 (ESP32-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 a zkompilujte znovu. Bez toho program běží, ale port zmizí a monitor se nemá k čemu připojit.
Firmware čte obrázky nebo data ze souborového systému
Export skici z Arduino IDE nevytvoří obraz SPIFFS ani LittleFS. Ten musíte vygenerovat zvlášť (pluginem pro nahrání dat, nebo přes mklittlefs) a nahrát jako další soubor na offset, který určuje vaše partition tabulka.
Č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.
Kde najdu soubor boot_app0.bin?
Arduino IDE ho neexportuje se skicí. Leží v instalaci jádra ESP32, typicky v Arduino15/packages/esp32/hardware/esp32/<verze>/tools/partitions/boot_app0.bin. Tento nástroj ho má vestavěný a doplní ho automaticky, takže ho hledat nemusíte.
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.
Musím držet tlačítko BOOT?
U většiny desek ne — nástroj přepne čip do bootovacího režimu automaticky signály DTR a RTS. Pokud se připojení nedaří, podržte BOOT, krátce stiskněte RESET, BOOT pusťte a zkuste to znovu.
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