Picow Boilerplate

A lot of the stuff out there for the rp2040 is MicroPython based. It’s well supported, and wildly popular in the microcontroller world.

That’s understandable; it’s approachable and relatively beginner-friendly(if you ignore the huge design flaw that Python treats whitespace as syntactic which is deeply, deeply evil). However, I am not (you’ll be shocked to learn) a big Python fan.

So my focus is on the C/C++ SDK which is generally speaking very well documented, and very easy to work with. The real exceptions to this rule are the external libraries it bundles (lwIP, and mbedtls are the ones I’ve fought most hard with); with these you’re basically left to make sense of the contributing project which are, in general, documented about as well as you’d expect a FOSS project to be.

In the spirit of making the world a better place, I’ve built a PicoW C/C++ Boilerplate which tries to wrap up some of the nastier stuff into something simple to use and reasonably documented.

Out of the box it should “just work”; drop in your code and (assuming things like the SDKs are properly installed) everything should build easily. As well as providing a ready-to-run build setup, it offers some handy functionality to use in your programs:

This was inspired by (and based on) Pimoroni’s own boilerplate, but with some extra bells and whistles to get you going faster.

An Example

In the traditional spirit of “why write documentation when you can just release and example”, I’ve … released an example of this boilerplate in action.

The Scrolling Quote Demo for the Galactic Unicorn does what it says on the tin - pulls a quote from a remote web server, and scrolls it across the Unicorn’s display.

This demonstrates two of the major features of the boilerplate - presenting the PicoW as a Mass Storage Device to your computer (so you can easily edit the configuration file) and running a basic HTTP(S) query over WiFi.

RP2040-Only (for now…)

Looking to the future, once I get my hands on some sort of RP2350 I shall, of course, update the boilerplate!

Rp2xxx