View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! This week has been a cornucopia of news, enough for two weeks. A rare new version of MicroPython is out with bug fixes. Similarly CircuitPython 9.0.0 Beta 2 is out and is an important upgrade for MEMENTO camera owners. More Raspberry Pi news (of course) as well as knowing Python is rather a good thing in the job market. Some fabulous projects and much more, this week. – 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:
MicroPython v1.22.2 Released
MicroPython was just updated. Changes are described as a “patch release for rp2 DMA, UART and BLE, esp32 BLE, renesas-ra I2C” – GitHub.
CircuitPython 9.0.0-beta.2 Released with Urge to Update for MEMENTO
CircuitPython 9.0.0-beta.2, a beta release for 9.0.0 is the new unstable release. This release has known bugs that will be addressed before 9.0.0 final – Adafruit Blog and Release Notes.
Note for MEMENTO Camera Board users: This release contains an important fix for MEMENTO. If you originally installed a version of CircuitPython older than 9.0.0-beta.2 on your board, your CIRCUITPY drive thinks it is larger than it really is. This can cause crashes. To fix this, back up what is on your drive, install CircuitPython 9.0.0-beta.2 or later, and then erase and reformat CIRCUITPY by running two commands in the REPL.
Considerations for a Long-Running Raspberry
Keeping a Raspberry Pi online and working with zero intervention for weeks, months, or years is somewhat of an art form. Several classes of things can go wrong, and you need to consider how your Pi will recover from each of them – chris dzombak and Adafruit Blog.
Breaking the Enigma Code using Python and a Raspberry Pi 5 Cluster
Kevin McAleer shows how to use a cluster of Raspberry Pi 5s to break the World War II Enigma code using Python and distributed parallel computing – YouTube.
Why Python Continues to Reign Supreme on the Job Market
The rapid increase in the pace of digitalisation brought on by the pandemic is one part of the picture, but when it comes to why Python is so in demand, this extremely versatile programming language can be used for AI, machine learning, and quantitative and qualitative analysis – TNW.
Connecting an FPGA Accelerator to the Raspberry Pi 5
Connecting an FPGA accelerator to the Raspberry Pi 5 using the Litefury board. This board features an Artix XC7A100T with an M.2 format, accessible via Python and Jupyter Notebook – controlpaths.com and GitHub.
These rings are HID mouse controllers with 4 buttons each. There buttons are: left mouse click, right mouse click, wheel up and wheel down. They connect to a PC via Bluetooth. The controller works as a ring on ones hand, one is designed as left handed and one right. The device is based on a Seeed Studio XIAO nRF52840 microcontroller programmed in CircuitPython – Instructables and GitHub.
There are pros and cons to both the Raspberry Pi 5 and Raspberry Pi 4, depending on how you plan to use your mini computer. To figure out which is best for different purposes, Pocket-lint puts Pi 5 and 4 computers to the test, comparing their performance and capabilities in different situations – Pocket-lint.
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
Check out Scott’s stream from Friday afternoon here.
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 is off this week. Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for February 20, 2024 (notes) on YouTube.
Project of the Week: Making a MIDI Kalimba with Raspberry Pi Pico and CircuitPython
Converting a Kalimba instrument to MIDI use with capacitive sensing, Raspberry Pi Pico and CircuitPython – hackster.io Project, hackster.io News and YouTube.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Hands-on: Bus Pirate 5.
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.
Memento: Flicking USB ReadOnly/Write@Boot + Setting WiFi using QRCode – Adafruit Playground.
UF2 Workflow: Backup CircuitPython Files – Adafruit Playground.
Web Workflow: Backup CircuitPython Files – Adafruit Playground.
News from around the web
Gemini Advanced subscribers can now edit and run Python code directly in the Gemini interface. This will help developers quickly verify experimental code and ensure that the code runs as expected. It will also help developers to immediately view the results of code modifications. This feature is currently only available to Gemini Advanced premium users (US $20/month) and is not available in the Gemini free version – BizChina.
Use microWakeWord to recognize phrases spoken to an ESP32-S3 and initiate actions in Home Assistant – Home Assistant Blog and YouTube.
“microWakeWord is an open-source wakeword library for detecting custom wake words on low power devices. It produces models that are suitable for using TensorFlow Lite for Microcontrollers and Python.”
A digital hourglass controlled by a Raspberry Pi Pico and running code in MicroPython. Iron filings fall between two pieces of plexiglass while numbers appear, counting down 30 seconds – X.
The new Waveshare R7FA4 PLUS A and B boards are nearly identical to the Arduino UNO R4 Minima and WiFi – CNX Software.
A Python exception handling revelation – Diomidis Spinellis.
A live demo of Digi XBee Sensor Lab with MicroPython – Rob Faludi and YouTube.
Revolutionizing LEGO RC control with Pybricks and Xbox – YouTube.
Renesas shows off a high-performance STT-MRAM design for 200MHz-plus microcontrollers. Offering read and write speeds eclipsing previous efforts, MRAM could be coming to a microcontroller near you sooner thank you think – hackster.io.
Modbus communication for Solis inverters with Python – Nerd Ralph and GitHub.
Building the eInk Memory Box with Raspberry Pi Zero W and Python – Mike Buss.
Version 0.3.0 of the pico_synth_sandbox-synthesizer
CircuitPython library released – pico-synth-sandbox.dcdalrymple.com and GitHub.
An automated cat feeder, 3D printed and programmed in MicroPython – hackaday.io.
A kid’s intro to a MCU (Microcontroller Unit) using MicroPython – YouTube.
Simulating crickets in February with Raspberry Pi Pico and MicroPython – scruss.com.
micropython-hexdump: a simple implementation of hexdump (hd and xxd) tools for MicroPython – GitHub.
A radio thermometer with Raspberry Pi Pico and CircuitPython – Hacker Public Radio via Mastodon.
New
The Raspberry Pi 5 PCIe to M.2 NVMe SSD Board Pi5-Pcie-Fish-Board For Pi5 allows access to ports and can be mounted on the front or rear of the Pi – Spotpear.
Kickstarter project Rotary Encoder aims to bring touch screen rotary encoders to the DIY electronics community. Rotary offers three different variations: Rotary HAT, Rotary ESP32, and Rotary Pico W – All About Circuits.
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 three 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:
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!
New Libraries
Here’s this week’s new CircuitPython libraries:
Updated Libraries
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 93041 PyPI downloads over 325 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8308
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8142
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 1993
- Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1152
- Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1049
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1024
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1012
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 932
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 906
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 884
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I released CircuitPython 8.2.10, 9.0.0-beta.1, and then 9.0.0-beta.2 in the past week. 9.0.0-beta.2 fixes an issue with the MEMENTO CIRCUITPY filesystem. Thanks to everyone who worked on this: we had a quick solution. The PyCamera library will now notice if you have not updated and tell you what to do.
I’m now working on some remaining issues with the nRF port for 9.0.0.
Melissa
This past week, I made some progress with Pi_Eyes
and now have it successfully retrieving and saving the desktop as an image. This is done in C and the idea is to have it constantly retrieve the image, shrink it, and display it across 2 displays.
I also update the CircuitPython Code Editor so that it works with some changes made in CircuitPython 9 to Web Workflow. Previously it was failing to connect. Additional improvements are planned as well.
Tim
This week I’ve been working on a demo for the MEMENTO that adds decorative overlays on top of the photos that it takes. This required figuring out the correct colorspace conversions and modifying the adafruit_bitmapsaver
library to support ColorConverter
in addition to Palette
for getting color information to save. I’ve submitted a PR with some of the most basic usage of this functionality and am working on a more advanced version that allows modifying the overlay position with the D-pad.
Jeff
I’ve gotten back into retro floppy disk coding. The current goal is to implement MFM writing so that it is possible to both read and write from a real DOS-formatted floppy disk connected to a modern PC through a device like the Adafruit Floppsy. This work will appear first for Arduino but might be ported to CircuitPython later if it turns out to be feasible.
Scott
This week I’ve continued squishing bugs for 9.0.0. I made socket reuse work like CPython. I fixed Ctrl-C issues on iMX RT. I also fixed UART RX issues on iMX RT. I improved NeoPixel transmission on ESP32. Now I’m looking at a hard crash on SAMD21 when using PulseIn
.
Liz
This week I worked on a guide for the new NeoRGB breakout. This breakout lets you send NeoPixel-compatible signals to an analog RGB strip. I’ve dealt with using PWM on the three red, green and blue channels before and being able to send NeoPixel data with the built-in animations was really cool. I hope to do a project with it at some point.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on February 28th – 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.
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-beta2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20240223 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.13alpha3.
3,817 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,747 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,747 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.