All articles

G6-G11 pins on ESP32: why they crash your Arduino — QSPI explained

This is probably the #1 mistake on ESP32 LED projects. You connect your LEDs to G6, G7, G8... and the board refuses to start. Status LED blinking in a loop, no serial log. Here's why.

The QSPI bus: internal flash memory

L'ESP32-S3 (qui équipe l'Arduino Nano ESP32) utilise une mémoire flash externe pour stocker le programme. Cette mémoire est connectée via un bus QSPI (Quad SPI) — un bus 4 fils ultra-rapide. Les pins qui portent ce bus sont G6, G7, G8, G9, G10 et G11. Dès le démarrage, le bootloader utilise ces pins pour charger le firmware depuis la flash. Si ces pins sont chargés (LED, résistance, etc.), le signal est perturbé et la carte crashe avant même de démarrer votre code.

Why does it sometimes work?

Sometimes the board starts anyway — too light a load, favorable timing. But it's unstable: it may work cold and crash hot, or crash after a firmware update. Don't count on it.

Input-only pins

G34, G35, G36, G39 sont des pins input uniquement — pas de sortie possible. Parfaits pour lire un signal (récepteur RC, LDR, CH3) mais impossible de piloter une LED dessus. Sur Flare RC, G35 = LDR et G36 = CH3.

The 21 available PWM pins

Sur le Nano ESP32, les pins sûrs pour les LEDs (PWM) sont : G2, G3, G4, G5, G12 à G22, G23, G24, G25, G26, G27, G32. Flare RC les utilise tous pour ses 21 fonctions LED. G33 est analogique uniquement (LDR).

Règle d'or : Si votre carte plante au démarrage après avoir branché des LEDs, vérifiez en premier que vous n'utilisez pas G6-G11.
Related articles
← Back to the blog