View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! We certainly hope you are enjoying the holidays! Your newsletter is out on time every Monday, no matter the occasion, and what better way to read it but with a warm drink in the Northern hemisphere and a cool drink in the South. We’re wrapping up the year and first off is a recount of open source hardware projects. Linux turned 32, with many lessons learned over the years. Finally PyCon US 2024 is shaping up to be fantastic, it’ll be a Python party. – 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:
Certified Open Source Hardware – OSHWA Certifications by the Numbers
As the year ends (as of 12/22), let’s look at the status of open source hardware submissions at the Open Source Hardware Association (OSHWA) – OSHWA.
- Total certifications: 2,621 (2,357 electronic projects)
- Projects dated 2023: 671
- Total United States projects: 1,683
- Adafruit: 726
- SparkFun: 594
- Python: 745
- MicroPython: 12
- CircuitPython: 728
- MIT licensed software compatible: 1,482 (440 have no software noted)
Linux at Thirty-two
Linus Torvalds has been working on Linux for 32 years, longer than many software developers have been alive. Surprisingly though, Linux, Torvalds’ earliest “hobby project,” arguably gains in importance each year, despite its age. In the case of Linux, its ongoing relevance isn’t an accident. Instead, it’s a testament to some key lessons Torvalds has learned and applied for years. He shared some of those lessons at the recent Open Source Summit in Japan – InfoWorld.
A Programmable Keyboard and Standalone CircuitPython Computer
Bobricius has created a Kailh choc Low Profile Ortholinear keyboard, 14×5, 70 switches, optimized for DIY assembly – Hackaday.io via X.
“Because is powered with Raspberry (Pi) Pico, it can work also as standalone Python computer with CircuitPython apps. I2C/UART grove, beeper, 2.8” IPS 320×240 color display ST7789.”
The CircuitPython Blinka Python Compatibility Layer Updates libgpiod and More
The CircuitPython Blinka Python compatibility layer, supporting single board computers (SBC), has been updated for better support of Raspberry Pi 5 GPIO and more – GitHub.
For more on Blinka – CircuitPython.org, Adafruit Learning System and GitHub.
A Review of the Pineberry Pi Raspberry Pi 5 M.2 NVME SSD HAT
Pineberry Pi is a Polish company founded in September 2023 with the goal of creating incredibly useful hardware to support Raspberry Pi Single Board Computers (SBC). They’ve developed two versions of a M.2 NVME SSD storage HAT, one mounted on top of a Pi 5 and one that is mounted below the Pi. bret.dk kicks the tires and provides a detailed review of the boards – bret.dk.
PyCon US 2024 Receives a Record Number of Submissions
Mariatta Wijaya posts about the number of talk submissions received for PyCon US 2024 – Mastodon.
PyCon US received record number of CFP submissions with 973 proposals!!! (This number includes all the talks, Charlas, tutorials, and posters submitted). Thank you to everyone who took the time to craft your proposals! Good luck! And let’s show our appreciation to the program committee and reviewers; you all made their job even harder this year!
PikaPython: A Cross Platform Ultra Lightweight Embedded Python Engine
PikaPython is an ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C – GitHub and Project Site.
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
Deep Dive is on holiday recess and will return after the New Year. You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park is on holiday recess also. You can catch all episodes of CircuitPython Parsec in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for December 18, 2023 (notes) on YouTube.
Project of the Week: Create Your Own Slack Bot With a Raspberry Pi Pico W
Sandeep Mistry provides a tutorial on how to connect a Raspberry Pi Pico W to Slack and create an interactive Slack bot that can send and receive messages – Raspberry Pi News.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Python in Excel Cheat Sheet – X.
News from around the web
Les Pounder and Maker Advent 2023 Day 21: Linux VMs, Android apps, electronics and more with Chromebooks and some coding with Adafruit Feather RP2040 and CircuitPython – YouTube.
Demonstrating MIDI and CircuitPython on the new Breadstick board – YouTube and Crowd Supply.
The Yozh robot – using an ESP32-S3 programmed in CircuitPython – Adafruit Blog, hackaday.io, GitHub and documentation.
Simon Prickett writes about completing The Pi Hut “12 Projects of Codemas” maker advent calendar based on Raspberry Pi Pico and programmed in MicroPython – simonprickett.dev.
Raspberry Pi: The best beginner projects – PCWorld.
LED Cyberhome Model with LCD Clock with RP2040 and MicroPython – hackster.io.
MicroPython Web Server Guide with ESP32, Pi Pico W Examples – Electrocredible.
Using a Raspberry Pi Pico + MicroPython interface to controlling NeoPixel strips via a vintage Minitel terminal – ElectricCat and GitHub via X (French).
MicroBit IoT Project: Motion Sync Net with MicroPython – hackster.io.
Working with timers at Franzininho WiFi using MicroPython – Embarcados.
How to Upload Data to Google Sheets using Pi Pico W – hackster.io.
Making a multitrack model rail project with Pimoroni Yukon and MicroPython – X.
Using Google Gemini Pro with Raspberry Pi Pico and MicroPython – hackster.io.
udynlink: a dynamic linker for ARM Cortex-M MCUs – Adafruit Blog and GitHub.
Cytron IRIV PiControl is an Industry 4.0 controller based on Raspberry Pi CM4 module – CNX Software and YouTube.
The Raspberry Pi 5 Industrial PC brings the heat with Integrated NVMe SSD – Tom’s Hardware.
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 was one new board 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
Faderwave Synthesizer from John Park
Adafruit USB Host FeatherWing with MAX3421E from Liz Clark
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 469!
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 144421 PyPI downloads over 323 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 11171
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 10728
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 4281
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1721
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1475
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1421
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1418
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1362
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1097
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1024
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
This past week I released NINA-FW 1.7.7 to update the latest roots certificate list. This firmware is not CircuitPython, but is the WiFi/BLE firmware used on AirLift boards. There are still issues with certain TLS/SSL certificates which we are working to understand.
I added checking to reject BMP files for OnDiskBitmap that are run-length-encoded (RLE). Previously we didn’t check for this, and as a result they displayed as garbage. This fix will show up in the next 8.2.x stable release and 9.0.0 development release. The fix was easy but it pushed one board over the firmware storage limit for a large translation. I was able to consolidate and refactor a number of error messages to reduce the firmware size enough to be able to fit.
This week I worked on fixing the tests run by the circup repo actions to work with the refactored version of the library in the proposed web workflow PR branch. I’ve also been working on adding pixel location to cell coordinate helpers to the GridLayout helper class. This functionality can be used to make a soft keyboard with displayio and touch screens.
I’m excited to announce the launch of a new bundle called circuitpython-fonts. With
circuitpython-fonts, you have 75 fonts in 14 different sizes at your disposal, each easy to install with circup or manually by copying a folder to your CIRCUITPY drive. Above are just a few of them at 72 pixels on an Adafruit Qualia with the 320×820 bar display.
This week I’ve been working on documenting two new products in the shop before the holidays. The USB Host FeatherWing uses a MAX3421E USB host chip so that you can easily add USB host support to your project. The TinyUSB Arduino library has native interface for host support for all TinyUSB supported chips. I included a few of the examples from the library in the guide and tested with multiple Feathers.
The second guide is for the MEMENTO camera board. There are a ton of features on this board and taking photos with it while documenting has been really fun. Although standalone digital cameras and cell phone cameras have been common for most of my life, I still remember when they were new and too expensive for my teenage budget so it’s pretty incredible to now have that capability in a hackable dev board.
I’m going to be taking the next two weeks off to recharge for 2024. I look forward to more great projects in the New Year.
The next MicroPython Meetup in Melbourne will be on January 24th – Meetup.
PyCascades 2024 is back in Seattle, Washington, USA and online, April 5-8th at the University of Washington, Kane Hall. – PyCascades.
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.
CircuitPython’s stable release is 8.2.9 and its unstable release is 9.0.0-alpha6. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231220 is the latest Adafruit CircuitPython library bundle.
20231222 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,761 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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,302 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.
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.