I have come here as the Pimeroni Presto looks really interesting, I would be interested in developing using C/C++ so just wanted to check are the debug and clock pin exposes anywhere on the board to connect a debug probe to?
Looking at the schematic these seem connected from the RP2350 chip but I don’t see them connected to anything.
I’d be very interested in that too, I’ve had a good stare but I can’t see a debug connector. I’m guessing the diamonds connected to SWDIO and SWCLK on the schematic might be two of the test pads visible on the back of the PCB in the photos?
I can see 9 test pads total on the PCB, so if I’m guessing this might mean that:
The three in the top-right of the PBC (near the wireless module) could be WL_GP0-2
The three in the lower right near the RGB LED labelled GLOW LEDS could be the VSYS, LAST_LED_DATA and GND signals, presumably for connecting additional LEDs.
This would mean that the three pads closest to the RP2350 would be GP0, SWDIO and SWCLK. I’ve not checked a datasheet or anything but given the pin numbers a wild guess would be that the SWD pins are the pair above and to the right of the RP, and GP0 is the single pad down and to the left.
Would be great to have an official answer on this, in the meantime if mine turns up tomorrow I might see if it looks like the traces are connected that way, and if so, which way round the SWD pads are arranged.
Seems a shame not to have silkscreen for the pads, or even better would be a connector (fitted or a footprint) compatible with the cables for the Raspberry Pi Debug Probe. I wired up a Keybow2040 for debugging with the probe and it worked fine, but it’s a real shame to have soldered on wires just hanging off the side of the board (I considered soldering on a header but it would also be hard to get that to look neat). I’m worried it would be even messier on the Presto, and if I use the ground test pad it’s a shame that it’s some distance from the SWD pads (for neatness and possibly signal quality?).
I don’t suppose those are things that could be changed for the final board, since these are beta?
Will be great to hear if you find out those pads are connected to SWDIO and SWCLK, with Picos in general am really used the round trip of being able to install directly from the IDE and debug,
I don’t think we’re planning to make any hardware revisions imminently, but if/when we do we’ll consider adding a debug connector - sounds like SWD is more popular in the community than it is at Pimoroni Towers :)
When I have seen reviews about the Raspberry Pi Picos for native development it always felt people got really caught up on the lack of power button - for me I have Picos in projects where I am not sure if I have ever even used the bootsel button and gone straight to installing over SWD.
Then there is the power of actually being able to use a debugger with the code running on the target device.
I personally love SWD - I use Rust (specifically embassy), and the development experience with SWD is great, just connect it up and you can flash directly from the build, and get fast and efficient logging over SWD, basically like using serial output but much faster and lower overhead, with automatic logging of line numbers, and details on errors. It’s possible to just use picotool to send uf2 files, but it’s really great to have the full probe setup, and it’s the default in most Rust projects I’ve seen so it means you don’t need to configure anything special to have it work. I guess in micropython there’s less need for SWD because you get similar stuff over serial, although I found this to be harder to use since I couldn’t find a good solution for controlling things from vs code, so I ended up just using some keyboard macros to connect, send files and run, plus you’re limited by the UART speed and overhead.
Looking forward to having a go at getting drivers going in Rust for the screen, the hardware looks great :) I’ve had good results with the pico display 2.0 (with DMA SPI it manages a steady 40 frames per second at 320x240, not sure what frame-rate will be achievable on the presto at 480 by 480 but I’m hopeful it will be pretty good with the parallel interface!).
One follow up question, I never know the exact terms to be searching for - where a PCB has exposed pads like this is there any kind of generic SMD component that can be soldered to the pads to attack leads to rather than soldering the wires direct to the pad?
Not sure if there is some kind of 1x1 SMD connector to look for.
Apologies for the terrible photos and even worse soldering, I couldn’t come up with a good way of attaching anything, so instead I bent the legs on a normal 0.1" header and then soldered to the SWD test pads, then ran a wire to the LED GND pad. It’s really not great, but it did work to to successfully flash blinky firmware (using embassy and a branch of probe-rs with the Raspberry Pi Debug Probe). While I’m using it I’ve taped the leads on the probe to the base of the Presto to avoid putting any strain at all on the header, I’m not at all sure how robust it will be, but still much better than having to keep pressing the boot and reset buttons and having no debug output :)