At the start of the Raspberry Pi Pico launch, it was only possible to program it in either C/C++ or MicroPython. A few languages are beginning to make an appearance now, including the quite exciting prospect of Rust running on the board. Today, I’m highlighting Adafruit’s CircuitPython. It is similar, though not identical, to MicroPython but seems to have many more libraries available. The folks over at Adafruit have taken the examples from the Getting Started with MicroPython book and adapted them to CircuitPython. They have then put together a great, comprehensive Getting Started with Raspberry Pi Pico and CircuitPython guide, including how to install it and how to use the available resources on the Pico.
This is a great move by Adafruit – i.e. getting the language working on the Pico – and in some ways it’s much easier to use CircuitPython than MicroPython due to the way you upload your code. It’s certainly easier than the somewhat “uneven” experience of working with C/C++ in various environments, most notably Windows.
Of course, you might prefer to stick with MicroPython, it being Raspberry Pi’s preferred language, but CircuitPython gives you a slightly bigger world in which to work. There are still advantages to MicroPython, as Adafruit themselves point out:
- Advanced APIs such as interrupts and threading.
- Complete PIO API (CircuitPython’s support is incomplete)
- Using existing MicroPython code
Romilly Cocking has pointed out, in the comments, the following:
CircuitPython is a fork of MicroPython. Damien George (creator of MicroPython) is comfortable with it. He regards the two versions like Linux Distros: the same core code packaged differently for different audiences.
Another great advantage of CircuitPython is that you can use Adafruit Blinka which lets you run a huge range of CircuitPython libraries on the Raspberry Pi or Jetson Nano.
It’s entirely up to you – give it a go, see what you can make!