How I am approaching my Raspberry Pi Pico
I'm going to try the Raspberry Pi Pico for some of my small projects. I'm primarily attracted by the deterministic timing available with the Programmable I/O state machines.
I'll mostly be building devices which present as USB peripherals to a host. As such I probably won't bother with the UART for debugging messages during development. I'd also like to avoid the Serial Wire Debug (SWD) so I don't have to wire that up either.
Developer Ergonomics
That presents me with a little development conundrum. I don't like doing the unplug/press/plug/release dance, and the human quadrature dance with a reset button added isn't much better.
My current plan is to build a "destroy yourself" function into my USB interface. That will erase the secondary boot loader block in flash then do a reset from software to force a USB Mass Storage mode boot.
Mounting on Debian
I'm using a Raspberry Pi 4 as a development machine, we'll see. It takes it about 3 seconds to build my 15kB test program. That's really pretty sad. It is mostly cmake
generated abominations faffing about. Hopefully it doesn't get much longer as I add real code.
I want a target in my Makefile
to kill a running device, flash new, and restart it. That means mounting the mass storage device when it becomes available. For now I've got a line in /etc/fstab
to make that easy...
LABEL=RPI-RP2 /rpi-rp2 msdos defaults,noauto,user 0 1
With that my untrusted user account can mount /rpi-rp2
and do what it needs.