View this email in your browser.
Welcome to the latest Python on Microcontrollers newsletter! Another week with a lot of news related to Python on hardware. Besides CircuitPython 9 being days from release, Linux gets a kernel update along with Python 3.13. If you’d like your children to learn Python, check out the free PyKidos browser version. That and so much more this issue. – Anne Barela, Ed.
We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. Here’s the news this week:
CircuitPython 9.0.0 Release Candidate 1 Released
We’re getting close! CircuitPython 9.0.0-rc.1 is a release candidate for 9.0.0 final. This release is believed to be stable, and is meant for testing before the final release of 9.0.0. The full list of new and updated items is in the blog and release notes – Adafruit Blog and Release Notes.
What’s Inside the Raspberry Pi 5’s New CPU, the BCM2712?
Jeff Geerling works with Kleindiek Nanotechnik and John McMaster to look at the die of the BCM2712 system on a chip (SoC) used on the Raspberry Pi 5. Jeff explains why the Raspberry Pi 5 can’t be overclocked past 3 GHz. The video also explores modern CPU architecture, clocks and PLLs (Phase-Locked Loops), silicon die shots, and even transistor-level debugging with an electron microscope – YouTube via X.
Python Stretches Its Lead in Language Popularity Index
Python has its largest lead ever in Tiobe’s monthly index of programming language popularity, having jumped ahead of second-place C language by nearly 4.5 percentage points – InfoWorld and Tiobe.
Raspberry Pi OS Is Now Powered by Linux 6.6 LTS, Improves Raspberry Pi 5 Support
Raspberry Pi released a new version of their signiture Linux operating system last week. Raspberry Pi OS is now powered by Linux 6.6 LTS. This version improves Raspberry Pi 5 support as well as also including the latest Chromium 122 and Mozilla Firefox 123 web browsers. Various bugs and changes were implemented. Existing users can update their installations by using the graphical updating utility or by running the sudo apt update && sudo apt full-upgrade
commands from a terminal window – 9to5Linux.
PyKidos
PyKidos is a small Javascript application which provides a Python playground running entirely in a browser, which is convenient for teaching purposes.
The grid cells (color and text) on the right can be manipulated from Python. You can make simple grid animations and react to click and keyboard events. Kids (and adults) can program toy games to learn basic Python coding skills – pykidos.github.io.
The Linux Kernel Version 6.8 Released
After several solid months of development, the Linux 6.8 kernel has been officially released. This kernel is of particular note to Ubuntu users as it’s the version chosen to ship in Ubuntu 24.04 LTS – i.e. as the GA kernel, and thereby supported for the duration of the release – OMG Ubuntu and Adafruit Blog.
Hancho – a Build Environment Written in Python
Hancho is a simple, pleasant software build system with few moving parts. Hancho fits comfortably in a single Python file and requires no installation, just copy-paste it into your source tree. Hancho is inspired by Ninja (for speed and simplicity) and Bazel (for syntax and extensibility). Unlike Bazel, you can create build rules that call arbitrary Python code (for better or worse).
The CircuitPython team is exploring Hancho for building CircuitPython – GitHub.
This Week’s Python Streams
Python on Hardware is all about building a cooperative ecosphere which allows contributions to be valued and to grow knowledge. Below are the streams within the last week focusing on the community.
CircuitPython Deep Dive Stream
Last Friday, Tim streamed work on Display_Text New Feature.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
CircuitPython Parsec
John Park’s CircuitPython Parsec this week is on JPEG decoding with jpegio
– Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for March 11, 2024 (notes) on YouTube.
Project of the Week: An Uptime Indicator
A Pacman ghost light for serves as an indicator for Uptime Kuma, a self-hosted monitoring tool. A ESP32-C3 monitors and displays status with colored NeoPixel LEDs after prototyping with CircuitPython on a Raspberry Pi Pico W – Reddit, Imgur, GitHub.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Build Your Own Robot: Using Python, CRICKIT, and Raspberry Pi (Manning).
New Notes from Adafruit Playground
Adafruit Playground is a new place for the community to post their projects and other making tips/tricks/techniques. Ad-free, it’s an easy way to publish your work in a safe space for free.
Custom Flight Sim Controllers with CircuitPython and MobiFlight – Adafruit Playground.
Digital / RGB-666 Moon Clock using an Adafruit Qualia ESP32-S3 – Adafruit Playground.
News From Around the Web
An open colorimeter and a new UV colorimeter with Adafruit PyBadge and CircuitPython – IO Rodeo and Adafruit Blog.
The ESP USB Bridge is an ESP-IDF project utilizing an ESP32-S2 or an ESP32-S3 chip to create a bridge between a computer (PC) and a target microcontroller (MCU). It can serve as a replacement for USB-to-UART chips (e.g. CP210x) or a debugger – GitHub.
Playing audio on the Pi Pico with no DAC to speak of with PWM and MicroPython – Hackaday.
Introduction to Git and GitHub: Getting Started with Git – kattni:decoded.
Python 3.13.0 alpha 5 is now available – Python Insider Blog.
A custom Raspberry Pi Cyberdeck by Jorvon “Odd_Jayy” Moss programmed with Python – X.
Using a Raspberry Pi to run GitHub Actions locally – A Java Geek and the Adafruit Blog.
Making Embedded Systems, 2nd Edition, by Elecia White has been released. The expanded second edition includes new chapters on IoT and networked sensors, motors and movement, debugging, data handling strategies, and more – embedded.fm and O’Reilly.
A colorful LED matrix project with an Adafruit Feather programmed in CircuitPython – Instagram.
Using the MicroPython Viper code emitter provides a 20x speed-up on Raspberry Pi Pico. C-level performance – X.
VS Code remote development with Raspberry Pi 5 – standsi.github.io.
The Raspberry Pi V3D graphics driver preps super pages to boost performance – Phoronix.
Smart disco ball changes colour like a chameleon with a Raspberry Pi 3 B+ and Python – Raspberry Pi News and YouTube.
Voice Assistant based on Raspberry Pi Pico W and LLM with MicroPython – hackster.io.
Creating virtual USB sticks with Raspberry Pi Zero for a car stereo – vanheusden.com.
Byte-sized Swift: building tiny games for the Playdate – Swift.org.
How to install Windows 11 on your Raspberry Pi – XDA Developers.
Coming Soon
STMicro unveils its “Highest-Performing” Arm Cortex-M-based STM32s yet, the STM32H7R/S range – hackster.io.
The official Raspberry Pi M.2 HAT+ for Raspberry Pi 5 has been seen as coming soon on a vendor site. The board, while announced, has not officially launched – Reichelt Electronic.
New Boards Supported by CircuitPython
The number of supported microcontrollers and Single Board Computers (SBC) grows every week. This section outlines which boards have been included in CircuitPython or added to CircuitPython.org.
This week, there were five new boards added:
Note: For non-Adafruit boards, please use the support forums of the board manufacturer for assistance, as Adafruit does not have the hardware to assist in troubleshooting.
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides
Set up Web Workflow on the Adafruit MEMENTO from M. LeBlanc-Williams
CircuitPython Libraries
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.
If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev channels on the Adafruit Discord.
You can check out this list of all the Adafruit CircuitPython libraries and drivers available.
The current number of CircuitPython libraries is 478!
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 117506 PyPI downloads over 325 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8805
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8701
- Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 7704
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2353
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1731
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1184
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1136
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1120
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1091
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1075
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
We have already released CircuitPython 9.0.0-rc.0, and this week I released 9.0.0-rc.1. I’ve fixed several bugs in preparation for the final release, and reviewed and tested a number of others. We are really close to 9.0.0 final!
Melissa
This past week, I finished up my MEMENTO Web Workflow guide. It’s a relatively short guide, but it had a number of things it was depending on the be fixed such as the CircuitPython Code Editor and Web Workflow in CircuitPython.
I also updated the missing boards over on circuitpython.org and added some of the missing Blinka boards.
Tim
I worked on web workflow support for circup and have started the next round of more general refactoring to break up its code into smaller more contained pieces. I’ve also tested a few PRs to the core that added support for the M5 Cardputer device and its 3 to 8 shift register connected keymatrix rows. Lastly was testing reviews for the Ethernet Wiznet library.
Scott
This week I’ve been exploring a new build system called Hancho to replace CircuitPython’s make files. Hancho has the advantage of being implemented fully in Python. That makes it easier to understand, structure and tweak for use in CircuitPython.
I also fixed one bug on the ESP32 which caused a boot loop. Please try release candidate 1 or more for the latest CircuitPython. We’re close to making it stable!
Liz
This week I worked on some code for an upcoming project with the Ruiz brothers. We are going to build a LiPo battery monitor with a Feather Reverse TFT ESP32-S2. We’ll use the onboard MAX17048 to monitor the charging battery and have Adafruit IO actions notify you when the battery is fully charged.
After wrapping up that code, I worked on some miscellaneous tasks that had accumulated in my list. I added a missing displayio example in the ESP32-S3 reverse TFT Feather guide. I was also able to submit a PR for a bug in the CircuitPython HT16K33 library. I had run into an issue a while ago where the bicolor matrices would toggle colors when using the shift() function. It ended up being a misplaced bit. Previously when I tried to figure out where the issue was, I didn’t have any luck, but now that I’ve worked on a few libraries it was a lot easier to track down.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on March 27th – Meetup.
PyCascades 2024 is back in Seattle, Washington, USA and online, April 5-8th at the University of Washington, Kane Hall – PyCascades.
The 2024 Open Hardware Summit will be taking place May 3 & 4, 2024 at Concordia University and lespacemaker in Montreal, Canada – oshwa.org.
PyCon US 2024 launches May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.
Open Sauce, the Maker extravaganza, is returning to San Francisco, California June 15-16 – Open Sauce.
EuroPython is the oldest and longest running volunteer-led Python programming conference on the planet. This year it will be held July 8-14 in Prague. Call for Proposals, the Mentorship Programme, and the Financial Aid Programme will be starting this month – EuroPython 2024.
Send Your Events In
If you know of virtual events or upcoming events, please let us know via email to cpnews(at)adafruit(dot)com.
Latest Releases
CircuitPython’s stable release is 8.2.10 and its unstable release is 9.0.0.rc.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20240307 is the latest Adafruit CircuitPython library bundle.
20240221 is the latest CircuitPython Community library bundle.
v1.22.2 is the latest MicroPython release. Documentation for it is here.
3.12.2 is the latest Python release. The latest pre-release version is 3.13.0a5.
3,847 Stars Like CircuitPython? Star it on GitHub!
Call for Help – Translating CircuitPython is now easier than ever
One important feature of CircuitPython is translated control and error messages. With the help of fellow open source project Weblate, we’re making it even easier to add or improve translations.
Sign in with an existing account such as GitHub, Google or Facebook and start contributing through a simple web interface. No forks or pull requests needed! As always, if you run into trouble join us on Discord, we’re here to help.
38,920 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,920 humans – thank you! Adafruit believes Discord offers a unique way for Python on hardware folks to connect. Join today at https://adafru.it/discord.
ICYMI – In case you missed it
Python on hardware is the Adafruit Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is broadcast on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here. The video podcast is on iTunes, YouTube, Instagram Reels), and XML.
The weekly community chat on Adafruit Discord server CircuitPython channel – Audio / Podcast edition – Audio from the Discord chat space for CircuitPython, meetings are usually Mondays at 2pm ET, this is the audio version on iTunes, Pocket Casts, Spotify, and XML feed.
Contribute
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Monday. The complete archives are here. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. You may also tag your information on Twitter with #CircuitPython.
Join the Adafruit Discord or post to the forum if you have questions.