circuitpython 8.1.0 final — update

Raspberry Pi Pico W with headers plugged into a Treedix breakout board

I suppose I should have waited one day before writing about the release of CircuitPython 8.1 because today the developers released 8.1 final. I’ve since installed it onto the few boards I installed the release candidate on, and gave them a few simple tests. One feature I’ve noticed, at least on the Raspberry Pi Pico W, is how fast it appears to execute at the stock CPU clock of 125 MHz compared to earlier releases, especially the 7.x releases. I’ve also been able to change the operational frequency of the Pico W from 125 MHz to at least 250 MHz without it locking up. The CircuitPython code at 250 MHz runs blazingly fast.

One other new feature in 8.1 that has caught my eye is support for Espressif’s ESP-NOW on supported chips. I have enough ESP32-S3 chips to enable ESP-NOW and see how that works between all of them. If you want to know why I’m excited to try this in CircuitPython, you can read about ESP-NOW here: https://www.espressif.com/en/news/ESP-NOW

Right now I feel a bit like a little kid in a toy store (back when there were old-style brick-and-mortar toy stores).

CircuitPython download: https://circuitpython.org/downloads

circuitpython 8.1.0-rc0

Raspberry Pi Pico W with headers plugged into a Treedix breakout board

Development teams for both MicroPython and CircuitPython have been working hard of late to extend the capabilities of their versions of embedable Python (CircuitPython is a fork of MicroPython). MicroPython has released its latest, version 1.20, while CircuitPython has released two versions, 8.0.5 and 8.1.0-rc0. I’m focused on 8.1 because if the new features it brings to a number of boards I work with, those based on the Espressif ESP32-S3 and ESP32-C3/C6 boards and the Raspberry Pi Pico boards, especially the Pico W with WiFi and Bluetooth.

There are two strong reasons for me to consider 8.1, even as a release candidate:

  1. The Espressif chips mentioned in the first paragraph are now considered “stable”, at least the ESP32-S3 and ESP32-C3. My limited experimentation with an 8.1 late beta on an Adafruit ESP32-S3 Feather ( https://www.adafruit.com/product/5477 ) have proven this out, with my ability to create a complex WiFi device along with a separate UDP socket to send JSON data.
  2. The Pico W WiFi radio is now enabled in 8.x. I’ve verified that as well.

My only problem with the latest version(s) of CircuitPython is its lack of support for Bluetooth on the Pico W. Unfortunately, MicroPython doesn’t have support for the Pico W’s Bluetooth radio either.

I am, for the most part, choosing to use CircuitPython over MicroPython on the Pico W. The biggest advantage to CircuitPython by far is its huge user community and the support libraries that Adafruit supplies for all its Bluetooth enabled boards it sells. I also like how CircuitPython presents an on-board FLASH storage as a drive when that board is plugged into a computer running Linux, macOS, and Windows. I can edit any source directly on that flash, and when I save it the board will know it’s been changed and restart the board. I can open a simple serial port to the board and interact with its REPL from there. CircuitPython development is easier to set up and use than MicroPython development, although I have worked with, and continue to work with both environments, depending upon specific use cases.