New Product: The Raspberry Pi Debug Probe

It’s fair to say that among the new product launches we see all the time, anything new from the folks at Raspberry Pi claims our attention. It’s not that their signature Linux single-board computers (SBCs) are necessarily the best or the fastest hardware on paper, but that they’re the ones with meaningful decade-plus support. Add to that their RP2040 microcontroller and its associated Pico boards, and they’re the one to watch.

Today we’ve got news of a new Pi, not a general purpose computer, but useful nevertheless. The Raspberry Pi Debug Probe is a small RP2040-based board that provides a SWD interface for debugging any ARM microcontroller as well as a more generic USB to UART interface.

The article sums up nicely what this board does — it’s for bare metal ARM coders, and it uses ARM’s built-in debugging infrastructure. It’s something that away from Hackaday we’ve seen friends using the 2040 for as one of the few readily available chips in the shortage, and it’s thus extremely convenient to have readily available as a product.

So if you’re a high level programmer it’s not essential, but if you’re really getting down to the nuts-and-bolts of an ARM microcontroller then you’ll want one of these. Of course, it’s by no means the first SWD interface we’ve seen, here’s one using an ESP32.

35 thoughts on “New Product: The Raspberry Pi Debug Probe

  1. It would be neat to see other programmers/debuggers integrated. Give me an all in one AVR/PIC/ARM/kitchen sink debugger and maybe programmer. I assume people have done this individually, and other all-in-one serial wunderkind chips exist, but I’d love a sleek one size fits all that covers most of the hobby boards with easy software for $12. Is anybody working on something like that that I missed? This new RPi board seems like it could be a good foundation.

    1. I took a stab at making a very kludgy version of this a while ago, it had Serial Arduino programming, ISP programming for older AVRs, UPDI programming for newer AVRs, a second serial port for comms, and level shifting for 3v3 or 5v. I really wanted to integrate ARM Cortex programming with it but my C is poor as it is, and I couldn’t get any implementations of this working with it. It went to one side while I worked out how to reduce the part count and tried to brush up on my C, and then it got lost among life and work. It was a fun project, it just didn’t ever get properly finished.

      Maybe someday I’ll come back to it and base it off the RP2040. I just don’t have the time for tinkering that I used to.

  2. Why are you talking about raspberry pi we can not get them in the United States and have not been able to for years unless you want to pay over a hundred dollars for a single board they are out of business in USA let’s talk about libre onion it is available at a reasonable price

    1. The chip shortage has hit all suppliers, to be fair.

      About Raspberry Pi, yes, they have their problems, who doesn’t. I will repeat, their boards are rarely the fastest or highest spec. What you are getting is meaningful and useful OS support, and in SBCs they’re almost unmatched in that.

  3. Seems like a bit on a niche item for the Raspberry Pi outfit to come along with.

    I use SWD often with STM32 controllers, via the cheap as dirt ST-Link dongles (which are just a blue pill in a handy case really). So if you are itching for SWD there are many ways to get it for almost no money (such as just using a blue pill). But I guess this item makes it more convenient for non-tech savvy beginners — which is what raspberry pi is about from start to finish, eh? ST-link dongles work great. I recomend buying them 4 at a time so you have spares and/or don’t have to waste time looking for one.

    Most of what I do is bare metal programming, and I only ever use SWD for downloading code. I have never been desperate enough to turn to gdb I guess, and that certainly isn’t in any way part of my usual way of getting things done.

    The article predicts the price at $12 — about the price of four st-link dongles on Aliexpress.

    1. It’s partly because RP2040 has a weird SWD implementation. Instead of presenting the two cores as two access ports like every other dual core microcontroller out there, RP2040 has two debug ports.
      Speculation is that this is to save ARM license fees.

      This requires the debug probe to support multidrop SWD, which e.g. STLink stock firmware does not.

      1. Actually SWD “multi-drop” is an ARM architected thing that the RP2040 is taking advantage of, see https://developer.arm.com/documentation/ddi0314/h/Debug-Access-Port/SW-DP/SW-DP-multi-drop-support
        Although saying that, I’ve no idea why they added it (and probably why few things support it) because that was the point of the DAP architecture and having multiple Access Points. Not least “The debugger must either be programmed with the target ID and instance ID of each target in advance, or must iterate through a list of known of target IDs and instance IDs to discover which targets are connected.” which makes auto-discovery that much more of a challenge (and could be a great motivator for silicon designers to add it as a security-through-obscurity challenge by obfuscating the SWD port)

    2. i think you’re dancing around a point that’s actually hugely in favor of the pico.

      everything you think an stm32 does, the pico does better. i know anyone reading what i just wrote must think i’m talking about the cool programmable i/o peripheral but i’m not. you said it right there, you can get a great price on an stm32 on aliexpress. in order to get the much-lauded low price, i got my blue pills on ebay. it has the same wrong USB resistor value as most blue pills. it has (presumably) some knockoff stm32 that may or may not really comply with the datasheets and errata i can get from ST. etc. well, the pico gives you the price you expect out of a blue pill but you can order it from adafruit.

      that’s all: it’s everything the illicit-channel stm32s will give you (especially price), except it’s licit. it might be slightly more expensive than the cheapest most ephemeral sources for stm32s but it’s much much cheaper than buying stm32 stuff from reputable vendors.

      i love to mock raspberry pi but i think the pico is brilliant

    1. That they are :) . From what I can tell, there is a lot of arm chair quarterbacks here!

      I suspect this was being used in house and they decided to release it as a product. Someone will find a use for it :) . Win win. …. If it can be found! Have a use for another RPI4, but can’t find one of those right now….

  4. Too limited and too expensive. There are several good daplink debug probes on aliexpress of various shapes with 3.3/5v power, rst, possibly even full jtag for 1/4 of the price. or you can get those small stlink v2 dongles and reflash it with cmsis-dap too if you don’t like the stlink firmware. also simple 2.54 male or female pins are easier to use and more versatile than those tiny white connectors.

  5. I already have a better (and cheaper) probe from Seeed XIAO RP2040 board with MAX14932 isolator and modified DapperMime software. Features:
    – Galvanic isolation and ability to program 1.8V devices (already tried NRF52840 with internal vreg swtiched to 1.8V)
    – Normal USB-C connector
    – Normal dupont/whatever-I-choose debug connector

    The new board is utter garbage. And it is not about price. I would give 100€ no problem for an opensource design with proper galvanic isolation! and ability to latter add other protocols like debugWIRE.
    But everything I’ve come across either was proprietary and nonextendable or didn’t have galvanic isolation.

    1. Is this just an add-on board for the XIAO? Do you have links to more info? Have sketched a few ideas based on this (mainly breaking out the connectors) but never gotten around to any real design

      1. Right now it is an addon breadboard on my desk :D (with MAX14932 on a breakout board). I want to design and make one sided addon PCB this weekend though.
        So far the connections are simple. I’ve split SWD to IN and OUT pins in the DapperMime firmware and I remerge them in HW after passing the isolator using 10k pullup on SWD IN connected with schottky diode to SWD OUT.
        So right now it’s four pins to target: GND, VCC from target, SWCLK, SWDIO.

        Btw. it really is a little challenging and interesting problem which pins to break-out. I haven’t had time to think about it though. First version is going to be just a dumb SWD without a reset line. I make PCBs at home with turnaround under an hour even with my laziness, have electronic parts shop right across a street from my work and both Farnell and TME having nextday delivery in Europe so it does not make sense for me to try to overengineer it on my first prototype addon board.

        Bte. the DapperMime is using SPI pins so I kept the MOSI for SWD OUT and added MISO for SWD In, though it is using them as GPIO. I can post some updates here at the end of this weekend.

        Next step then will be porting it to embassy-rs and implementing debugWIRE and ICSP for Atmegas and older Attinys.

  6. Hi
    The two jst connectors are not labelled or numbered, on the debug probe pcb.
    I am assuming that facing in, from left to right are 1(org/red),2(black),3(yellow).
    That corresponds to 1= RX, 2= Gnd, 3= TX.
    Also, the cable between the JST(debug probe) and the JST (pico target board)
    is Crossed.
    Also, the RX pin of the debug probe, does the bit bashing to create the SWD
    clock for the Pico target board.

Leave a Reply to zoobabCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.