View this email in your browser.
Welcome to the first Python on Microcontrollers newsletter of 2022! There are over 9,250 subscribers and we’re looking to hit 10K later this year.
The format has changed a bit from 2021. Hopefully that makes it easier to read. To contact us, 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 7.1.0 Final and 7.2.0-alpha.1 Released
CircuitPython 7.1.0, the latest minor revision of CircuitPython, was just released – Adafruit Blog and GitHub.
Notable additions to 7.1.0 since 7.0.0:
- Initial port for Raspberry Pi Broadcom-based boards.
- Preliminary support for
asyncio cooperative multitasking.
bitmaptools: dithering and alpha blend are new.
keypad.Events now include timestamps.
framebufferio: support for IS31FL3741.
- Espressif now provides
I2CPeripheral, WiFi monitor mode, setting MAC address, ESP32-C3 support, ParallelImageCapture.
gifio.GifWriter is new.
- HID now provides boot device and feature report support.
rotaryio now allows setting the divisor of counts per transition.
- SAMD now provides
alarm with sleep.
- SAMx5 boards now all have sleep support.
- The STM port now provides STM32L4R5 support.
- MicroPython 1.17 has been merged in.
- Russian translation.
CircuitPython has a number of “ports” that are the core implementations for different microcontroller families. Stability varies on a per-port basis. As of this release, atmel-samd, cxd56 (Spresense), esp32s2, nrf, raspberrypi, stm for the F4 family are stable. stm for other STM chip families is being actively improved but may be missing functionality and have bugs. broadcom (Raspberry Pi) “bare metal”, litex and mimxrt10xx are in an alpha state and will have bugs and missing functionality.
New boards since 7.0.0:
- Adafruit Feather ESP32-S2
- Adafruit Feather ESP32-S2 TFT
- Adafruit KB2040
- Adafruit QT Py ESP32-S2
- AIThinker ESP32-C3S_Kit
- Challenger NB RP204
- Cytron Maker Nano RP2040
- JPConstantineau Pykey60
- Lolin/Wemos S2-Pico
- Melopero Shake RP2040
- MicroDev microC3
- Oak Development Technologies Bread 2040
- Raspberry Pi 4B (bare metal)
- Raspberry Pi Compute Module 4 IO Board (bare metal)
- Raspberry Pi Zero 2W (bare metal)
- Seed XIAO variant build for HID devices
- Solder Party RP2040 Stamp
- Swan R5
CircuitPython 7.2.0-alpha.1 is the first published alpha release for CircuitPython 7.2.0. It is relatively stable, but there will be further additions and fixes before final release – Adafruit Blog.
Notable additions to 7.2.0 since 7.1.0
- Continuing work on Raspberry Pi Broadcom board support.
- Espressif ESP32-S3 support.
- RP2040 PIO sideset support.
CircuitPython in 2022
As 2022 starts, let’s take some time to share our goals for CircuitPython in 2022. Just like past years (full summary 2019, 2020, and 2021), we’d like everyone in the CircuitPython community to contribute by posting their thoughts to some public place on the Internet.
Here are a few ways to post:
We want to hear from you. When you post, please add #CircuitPython2022 and email firstname.lastname@example.org to let us know about your post so we can blog it up here.
The post can cover any topic related to CircuitPython. See more at https://www.adafruit.com/circuitpython2022.
Work in Progress: Floppy Disk Interfacing with Microcontrollers
Adafruit has been working diligently on using low cost microcontrollers to interface with floppy disk drives. There is active interest from the archival, maker and vintage computer communities in working with floppy disks. Lots of folks want to get possibly valuable data off old disks. Ladyada has now developed Arduino code for the inexpensive Raspberry Pi Pico to work with 3.5” drives, with additional work on the way – Adafruit Blog.
Adafruit Floppy is a project to make a flexible, full-stack, open source hardware/software device for reading, archiving, accessing and duplicating floppy disk media – GitHub.
Coding the Fibonacci Micro 64 Board with CircuitPython
John Gallaugher posts a video on programming the Evil Genius Labs Fibonacci Micro 64 LED board using CircuitPython – YouTube and code – GitHub.
Jason Coon has coded a simple demonstration reel for the Fibonacci Micro 64 using CircuitPython. “It runs really well on the QT Py RP2040, much slower on the SAMD21 and requires adafruit_pypixelbuf.mpy.” It uses palette blending via the FancyLED library – Twitter and GitHub.
Making a RISC-V Chip to Run CircuitPython
The ultimate goal of the PyFive project is to create a RISC-V based microcontroller with the ability to easily support CircuitPython. They have received some early silicon the last week – Twitter Thread.
The CircuitPython Online IDE Updates
The third-party CircuitPython Online integrated development environment (IDE) has received enough changes/upgrades for the developer to post a new introduction video – YouTube.
You can see and use the development environment here and the GitHub repo is here.
The IDE supports Chrome or Chromium-based browsers such as Microsoft Edge. General editor shortcuts are in a document here.
CircuitPython Deep Dive Stream with Scott Shawcroft
Scott will return on Friday with his live show at 2pm Pacific.
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 returns next week.
Catch all the episodes in the YouTube playlist.
KiCad 6.0.0 Out
KiCad, the open source electronic design automation package, created by Jean-Pierre Charras in 1992, has hit a major milestone: the launch of KiCad 6.0.0, 30 years after the software’s first release. The new release is available on the KiCad website, with downloads for a range of operating systems including Linux, macOS, and Windows available now; the source code, meanwhile, is published to GitLab – hackster.io.
News from around the web!
ukeeb: a new minimal CircuitPython keyboard library for CircuitPython- GitHub and Keyboard News Digest.
Above is the kleks keyboard, a low-profile monoblock split with extreme pinky stagger and strange but cool-looking circular routing by Radomir (aka deshipu) who also authored ukeeb.
Bounce Ball: Can’t resist writing a tiny (CircuitPython) game in the mid of a DIY project – YouTube via Twitter.
Daft Punk Word Clock using an Adafruit PyBadge and CircuitPython – hackaday.io and YouTube.
This tiny ESP32-S2 QT PY from Adafruit is gonna control a new pompom light controller in my bedroom! Can you believe it’s this tiny & has WiFi! I’m sending requests directly to the hue API from the board! – Twitter.
A tiny CO2 monitor in QT Py format (it also fits inside an Arduino Mini Limited Edition) – Twitter.
A 3D printed, Raspberry Pi Pico-powered cosplay project programmed in CircuitPython – Twitter.
Add LED lights to a plush using CircuitPython – YouTube via Twitter.
TallyCircuitPy: build network controlled tally lights for live cameras, status lights, ambient lighting, busy/free indicators – controllable over HTTP – hackaday.io.
Secrets of MicroPython: How to blink an LED – Bhavesh Kakwani.
Secrets of MicroPython: How to read a knob – Bhavesh Kakwani.
MIDI routing based on port, MIDI channel or MIDI command with Raspberry Pi Pico and MicroPython – Twitter.
I’ve been having a lot of fun with OpenMV MicroPython on Arduino Nano RP2040 Connect – Twitter.
Stepper Motor with Raspberry Pi Pico: 28BYJ-48 and ULN2003 wiring and MicroPython code – peppe80.
The Pinouts Book is a free digital book created for designers and engineers as a quick reference for remembering the different pinout functions in your electronics projects – pinouts.org. More – n-o-d-e.net.
pytudes — Python programs, usually short, for perfecting particular programming skills – GitHub.
Primify: transform any image into a prime number that looks like the image if glanced upon from far away – Twitter and GitHub.
Telegram bots in Python made easy – Adafruit Blog.
Python Bindings: Calling C or C++ From Python – Real Python.
The best things and stuff of 2021 – Send More Paramedics Blog.
CircuitPython Weekly for September 20th, 2021 on YouTube and notes.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? RadioShack Phone Dialer – Red Box.
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 five new boards added!
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
Animated Edge Lit Acrylic NeoPixel Lamp from Noe and Pedro
DIY Trinkey No-Soldering USB Air Quality Monitor from Carter Nelson
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 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 releases for both CircuitPython 7.1.0 final and 7.2.0-alpha.1 on Tuesday, December 28, 2021. 7.1.0 is a new stable release. 7.1.0-rc.0 had some mild changes, resulting in 7.1.0-rc.1, and 7.1.0-rc.1 seemed to be fine, so we re-released it as 7.1.0 final.
I’ll be working on more
asyncio examples for the Cooperative Multitasking guide, and I’m considering some new features for it as well.
Rather than take on any substantial coding work, I instead finished up a 3D printed project with LEDs. A guide for making your own will probably be published on the Learn system by the time you read this, check for a link in the new guides section of the newsletter.
I’ve also taken some time to reflect on what we’ve accomplished together in 2021. For me, some of the high points of progress have been adding asyncio, getting “up to date” with MicroPython, and adding support for fun hardware like camera modules.
On a personal note, I’m grateful to get to know Damien and Jimmo from the MicroPython project a little better, and that I was able to visit Adafruit in NYC and participate in-person on an Ask an Engineer broadcast.
Thank you to everyone who has shared their CircuitPython projects in this newsletter, on Discord, Twitter, and elsewhere. It’s incredible and humbling to know that I have played some small role in these meaningful, creative, insightful and inspiring projects.
This is a short week for me because I’m taking two days off around the holidays. The last two days have been spent working on Raspberry Pi Zero support for CircuitPython. This will broaden the supported boards and hopefully provide some perspective on the SD card issues that have been plaguing the Broadcom port. I’m debugging the Zero support today and will hopefully get it going and out for merge today.
I’ll be kicking off #CircuitPython2022, so start brainstorming where you want CP to go in the new year.
The next MicroPython Meetup in Melbourne, Australia will be on January 26th – Meetup. See the blog for previous 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. 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.
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.0 and its unstable release is 7.2.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220103 is the latest CircuitPython library bundle.
v1.17 is the latest MicroPython release. Documentation for it is here.
3.10.1 is the latest Python release. The latest pre-release version is 3.11.0a3.
2,737 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
Open Source CircuitPython driver for NFC chip PN532 and PN7150, must include point-to-point communication – Envester – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 32,472 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.