View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! Raspberry Pi 5 news continues to dominate news this week and some hints from RasPi Trading on upcoming products. A new Python variant for microcontrollers arrives in NanoPy. Some nice project work out this week including more unofficial work on Raspberry Pi PCIe. - 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:
Eben Upton Hints at an RP2040 Successor, Promises a Raspberry Pi Compute Module 5 in 2024
Eben Upton hints at an RP2040 successor, promises a Raspberry Pi Compute Module 5 in 2024 - hackster.io.
“We know what people don’t like [and] what people do like,” Upton says, “and we have a chip team.”
Microsoft Releases ThreadX RTOS, Used in Raspberry Pi Boards, as Open Source
Microsoft opens sources ThreadX under MIT license. The ‘Azure RTOS’, used in millions of Raspberry Pis, is now open source - The Register.
ThreadX was quite pervasive… Microsoft claims 12 billion devices run it, and you might own some of them. It is the firmware that controls every Raspberry Pi bigger than the Pi Pico. On the Pi 1, 2 and 3, it’s the file on your Pi’s SD card called bootcode.bin; in the Pi 4 and 400, it’s called start*.elf. Even though it’s on GitHub and included in Debian, it’s a proprietary “blob” (Binary Large OBject). It’s a metaphorical sealed black box which doesn’t even contain Arm code: instead, it runs on the Pi’s VideoCore GPU. This is the primary device, the part that boots up the Pi and controls its hardware.
The Python Software Foundation Bristles at Looming European Cybersecurity Rules on Open Source Software
The Python Software Foundation (PSF) is concerned that proposed EU cybersecurity laws will leave open source organizations and individuals unfairly liable for distributing incorrect code - The Register.
“If the proposed law is enforced as currently written, the authors of open-source components might bear legal and financial responsibility for the way their components are applied in someone else’s commercial product,” the PSF said in a statement shared on Tuesday by executive director Deb Nicholson.
Using an External GPUs on the Raspberry Pi 5
When the Raspberry Pi Compute Module 4 came out, folks worked very hard to get the single PCIe lane working with external hardware with mixed results. With the release of the Raspberry Pi 5, previous work, along with improvements in the Pi, have allowed for more success in interfacing PCIe hardware like graphics cards - YouTube and GitHub.
NanoPy - A New Python for Programming Microcontrollers
Oxon AG in Switzerland has renamed OxoPy to NanoPy and are touting it to program microcontrollers - NanoPy.
NanoPy is a simple and clear scripting language that both beginners and experienced users can quickly get to grips with. It is used in microcontroller projects, for example for smarthomes, educational and gaming computers or automation and robotics projects. NanoPy masters the well-known Python style or can be programmed even more simply, in a more compact form without colons and with fewer brackets.
Detecting Nearby WiFi Pineapple Attacks With CircuitPython
Kody Kinzie makes a CircuitPython based USB Nugget prototype that detects nearby WiFi pineapple attacks in 2 hours using ChatGPT - Mastodon via X.
The Best Raspberry Pi 5 microSD Cards
Raspberry Pi 5 boards are getting into Pythonista hands and the question comes up: which microSD card gives the best performance? bret.dk tests popular models on the market to determine which ones are the best bet - bret.dk.
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 9.0 Debugging.
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 {subject} - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
The CircuitPython Show is an independent podcast hosted by Paul Cutler, focusing on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPython Show.
The latest episode was released December 4th and features Max Lupo. Max shares how the art he creates uses electronics and CircuitPython.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for {date} (notes) on YouTube.
Project of the Week: Wokwi
Andreas Spiess makes a recent video on using Wokwi to simulate Arduino, ESP32, Pi Pico, STM32, And ATtiny with programming in MicroPython or CircuitPython - YouTube.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? Raspberry Pi 5 Review.
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.
CircuitPython and ChatGPT code interpreter. It allows you to run your own code on a GPT server - Adafruit Playground.
Create All-in-One UF2’s with CIRCUITPY files on RP2040 boards - Adafruit Playground.
The CircuitPython Helpers Project is a set of wrapper classes that can be used across projects - Adafruit Playground.
News from around the web
Alexander Kirillov’s Yozh is an expandable, compact, open source robot for education and more. Pololu motors are driven from a custom electronics board, which also forms the chassis, with an Adafruit ESP32-S3 Feather as the primary microcontroller running CircuitPython and a Microchip SAM D21 as a coprocessor for low-level operations - hackster.io.
Simon Prickett is making a tracker for the International Space Station with a Pimoroni Badger 2040 and MicroPython - X.
Make your own Raspberry Pi 500 computer (sort of) - Raspberry Pi News.
George, M1GEO, is making a PCIe x1 breakout board for Raspberry Pi 5 - X and GitHub.
Adding Cellular to the Hackaday Superconference Badge - Golioth Blog.
Ivan Kuleshov photographs “The first delidded Raspberry Pi 5 CPU” and asks if it’s time for overclocking. Ed: a PC cooler or a liquid nitrogen pot? - X.
There’s a brand new #Pybricks #MicroPython release that adds Bluetooth communication between all LEGO smart hubs. Try it now at pybricks.com - Mastodon.
A Raspberry Pi Pico Controlled Frequency Shift Audio Oscillator using MicroPython: A Radio Shack Classics Circuit Remix - All About Circuits.
Using a Raspberry Pic oW display to showcase what is currently playing on Plex using both Python and Micropython in the stack - X.
Using an Adafruit Feather M0 Express and a US-026 ultrasonic sensor with CircuitPython - Learn MicroPython.
Scopin’ Sans is an open source typeface for hardware folk. See text as serial data on an oscilloscope - GitHub via X.
Use PyScript better with open source PyScript Recipes - Adafruit Blog.
Who said it? Making a Taylor Swift vs. Shakespeare trivia box made with PocketBeagle and Python - hackster.io.
What’s new in Python 3.13 alpha? A summary - Kev’s Robots.
Building a small REPL in Python - Bernsteinbear.
Object-Oriented Programming (OOP) With Python - Real Python.
A Beginner’s Guide to Linux and Shell Commands: The Popular Ones - DigiKey.
New
The Waveshare RP2040-Tiny module connects to USB-C + buttons board via FPC connector - CNX Software.
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 four 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
LEGO Set Lighting from John Park
Qualia S3 Space Clock from Liz Clark
MatrixPortal S3 Flight Proximity Tracker from Trevor Beaton
Updated Learn Guides
Adafruit Qualia ESP32-S3 for RGB-666 Displays 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 466!
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
- 114613 PyPI downloads over 321 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9359
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8514
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2809
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1464
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1367
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1160
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1130
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 995
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 982
- Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 939
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
Dan
I was able to improve the functionality of ESP32-S3 BLE acting as a BLE central. It now can talk to simple BLE devices such as pulse oximeters.
I’m continuing to work on CircuitPython 8.2.x and 9.0.0 issues, as we head toward 9.0.0 betas and then the final release.
Melissa
This past week was a short one due to the holiday. I spent time catching up on messages because I had also taken some time off the week before. I updated the Qualia S3 guide with backlight information as well as adding another Arduino example.
Tim
This week I tested out the new addition of Arcs in the Display Shapes library, the Qualia S3 and 2.1” round display made for perfect testing grounds. I’ve also been continuing work on a refactor of proposed changes in circup that add support for web workflow. Over the past weekend I made progress on updating fixing my PyGame_Display library to work with the latest versions of Blinka_DisplayIO
, there are still quirks to work out but I’ve gotten the display to render successfully.
Jeff
The CircuitPython library for the upcoming camera product is now public on github.
There are some details to be worked out before this can be published as part of the bundle, because the autofocus camera module requires a “firmware.bin” file which we can’t currently include as part of the Adafruit CircuitPython Bundle. In the process of updating the bundle builder to handle this, I learned that a handful of libraries for CircuitPython, mostly in the community bundle, have incorrect data in pyproject.toml
, which I would like to rely on to determine which files to include.
Scott
Last week I was out for family time and the Thanksgiving holiday. This week I’m mostly around so I did some bug fixing for the web workflow. First, I fixed incorrect behavior when a file that was too big is uploaded. Second, I fixed the websocket serial responsiveness to ctrl-c.
Now I’m looking at adding support for uploading directly to an attached disk (and displaying disk usage at the same time).
Liz
This week I published the Qualia S3 Space Clock guide. This project was a fun challenge and I learned a ton. It was my first time working with a round display, I had to figure out how to calculate Mars time and I had to do some math to properly calculate the hour and minute hand positions for the clock face. Noe did an excellent job with the enclosure. We are both fans of retro futuristic designs from the 50’s and 60’s and I think he really captured that design aesthetic while managing to keep it easy to print and assemble for folks.
Upcoming Events
The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year on December 9-10.
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.8 and its unstable release is 9.0.0 alpha 5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231130 is the latest Adafruit CircuitPython library bundle.
20231201 is the latest CircuitPython Community library bundle.
v1.21.0 is the latest MicroPython release. Documentation for it is here.
3.12.0 is the latest Python release. The latest pre-release version is 3.13.0a2.
3,723 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,162 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,162 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.