View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! More information is coming out about the Raspberry Pi 5, including benchmarks, documentation and some incompatibilities with previous versions. A new point release for CircuitPython 8 is out as the developers are working towards version 9.0.0 alpha. And you can now post your projects and investigations on the free Adafruit Playground using the same tools used by Adafruit for over 2600 learning system guides. All this, projects, and Linux running on a Scratch simulation of RISC-V in 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:
Raspberry Pi 5 Capabilities Emerge
Each week, more information is released on the Raspberry 5 single board computer (SBC). Here is this week’s crop of interesting tidbits.
Raspberry Pi 5 Benchmarks
A number of folks have been benchmarking the Raspberry Pi 5 using various test suites and operating systems. A roundup of several tests – Raspberry Pi.
GPIO Handling Differences on the Raspberry Pi 5
On Raspberry Pi single board computers prior to Raspberry Pi 5, all GPIO was memory mapped. Accessing a pin was accessing a location in the processor address space. Most software libraries used the memory mapped access technique. With the Raspberry Pi 5, the new RP1 bridge chip handles the GPIO pins. This means they are no longer mapped to the processor’s memory. This may break software using older techniques.
In the Raspberry Pi documentation, they refer to the GPIO Zero library as able to properly access the GPIO pins on a Raspberry Pi 5.
GPIO Zero – Raspberry Pi and PDF book on GPIO Zero (free).
RP1 Draft Datasheet Available
A draft copy of the RP1 datasheet is now available from Raspberry Pi with registers and offsets to access various peripherals – Raspberry Pi. Hackaday also has an article “Why the RP1 is the most important product Raspberry Pi has ever made” – Hackaday. Finally, Documenting Raspberry Pi 5 – Raspberry Pi.
Image Processing on Raspberry Pi 5
Raspberry Pi 5 handles image processing very differently from its predecessors. A new hardware ISP (image signal processor) facilitates imaging, built partly into the RP1 chip but mostly into the Raspberry Pi 5 Broadcom BCM2712 application processor – Raspberry Pi.
Google Coral USB Accelerator on Raspberry Pi Bookworm
Google Coral USB Accelerator currently doesn’t work on Raspberry Pi OS Bookworm. In order to get the USB accelerator to work, one needs to do a few extra things like install Python 3.9 and create a Python virtual environment – Adafruit Playground.
CircuitPython 8.2.7 Released
CircuitPython 8.2.7 is the latest bugfix revision of CircuitPython and is a new stable release – Adafruit Blog and GitHub.
Notable changes to 8.2.7 since 8.2.6
- Improve RGBMatrix memory allocation tracking to prevent leaks.
- Reset MDNS after turning off WiFi.
- Three new boards.
Angel Cabello’s Galdeano Handheld is a pocket MicroPython calculator with hidden capabilities. Designed after dissatisfaction with commercial calculators, this Espressif ESP32-powered handheld has secrets to share, such as being an Internet of Things (IoT) control system – hackster.io and YouTube.
Nordic Unveils the nRF54L15 Cortex-M33 wireless Microcontroller
Nordic Semiconductor has recently unveiled the 128 MHz nRF54L15 Cortex-M33 multi-protocol wireless microcontroller, the first from the nRF54L Series, and the second from the wider nRF54 family after the more powerful 320 MHz nRF54H20 dual-core Cortex-M33 MCU was introduced last Spring. The new nRF54L15 aims to be an upgrade to the nRF52 series with twice the performance and much better power efficiency: half the Rx power consumption over its predecessor – CNX Software and YouTube.
Post Your Projects for Free on Adafruit Playground
Adafruit publishes free guides in its Adafruit Learning System. Now, using the same technology, you can post your own mini guides with the same look and feel on the Adafruit Playground for free. At adafruit-playground.com, you can find a bunch of community guides. And you can click the right hand “My Playground” link to create your own notes. Have a project, a how-to, or documentation on that knarly Raspberry Pi issue you found a solution to? Post them on Adafruit Playground and share the URL with the world! – Adafruit Learning System Guide to Adafruit Playground.
Qualcomm and Google Expand Agreement On RISC-V Snapdragon Wear Platform
Qualcomm and Google are expanding their partnership to develop a Snapdragon Wear platform based on the RISC-V instruction set architecture (ISA) designed for next-generation Wear OS products – Tom’s Hardware.
Zany Idea of the Week: Linux Running on a RISC-V Emulated in Scratch
In Scratch Projects, bilman66 posts using Scratch as a RISC-V emulator running the Linux 6.1.14 kernel – scratch.mit.edu via X.
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 splitting
displayio and merging MicroPython.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park’s CircuitPython Parsec is off this week. Catch all the episodes in the YouTube playlist.
Project of the Week: A NeoPixel-lit Elvis Cape
Adafruit Playground user hotsharptoxic shares a guide on adding 40 programmable lights to an off-the-shelf Elvis costume. “NeoPixels and CircuitPython made this easy. Wiring it up took a few hours” – Adafruit Playground.
News from around the web!
Taking flight with a Raspberry Pi Pico and MicroPython DIY quadcopter drone – Medium and Adafruit Blog.
This year, the Supercon badge goes analog! Taking inspiration from the phosphor scopes of yesteryear, the 2023 Vectorscope badge is part analog audio playground, part art project, and all about prototyping. MicroPython and a Raspberry Pi Pico put the “programming” in the programmable waveform generator. If you’re not content with the four stock waveforms, you’re invited to write your own – Hackaday.
Display the current song and artist from a configurable set of BBC radio stations. It uses MicroPython and the Pimoroni Pico Display Pack 2 for the Raspberry Pi Pico W – X and GitHub.
Bus Pirate 5 firmware v0.1.0 has been released. The new command interface works more like a typical PC command line. Bus syntax (talking to chips) uses a three step compile-run-report process – X and documentation.
The M5Stack Cardputer Kit puts an inexpensive microcontroller-powered microcomputer in your pocket. Powered by an Espressif ESP32-S3, this compact computer includes a tiny color TFT, sound capabilities, and a working keyboard – hackster.io.
Unexpected Maker made a livestream to hack a Blizzard-S3 with CircuitPython to see more than a lorikeet output on a monitor – YouTube via X.
Last week, we featured Oak Dev Tech’s KeyBoy handheld game. Now it has a snake game, but the twist is it chases cows. Programmed in CircuitPython – X.
BNO055 sensor calibration and tap detection in CircuitPython – Adafruit Playground.
Les Pounder demonstrates use of the Pimoroni PicoVision, adding a Tom’s Hardware Pi Cast screen and bouncing hammer logo – X.
Porting the CPython Template class to MicroPython – X and GitHub.
If you have a Pimoroni PicoVision and are using MicroPython, these few lines of code will get you started – X and GitHub.
Kevin McAleer’s stream on Raspberry Pi 5 projects – YouTube via X.
A PR to add WCH CH32V307 support in MicroPython – GitHub via X.
How to monitor your plant with W5100S-EVB-Pico and MicroPython – Wiznet.
A USB/Bluetooth gamepad tester free at test.controlleradapter.com – X.
Python project to scrape YouTube data using YouTube Data API. The data is loaded into a Python Pandas DataFrame and then analyzed. Finally, building a simple visualization from this data using the Python Seaborn library – morioh.
Real Python podcast: Building Python Best Practices and Fundamental Skills – Real Python.
PyDev of the Week: Pradeep Kumar Srinivasan on Mouse vs Python.
CircuitPython Weekly Meeting for October 16, 2023 (notes) on YouTube.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? How Not to Build a Custom RP2040 Dev Board.
Prokyber’s ESP32-C6-Bug is a compact RISC-V dev board for IoT projects. The ESP32-C6 stands out: it’s Espressif’s first part to offer IEEE 802.11ax Wi-Fi 6 support on the 2.4GHz band. The radio functionality also includes Bluetooth 5.0 Low Energy (BLE) and IEEE 802.15.4 with Zigbee and Thread support — as well as compliance with the cross-vendor Matter standard – hackster.io.
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, but several 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:
New Learn Guides!
Faz-Wrench – Five Nights at Freddy’s from Ruiz Brothers
Bricktunes: LEGO Synthesizer Glove from John Park
No-Code WipperSnapper Summoning Horn from Tyeth Gundry
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 453!
Here’s this week’s new CircuitPython library:
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 68930 PyPI downloads over 314 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7589
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6781
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2954
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1294
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 897
- Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 784
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 690
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 689
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 678
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 610
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
Scott and I finished the MicroPython v1.20.0 merge into CircuitPython last Monday. I immediately started on the v1.21.0 merge. The initial merging went quickly, and I’ll be moving on to getting builds to compile.
There is a problem with delayed disk writes with macOS Sonoma, which was recently released. There can be a delay of 10-20 seconds between data writes and the corresponding metadata writes. This causes CircuitPython to see the CIRCUITPY drive in an inconsistent state until the write finishes. It causes auto-reload to fail. I’ll work on characterizing the problem and reporting it to Apple. Others have already done so, too. We encourage you to report it as well if it interferes with your work.
This past week I continued to update the Adafruit Qualia ESP32-S3 guide. I added content such as how to gather the timing information to use your own displays, touch display usage, and updated the page on extracting the init codes with an additional method.
This week I’ve been looking into an issue that resulted from a change in default behavior inside of ReadTheDocs when our documentation pages get built there. They used to install some modules automatically that we utilize, but no longer do. I’ve tested and submitted a patch that can be pushed out to the libraries to fix their docs builds moving forward. Aside from that I’ve been trying to update the PyGameDisplay library to work with the newest version of Blinka_DisplayIO, I’ve made progress but have incorrect colors coming out currently.
This week we’ve been hard at work on CircuitPython 9.0.0. Dan and I merged in MicroPython 1.20. I updated ARM GCC to 12.3. I also fixed and polished the silabs port. Now I’m working to split displayio into more modules so that device support can be enabled and disabled more precisely. I’ll also help with the MicroPython 1.21 merge as needed and then complete our transition to the auto-growing MP heap for CP 9.
This week I worked on a CircuitPython library for the HUSB238. This is the breakout for communicating with USB PD power supplies. I also started working on a CircuitPython library for the VCNL4020, the new STEMMA proximity sensor. I’m really enjoying working on libraries and am excited that I am contributing to CircuitPython more.
The next MicroPython Meetup in Melbourne will be on October 25th – Meetup. The September Meetup recording – X and slides.
Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA – Adafruit Blog and Hackaday.
The inaugural PyLadies Conference will take place December 1-3, 2023 – pretalx.
The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year on December 9-10.
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.7. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231017 is the latest Adafruit CircuitPython library bundle.
20231020 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.0a1.
3,688 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 37,913 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.