If you missed Wednesday’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version. (Wednesday due to a US holiday)
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Tuesday (which is out before this post). 9,519 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! The fundraising for MicroPython continues this week with a new goal. CircuitPython is liked by more folks on GitHub. And both Python versions enjoy popularity with designers, creators, and programmers with projects galore. Your editor provides a video summary to CrowdSupply in a videocast and so much more to this issue.
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 CircuitPython GitHub Repo Reaches 3,000 Stars
The CircuitPython GitHub repository exceeded 3,000 Stargazers this week! Thank you to all the people who have chosen to star the CircuitPython code repository and if you like using CircuitPython, please star the repository as well – Adafruit Blog and GitHub.
Make: Boards Guide Reviews the Adafruit Metro ESP32-S2
Make reviews the Adafruit Metro ESP32-S2 microcontroller board – Makezine.
The Adafruit Metro ESP32-S2 packages the best features of Adafruit’s recent microcontroller boards in a traditional Arduino Uno form factor. The heart of the board, the Espressif ESP32-S2, improves on the ESP line of Wi-Fi-enabled microcontrollers by adding native USB support. The addition of USB mass storage to the platform allows drag-and-drop deployment of Adafruit’s CircuitPython, making the board very easy to program. It also allows the board to act as a USB input device (HID).
Anne Barela talks CircuitPython with CrowdSupply’s Helen Leigh
The CrowdSupply Teardown Sessions, a series of interviews and hands-on learning sessions with Crowd Supply creators, staff, and lots of special guests hosts Anne Barela (your editor) to discuss CircuitPython and more – YouTube.
Also watch CrowdSupply’s Teardown Session 22: Python on Hardware with StereoPi – YouTube.
Naomi Ceder’s PyCon Keynote is Now Available Online
Video of Pythonista Naomi Ceder’s keynote at the recent PyCon US is now available – YouTube and text of the talk is on Naomi’s website, via LinkedIn.
MicroPython is up to 112 Sponsors
The MicroPython sponsorship fundraising continues with 112 people + organizations providing monthly support for MicroPython development. Their new target is $10,000 per month which would allow them to hire more folks to work on the software. Please consider sponsoring, especially if you use MicroPython and/or CircuitPython (which derives from MicroPython) – GitHub.
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 touch interaction with displayio TileGrid.
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 setting a Real Time Clock with an NTP Timeserver – 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, focusing on the people doing awesome things with CircuitPython. Each episode features Paul in conversation with a guest for a short interview – CircuitPythonShow and Twitter.
Pierre Constantineau joins Paul in the latest episode, released May 30th. They have an in-depth conversation about mechanical keyboards and how CircuitPython has helped – Show List.
TammyMakesThings is Streaming CircuitPython
Community member and CircuitPython contributor Tammy Cravit is streaming on Twitch. Her stream focuses on electronics, coding and making, with a focus on CircuitPython. The first few streams have been working on a MacroPad-based MIDI controller, and she’s got lots of other project ideas in the works. An exact schedule for her streams is still being worked out, but she’s targeting 2-3 streams per week. Check it out and follow now to be notified of future streams – Twitch.
Projects of the Week: Raspberry Pi Based Python Cyberdecks
Pico Programming Python Cyberdeck
Here is a portable pocket-sized Pi Zero 2 W cyberdeck from maker Chris Remboldt designed for creating even more fun Pi projects. Remboldt says the idea was to make something easy to take with him for Python coding practice that would also allow him to connect and tinker with the Raspberry Pi Pico.
On its own, he can use the handheld cyberdeck to create and run Python scripts. But thanks to its USB hub, Remboldt can connect external peripherals like a Raspberry Pi Pico or any other RP2040 board for prototyping projects while out and about or at least away from a power outlet – Twitter and Tom’s Hardware. Build Details (PDF).
Paper Pi Handheld Cyberdeck
The Paper Pi handheld is a Raspberry Pi-based E-Ink Handheld – Gitlab and Hackaday.
News from around the web!
Implementing a touchless digital page turning device with the APD9960 proximity sensor on an Adafruit Proximity Trinkey, programmed in CircuitPython – Twitter.
How to Make CircuitPython Projects on a Chromebook with Raspberry Pi Pico (uses Chrome apps per an Adafruit Learning System Guide) – Tom’s Hardware.
Les Pounder, author of the Tom’s Hardware article above, tries River Wang’s Online CircuitPython Editor on a Chromebook for a “no software install needed” CircuitPython programming experience – Twitter Thread.
Canairi is a “canary in a coal mine” inspired air quality indicator (powered by CircuitPython) using an Adafruit Feather and SGP40 sensor – Twitter.
MacroPad is a Raspberry Pi Pico based MicroPython macro keyboard with a large LCD display. An SD card can hold multiple macro sets for each program loaded on the card – Instructables.
Dusted off the Adafruit NeoTrellis with a Feather M4 SAMD51 running CircuitPython. It’s fun to just doodle in lights – Twitter.
Building A smarter sprinkler system with CircuitPython – ckdake.com.
A Python program analyzes the images and calculates the tilt of the tray. A PID regulator is used to compensate – Twitter.
RP2040 Stamp Round Carrier board support is on its way to the Raspberry Pi Pico SDK and CircuitPython – Twitter and CircuitPython GitHub PR.
Switching MiHome wireless sockets using a Raspberry Pi Pico with MicroPython – Twitter.
What the f*ck Python! Exploring and understanding Python through surprising snippets – GitHub.
Pi Pico falling sand and water done in MicroPython and assembly – YouTube and GitHub.
Measure Your Heart Rate with MicroPython and ESP32 – YouTube and Kit.
MicroPython tip of the day: You can run the ‘unix’ port in a container – and optionally use a tag to pick up a specific version (v1.15, 16, 17, 18 are currently supported). Excellent for general development – but especially to run unit tests and to experiment with supported syntax – Twitter Thread.
Serial Communication with Raspberry Pi Pico in Windows 10/11 via WSL – Infosec Writeups via Twitter.
50+ Free Python Programming Books – Insane via Twitter.
Newspaper3k is a Python library to extract and curate web-based articles – PyPI via Twitter.
Say Hello to PyScript (WebAssembly Python) – TalkPython Podcast.
The unreasonable effectiveness of f-strings and re.VERBOSE, to look at one or two ways to make life easier when working with Python regular expressions – death.andgravity.
hm-panelizer is a GUI based PCB gerber file viewer and panelizer written in Python – GitHub.
Import Tracker is a Python package offering a number of capabilities related to tracking and managing optional dependencies in Python projects – GitHub.
Up Your Coding Skills with Python: Strings – Python in Plain English.
PyDev of the Week: Rachell Calhoun on Mouse vs Python
CircuitPython Weekly Meeting for May 31, 2022 (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? 12 Books Recommendation for Embedded Systems Learners.
Coming Soon
The S1 is an nRF52811 microcontroller paired with an iCE40 FPGA. It runs a lite version of MicroPython due to resource constraints and also has Web Bluetooth WebREPL with MicroPython and CircuitPython support – Silicon Witchery.
PicoBricks is a Raspberry Pi Pico development and learning system – Kickstarter.
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 two additional 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!
Traffic Light Conference Badge from Liz Clark
CircuitPython Libraries!
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 357!
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
- Adafruit_CircuitPython_ESP32S2TFT
- Adafruit_CircuitPython_Typing
- Adafruit_CircuitPython_Simple_Text_Display
- Adafruit_CircuitPython_PIOASM
- Adafruit_CircuitPython_OAuth2
- Adafruit_CircuitPython_UC8151D
- Adafruit_CircuitPython_GPS
- Adafruit_CircuitPython_BLE_iBBQ
- Adafruit_CircuitPython_IL91874
- Adafruit_CircuitPython_GC_IOT_Core
- Adafruit_CircuitPython_ESP32SPI
- Adafruit_CircuitPython_AzureIoT
- Adafruit_CircuitPython_WSGI
- Adafruit_CircuitPython_DS1307
- Adafruit_CircuitPython_BitmapSaver
- Adafruit_CircuitPython_BH1750
- Adafruit_CircuitPython_CircuitPlayground
- CircuitPython_Community_Bundle
What’s the team up to this week?
What is the team up to this week? Let’s check in!
Dan
I released CircuitPython 7.3.0 final. Thanks to everyone who contributed to this release! We have one known regression from 7.2.5, involving multiple rotary encoders on Espressif boards, which I fixed. I will wait a few days to see what else comes up before doing a 7.3.1.
I’ve incorporated some of the incompatible changes we planned to make for 8.0.0 onto the main
branch.
I’m looking at speeding up the GitHub Actions runs by not using the LTO compilation option when not necessary, and changing some LTO settings as well, when space is not at an absolute premium.
I’m also still working on fixing some ESP32SPI problems.
Kattni
The last week has been mostly miscellaneous and a couple of new guides. There is a guide in progress about how to add a project to PyLeap.
I started the Adafruit QT Py ESP32 Pico guide. It will have everything you need to get started with the QT Py ESP32 Pico. The plan was to publish it before today, however, I ran into difficulties with testing since I don’t have the hardware. It is now on its way here, so I’ll be finishing that up once I have it in hand.
Melissa
This past week I finished going through guide feedback for guides that I had previously worked on updating, but were under another author’s name. After that was finished, I went through and updated the Introducing Adafruit Feather guide with all the new Feathers and FeatherWings that had come out since the guide was last updated, which was not long before I started working with Adafruit.
Tim
I tested a network requests issue when making repeated requests to a nodeJS server, I tried with an ESP32-S2 based device to determine if the issue was specific to ESP32SPI or not. I also did some testing and made a PR to resolve a core issue that causes reduced brightness range on the PyPortal Titano display. I’m working on making TileGrid objects have a contains()
method similar to the Display Button library so that any Bitmap, OnDiskBitmap or other thing that uses TileGrid can be easily integrated with touch interaction.
Scott
This week I’ve been running some analysis on CircuitPython binaries to try and find some code to remove. I’ve learned a lot about the ELF file format but haven’t found anything significant. My work is in the elf-section-graph repo. After visualizing it with Gephi, I’ve moved to a simpler treemap visualization that is common to look at how big folders and subtrees are. To make viewing a treemap, I created https://treemap.dev. It will make it easy to view treemaps.
I haven’t quite finished my DotEnv work because Dan found a bug (thank you!). I hope to squash it tomorrow and get it checked in.
After that I’ll be continuing to work on the web workflow when not taking care of our new baby.
Liz
This past week I wrapped up the traffic light conference badge guide, a guide for installing drivers for WCH USB to serial chips and a getting started guide for the NAU7802 STEMMA board. Big thanks to Kattni for walking through the Mac install steps for the WCH driver and getting screenshots.
This coming week I’ll be working on some CircuitPython IoT projects. I’m going to be doing some projects using Azure and I’ll be doing a project with the Ruiz brothers for a weather display. I’ll also be working on a new product guide for the QT Py ESP32-S3. It will be my first new dev board guide.
Upcoming events!
The next MicroPython Meetup in Melbourne will be on June 22nd – Meetup. See the slides of the May 25th meeting.
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.
SciPy 2022, the 21st annual Scientific Computing with Python conference, will be held in Austin, Texas, USA from July 11-17, 2022. The annual SciPy Conference brings together attendees from industry, academia, and government to showcase their latest projects, learn from skilled users and developers, and collaborate on code development. The full program will consist of 2 days tutorials (July 11-12), 3 days of talks (July 13-15) and 2 days of developer sprints (July 16-17) – SciPy 2022.
EuroPython 2022 will be held on 11th-17th July 2022 and it will be both in person and virtual. The in-person conference will be held at The Convention Centre Dublin (The CCD) in Dublin, Ireland – EuroPython 2022.
PyOhio is a non-profit annual Python community conference usually held in Columbus, OH. It is being held online starting Saturday, Jul 30, 2022. It is free to attend and welcomes anyone with an interest in Python. Content ranges from beginner to advanced and is intended to be relevant to all types of Python users: students, software professionals, scientists, hobbyists, and anyone looking to learn more – PyOhio.
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.
Latest releases
CircuitPython’s stable release is 7.3.0. There is no unstable release at the moment: watch for 8.0.0-alpha.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220531 is the latest CircuitPython library bundle.
v1.1.18 is the latest MicroPython release. Documentation for it is here.
3.10.4 is the latest Python release. The latest pre-release version is 3.11.0b2.
3,007 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 – 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
MatrixPortal project utilizing WIFI – BOB PROPERTY LLC – Adafruit Jobs Board.
34,477 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 34,477 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.
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.