When debugging RPxxxx devices you need a debug-probe. The one from RPI is great and cheap.
But do you know these:
- You don't have good feeling to have the debugged device directly connected to your PC.
- Running the program leads to disconnects of the USB-Port when the RP is switching high loads.
- You have ground-loops when developing audio firmware with an RPxxxx.
Then you need a potential-free isolated debug-probe which galvanically separates the debugging hardware and the debugged device.
We needed such a device for our developments and so we had to develop it.
And we guess others might also be interested so we decided to sell the devices as well.
Arcus-EDS Isolated Debug Probe product page
Additionally you get:
- An isolated USB/UART converter which is not so bad at all for many purposes.
- 3.3V isolated power with up to 150mA.
In this repository you find the firmware source for the Arcus-EDS Isolated Debug Probe SWD/UART accessory which is an adapted version of the original debug probe firmware
Raspberry Pi Debug Probe product page
The Isolated-Debugprobe can also be transformed into a isolated serprog serial flash programmer to be used with flashrom.exe
Arcus-EDS Isolated Serprog flash programmer
The debug probe is designed to support the RPxxxx Pico chips.
Debug Probe documentation can be found at the Raspberry Pi Microcontroller Documentation portal.
- Connect the USB-C cable and watch the probe beeing discovered by the operating system.
- Switch the 3V-En switch on to provide power to the device to debug, switch it off if the debugged device is self-powered.
If the 3.3V power is present the LED beside the switch lights up. - Connect the GND(-)/SWD/SWCLK/3V3(+) pins to your device to debug.
- The device should be present and selectable in your IDE.
Some IDEs have a test procedure that should run without any error.
For changing the firmware on the probe itself you hold the Programming-button pressed while connecting the USB-cable.
| * | ** |
|---|---|
| Input Power | 5V/300mA over USB |
| Power Output to debugged device | 3.3V/150mA galvanically isolated and short circuit protected |
| SWD-Speed | up to 10MHz |
| UART | up to 250KBaud |
For the purpose of making changes or studying of the code, you may want to compile the code yourself.
First, clone the repository:
git clone https://github.com/ArcusEDS/IsolatedDebugProbe
cd IsolatedDebugProbe
Initialize and update the submodules:
git submodule update --init --recursive
Then create and switch to the build directory:
mkdir build
cd build
If your environment doesn't contain PICO_SDK_PATH, then either add it to your environment variables with export PICO_SDK_PATH=/path/to/sdk or add PICO_SDK_PATH=/path/to/sdk to the arguments to CMake below.
Run cmake and build the code:
cmake ..
make
Done! You should now have a IsolatedDebugProbe.uf2 that you can upload to your Debug Probe over USB.
Note that if you first ran through the whole sequence to compile for the Debug Probe, then you don't need to start back at the top. You can just go back to the cmake step and start from there.

