View this email in your browser.
Welcome to the latest Python on Microcontrollers newsletter! We’re finally entering Autumn and the students are back to school. The RP2350 issue we reported last week has been officially clarified by Raspberry Pi. CircuitPython has crossed the 4,000 GitHub stars milestone, and Bluetooth 6 is looking good. More on the RP2350 and lots of projects in this issue. I hope you enjoy - Anne Barela, Editor
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:
The Latest on Raspberry Pi Erratum RP2350-E9
As reported last week as a developing story, users have reported issues with the Raspberry Pi RP2350 and certain pin behavior. Initially Raspberry Pi addressed this in Erratum RP2350-E9. As of Friday the language in the datasheet has been updated and expanded to reflect the latest research and is now titled “Increased leakage current on Bank 0 GPIO when pad input is enabled” - Raspberry Pi RP2350 Datasheet.
4,000 Stars on the CircuitPython GitHub Repo
CircuitPython has reached over 4,000 Stars on GitHub! Thank you to all in our fabulous CircuitPython community, developing projects with CircuitPython! - Adafruit Blog and GitHub.
Bluetooth 6.0 Features Two-Way Ranging, Latency Reduction, Improved Scanning Efficiency, and More
The Bluetooth Special Interest Group (SIG) has just announced the release of the Bluetooth 6.0 Core Specification with features and feature enhancements that include Bluetooth Channel Sounding for two-way ranging between BLE devices, decision-based advertising filtering and monitoring advertisers to improve device scanning efficiency, an enhancement to the Isochronous Adaptation Layer (ISOAL) for lower latency and higher reliability, the LL extended feature set, and a frame space update for throughput optimization - CNX Software.
Making a Mobility Control Assistant
David Barrett looked to make a device which can be added to a wheelchair or strapped to the body, allowing control tailored to each user. It can use various microcontroller boards running CircuitPython - hackster.io and YouTube.
How to Recover a “Bricked” Raspberry Pi Pico 2 or Other RP2350 Board
How to recover a “bricked” Raspberry Pi Pico 2 or other RP2350 board - CNX Software.
Benchmarking Versions of CircuitPython
PheebeUK has performed some benchmarking on several versions of CircuitPython. “I finally found some more time to try to do some more. I’ve got four boards that I’ve tried this across so far, and hopefully I can get some more in the future” - Mastodon.
The Raspberry Pi RP2350 Hack Challenge Extended
Raspberry Pi kicked off a hacking challenge with their new RP2350 at DEF CON earlier this year. They’ve decided to goad the bounty hunters by doubling the prize money and extending the deadline to the end of the year - Raspberry Pi News via X.
Rust on the RP2350
While many of us are giddy using Python on the new RP2350, others are looking at Rust. Raspberry Pi looks at Rust usage on the new RP2350 - Raspberry Pi News.
A Raspberry Pi Pico ePaper Handheld Video Game Console
This console features 5 games inspired by Nintendo’s Game & Watch. The console runs on a Raspberry Pi Pico and is entirely programmed in MicroPython. The case is 3D printed and a custom PCB can be ordered, all very low cost - Instructables.
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 Feather RP2350 and ESP32-P4.
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 a STEMMA QT Pin Hack - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for September 3, 2024 (notes) on YouTube.
Project of the Week: GenAI Powered Tiny Photo Frame
Ashish Patil has created a Gen AI-powered mini photo frame. It offers a personalized display of images tailored to your tastes, whether you’re a fan of anime, nature, or comics. It uses a Raspberry Pi Pico W, 128x160 SPI TFT display, and CircuitPython - GitHub, Blog and YouTube.
Popular Last Week: Pi Pico 2 Extreme Teardown
What was the most popular, most clicked link, in last week’s newsletter? Pi Pico 2 Extreme Teardown.
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.
Prepare Beautiful Flat Icons For Use with CircuitPython - Adafruit Playground.
Air Quality Monitor for the Feather RP2040 - Adafruit Playground.
The Highway 12 Band SFX Machine - Adafruit Playground.
Using a 2012 Motorola Atrix Dock with a Raspberry Pi Computer 5 - Adafruit Playground.
News From Around the Web
More statistics from the most recent Python survey: 55% use Linux, 6% use Python 2 - Slashdot.
Python Software Foundation is introducing monthly PSF Board Office Hours - Python Blog and Discord.
Two-way Bluetooth with Raspberry Pi Pico W and MicroPython - YouTube via X.
Hello Raspberry Pi Pico 2 (RP2350): a first try of both MicroPython and CircuitPython - YouTube.
Creating a Supercomputer with a Raspberry Pi 5 Cluster and Docker Swarm - Kevin McAleer YouTube.
MacroPad keypad hacking - Andy Piper.
The most popular programming languages in 2024 (and what that even means) - ZDNet.
Single word speech recognition with CircuitPython and TinyML - ashishware and YouTube.
Navigation assistance for the visually impared using MicroPython - hackster.io.
Advanced Python: Achieving high performance with Code Generation - Medium.
Handwritten digit classification using CNN and CircuitPython - YouTube and Blog.
TinyStatus is a simple, customizable Python status page generator that allows you to monitor the status of various services and display them on a clean, responsive web page - GitHub.
Lesser known parts of Python standard library - trickster.dev.
A DIY macro keyboard With joystick mouse using Raspberry Pi Pico and CircuitPython - hackster.io.
HIDman - USB HID to XT / AT / PS/2 / Serial converter - GitHub.
TinyEKF - a lightweight C/C++ extended Kalman Filter with Python for prototyping - GitHub.
Honey, I shrunk {fmt}: bringing binary size to 14k and ditching the C++ runtime - vitaut.net.
Pico RMII Ethernet library, Neon Chrome Edition - GitHub.
BlueSCSI using the Raspberry Pi Pico 2 - X.
You can supercharge and automate GIMP with Python, here’s how - XDA.
Meet Bython, the Python with braces. Bython is Python with braces because Python is awesome, but whitespace is awful - AIM.
New
Orange Pi 5 Max is a credit card-sized RK3588 PC with 2.5 GbE Ethernet, PCIe 3.0, and WiFi 6E - liliputing.
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 two 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
USB C Power Delivery Monitor from John Park
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 495!
New Libraries
Here’s this week’s new CircuitPython library:
Updated Libraries
Here’s this week’s updated CircuitPython library:
Library PyPI Weekly Download Stats
Total Library Stats
- 17,9240 PyPI downloads over 333 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 11,339
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 10,981
- Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 9,772
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2,197
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1,770
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1,634
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1,524
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1,430
- Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1,430
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1,417
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 on merging MicroPython v1.23 into CircuitPython. I’ve completed all the file merging and reviewed the merges, and I am now working on getting rid of any compilation errors.
Tim
I have continued working on 2 main things from last week. The serial plotter in the WebIDE which is coming along nicely and nearly ready for review, and refactoring and expanding upon the intersection check functions that I recently wrote and proposed to add to the core in the vectorio module.
Jeff
I added a small feature to the core StateMachine
object for RP2040/RP2350 microcontrollers. Now it is possible to query a program’s load address (via the offset property) and the most recently executing instruction (via the pc property, which is short for “program counter”). These two features can be useful when debugging PIO programs, because they can help you understand which instructions in the program are executing.
Scott
I’m still in debugging mode. I found and fixed an issue with USB resume on ESP. I fixed the ReadTheDocs build and got it fixed upstream. Now I’m debugging BLE HID (think bluetooth keyboard) on ESP.
Upcoming Events
The next MicroPython Meetup in Melbourne will be on September 25th – Meetup. You can see recordings of previous meetings on YouTube. The August 2024 Roundup.
Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 - Maker Faire.
Hackaday Superconference is an epic gathering of hardware hackers, makers, and tech enthusiasts happening November 1-3 in Pasadena, California - Hackaday and Eventbrite.
PyCon AU will be held from the 22nd to the 26th of November at the Melbourne Convention and Exhibition Centre (MCEC) in Narrm/Melbourne. Matt Trentini and Damien George will both be presennting on MicroPython - PyCon AU.
PyLadies Conference (PyLadiesCon) is a transformative event designed to promote diversity, learning, and empowerment within the Python community. December 6-8, 2024 online - PyLadies.
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 9..1.3 and its unstable release is 9.2.0-alpha.2351. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20240904 is the latest Adafruit CircuitPython library bundle.
20240903 is the latest CircuitPython Community library bundle.
v1.23.0 is the latest MicroPython release. Documentation for it is here.
3.12.5 is the latest Python release. The latest pre-release version is 3.13.0rc1.
4,018 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,269 Thanks
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,269 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), 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.