Anyone who writes a bit of MicroPython knows the usual "debugger": sprinkle a few print() calls, reflash, repeat. GHI Electronics is changing that with full on-chip source-level debugging for MicroPython directly inside Visual Studio.
You get classic desktop-style debugging on the actual microcontroller:
- Breakpoints in your
.pyfiles - Step over / into / out
- Live variable inspection and call stack
- All running over the same USB cable you already use to flash the board
No extra SWD/JTAG probe or special hardware is required – just a supported MicroPython host like Raspberry Pi Pico or ESP32.
Firmware and supported boards
The catch: you must run a custom MicroPython firmware build:
- Either flash a prebuilt image provided by GHI;
- Or build your own image from source, which means setting up a full toolchain and dependencies.
Several Raspberry Pi Pico variants and ESP32 chips are supported. In testing, a stock Pico worked as expected, but an odd RP2040 GEEK clone produced an error during setup, even though it likely did accept the firmware. There is also a known issue under Linux with ESP32-S3 behaving similarly.
Limitations
The GitHub docs list a few constraints:
- You cannot break on exceptions that are already caught by your code (though you can set a breakpoint inside the
excepthandler); - Breakpoints halt all threads;
- A few more minor limitations, but nothing that looks like a showstopper.
For tiny scripts, print() debugging might still be enough. But once you deal with non-trivial state machines, async code, or multi-module projects, having true on-chip debugging for MicroPython can save a lot of time and guesswork.
Source: Hackaday










