De Raspberry Pi Debug Probe is een klein apparaatje (37 mm bij 31 mm bij 10 mm) met een USB UART-poort en een Serial Wire Debug (SWD) interface voor het debuggen van RP2040 toepassingen. Beide interfaces maken gebruik van de kleine 3-pins Raspberry Pi debug-connector. De ene poort is gemarkeerd met 'U', de andere met 'D'. Het geheel is ondergebracht in een doorschijnende plastic behuizing van twee delen, het is gemakkelijk te openen is voor het geval je aan de binnenkant iets moet doen om hem te herprogrammeren of zo.

Een complete hardware toepassing voor het debuggen van de RP2040

De Raspberry Pi Debug Probe wordt geleverd met vier kabeltjes: een frambooskleurige USB-kabel (1 m) en drie debug-kabels, elk ongeveer 16 cm lang. De debug-kabeltjes hebben allemaal een "JST"-type debug-connector aan een kant. Aan het andere uiteinde vinden we een andere "JST" connector, drie male breadboard jumper wires en drie female breadboard jumper wires. Samen zorgen deze kabeltjes voor een gemakkelijke aansluiting van de probe op de doelprocessor. Merk op dat ik aanhalingstekens rond JST heb gezet, want JST is de naam van een connectorfabrikant; het duidt geen bepaald type connector aan.

Als, om wat voor reden dan ook, geen van de meegeleverde kabeltjes geschikt is voor jouw toepassing, weet dan dat je ook draden kunt solderen aan de onderkant van de printplaat van de debug probe, omdat deze hiervoor soldeereilanden heeft.

Het gebruik van de Raspberry Pi Debug Probe

Om de debug probe te gebruiken heb je OpenOCD en GDB nodig. Instructies voor het installeren van deze programma's op Linux, Raspberry Pi OS, macOS en Windows zijn beschikbaar op de Raspberry Pi website. Ik nam de (voor mij) gemakkelijkste route, namelijk het gebruik van het Windows installatieprogramma (Raspberry Pi Pico SDK v1.5.0) dat alles bevat wat je nodig hebt. Overigens is het handmatig installeren van GDB op Windows sowieso niet aan te bevelen.
 
raspberry pi debug probe pod.jpg
Een handig formaat: de Debug Probe meet slechts 37 mm bij 31 mm bij 10 mm.

Na installatie van de Pico SDK resulteerde het aansluiten van de debug probe op mijn computer in de configuratie van een CMSIS-DAP apparaat en vervolgens vond ik een nieuw USB Serial Device als COM11.

Helaas stopt hier de online Windows documentatie. Er was echter een ReadMe bestand geopend door het SDK installatieprogramma, dat de instructies bevat om op Windows aan de slag te gaan. De instructies verwijzen naar de Picoprobe, wat een Raspberry Pi Pico is die is geprogrammeerd als debugger. Omdat dit hetzelfde is als de Debug Probe, werken deze instructies prima. Als je dit bestand ooit sluit, met opzet of per ongeluk, dan staat het in c:\Program Files\Raspberry Pi\Pico SDK v1.5.0.

Plug en Play

Ik sloot een Pico H board aan op de Debug Probe, precies zoals aangegeven op de Debug Probe webpagina. Vervolgens compileerde ik in Visual Code het hello_uart voorbeeld en drukte op de knop Run en Debug (in de menubalk links), gevolgd door een klik op het kleine 'play' pictogram bovenin het debug venster (je kunt ook op F5 drukken). De broncode van het programma wordt geopend, en je kunt aan de slag. Gebruik F10 en F11 om door de code te stappen. Niets te configureren, zo heb ik mijn debuggers graag.

 
visual code debugging.png
Stepping through the source code of a simple RP2040 application with the Debug Probe.

Ingebouwde serieële poort

In het onderste deelvenster van Visual Code kun je de Serial Monitor openen om de uitvoer van het hello_uart voorbeeld te visualiseren. Dit werkt perfect dankzij de UART-poort van de debug probe. Deze poort is, althans voor mij, de beste eigenschap met zijn twee LED's die knipperen voor inkomende en uitgaande gegevens. Ik weet zeker dat ik de debug probe voornamelijk zal gebruiken als seriële converter, aangezien mijn benadering van debuggen neigt naar een seriële poort.

Conclusie

In principe is de Raspberry Pi Debug Probe een herontworpen Pico als Picoprobe. Dit klinkt misschien wat negatief, maar het is in feite goed nieuws, want het betekent dat de Debug Probe in dezelfde situaties werkt als de Picoprobe. De Debug Probe is gewoon een mooiere uitvoering.

De kleine afmetingen van de probe maken hem praktisch in gebruik, want hij zit niet gauw in de weg en het hindert de werkzaamheden niet. Aan de andere kant is hij zo licht dat hij niet op zijn plaats blijft liggen. Ook zitten de "JST" connectoren een beetje te diep in de behuizing, waardoor je aan de draden moet trekken om de kabels los te maken in plaats van door de connector vast te pakken.

Sommige mensen vinden de prijs van de debug probe te hoog, maar daar ben ik het niet mee eens. Voor ongeveer €12 krijg je een keurig tooltje dat je de moeite bespaart om uit te zoeken hoe je van een ander RP2040 board een debug probe kunt maken, aangenomen dat je daarvoor een board beschikbaar hebt. Aangezien debuggen toch al iets is wat je niet wilt doen, waarom zou je het dan ingewikkelder maken dan nodig is?

Vertaling: Hans Adams