If you missed this week’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Tuesday (which is out before this post). 10,691 subscribers worldwide.
The next newsletter goes out in a week and subscribing is the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Welcome to the latest Python on Microcontrollers newsletter! Each week I see what is happening in the Python, hardware, and open source communities and I’m in awe. I do a lot of reading to find the most pertinent content to feature in the newsletter, and this week did not disappoint. New versions of CircuitPython and main Python (CPython). Some nice news on Pi 5 hardware and finally dark mode in the OS! All that and some fantastic work by the community in using Python in a broad variety of projects. I hope your December is going well and I hope we all may enjoy the season and each other. – 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 8.2.9 Released
CircuitPython 8.2.9 is the latest bugfix revision of CircuitPython and is a new stable release – Adafruit Blog and GitHub.
Notable changes to 8.2.9 since 8.2.8
- PIO DMA fix for RP2040.
- New and removed boards.
- Individual board fixes.
Raspberry Pi Releases the HAT+ Standard and More on PCIe
Two months after the announcement of the Raspberry Pi 5, additional details have been released on the hardware. Specifications on the PCIe connector and required cabling will help hardware developers adhere to hardware specifications. In addition, the new HAT+ specification updates the 2014 HAT standard for signaling between peripherals and computer – Raspberry Pi News.
The First Raspberry Pi OS Update Since Pi 5 Adds Features
Raspberry Pi OS has now been updated to fix bugs since the launch of the initial Bookworm version. The update includes improved support for encrypted connections in WayVNC; the latest version of Thonny; Mathematica and Scratch 3 working on Raspberry Pi 5; and a bunch of other small bug fixes and tweaks. And finally, an often requested feature: Dark Mode – Raspberry Pi News and The Register.
Python 3.12.1 Released
Python 3.12.1 is now available. It is the latest maintenance release containing more than 400 bugfixes, build improvements and documentation changes since 3.12.0 – Python Insider Blog.
Linus Torvalds on the state of Linux today and how AI figures in its future
Linus Torvalds on the state of Linux today and how AI figures in its future – ZDnet.
“Linus Torvalds at the Linux Foundation’s Open Source Summit Japan talked about the current state of Linux. The next Linux kernel release, Linux 6.7 will arrive right around Christmas.’ On AI, Torvalds replied, “I’m convinced it’s gonna happen. And it may well be happening already, maybe on a smaller scale where people use it more to help write code.”
MEMENTO – A Python Programmable DIY Camera
Coming soon to adafruit.com, the MEMENTO Camera Board. It’s a development board to create programmable camera and vision projects, with a camera module, TFT preview screen, buttons, SD card slot and it’s driven by a powerful ESP32-S3 with 2 MB of PSRAM for buffering 5 MegaPixel camera images – Adafruit.
Pybricks Team Releases the First Beta of Block Coding for All Modern LEGO® Hubs
The Pybricks team released a new beta of block coding for all modern LEGO® hubs. For the first time, fans of all LEGO themes can bring their smart bricks together in a single app. Whether you want to make smart train layouts, autonomous Technic machines, interactive BOOST creatures, or super-precise SPIKE and MINDSTORMS robots, you can do it with PyBricks – PyBricks.
HP Robots Releases Otto DIY Programmed with MicroPython
Otto is a configurable robotics kit licensed under HP robots by Moravia. The bots can be programmed in a Blockly language which has MicroPython underneath – HP Robots via X.
XDA Developers Choose the Best Single Board Computer for 2023
XDA looks at the single board computer (SBC) market and chooses their favorite eight for 2023 – XDA.
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, Scott streamed work on CircuitPython workflow refactoring.
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 For Statements with Enumeration – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for December 4, 2023 (notes) on YouTube.
Project of the Week: A CircuitPython-Powered Typewriter
Max Lupo writes about a CircuitPython powered typewriter project. The project uses an Adafruit KB2040 board to send parallel data to the vintage electronic typewriter via its Centronics (parallel) port – Mastodon.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Eben Upton Hints at an RP2040 Successor, Promises a Raspberry Pi Compute Module 5 in 2024.
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.
Creating a CircuitPython library Bundle for Circup – Adafruit Playground.
Retro blinkenlights: driving 4 charlieplex LED matrices – Adafruit Playground.
A UDP Catcher with Raspberry Pi Pico W, CircuitPython and a 16×2 character display- Adafruit Playground.
News from around the web
CUBOTino, the Rubik’s Cube solving robot. It uses a Raspberry Pi Zero 2W and Python – Raspberry Pi News, GitHub and Instructables.
The LaMetric Time clock has multiple modes chosen wirelessly using a Raspberry Pi Pico. Programmed in MicroPython – X (Japanese).
Raspberry Pi 5 and RP1 X-ray scans – Jeff Geerling.
Chinese maker Naomi Wu is collaborating with Andrew ‘bunnie’ Huang to update Bunnie’s guide to Shenzhen. The New Essential Guide to Electronics in Shenzhen updates this resource for the present day and is essential for navigating the largest electronics mecca in the world – Crowd Supply via Mastodon and X.
The Acorn precision farming rover, solar powered and open source, coded in Python – GitHub via X.
Robot Talk chats with Jorvon Moss (@Odd_Jayy) about making robots at home, and robot design and aesthetics – Robot Talk.
Roland Schulz has made a simple bat 3D model which can be used to explain to students how it is possible for bats to fly and hunt insects using ultrasound. A speaker and a display show the distance to obstacles. It uses a Raspberry Pi Pico and MicroPython – X Thread.
Automating the Google dinosaur jump game with an ESP32 and MicroPython – X.
Virtual Jar of Fireflies – beauty and ambience created by a Mason jar of fireflies, using an Adafruit Trinket M0 and CircuitPython – hackaday.io.
YOLOv7 pose to OSC output including support for multiple pose detection in Python. Based on the Yolov7 implementation – The Little-Scale Blog.
The Calliope mini Python Editor is a web browser-based editor for Python on a Calliope mini board (which appears to be aimed at German schools) – python.calliope.cc.
Shshsh is a bridge which connects Python with the Linux shell – GitHub.
How to Get the current time in Python – Real Python.
New
Pimoroni Yukon is a high-power modular robotics and engineering platform, built around RP2040 and designed to drive robots, props and devices – Pimoroni via X. Programmed in MicroPython – GitHub.
PicoUART6 6x UART to USB bridge supports up to 6 Raspberry Pi 5 boards. The PicoUART6 board makes use of the new Raspberry Pi 5 UART connector to interface multiple Raspberry Pi 5 over UART and control them through the USB board of the Pico board – CNX Software.
Waveshare has an ESP32-S3 based board with an integrated 4.3 inch TFT LCD, RS-485, and CAN bus for home automation and robotics applications – Notebook Check.
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 no new boards added. More are in development.
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:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn Guides
Simplifying Qualia CircuitPython Projects 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 468!
New Libraries
Here’s this week’s new CircuitPython libraries:
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
- adafruit/Adafruit_CircuitPython_RGB_Display
- adafruit/Adafruit_CircuitPython_Qualia
- rgrizzell/CircuitPython_LILYGO_T-Deck
Library PyPI Weekly Download Stats
Total Library Stats
- 145627 PyPI downloads over 323 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 11437
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 10753
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 3602
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1576
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1485
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1271
- Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1245
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1230
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1212
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1210
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I’m continuing with fixes and additions to CircuitPython 8.2.x and 9.0.0. I released CircuitPython 8.2.9 last week with some minor but useful fixes.
Melissa
This week I wrote a Learn guide on Simplifying Qualia CircuitPython Projects by using the Qualia Helper Library. I also added information on using the new 4.58” Bar Display and 3.7” Bar Display. In the process of doing all of that, I found a couple of CircuitPython bugs and I am helping with testing out the fixes.
Tim
This week I ran a patch on all of the libraries to fix an issue occuring with the docs build inside of Read The Docs. A small chunk of them didn’t complete automatically for one reason or another so I went through those ones manually and applied the same fix. I’ve also continued refactoring the web workflow support proposed for circup.
Jeff
This week a lot of things came together. I published the CircuitPython library for the upcoming camera product (PyCamera). I fixed a problem with CircuitPython on the Qualia board for displays that were not a multiple of 16 pixels in width, and I am in the process of adding JPEG decoding to CircuitPython using the TJpg decoder.
Jpeg decoding with bug (or, accidental glitch art):
Jpeg decoding without bug:
Scott
This last week I’ve been in Espressif ESP land. I upgraded the ESP IDF to version 5.1.2 and noticed it features dynamic BLE services. Now we should be able to complete bleio
support on ESP. (We haven’t started though and it’s non-trivial.) I’ve also continued working on improving the web workflow. I proposed changes to allow SD cards to be used from the web workflow and found and fixed a big bug in the process.
Liz
This week I started working on a couple of different tasks. I’m updating the guide for the 3.5” TFT with Capacitive Touch display for the new revision in the shop. The new version uses the FT5336 capacitive touch driver, so I’ve written a new CircuitPython driver for it. I also started working on a new project with the Qualia S3 and the 4” round display. The project will be a flight tracker with compass functionality so you can visualize where the flights are overhead. So far I’ve been working on the displayio
elements with vectorio
and next I’ll start on calculating the compass math with a 9 DoF sensor.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on December 27th – Meetup.
PyCon US 2024 Launches – May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.
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.9 and its unstable release is 9.0.0-alpha5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231207 is the latest Adafruit CircuitPython library bundle.
20231207 is the latest CircuitPython Community library bundle.
v1.21.0 is the latest MicroPython release. Documentation for it is here.
3.12.1 is the latest Python release. The latest pre-release version is 3.13.0a2.
3,733 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,223 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,223 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 Tuesday. 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.