Raspberry Pi Pico
Introducing CircuitPython

Introduction

CircuitPython is not quite the same as MicroPython. It is a fork of MicroPython that is created and maintained by the electronics supplier Adafruit.

The main difference you are going to notice when you download and copy the CircuitPython firmware to a Pico is that the drive does not disappear. You can access it and the programs on the drive through the file system on the PC you are using to program the board. There are lots of advantages to this.

Programming

For MicroPython, I prefer using Thonny. I am not so keen on it when it comes to CircuitPython. For most purposes, I have found Mu to be much easier to use,

Pico Circuit

Since CircuitPython shows up as a drive, I just copy libraries and files straight to it. I also use text editors to make quick changes.

Libraries

CircuitPython has a load of libraries already made. When working with MicroPython, I have not always been able to find a decent library that I can use for a component. There are a huge number of libraries already made for CircuitPython that work well and have examples you can use. It is pretty easy to get moving with a new component.

That is a double-edged sword. One of the things I have enjoyed most about the Pico and, before that, the micro:bit, is writing basic drivers and libraries of my own to do the work. Pouring over a datasheet, reading an old Arduino or Raspberry Pi library and having things not always work has been part of the fun. It is sometimes to get something working within a few minutes of making your circuit too.

USB HID

MicroPython does not currently have any support for emulating a mouse or keyboard. Adafruit have a nice library for doing this that, like everything else, 'just works'. When I started with the Pico, I had generally avoided using CircuitPython, favouring Arduino for Adafruit boards and MicroPython for anything else. Once I started playing with the RP2040-based keypads, CircuitPython became a must and it seemed to be worth diving in to a little more.