If you missed this week’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Monday (which is out before this post). 10,534 subscribers worldwide.
The next newsletter goes out in a week and subscribing is the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
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.
CircuitPython 8.2.0 Released
Notable changes to 8.2.0 since 8.1.0
- Continued enhancement of
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 Ting 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
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – 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 using 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 320×240 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.
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 library using a YuTone VoiceTX SYN6899 in MicroPython to CircuitPython. – GitHub.
Simon Prickett used a Pimoroni GFX Pack, Redis, and MicroPython to view the energy generation mix by postal code. – Twitter.
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!
New Boards from Around the Web
The LILYGO T-Deck is a BlackBerry like handheld using an Espressif ESP32-S3. Hacker.io.
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:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn Guides!
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
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!
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.
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.
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.
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.
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.
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.
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.
EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote – EuroPython 2023.
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.
20230707 is the latest Adafruit CircuitPython library bundle.
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,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.
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.