Blog
Flashing ESP32 sur Linux et Mac
Flasher un esp32 sur linux et mac est vraiment plus facile que sous Windows — pas de chasse aux pilotes pour la plupart des cartes, juste un nom de port série qui a l’air différent. Les commandes, les erreurs de permissions et la bizarrerie macOS qui gâche une soirée.
Ai-je besoin de pilotes sous Linux ?
En général non — le noyau embarque les pilotes CH340, CP2102 et l’USB-Serial-JTAG natif. esptool.py sous linux n’a pas besoin d’étape de pilote pour les cartes courantes ; ce qu’il faut, c’est la permission : sauf si vous êtes dans le groupe dialout, esptool meurt avec « could not open port ». sudo usermod -aG dialout $USER, déconnexion, connexion, terminé.
Ai-je besoin de pilotes sous macOS ?
Les puces USB classiques en ont besoin : les cartes CP2102 veulent le pilote VCP de Silicon Labs, les cartes CH340 le pilote WCH — deux installations kext que macOS voit de moins en moins d’un bon œil. Les cartes ESP32-S3, C3 et C6 plus récentes exposent USB-Serial-JTAG et n’ont besoin de rien, donc esptool.py sur mac marche direct avec elles. La question du pilote disparaît sur le matériel moderne.
Comment flasher un ESP32 sous Linux ?
Trouvez le port avec ls /dev/tty* avant et après branchement, puis flashez : esptool.py --port /dev/ttyUSB0 write_flash 0x0 firmware.bin. Pour les cartes USB natif, le port est /dev/ttyACM0. Tout le reste — offsets, mode boot, bauds — correspond à tous les autres OS, donc la FAQ générale sur le flash s’applique mot pour mot.
Comment flasher un ESP32 sur Mac ?
Le nom du port est la seule surprise : /dev/cu.usbserial-XXXX pour les cartes CH340/CP2102, /dev/cu.usbmodem pour l’USB natif. Ensuite c’est la même ligne esptool : esptool.py --port /dev/cu.usbserial-XXXX write_flash 0x0 firmware.bin. Si aucun port n’apparaît, la section pilotes ci-dessus est votre réponse, pas la carte.
L’IDE Arduino est-il le même sur les deux ?
Oui, y compris le paquet de cartes et le sélecteur de port, ce qui fait une chose de moins à réapprendre. La FAQ sur l’IDE Arduino couvre la configuration du gestionnaire de cartes qui se comporte à l’identique ici. La seule différence spécifique à l’OS dans Arduino sous Linux reste cette permission dialout ; sous macOS c’est le kext, et les deux se règlent une fois.
Le port n’est pas listé — et maintenant ?
Lancez ls /dev/tty* / ls /dev/cu.* carte débranchée, puis rebranchée — le nouveau venu est votre port. Si rien n’apparaît : le câble (les câbles charge uniquement sont le coupable n°1), puis le pilote, puis la carte elle-même. J’ai vu des gens acheter une deuxième carte pour ce qui s’avérait être un câble à 2 $.
Puis-je flasher avec PlatformIO sous Linux ou Mac ?
Oui, et c’est l’option la plus fluide sur les deux : platformio run --target upload détecte le port et flashe, avec la même chaîne d’outils qu’esptool. La FAQ PlatformIO couvre la configuration ; l’étape de téléversement ici est identique à Windows à part le nom du port.
Dois-je encore maintenir BOOT ?
Sur la plupart des kits, non — le circuit d’auto-reset (câblage DTR/RTS) le fait pour vous, exactement comme sous Windows. Les cartes où l’auto-reset manque ou un module nu câblé à la main ont besoin de la danse manuelle : maintenez BOOT, tapez sur EN, relâchez. La logique dépend de la carte, pas de l’OS.
Pourquoi mon flash est-il lent sous Linux ?
Le débit par défaut d’esptool est prudent. Ajoutez --baud 460800 à write_flash et le même firmware tombe en une fraction du temps. Si la puce pont bafouille à cette vitesse — certaines cartes CH340 le font — descendez à 230400. Ça marche la plupart du temps, avec des variations carte à carte ; mon vieux kit CH340 refuse tout ce qui dépasse 115200.
Puis-je flasher depuis un conteneur Docker ?
Oui, avec le port série passé au travers : docker run --device /dev/ttyUSB0 plus l’appartenance au groupe dialout pour l’utilisateur du conteneur. C’est un moyen propre d’épingler les chaînes d’outils, et je lance mes flashes de nuit comme ça. Si vous voulez tester des flux de flash sans matériel du tout, le simulateur en navigateur couvre le côté pratique.
Les projets de ce sujet s’exécutent directement dans le simulateur gratuit de sensbench : circuit pré-câblé, firmware inclus, sans compte ni installation.