If you missed Tuesday’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 Tuesday (before this post). 9,238 subscribers worldwide!
The next newsletter goes out in a week and being subscribed 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, brought you by the community! This week, there is an abundance of projects to highlight community work as well as some new features for CircuitPython.
CircuitPython 7.1.0 Beta 1 is Available
CircuitPython 7.1.0-beta.1 is available, the second beta release for CircuitPython 7.1.0. It is relatively stable, but contains issues which the CircuitPython team may still address for 7.1.0 – GitHub.
Notable additions to 7.1.0 since 7.0.0:
keypad.Eventsnow include timestamps.
- The Espressif port now provides I2CPeripheral, WiFi monitor mode, ESP32-C3 support, and ParallelImageCapture.
- bitmaptools: dithering and alphablend are new.
- HID now provides boot device and feature report support.
- rotaryio now allows setting the divisor of counts per transition.
- The SAMD port now provides watchdog and alarm with sleep.
- The STM port now provides STM32L4R5 support.
- MicroPython 1.17 has been merged in.
- Russian translation.
- Preliminary support for
asynciois included. Use the CircuitPython asyncio library.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 32,000 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at https://adafru.it/discord – Adafruit Blog.
RISC-V Summit This Week
RISC-V Summit brings the community together to show the power open collaboration can have on the processor industry. The audience spans across industries, organizations, workloads, and geographies to learn about the technology advancements in the RISC-V ecosystem and visibility of RISC-V successes. The event is in progress: December 6 – 8, in-person in San Francisco or virtually from anywhere in the world – Linux Foundation via Twitter.
Matrix Display Projects
Some fun projects using LED matrices:
Combining my interests – electronics (Adafruit LED glasses) and @Wpg_BlueBombers and @CFL football! Ready for the playoffs today no matter the weather. #ForTheW #CFL #GCPlayoffs #CircuitPython – Twitter.
Progress on adding the eye light rims to native #CircuitPython. Designed so they can be used with displayio or to drive individual strips of LEDs – Twitter.
Tutorial – Getting CircuitPython on the Wio Terminal
The same group also did a tutorial for MicroPython on Wio:
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott streams his work on the Adafruit Learning System (behind the scenes).
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:
Catch all the episodes in the YouTube playlist.
News from around the web!
The HackSpace Magazine lab is testing out the CircuitPython NeoPixel animations library – Twitter.
A thermal camera working on an Adafruit PyPortal (with x4 bilinear x2 displayio scaling). The same code also works on the Adafruit CLUE and the MatrixPortal. It also works with the FeatherWing keyboard using FeatherS2 or Feather RP2040 – Twitter and GitHub.
Adafruit Holiday Gift Guide: CircuitPython – Adafruit Blog.
Testing out the Russian build of CircuitPython in the latest beta – Discord.
I got my CircuitPython MacroPad working! I configured it to work with Onshape, a browser based CAD tool. I can use it to rotate the image, snap to a view and more. (And in the blurry background I had already started 3D printing a stand for it) – Twitter.
A CircuitPython sound reactive speaker stand – Twitter.
A CircuitPython mouse jiggler – Twitter.
Feeding the video from a Raspberry Pi Zero 2 W into an HDMI to USB dongle (from Adafruit) and displaying in a window on a desktop screen (via Open Source freeware OBS). Good for viewing the Bare Metal/No OS version of CircuitPython – Twitter.
I got a nRF24L01 module working with CircuitPython on an Adafruit PyGamer board! This is running the simple scanner example – Twitter.
A ICM-20948 9-axis motion tracking device connected to a Raspberry Pi Pico running CircuitPython – rp2040.
Crowdsourcing future exam material – Adafruit Forums.
(I have a) 01Studio Lab board, this one an STM32 clone: a TKM32F499 128-pin Cortex M4 best at 240 MHz, 8 MB RAM, 16 MB Flash and a big screen. It’s running MicroPython – Twitter.
A Raspberry Pi Pico video interface for Z80 Modular Computer – GitHub.
Scan QR Codes with Raspberry Pi Pico – hackster.io.
Setting Up Your Python CI Project (Video) – Real Python.
PyDev of the Week: Fanilo Andrianasolo on Mouse vs Python
Feather M4 Adalogger prototype. This is kinda a re-spin of the Feather M4 Express with all the upgrades we want: USB C, 8 MB of QSPI flash, J20 instead of J19 (more flash/RAM), Stemma QT port, micro SD card on the back, and power-switchable I2C/SD/NeoPixel for low power usage – Adafruit Blog.
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 seven new boards added!
- Adafruit QT Py ESP32S2
- Interstate 75
- Maker Nano RP2040
- Compute Module 4 IO Board (No OS/Bare Metal Use)
- Pi 4 Model B (No OS/Bare Metal Use)
- Zero 2 W (No OS/Bare Metal Use)
- Zero 2 W (Linux/Blinka)
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
There are no new Learn guides this week, but more are on the way. Check back next week!
CircuitPython Project Bundle
When you get to the CircuitPython code section of an Adafruit Learn Guide, sometimes things can get a bit complicated. You not only have the code you need to upload to your device, but you likely also need to add some libraries that the code requires to run. This involved downloading all the libraries, digging through to find the ones you need, and copying them to your device. That was only the beginning on some projects, as those that include images and/or sound files required further downloading and copying of files. But, not anymore!
Now, with Project Bundles, you can download all the necessary code, libraries and, if needed, asset files with one click! We automatically check which libraries are required for the project and bundle them up for you. No more digging through a huge list of libraries to find the ones you need, or fiddling with looking for other files or dependencies. Download the Project Bundle, copy the contents to your device, and your code will simply work. We wanted to make this the easiest way to get a project working, regardless of whether you’re a beginner or an expert. We’ll also be adding this feature to popular IDEs as an add-on. Try it out with any Circuit Python guide on the Adafruit Learning System. Just look for the ‘Download Project Bundle’ button on the code page.
To download and use a Project Bundle:
In the Learning System – above any embedded code in a guide in the Adafruit Learn System, you’ll find a Download Project Bundle button.
Click the button to download the Project Bundle zip.
Open the Project Bundle zip to find the example code, all necessary libraries, and, if available, any images, sounds, etc.
Simply copy all the files over to your CIRCUITPY drive, and you’re ready to go!
If you run into any problems or bugs, or would like to submit feedback, please file an issue on the Adafruit Learning System Guides GitHub repo.
CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!
If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. Interested in helping with current libraries? Check out the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and Github if you need help getting started. You can also find us in the #circuitpython channel 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 341!
Here’s this week’s updated CircuitPython libraries:
What’s the team up to this week?
What is the team up to this week? Let’s check in!
I made the release for CircuitPython 7.0.0-beta.1 on 2021-11-29. This release has a number of fixes since beta.0, but we still have more bugs to fix, and I and the rest of the team are working on these. I’m also debugging some RP2040 I2C problems with our ATTiny-based seesaw boards.
I’ve been helping out with the new ESP32-S3 microcontroller (which was mostly done by @microdev), adding support for several of the boards from Espressif: the ESP32S3-Box, and the ESP32-S3-DevKitC-1 with and without PSRAM. As I write this, a pull request to enable the display on the ESP32S3-Box is pending.
The Feather ESP32-S2 guide is live and now complete. If you picked up one of these boards, and want to know where to get started, including examples, check out the guide. I’ve begun working on the guide for the KB2040. Keep an eye out for that coming soon.
This past week I worked on a new guide for a laser controlled with a Nunchuk and CircuitPython. This included 3D modeling a few parts to make project easier to assemble. Keep an eye out for this guide.
Last week was short due to Thanksgiving here in the US. I did get the Raspberry Pi builds on circuitpython.org. You can see them here. It includes limited I2C support. This week I’m working on supporting all I2C peripherals, proper pin in use checking and pin muxing. These will allow for SPI and UART support as well. I’ll also be working on a Learn guide for CircuitPython on the Raspberry Pi.
PyCascades is a regional PyCon in the Pacific Northwest, celebrating the west coast Python developer and user community. Our organizing team includes members of the Vancouver, Seattle, and Portland Python user groups. DATES ANNOUNCED! February 5th-6th, 2022 The conference will take place on Saturday and the first half of Sunday, with the post-conference sprints following that on Sunday afternoon. After three amazing in-person conferences and an engaging online conference, we are ready to do it again! – PyCascades 2022.
PyCon US 2022 planning is underway. The team is planning to host the event in person with an online component. April 27, 2022 – May 5, 2022. Head over to the PyCon US 2022 website for details about the conference and more information about the sponsorship program – PyCon Blog.
PyCon Italia is the Italian conference on Python. Organized by Python Italia, it is one of the more important Python conferences in Europe. With over 700 attendees, the next edition will be June 2-5, 2022 – Ticket Registration and Call for Proposals (deadline January 9!).
Send Your Events In
As for other events, with the COVID pandemic, most in-person events are postponed or cancelled. If you know of virtual events or events that may occur in the future, please let us know on Discord or on Twitter with hashtag #CircuitPython.
20211202 is the latest 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.
jobs.adafruit.com – Find a dream job, find great candidates!
jobs.adafruit.com has returned and folks are posting their skills (including CircuitPython) and companies are looking for talented makers to join their companies – from Digi-Key, to Hackaday, Micro Center, Raspberry Pi and more.
Job of the Week
Tech Lead, Hack Club Bank – Hack Club – Adafruit Jobs Board.
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is our Python video-newsletter-podcast! The news comes from the Python community, Discord, Adafruit communities and more and is reviewed on ASK an ENGINEER Wednesdays. The complete Python on Hardware weekly videocast playlist is here.
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.
And lastly, we are working up a one-spot destination for all things podcast-able here – podcasts.adafruit.com
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.