View this email in your browser.
It’s Tuesday and it’s time for the latest Python for Microcontrollers newsletter, brought you by the community! We’re on Discord, Twitter, and for past newsletters – view them all here. If you’re reading this on the web, subscribe here.
CircuitPython 6.1.0-rc.0 is now out
CircuitPython 6.1.0 rc.0 is the first release candidate for 6.1.0.
Fixes and improvements since 6.1.0 Beta 3:
- Fix initialization of onboard NeoPixels. #3934.
- Update ulab to 1.6.0. #3929.
- Fix handling of zero brightness in _pixelbuf. #3917.
Board and port specific changes:
- CPX: Add back frozen adafruit_bus_device back to CPX. #3932.
- UnexpectedMaker FeatherS2: Correct pins and add default board devices. #3925, #3914.
- ESP32S2: Add alarm.touch.TouchAlarm. #3850.
- Mini SAM 4: Freeze in adafruit_dotstar library. #3923.
Read about all the changes and the new boards since 5.3 – Adafruit Blog.
CircuitPython Blinka for Single Board Computers Explained
The CircuitPython.Org website has been updated to include an explanation of what the CircuitPython Blinka compatibility layer for SBCs does:
Blinka brings CircuitPython APIs and, therefore, CircuitPython libraries to single board computers (SBCs). It is a pip installable Python library that runs in normal “desktop” Python. The CircuitPython runtime isn’t used. CircuitPython libraries can also be installed via pip.
See the guide for further details.
CircuitPython 2021 Entries Coming In
The CircuitPython development team is excited at all of the feedback posted as part of the #CircuitPython2021 campaign! They want to hear what you believe is important to you now and going forward using Python on Hardware. Read the latest:
Latest Posts Summary – Adafruit Blog.
Kickoff Post – Adafruit Blog.
Python Software Foundation
PSF Trademark Usage Policy
This document contains the 1.5.0 version policy of the Python Software Foundation (“PSF”) regarding the use of its trademarks. Any use of any PSF trademark must be in accordance with this policy – python.org via Twitter
Python 3.8.7 is now available
Python 3.8.7 is now available. It is the seventh maintenance release of Python 3.8. Note: it currently does not work on MacOS Big Sur – Twitter and Download.
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott is back for 2021! He streams his current work and discusses #CircuitPython2021.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
News from around the web!
Woven light strands by Geek Mom Projects. This version winds a string of pixels around 25 nylon screws on a clear acrylic frame. Sturdy and quick to make – Twitter.
A very rudimentary hex mixer running on an Adafruit PyPortal with TG-Gui and CircuitPython – Twitter.
Development continues on a CircuitPython controlled watch by TG-Techie – Twitter.
The watch’s new framework is now a state dependent, extensible, framework that allows for utilization of native user interface elements, like CircuitPython’s displayio library! Thanks to the CircuitPython community and Adafruit who have put lots of time and care into the ecosystem.
Pac-man ghost animation with CircuitPython and NeoPixels – Twitter.
The Matrix Portal Flow Visualizer was written for the Matrix Portal but with a few minor tweaks
can run on the Adafruit PyPortal and should run on the Adafruit PyPortal Titano (untested) showing subsonic flows – YouTube.
A robot using an Adafruit Braincraft Hat and Motor Bonnet, using a single battery for both the motors and the Pi, using Python – Twitter and GitHub.
Software Defined Remote Control with CircuitPython on an Adafruit Trinket M0 – Website and YouTube.
Build a Raspberry Pi-powered Smart Pill Cabinet programmed in Python – gallaugher.com.
An open source intercom for kids using Raspberry Pi and Telegram – Chordata.
Use micro:bit to learn MicroPython Part 3: Conditional Logic – Twitter and LinkedIn.
Wave – Realtime Web Apps and Dashboards for Python – GitHub.
A Lua to Python conversion program – GitHub.
The Shell and the Microcontroller: programming microcontrollers using a REPL – Hackaday.
remote-mouse allows use of a smartphone as a pointing device for a computer (say, a Raspberry Pi working as media server) in a similar fashion to certain smart TV remotes. There is also some limited text input capability – GitHub.
PyCameraServer – a Flask video / image / Youtube / IP Camera frames online web-editor with live streaming preview for objects recognition, extraction, segmentation, resolution upscaling, styling, colorization, interpolation, using OpenCV with neural network models – GitHub.
Cheap EMUlator: lightweight multi-architecture assembly playground written in Python – GitHub.
Array is a functional mutable sequence inheriting from Python’s built-in list. Array provides 100+ higher-order methods and more functionality to the built-in list, making operations on sequences simpler and one-liners neater with no third party packages required – GitHub.
USBQ is a Python-based programming framework for monitoring and modifying USB communications – Website, GitHub and YouTube Demo.
With Python f-strings you can use <, > and ^ to left / right / center justify strings – Twitter.
PyCharm for Productive Python Development – Real Python via Twitter.
PyDev of the Week: Ken Youens-Clark on Mouse vs Python
CircuitPython Weekly Meeting for January 11th, 2021 (notes) and video on Youtube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? SAMD21 NeoPixel USB Stick – USB “TRINKET”.
Adafruit’s Ladyada was building prototypes this past weekend – Twitter.
USB2422 I2C-configurable USB 2-port hub is a low cost USB hub with EEPROM you can connect to I2C to configure – 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 no new boards were added but several are in the works.
Looking to add a new board to CircuitPython? It’s highly encouraged! Adafruit has four guides to help you do so:
New Learn Guides!
Language Flashcards on the MagTag from Lucian Copeland
Adafruit MPR121 12-Key Capacitive Touch Sensor Gator Breakout from Kattni
Adafruit SCD-30 – NDIR CO2 Temperature and Humidity Sensor from Kattni
Language Flashcards on the MagTag from Lucian Copeland
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 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 290!
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 a CircuitPython 6.1.0-rc.0 release this week, after consultation with Scott and Jeff. There are many fixes and additions past 6.0.1. There are still some significant bugs I’d like to see fixed soon, and I’m working on those. I’m on the trail of a memory overwrite that seems to be causing problems with time.sleep().
Back in December, I added support for binary “.pcf” files to the adafruit_bitmap_font library. These fonts take up less space on your device’s CIRCUITPY drive and are also faster to load into RAM. However, there was no convenient converter from “.bdf” format to “.pcf”. I changed that this week with a web-based converter and wrote a short guide page about using it. This is especially handy for battery-powered MagTag projects, since less time spent loading fonts means more time in Deep Sleep so the battery will last for longer between charges.
I started a library PR/issue sweep and started to reach out to folks on library PRs to see where everyone is at. If you’re waiting on a reply to a PR, and it’s been more than 24 hours (not including weekends), feel free to tag whomever you’re waiting on – we’re all getting caught up after the holiday. In guide land, I updated the CCS811 guide with the STEMMA QT revision of the board. I wrote the guide for the new Adafruit SCD30 as well which has all the details about the board that you need to get started with it.
This past week I’ve wrapped up my Flashcard guide on the MagTag, and I have been diving into Socket behavior in CPython in hopes of bringing CircuitPython closer in terms of error reporting and performance. I’ve also been looking into other bugs on my list, related to Busio and other peripherals across several ports.
This past week I was back from the holiday break and worked on catching up on GitHub Pull Requests and issues that had been submitted while I was gone. I continued working on refactoring the PyPortal library that I had started before the break. One of the things I was stuck on was updating how it handled images and I realized that the MatrixPortal and MagTag libraries weren’t actually handling image downloads, so I changed my focus to expanding the functionality of those libraries at the same time.
Mainly I kicked off #circuitpython2021 on the blog and then followed up with the first answers from folks.
Besides that, not a whole lot to report. I’m getting caught up after the holidays.
Will be doing a deep dive on Fridays at 2 pm Pacific again!
Australia’s grassroots Free and Open Source technologies conference linux.conf.au is scheduled for January 23-25 2021 online/worldwide. Limor “Ladyada” Fried, electrical engineer and founder of Adafruit, will be one of their keynote speakers. In her keynote, Limor will discuss how Python is snaking its way into hardware, Linux single board computers and more.
The schedule and tickets are available at lca2021.linux.org.au – Announcement.
FOSDEM is a free and non-commercial event organised by the community for the community. Typically hosted in Brussels, Belgium, FOSDEM 2021 is taking place online February 6-7, 2021. This year, there will be a Python Developer Room. Details – Adafruit Blog.
PyCascades is a regional PyCon in the Pacific Northwest, celebrating the west coast Python developer and user community. Held online February 19th — 21st, 2021 – PyCascades.
The 2021 Open Hardware summit will be held online, Friday April 9, 2021. The summit will be livestreamed, but ticket holders will have access to additional interactive portions of the summit like meet-and-greets, workshops, and sponsor booths. Find details, including ticket and sponsorship information at 2021.oshwa.org – OSHWA.
PyCon US, the annual official annual Python gathering, has been announced to be held online May 12-15, 2021. Sprints will be held May 16-18, 2021. More information and signups at https://us.pycon.org/2021/
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.
CircuitPython’s stable release is 6.0.1 and its unstable release is 6.1.0-rc.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20210109 is the latest CircuitPython library bundle.
v1.13 is the latest MicroPython release. Documentation for it is here.
3.9.1 is the latest Python release. The latest pre-release version is 3.10.0a4.
1972 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, Microcenter, Raspberry Pi and more.
Job of the Week
Director of Resource Development – Python Software Foundation
The PSF is seeking to hire a Director of Resource Development to spearhead fundraising and sponsorship efforts! Hurry, they are accepting resumes through January 14th, 2021 – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 26,589 humans, thank you! Adafruit believes Discord offers a unique way for CircuitPython folks to connect. Join today at https://adafru.it/discord.
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.
This video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.
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.
Join our Discord or post to the forum for any further questions.