View this email in your browser.
Welcome to the latest Python on Microcontrollers newsletter! CircuitPython 8.2.0 stable was released this week! It includes enhancements to the synthio
module, along with an RP2040 sleep feature update. Thonny also saw a new release this week. In newsletter news, Paul Cutler and I (Kattni) are guest-editing this issue, and the next two. Your delightful primary editor Anne is on her honeymoon for the duration of our takeover. Paul and I will do our best to bring you all the best Python on Hardware projects, stories and updates. Thanks for bearing with us! - Eds for a Few Issues.
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:
CircuitPython 8.2.0 Released
CircuitPython 8.2.0, the latest minor revision of CircuitPython, has a new stable release. - Adafruit Blog and GitHub release page.
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
synthio
.
- RP2040
alarm.sleep_memory
.
Thonny 4.1.0 Released
[]
The Thonny Python IDE has released 4.1.0. It includes an ESP flashing dialog that allows you to select from a list of known MicroPython or CircuitPython boards and downloads them for you, comes with Python 3.10, as well as additional updates. Twitter and Release Notes on GitHub.
United Kingdom Primary Schools to get free BBC micro:bits
The BBC has announced their new campaign, the BBC micro:bit - the next gen, to empower primary school children aged 8 to 11 to gain digital skills.
Each primary school in the UK can register to claim 30 micro:bits. The campaign is sponsored by the Micro:bit Educational Foundation and Nominet, who made the donation possible.
Teachers will be able to access training on the micro:bit in person and online. - BBC.
IoT with Raspberry Pi Pico in Kenya
The Raspberry Pi Foundation provided free workshops in Kenya last month for the hardware community around Nairobi. In partnership with Gearbox and Safaricom, they started with a Raspberry Pi Pico W and MicroPython.
The participants started by learning the basis of MicroPython and blinking an LED. From there they moved to more advanced topics, including how to work with motion and proximity sensors, and environmental sensors.
Lastly, they connected the Raspberry Pi Pico W to the Internet and used Adafruit IO, Adafruit’s cloud platform for IoT, to graph their data, set up alerts, and create dashboards. - Raspberry Pi.
Tech Preview of PyScript released
PyScript has announced the Tech-Preview Release of the new PyScript core. PyScript is a framework that allows users to create rich Python applications in the browser using HTML’s interface and the power of Pyodide, WASM, and modern web technologies. Using MicroPython as the core, PyScript sees a massive size reduction with the core library being only 10kb compressed, a reduction of 98%, and improves speed and performance. - Announcement on GitHub.
PSF Board Election Results
The Python Software Foundation has released the results of the recent 2023 PSF Board Election. Congratulations to Board members-elect Cheuk Tink Ho, Denny Perez, Georgi Ker, Christopher Neugebauer, and KwonHan Bae. - PSF News.
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
This week, Tim streamed work on creating an Outlined Label class to make it easy to add extra stroke lines around text with displayio
.
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 the Circuit Playground library in CircuitPython. - Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
Project of the Week: Simple Audio Book Reader
The Simple Audio Book Reader allows you to enjoy audio books without having to be connected to the internet or use an app. It supports WAV file playback and automatically moves from chapter to chapter and book to book.
The Simple Audio Book reader’s main parts include a Feather rp2040, a 320x240 Color TFT Display with microSD card, and an Adafruit I2S Class D Amplifier. Also included are the CAD, Fritzing and STL files for 3d Printing the enclosure.
User nytnen created their own Learn Guide for the project. It includes more photos, parts list, soldering guide, and how to code it. - Simple Audio Book Reader Learn Guide and GitHub.
News from around the web!
Les Pounder of Tom’s Hardware shares how to monitor if your houseplants need water using a Raspberry Pi Pico W, Telegram, and MicroPython. - Tom’s Hardware.
scruss ported his Text to Speech libray using a YuTone VoiceTX SYN6899 in MicroPython to CircuitPython. - GitHub.
Simon Prickett used a Pimoroni GFX Pack an, Redis, and MicroPython to view the energy generation mix by postcode. - Twitter.
Using CircuitPython, Andrew Kleindolph created and sells Soft Thoughts, an interactive piece that glows in blues, purples and whites. - Twitter and Extra Sleepy.
Roland Shulz used a Raspberry Pi Pico, MicroPython, and a Kitronik Robotics board to connect to a Playstation 4 controller. - Twitter.
A look at measuring voltages using the Nordic nRF52840-based Adafruit CLUE’s analog-to-digital converter (ADC) and CircuitPython, focused on analysis of noise and software techniques for improving accuracy - Instructables.
[]
A PyPortal project to display the current moon phase. - Adafruit forums.
The CircuitPython Weekly Meeting will be back next week!
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Tom’s Hardware PiCast.
New Boards from Around the Web
The LILYGO T-Deck is a BlackBerry like handheld using an Espressif ESP32-S3. Hacker.io.
Pimoroni announced a new Stellar Unicorn, a 16x16 256 pixel Smart LED Matrix powered by a Raspberry Pi Pico W. Twitter and Pimoroni.
SB Components has launched the open source Micro RP2040 with MicroPython support. Tom’s Hardware.
Smart Bee Designs has created an ESP32 data logger with built-in RTC and microSD card. Twitter.
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!
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!
Ikea Vindriktning Hack with QT Py ESP32-S3 and Adafruit IO from Liz Clark
Mario Magic Wand from the Ruiz Brothers
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 443!
There are no new or updated libraries this week!
Library PyPI Weekly Download Stats
Total Library Stats
- 154288 PyPI downloads over 310 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 5943
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5195
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 1757
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1356
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1265
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1262
- Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1253
- Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1241
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1228
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1059
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.0 final on Wednesday, July 5. Thanks to everyone who brought it to fruition. Note that if you have an nRF52 board with an old bootloader, you will need to update the bootloader to be able to load CircuitPython 8.2.0. Bootloaders older than version 0.6.1 cannot handle the larger size of 8.2.0. See the release notes for details.
I did some Learn Guide revisions this and last week. I added bootloader update pages for all nRF52 boards in preparation for the caveat mentioned above. And, with Carter’s assistance, I added more detailed pages to all the Blinka-capable board guides explaining in more detail about Running CircuitPython Code without CircuitPython.
I’m continuing on the MicroPython merge.
Kattni
I had a super short week with the holiday. In what time I had, I finished up the STEMMA Audio Amp guide and the Swirly Grid guide, and marked them both for review, and updated the SHT4x guide with the SHT41 sensor breakout.
The big news is that I’ve taken over editing this newsletter for the next three issues! Paul Cutler will be working with me. Both of us are looking forward to being your guest editors for the next few weeks.
Melissa
This past week I worked on fixing issues in the CircuitPython Code Editor. At some point I became stuck and switched to working on some other tasks such as updating some Adafruit_CircuitPython_RGB_Display examples for the latest version of the Pillow library as well as updating the board definition in CircuitPython for the latest revision of the MatrixPortal S3. In order to update the hardware as well, I had to cut some traces and solder some tiny wires.
Tim
I’ve had a lighter week this week with the 4th of July holiday in the US making other plans for me on Monday and Tuesday. The CircuitPython stuff that I did get into during this time was a proof of concept with bitmap manipulation to apply “dilation” to a shape within the bitmap. My primary use-case for this is to make outlined text with displayio
, but it could be used for other more arbitrary bitmap shapes as well. So far I’ve completed the PoC with Python code, and added new functionality in the core to speed it up a lot. In the upcoming week I’ll work on refactoring it into a reusable special type of Label
component for others to make easy use of. On the 4th I also tinkered with some vectorio
and bitmap based firework animations that can run on the PyPortal or Matrix Portal devices.
Jeff
With Scott’s work for USB Host taking shape, one of the things we want to do is offer a “local” CircuitPython workflow, in which you can edit your CircuitPython code without a computer attached. In this workflow, you need a display (such as displayio
compatible TFT) and a keyboard (such as a USB keyboard connected to the Adafruit RP2040 USB Host Feather)
To that end, I’ve done some beginning work on implementing a full-screen editor in pure Python code. I found a project by @seeM on github that I have forked and adapted to CircuitPython, mostly by creating a very tiny subset of the standard “curses” library known as “dang”. I also added a rudimentary file picker.
Integrating this, such as adding a way to switch between running and editing code, will be among the next steps.
Scott
I’ve been out for the long holiday weekend here in the US. Lots of lovely family time. I’m getting caught up and then diving back into USB host support. I’ll be collaborating with Thach and Jeff on USB host support.
Liz
This week I published the Ikea Vindriktning Hack guide. This guide walks you through adding a QT Py ESP32-S3 running CircuitPython to the Ikea Vindriktning air quality monitor to make it an IoT device. I also included pages on setting up a dashboard in Adafruit IO to visualize the data and creating alerts when the AQI starts to become unhealthy.
Upcoming events!
The next MicroPython Meetup in Melbourne will be on July 26th – Meetup. From the June 22nd meeting - Notes.
EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote - EuroPython 2023.
North Bay Python, the community Python conference on a farm, will be held July 29 and 30 in Petaluma, California. North Bay Python and Schedule.
PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 - PyCon UK.
Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA. They’d like to hear your proposals for talks and workshops! The Call for Speakers and Call for Workshops forms are online now, and you have until July 18th to sign up - Adafruit Blog and Hackaday.
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.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20230707 is the latest Adafruit CircuitPython library bundle.
v1.20.0 is the latest MicroPython release. Documentation for it is here.
3.11.4 is the latest Python release. The latest pre-release version is 3.12.0b3.
3,584 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.
37,502 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,502 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, IGTV (Instagram TV), 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.