Dit artikel beschrijft een VS Code-extensie van GHI Electronics die debugging op broncode-niveau mogelijk maakt voor MicroPython op echte hardware. In plaats van de traditionele 'print-and-guess'-methode, kunnen ontwikkelaars nu gebruikmaken van professionele debugging-tools direct op hun microcontroller.
Belangrijkste functionaliteiten
- Volledige debugger-controle: Ondersteuning voor breakpoints (ook conditioneel), step-over (F10), step-into (F11), step-out (Shift+F11) en pauzeren.
- Inspectie: Inzicht in de call stack, lokale en globale variabelen, en een Watch-venster voor het evalueren van expressies.
- Efficiënte workflow: Automatische implementatie van gewijzigde bestanden via CRC bij het drukken op F5 en een geïntegreerde device console.
Hardware en Installatie
De debugger ondersteunt populaire boards zoals de Raspberry Pi Pico (RP2040), Pico 2 (RP2350) en diverse ESP32-S2/S3 modules. Voor de werking is specifieke debugger-firmware nodig; de extensie kan deze vaak automatisch installeren of updaten.
Systeemvereisten en Beperkingen
De extensie is compatibel met Windows, macOS, Linux en ChromeOS. Er zijn enkele technische beperkingen, waaronder het onvermogen om @micropython.native code te debuggen en specifieke USB-toegangsuitdagingen op Linux (die via udev-regels kunnen worden opgelost) en ChromeOS (via USB pass-through).
MicroPython Debugger voor VS Code
Stel een breakpoint in de zijlijn (gutter) in en druk op F5. Je code wordt geïmplementeerd, het board start opnieuw op en de uitvoering stopt op die regel — inclusief de call stack, je variabelen en een werkend Watch-venster. Geen JTAG, geen debug-probe en geen extra bedrading nodig.
Gebruik de debugger die je al kent (F5, F10, F11, Shift+F11, herstarten, stoppen) om een microcontroller aan te sturen. Dit is geen "print-and-guess"-cyclus en geen simulator: het is de echte chip, gepauzeerd op de echte regel, met de echte waarden in beeld.
Functionaliteiten
- Breakpoints: Conditioneel, inclusief hit counts. Overal inzetbaar, ook binnen geïmporteerde modules.
- Step over (F10): Voer de volgende regel uit zonder deze in te gaan.
- Step into (F11): Volg de aanroep, ook als deze naar een ander bestand leidt.
- Step out (Shift+F11): Beëindig de functie en stop bij de aanroeper.
- Continue (F5): Ga verder naar het volgende breakpoint.
- Pause: Onderbreek een draaiend programma en bekijk waar het zich bevindt.
- Restart (Ctrl+Shift+F5): Implementeer de code opnieuw en start weer vanaf het begin.
- Stop (Shift+F5): Beëindig de sessie en laat het board blijven draaien.
- Call stack: Elk frame met bestand en regel; klik om het bestand te openen.
- Variabelen: Lokale en globale variabelen. Uitvouwbare lijsten, dictionaries en geneste objecten.
- Watch & hover: Evalueer elke expressie in het gepauzeerde frame. Beweeg de muis over een naam om de waarde te zien.
- Waarde bewerken: Wijzig een globale variabele tijdens het pauzeren en ga daarna verder met uitvoeren.
- print() output: Wordt direct naar de Debug Console gestuurd.
- Exceptions: Stopt bij de regel die de uitzondering veroorzaakte, niet nadat de stack is verdwenen.
- Deploy on F5: Alleen bestanden die zijn gewijzigd worden verzonden (via CRC). Bestanden die je lokaal hebt verwijderd, worden ook verwijderd van het board.
- Device console: Live programma-output in een terminal, zowel tijdens als buiten een debug-sessie.
Aan de slag
Zorg er eerst voor dat de firmware van je board is bijgewerkt met MicroPython debug-ondersteuning. Zie de sectie "Ondersteunde hardware" hieronder.
Nieuw project:
- Open VS Code.
- Selecteer via het Command Palette (
Ctrl+Shift+P) de optie MicroPython: New Project.
- Kies een locatie en voer een projectnaam in. Er wordt een nieuwe map met die naam aangemaakt.
- Druk op F5... KLAAR, veel succes!
Bestaand project:
- Open de projectmap in VS Code.
- Druk op F5 en selecteer MicroPython.
- De extensie biedt daarna aan om een launch-configuratie op te slaan, zodat F5 in de toekomst niet opnieuw om een keuze vraagt.
Firmware-updates
Je board wordt up-to-date gehouden met de nieuwste releases van GHI Electronics voor fixes en nieuwe functies.
- Eerste installatie: Wanneer je F5 indrukt op een board met standaard MicroPython (of zonder firmware), biedt de extensie aan om de debugger-firmware te installeren. Klik op Install en volg de instructies.
- Latere updates: Zodra de debugger-firmware op je board staat, controleert F5 de publieke firmware-index van GHI op GitHub.
- Update: Installeert de nieuwe firmware. Druk daarna opnieuw op F5 om te starten met debuggen.
- Not now: Gaat verder met de huidige firmware; de controle wordt bij de volgende F5-druk opnieuw uitgevoerd.
- Don't ask again: Schakelt de controle voor dit project uit door
"checkFirmwareUpdate": false in .vscode/launch.json in te stellen. Commentaren en andere velden blijven behouden.
Ondersteunde hardware
Er worden vijf firmware-builds geleverd die de debugger ondersteunen op de meeste populaire MicroPython-boards van dit moment.
Beschikbare firmware
| Firmware | Opmerking |
| RP2040 | Voor Raspberry Pi Pico en andere RP2040-boards. Gebruikt de eerste 2 MB flash. Werkt ook op Pico W (zonder wireless). |
| RP2350 | Voor Raspberry Pi Pico 2 en andere RP2350-boards. Werkt ook op Pico 2 W (zonder wireless). |
| ESP32S2GENERIC | Voor ESP32-S2 modules, met of zonder PSRAM. |
| ESP32S3GENERIC | Voor ESP32-S3 modules zonder PSRAM of met Quad PSRAM. Flash en PSRAM worden automatisch gedetecteerd. |
| ESP32S3OCTAL | Voor ESP32-S3 modules met Octal PSRAM. Flash en PSRAM worden automatisch gedetecteerd. |
Gebruik het commando MicroPython: Update Device Firmware in het Command Palette, kies de juiste firmware voor je board en volg de instructies.
Geteste boards
| Getest Board | Gebruikte Firmware | Opmerking |
| Raspberry Pi Pico | RP2040 | |
| Raspberry Pi Pico 2 | RP2350 | |
| Adafruit QT Py ESP32-S2 | ESP32S2GENERIC | |
| Seeed XIAO ESP32-S3 | ESP32S3GENERIC | Geen PSRAM op dit board. |
| ESP32-S3 N16R8 Development Board | ESP32S3OCTAL | 16 MB flash, 8 MB Octal PSRAM. |
| Hosyond ESP32-S3 Touchscreen Module (3.5″) | ESP32S3OCTAL | 16 MB flash, 8 MB Octal PSRAM; inclusief 3.5″ touchscreen. |
Zelf firmware bouwen
Staat je board niet in de lijst of wil je de build optimaliseren voor jouw specifieke hardware (flash-grootte, PSRAM-modus, pin-map)? Je kunt de firmware vanuit de broncode bouwen. De MicroPython fork met debugger-integratie bevat de vereisten, de nodige board-config instellingen en per-port opmerkingen.
Commando's
| Commando | Functie |
| MicroPython: New Project | Maakt een lege projectmap aan. |
| MicroPython: Update Device Firmware | Downloadt en installeert de juiste firmware. |
| MicroPython: Flash Firmware from File… | Installeert een firmware-bestand dat je al bezit. |
| MicroPython: Open Device Shell (REPL) | Live programma-output; Ctrl-C stopt het programma voor een >>> prompt. |
| MicroPython: Erase Deployed Files | Verwijdert geïmplementeerde .py en .mpy bestanden, behoudt boot.py. |
Opmerking: Ctrl+F5 voert het programma uit zonder debugging: het implementeert en start de code; print() bereikt nog steeds de Debug Console, maar breakpoints werken niet.
Gebruik van bibliotheken
Zowel .py als .mpy bestanden worden geïmplementeerd, en breakpoints werken ook binnen een .mpy bestand.
Als er voor hetzelfde module zowel een .py als een .mpy bestand bestaat, importeert MicroPython de .mpy. Een verouderd .mpy bestand zorgt er dus voor dat breakpoints op de regels vallen waarmee het bestand is gecompileerd. De extensie geeft een waarschuwing wanneer beide versies worden gedetecteerd.
Databestanden worden alleen geïmplementeerd als je ze expliciet vermeldt, aangezien het bestandssysteem klein is: "include": ["data/*.json", "**/*.csv"]
Bekende beperkingen
- Lokale variabelen: Voor lokale variabelen die geen argumenten zijn, is de broncode nodig. Een module die alleen als
.mpy is geïmplementeerd (zonder bijbehorende .py), toont alleen de argumenten en niet de overige lokale variabelen.
- Opgevangen exceptions: Exceptions die worden opgevangen (try-except) stoppen de uitvoering niet. Alleen een exception die het hoogste niveau bereikt, pauzeert het programma.
- Native code:
@micropython.native en @micropython.viper kunnen niet worden gedebugged. Ze genereren geen trace-events, waardoor breakpoints daarbinnen nooit worden geactiveerd. De code wordt wel correct uitgevoerd.
- Threads: Threads stoppen gezamenlijk. Op een board met
_thread pauzeert een breakpoint elke thread; het getoonde frame is dat van de thread die het breakpoint raakte.
- REPL prompt: De
>>> prompt vereist dat het programma is gestopt. MicroPython voert main.py volledig uit voordat de REPL start. Bij een programma met een oneindige loop wordt er dus niet geluisterd naar invoer. Output blijft zichtbaar; Ctrl-C geeft je de prompt.
- Eerste implementatie: De eerste keer dat een groot project wordt geïmplementeerd, duurt dit enkele seconden. Daarna worden alleen gewijzigde bestanden verzonden, waardoor een edit-and-run cyclus een fractie van een seconde duurt.
- Top-level breakpoints: Breakpoints in top-level module-code kunnen worden overgeslagen. Als
main.py logica direct in een while True: loop op top-niveau uitvoert, kunnen breakpoints in die loop worden overgeslagen. Verplaats de inhoud van de loop naar een kleine functie en roep deze aan vanuit de loop voor betrouwbare breakpoints. (Dit wordt momenteel onderzocht).
- ESP32-S3 Linux update: Firmware-updates voor de ESP32-S3 mislukken momenteel op Linux vanwege een probleem met de USB-JTAG reset-sequentie. Installeer de firmware handmatig via de terminal (zie sectie Requirements). Windows en macOS kunnen dit wel via de extensie.
Systeemvereisten
- Een device met MicroPython firmware met debugging-ondersteuning.
- VS Code 1.137 of nieuwer.
- Ondersteunde besturingssystemen: Windows, macOS, Linux en ChromeOS. Alles wat nodig is zit in de extensie; er is geen externe toolchain of Python-installatie vereist.
Windows
Volledig ondersteund.
macOS
Volledig ondersteund.
Linux
Installeer eenmalig de udev-regel en herstart de verbinding met het board. Open een terminal en voer uit:
cd ~/.vscode/extensions/ghi-electronics.micropython-debugger-<version>
sudo cp udev/99-micropython-debugger.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
Vervang <version> door de geïnstalleerde versie (bijv. 0.1.0). Je kunt ls ~/.vscode/extensions/ gebruiken om de exacte mapnaam te vinden. Zonder deze regel kan het board niet worden geopend omdat /dev/ttyACM* tot de dialout groep behoort en ModemManager het debugkanaal probeert te scannen.
Firmware installeren op ESP32-S3 (Linux)
Aangezien de automatische update via de extensie niet werkt op Linux voor ESP32-S3, volg dan deze stappen in de terminal:
- Installeer esptool:
pip install esptool
- Download de firmware:
- Voor ESP32-S3 zonder PSRAM of met Quad PSRAM (bijv. Seeed XIAO ESP32-S3):
wget https://raw.githubusercontent.com/ghi-electronics/micropython-vsc-extension/main/docs/firmware/micropython-esp32-s3-generic-latest.bin
- Voor ESP32-S3 met Octal PSRAM (N16R8V, N32R8V, of modules eindigend in "V"):
wget https://raw.githubusercontent.com/ghi-electronics/micropython-vsc-extension/main/docs/firmware/micropython-esp32-s3-octal-latest.bin
- Zet het board in BOOT-modus (houd BOOT ingedrukt, tik op RESET, laat BOOT los) en controleer de poort (meestal
/dev/ttyACM0):
ls /dev/ttyACM*
- Flash de firmware (pas de poort en bestandsnaam aan):
``bash esptool.py --chip esp32s3 -p /dev/ttyACM0 --before defaultreset --after hardreset \ writeflash --flashmode dio --flashsize keep --flashfreq 80m \ 0x0 micropython-esp32-s3-generic-latest.bin `` Druk daarna op RESET op het board en F5 in VS Code.
ChromeOS
Automatische firmware-updates worden niet ondersteund op ChromeOS. Installeer de firmware handmatig met de Linux-commando's hierboven.
Zodra de firmware draait, moet je USB pass-through inschakelen in: ChromeOS Settings → About ChromeOS → Developers → Linux → Manage USB devices.
Pin daarna de debug-poort in .vscode/launch.json: "debugPort": "/dev/ttyACM1"
Auto-detectie werkt niet in Crostini omdat USB-pass-through apparaten geen VID/PID metadata doorgeven. De exacte poortnaam kan variëren; vind deze met ls /dev/ttyACM*. De debugger-firmware exposeert twee poorten, waarbij de poort met het hoogste nummer het debugkanaal is.
Over GHI Electronics
GHI Electronics is een bedrijf gespecialiseerd in embedded hardware en software. Wij bouwen tools die embedded development toegankelijk maken — zoals deze MicroPython-extensie en ons TinyCLR-platform voor C# en .NET, dat al jaren wordt gebruikt voor het debuggen van productie-apparatuur. Deze extensie brengt hetzelfde bewezen debugger-protocol naar MicroPython, zodat de broncode-ervaring die je van een desktop gewend bent, ook op een klein board werkt.
- Website: www.ghielectronics.com
- Support: support@ghielectronics.com
- Forum: forums.ghielectronics.com
MicroPython Debugger voor VS Code
Stel een breakpoint in de zijlijn (gutter) in en druk op F5. Je code wordt geïmplementeerd, het board start opnieuw op en de uitvoering stopt op die regel — inclusief de call stack, je variabelen en een werkend Watch-venster. Geen JTAG, geen debug-probe en geen extra bedrading nodig.
Gebruik de debugger die je al kent (F5, F10, F11, Shift+F11, herstarten, stoppen) om een microcontroller aan te sturen. Dit is geen "print-and-guess"-cyclus en geen simulator: het is de echte chip, gepauzeerd op de echte regel, met de echte waarden in beeld.
Functionaliteiten
- Breakpoints: Conditioneel, inclusief hit counts. Overal inzetbaar, ook binnen geïmporteerde modules.
- Step over (F10): Voer de volgende regel uit zonder deze in te gaan.
- Step into (F11): Volg de aanroep, ook als deze naar een ander bestand leidt.
- Step out (Shift+F11): Beëindig de functie en stop bij de aanroeper.
- Continue (F5): Ga verder naar het volgende breakpoint.
- Pause: Onderbreek een draaiend programma en bekijk waar het zich bevindt.
- Restart (Ctrl+Shift+F5): Implementeer de code opnieuw en start weer vanaf het begin.
- Stop (Shift+F5): Beëindig de sessie en laat het board blijven draaien.
- Call stack: Elk frame met bestand en regel; klik om het bestand te openen.
- Variabelen: Lokale en globale variabelen. Uitvouwbare lijsten, dictionaries en geneste objecten.
- Watch & hover: Evalueer elke expressie in het gepauzeerde frame. Beweeg de muis over een naam om de waarde te zien.
- Waarde bewerken: Wijzig een globale variabele tijdens het pauzeren en ga daarna verder met uitvoeren.
- print() output: Wordt direct naar de Debug Console gestuurd.
- Exceptions: Stopt bij de regel die de uitzondering veroorzaakte, niet nadat de stack is verdwenen.
- Deploy on F5: Alleen bestanden die zijn gewijzigd worden verzonden (via CRC). Bestanden die je lokaal hebt verwijderd, worden ook verwijderd van het board.
- Device console: Live programma-output in een terminal, zowel tijdens als buiten een debug-sessie.
Aan de slag
Zorg er eerst voor dat de firmware van je board is bijgewerkt met MicroPython debug-ondersteuning. Zie de sectie "Ondersteunde hardware" hieronder.
Nieuw project:
- Open VS Code.
- Selecteer via het Command Palette (
Ctrl+Shift+P) de optie MicroPython: New Project.
- Kies een locatie en voer een projectnaam in. Er wordt een nieuwe map met die naam aangemaakt.
- Druk op F5... KLAAR, veel succes!
Bestaand project:
- Open de projectmap in VS Code.
- Druk op F5 en selecteer MicroPython.
- De extensie biedt daarna aan om een launch-configuratie op te slaan, zodat F5 in de toekomst niet opnieuw om een keuze vraagt.
Firmware-updates
Je board wordt up-to-date gehouden met de nieuwste releases van GHI Electronics voor fixes en nieuwe functies.
- Eerste installatie: Wanneer je F5 indrukt op een board met standaard MicroPython (of zonder firmware), biedt de extensie aan om de debugger-firmware te installeren. Klik op Install en volg de instructies.
- Latere updates: Zodra de debugger-firmware op je board staat, controleert F5 de publieke firmware-index van GHI op GitHub.
- Update: Installeert de nieuwe firmware. Druk daarna opnieuw op F5 om te starten met debuggen.
- Not now: Gaat verder met de huidige firmware; de controle wordt bij de volgende F5-druk opnieuw uitgevoerd.
- Don't ask again: Schakelt de controle voor dit project uit door
"checkFirmwareUpdate": false in .vscode/launch.json in te stellen. Commentaren en andere velden blijven behouden.
Ondersteunde hardware
Er worden vijf firmware-builds geleverd die de debugger ondersteunen op de meeste populaire MicroPython-boards van dit moment.
Beschikbare firmware
| Firmware | Opmerking |
| RP2040 | Voor Raspberry Pi Pico en andere RP2040-boards. Gebruikt de eerste 2 MB flash. Werkt ook op Pico W (zonder wireless). |
| RP2350 | Voor Raspberry Pi Pico 2 en andere RP2350-boards. Werkt ook op Pico 2 W (zonder wireless). |
| ESP32S2GENERIC | Voor ESP32-S2 modules, met of zonder PSRAM. |
| ESP32S3GENERIC | Voor ESP32-S3 modules zonder PSRAM of met Quad PSRAM. Flash en PSRAM worden automatisch gedetecteerd. |
| ESP32S3OCTAL | Voor ESP32-S3 modules met Octal PSRAM. Flash en PSRAM worden automatisch gedetecteerd. |
Gebruik het commando MicroPython: Update Device Firmware in het Command Palette, kies de juiste firmware voor je board en volg de instructies.
Geteste boards
| Getest Board | Gebruikte Firmware | Opmerking |
| Raspberry Pi Pico | RP2040 | |
| Raspberry Pi Pico 2 | RP2350 | |
| Adafruit QT Py ESP32-S2 | ESP32S2GENERIC | |
| Seeed XIAO ESP32-S3 | ESP32S3GENERIC | Geen PSRAM op dit board. |
| ESP32-S3 N16R8 Development Board | ESP32S3OCTAL | 16 MB flash, 8 MB Octal PSRAM. |
| Hosyond ESP32-S3 Touchscreen Module (3.5″) | ESP32S3OCTAL | 16 MB flash, 8 MB Octal PSRAM; inclusief 3.5″ touchscreen. |
Zelf firmware bouwen
Staat je board niet in de lijst of wil je de build optimaliseren voor jouw specifieke hardware (flash-grootte, PSRAM-modus, pin-map)? Je kunt de firmware vanuit de broncode bouwen. De MicroPython fork met debugger-integratie bevat de vereisten, de nodige board-config instellingen en per-port opmerkingen.
Commando's
| Commando | Functie |
| MicroPython: New Project | Maakt een lege projectmap aan. |
| MicroPython: Update Device Firmware | Downloadt en installeert de juiste firmware. |
| MicroPython: Flash Firmware from File… | Installeert een firmware-bestand dat je al bezit. |
| MicroPython: Open Device Shell (REPL) | Live programma-output; Ctrl-C stopt het programma voor een >>> prompt. |
| MicroPython: Erase Deployed Files | Verwijdert geïmplementeerde .py en .mpy bestanden, behoudt boot.py. |
Opmerking: Ctrl+F5 voert het programma uit zonder debugging: het implementeert en start de code; print() bereikt nog steeds de Debug Console, maar breakpoints werken niet.
Gebruik van bibliotheken
Zowel .py als .mpy bestanden worden geïmplementeerd, en breakpoints werken ook binnen een .mpy bestand.
Als er voor hetzelfde module zowel een .py als een .mpy bestand bestaat, importeert MicroPython de .mpy. Een verouderd .mpy bestand zorgt er dus voor dat breakpoints op de regels vallen waarmee het bestand is gecompileerd. De extensie geeft een waarschuwing wanneer beide versies worden gedetecteerd.
Databestanden worden alleen geïmplementeerd als je ze expliciet vermeldt, aangezien het bestandssysteem klein is: "include": ["data/*.json", "**/*.csv"]
Bekende beperkingen
- Lokale variabelen: Voor lokale variabelen die geen argumenten zijn, is de broncode nodig. Een module die alleen als
.mpy is geïmplementeerd (zonder bijbehorende .py), toont alleen de argumenten en niet de overige lokale variabelen.
- Opgevangen exceptions: Exceptions die worden opgevangen (try-except) stoppen de uitvoering niet. Alleen een exception die het hoogste niveau bereikt, pauzeert het programma.
- Native code:
@micropython.native en @micropython.viper kunnen niet worden gedebugged. Ze genereren geen trace-events, waardoor breakpoints daarbinnen nooit worden geactiveerd. De code wordt wel correct uitgevoerd.
- Threads: Threads stoppen gezamenlijk. Op een board met
_thread pauzeert een breakpoint elke thread; het getoonde frame is dat van de thread die het breakpoint raakte.
- REPL prompt: De
>>> prompt vereist dat het programma is gestopt. MicroPython voert main.py volledig uit voordat de REPL start. Bij een programma met een oneindige loop wordt er dus niet geluisterd naar invoer. Output blijft zichtbaar; Ctrl-C geeft je de prompt.
- Eerste implementatie: De eerste keer dat een groot project wordt geïmplementeerd, duurt dit enkele seconden. Daarna worden alleen gewijzigde bestanden verzonden, waardoor een edit-and-run cyclus een fractie van een seconde duurt.
- Top-level breakpoints: Breakpoints in top-level module-code kunnen worden overgeslagen. Als
main.py logica direct in een while True: loop op top-niveau uitvoert, kunnen breakpoints in die loop worden overgeslagen. Verplaats de inhoud van de loop naar een kleine functie en roep deze aan vanuit de loop voor betrouwbare breakpoints. (Dit wordt momenteel onderzocht).
- ESP32-S3 Linux update: Firmware-updates voor de ESP32-S3 mislukken momenteel op Linux vanwege een probleem met de USB-JTAG reset-sequentie. Installeer de firmware handmatig via de terminal (zie sectie Requirements). Windows en macOS kunnen dit wel via de extensie.
Systeemvereisten
- Een device met MicroPython firmware met debugging-ondersteuning.
- VS Code 1.137 of nieuwer.
- Ondersteunde besturingssystemen: Windows, macOS, Linux en ChromeOS. Alles wat nodig is zit in de extensie; er is geen externe toolchain of Python-installatie vereist.
Windows
Volledig ondersteund.
macOS
Volledig ondersteund.
Linux
Installeer eenmalig de udev-regel en herstart de verbinding met het board. Open een terminal en voer uit:
cd ~/.vscode/extensions/ghi-electronics.micropython-debugger-<version>
sudo cp udev/99-micropython-debugger.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger
Vervang <version> door de geïnstalleerde versie (bijv. 0.1.0). Je kunt ls ~/.vscode/extensions/ gebruiken om de exacte mapnaam te vinden. Zonder deze regel kan het board niet worden geopend omdat /dev/ttyACM* tot de dialout groep behoort en ModemManager het debugkanaal probeert te scannen.
Firmware installeren op ESP32-S3 (Linux)
Aangezien de automatische update via de extensie niet werkt op Linux voor ESP32-S3, volg dan deze stappen in de terminal:
- Installeer esptool:
pip install esptool
- Download de firmware:
- Voor ESP32-S3 zonder PSRAM of met Quad PSRAM (bijv. Seeed XIAO ESP32-S3):
wget https://raw.githubusercontent.com/ghi-electronics/micropython-vsc-extension/main/docs/firmware/micropython-esp32-s3-generic-latest.bin
- Voor ESP32-S3 met Octal PSRAM (N16R8V, N32R8V, of modules eindigend in "V"):
wget https://raw.githubusercontent.com/ghi-electronics/micropython-vsc-extension/main/docs/firmware/micropython-esp32-s3-octal-latest.bin
- Zet het board in BOOT-modus (houd BOOT ingedrukt, tik op RESET, laat BOOT los) en controleer de poort (meestal
/dev/ttyACM0):
ls /dev/ttyACM*
- Flash de firmware (pas de poort en bestandsnaam aan):
``bash esptool.py --chip esp32s3 -p /dev/ttyACM0 --before defaultreset --after hardreset \ writeflash --flashmode dio --flashsize keep --flashfreq 80m \ 0x0 micropython-esp32-s3-generic-latest.bin `` Druk daarna op RESET op het board en F5 in VS Code.
ChromeOS
Automatische firmware-updates worden niet ondersteund op ChromeOS. Installeer de firmware handmatig met de Linux-commando's hierboven.
Zodra de firmware draait, moet je USB pass-through inschakelen in: ChromeOS Settings → About ChromeOS → Developers → Linux → Manage USB devices.
Pin daarna de debug-poort in .vscode/launch.json: "debugPort": "/dev/ttyACM1"
Auto-detectie werkt niet in Crostini omdat USB-pass-through apparaten geen VID/PID metadata doorgeven. De exacte poortnaam kan variëren; vind deze met ls /dev/ttyACM*. De debugger-firmware exposeert twee poorten, waarbij de poort met het hoogste nummer het debugkanaal is.
Over GHI Electronics
GHI Electronics is een bedrijf gespecialiseerd in embedded hardware en software. Wij bouwen tools die embedded development toegankelijk maken — zoals deze MicroPython-extensie en ons TinyCLR-platform voor C# en .NET, dat al jaren wordt gebruikt voor het debuggen van productie-apparatuur. Deze extensie brengt hetzelfde bewezen debugger-protocol naar MicroPython, zodat de broncode-ervaring die je van een desktop gewend bent, ook op een klein board werkt.
- Website: www.ghielectronics.com
- Support: support@ghielectronics.com
- Forum: forums.ghielectronics.com