View this email in your browser.
Welcome to the latest Python on Microcontrollers newsletter! Python continues to be increasingly used for microcontroller projects, large and small. It’s great to see the innovation in this area. This issue highlights some of the work published this week.
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 Raspberry Pi Pico / RP2040 Turns One Year Old
About a year ago, Raspberry Pi released a new type of product – their first microcontroller: the RP2040 and a development board which uses it: the Raspberry Pi Pico. Usage by the electronics and hobbyist community has been quick due to great functionality at a great price point (and it has generally remained available during the silicon shortage).
Maker companies were quick to release RP2040 boards of their own, including Adafruit, SparkFun, Pimoroni and many more, as well as smaller companies and individuals. Scores of designs rely on this versatile chip to perform some remarkable tasks. With lots of RAM, Flash, dual cores, and user programmable PIO, this chip packs a punch.
Read an excellent article by Alasdair Allen which discusses MicroPython and CircuitPython – RaspberryPi.com.
A Study in the Popularity of the CircuitPython GitHub Repository
An interesting look at the number of GitHub Stars awarded to the Adafruit CircuitPython GitHub repo. Marked increases occurred on the dates that the Adafruit PyPortal (2019) and the Raspberry Pi Pico (2021) were released. CircuitPython enjoys increased usage in many segments of the embedded ecosphere – Star-History.
The Pi Cast Celebrates 10 Years of Raspberry Pi: New Episodes With Ladyada, Eben Upton, and More
The Pi Cast Celebrates 10 Years of Raspberry Pi: New Episodes With Ladyada, Eben Upton, and others. Adafruit’s Limor Fried will be on a livecast on February 15, 2022 – More on Tom’s Hardware and YouTube.
Here is additional #CircuitPython2022 feedback received since last week:
There is still time to get your feedback to the CircuitPython team – see this post for details.
Yes, MicroPython Works on MS-DOS Too
Thinking that you’d like to program some Python for a retro MS-DOS board or machine? MicroPython has you covered – Twitter.
There’s a version of MicroPython for DOS that supports Python 3.x syntax. Running here in MS-DOS 5.0
Apparently a floating point coprocessor (or separate emulation software) is also needed. Details – MicroPython Wiki.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott discusses #CircuitPython2022 and ESP32-S3.
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: User Input – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
The CircuitPython Show is a new independent podcast, hosted by Paul Cutler, focused on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a twenty to thirty minute interview – CircuitPythonShow, Blog Post and Twitter.
CircuitPython in This Month’s Issue of HackSpace Magazine
Three projects in this month’s issue of HackSpace Magazine use CircuitPython. You can subscribe or read the free PDF version – HackSpace Magazine.
Project of the Week
Jason Coon uses both a Xiao BLE and an Adafruit QT Py SAMD21 with an Evil Genius Labs Fibonacci64 Nano to make a compact and colorful pendant – Twitter.
“Success! The exact same CircuitPython Fibonacci64 Nano code works on the Seeedstudio Xiao BLE as did on the Adafruit QT Py SAMD21” – GitHub.
News from around the web!
Les Pounder demonstrates how to build a Simon Game with Raspberry Pi Pico celebrating the Pico’s anniversary – Tom’s Hardware via Twitter.
A Glowy Coaster made with an Adafruit Trinket M0 and CircuitPython – charlyn.codes and Vimeo via Twitter.
Building a dedicated word game keyboard with CircuitPython – Twitter.
nightscout_magtag uses an Adafruit Magtag to display the current time of Nightscout blood glucose data (and it also flashes the Magtag NeoPixels with the latest Cheerlights color to show you it’s updated) – GitHub via Twitter.
Bradán Lane writes “On a Live stream recently I was (mildly) ridiculed for writing CircuitPython. Choosing CircuitPython was not for me but as a conscious feature to make customization easy for the target user. ‘Design for the User’” – Twitter.
From that same Twitter Thread – the comments below:
Using the NeoKey for iOS Switch Access – YouTube via Twitter.
A CircuitPython HID emulator device with smart home functions – GitHub.
Joey Castillo’s Sensor Watch streaming accelerometer data to an Adafruit QT Py ESP32-S2 via UART – Twitter.
Adding inputs to a Serpente board to provide Rubber Ducky capabilities in CircuitPython – Twitter.
Playing “Bella Ciao” on a Maker Nano RP2040 programmed in CircuitPython – Twitter.
Hacked an old keypad for prototyping a CircuitPython RPiPico idea. Still waiting on a few parts to finish the testing. The donor keypad has a strange matrix layout, so I not able to (easily) use all the buttons. Quick progress thanks to Adafruit Matrix_Keyboard library code – Twitter.
Open source behavioral experiment software for neuroscience and psychology using MicroPython – Adafruit Blog.
An ESP32 + MicroPython driven pixel panel with a Web UI, accessible from a Chromebook – Twitter.
YAMP (yet another macro pad) – a Raspberry Pi Pico with MicroPython. I need it for my Neoden S1 – which has a “less than zippy touch screen”. Th keypad provides a mouse, numerical keypad, and 4 extra keys – Twitter.
DiskBuddy64 – Connect your Commodore 1541 Floppy Disk Drive to a PC (Python is used for the host software) – GitHub via Twitter.
A configurable hardware key pad to control PyCharm – Stream Deck + PyCharm – YouTube via Twitter.
Sending pictures to Grandma via a Raspberry Pi Zero, Python, and an Adafruit Thermal Printer – Hackaday and GitHub, via Twitter (Spanish).
10 Python IDEs Every Programmer Should Know – Muo.
4 functions for any customer analytics project in Python – towards dev.
Unravelling subscriptions in Python – Tall, Snarky Canadian.
PyDev of the Week: Julian Sequeira from Mouse vs Python
CircuitPython Weekly Meeting for January 18, 2022 (notes) on YouTube
CircuitPython Weekly Meeting for January 24, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? PyFlow visual scripting framework.
The last word: Eject
Invector Labs Unveils the RPICO32 Module and Carrier, Pledges Arduino and CircuitPython Support – 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!
Adafruit ESP32-S2 TFT Feather from Kattni
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!
For the latest libraries, download the Adafruit CircuitPython Library Bundle. For the latest community contributed libraries, download the CircuitPython Community Bundle.
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 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 344!
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 released CircuitPython 7.1.1, mainly to fix using the microphone on the CircuitPython Playground Express.
I’m working on presenting more than one filesystem via USB. I previously thought this was much more difficult than it actually is. A single USB Mass Storage device can present multiple “logical units”: each of those will appear as a drive. With only a few new lines of code, I made a PyPortal show CIRCUITPY and the SD card filesystem as two different drives. This is easiest on Linux, which notices when a filesystem appears on another logical unit and mounts it automatically. Windows and macOS unfortunately don’t mount the new drive automatically unless I completely disconnect and reconnect USB. I can do that programmatically, but I’ll see if there’s an easier way.
Work on floppy drive interfacing continues, but there’s not a whole lot of visible progress within CircuitPython. Behind the scenes, I’ve been laying groundwork that I hope will enable writing MFM data, but that’s still out in the future.
This week I added the boot button pin to the TFT Feather, and updated the pinouts and PrettyPins diagrams to include it. We are now sponsoring Read the Docs, where all of our documentation is hosted, which comes with a couple of perks. All of our docs are now ad-free. As well, I worked with our web devs to get the new docs.circuitpython.org URL set up. We’re now working to get all the libraries updated to use the new URL. And finally, I continued work on the QT Py ESP32-S2 guide – it should be completed by the time this is published!
This has been a little bit shorter week. I’ve gotten back into ESP32-S3 work over the last week. I’ve been doing bug fixing for the ESP32-S3:
- Thanks to Ivan (@igrr) at Espressif I fixed WiFi on the S3 and it may work on the C3 too.
- I added a C3 board definition for the Espressif devkit too.
- Ladyada found a crash with WiFi that I hopefully fixed as well. It was actually due to running CircuitPython on the second core. It’s the first multicore bug in CircuitPython that I’ve fixed.
- The S3 devkit has been blinding me due to a NeoPixel bug that I’ve just about fixed as well.
My main work is adding BLE support to the S3. My first task is to get it all stubbed out but compiling and running. That will allow me to add functionality piece by piece rather than having to convert everything all at once. Advertising and scanning will be my first step after that.
The next MicroPython Meetup in Melbourne will be on January 26th – Meetup. See the blog for past notes.
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. 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.
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 Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.
CircuitPython’s stable release is 7.1.1 and its unstable release is 7.2.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220119 is the latest CircuitPython library bundle.
v1.18 is the latest MicroPython release. Documentation for it is here.
3.10.2 is the latest Python release. The latest pre-release version is 3.11.0a4.
2,775 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.
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
Electrical/Embedded Engineer – Synchron – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 32,827 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.
Codecademy “Learn Hardware Programming with CircuitPython”
Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with Adafruit to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.
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.