View this email in your browser.
Happy Holidays from the latest Python on Microcontrollers newsletter! We’re brought to you by the community: we’re on Discord and Twitter. For past newsletters, view them all here. If you’re reading this on the web, subscribe here. It’s time to see the lights!
Adafruit Appears on The Pi Cast, Talking About the KB2040 Board for Custom Keyboards
Tuesday December 21st, 2:30 pm, Tom’s Hardware talks to the Adafruit CircuitPython team about Adafruit’s new KB2040 board for custom keyboards. Capable of running Arduino and CircuitPython, it’s in an Arduino Mini form factor but packs many more features – YouTube and Facebook.
A Retro RPN Calculator Emulator Project
A retro RPN calculator emulator project using the Adafruit PyPortal Titano with CircuitPython. With the user interface mostly done, next is the calculator emulation – Twitter and YouTube.
Topping your Tree with a Glowing Rhombicosidodecahedron
Making a rhombicosidodecahedron tree topper lit by 5 RGB LEDs poweres by a Raspberry Pi Pico and CircuitPython – Age of Awareness and YouTube.
A nice, subtle, classy light on top of our tree — I probably should have left it at that, however I was so taken by how easy the Pico was to set up that I grabbed a 5 metre rope of LEDs which I had reserved for another project and threw them into the tree too!
The Idiot-Proof Guide to Upgrading Raspberry Pi from Buster to Bullseye
A Guide to Upgrading Raspberry Pi from Buster to Bullseye (note: not recommended by the Raspberry Pi Foundation but this preserves your installed packages) – Blues Wireless.
Lego base plates for STEMMA boards!
Lego base plates for STEMMA boards! 3D Printed holders feature built-in standoffs for press fitting PCBs. STEMMA boards plug-and-play with various devices and accessories, without any soldering – Twitter, YouTube and Adafruit Learning System.
CircuitPython Deep Dive Stream with Scott Shawcroft
Scott is off this week for some rest and relaxation – the posts will resume in 2 weeks.
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.
A Request for Help: Mu Translations please!
The Mu Python Editor is requesting assistance in translating messages into languages other than English. Coordination of translations is being done via this discussion on GitHub.
Read more – MadeWithMu.
Next week – a guest editor!
For the December 28th newsletter, Editor Emeritus Phil Torrone will take over the publishing reins once more. Stay tuned for next week!
News from around the web!
A MIDI musical note visualizer with NeoPixels and a Xiao mounted on PCB stock, programmed in CircuitPython – Twitter.
A better Raspberry Pi Pico MIDI controller – 4Dcu.be.
Working on this beauty right here. The TreeHouse Terminal V2 which fixes basically all the issues in the first rev. Working on building a CircuitPython build to test on it – Twitter.
New Video tutorial : Build IoT enabled holiday lights to decorate your Christmas tree, using a Raspberry Pi, balenaIO and AdafruitIO – Twitter and YouTube.
Another watch design which can run CircuitPython – Twitter.
Boston College Physical Computing class final portfolios – YouTube and Twitter.
CircuitPython IDE – new Editor shortcuts in REPL mode help you explore while writing the script – YouTube and Twitter.
Making a hacked See N Say toy with CircuitPython – Kevin Neubauer.
Raspberry Pi Pico Powered RFID Lighting with NeoPixels and MicroPython – Tom’s Hardware and Twitter.
Install MicroPython on your Sonoff Basic Smart Switch – Cloud4RPi.
A MIDI music visualizer (like in Close Encounters) with Raspberry Pi Pico and MicroPython – Adafruit Blog and YouTube.
Did you know the James Web Space Telescope is calibrated with Python? And the code is on GitHub.
Upgrading to new software versions is work, and work that doesn’t benefit your software’s users. Users care about features and bug fixes, not how up-to-date you are. But there is only so much time you can delay upgrading, and for mainline Python 3.6, the time to upgrade is right now. Python 3.6 is reaching its end of life as of December 2021.
No more bug fixes.
No more security fixes.
“It’s dead, Jim.” – Python⇒Speed.
Between Blocks and Text: Strype – a novel editor for Python – a talk at micro:bit LIVE 2021 – YouTube.
Georgi Ker Awarded the PSF Community Service Award for Q4 2020 – Python Software Foundation.
PyDev of the Week: Martin Maans on Mouse vs Python
CircuitPython Weekly Meeting for December 20, 2020 (notes) on YouTube.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? PyLeap.
Adafruit writes: “We’ve gotten a lot of requests for a MCP23017 breakout and we’ve always sorta been like ‘ehh why not just use the DIP chip?’ but with STEMMA QT we could see the use case for a plug and play version that comes with all the passives on board. So this breakout has 16 GPIO each with matching ground pads. Each GPIO can have a pullup, with 3 address pins, 2 IRQ pins, and it runs on 3 or 5V power and logic. We think this board is kind qt!” – Video and Adafruit Blog Post.
Newt, a low-power, open source, 2.7-inch IoT display powered by an ESP32-S2 module and featuring SHARP’s Memory-in-Pixel (MiP) screen technology – CrowdSupply.
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 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!
Pip-Boy 2040 Wrist-Mounted Prop from John Park
MIDI Stomping Pads from Liz Clark
Adafruit NeoSlider from Kattni
Neocontroller Color Grading Input Box from John Park
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!
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 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 released CircuitPython 7.1.0-beta.2 on Friday December 10. A significant regression was discovered over the weekend; I fixed it and released beta.3 on Monday.
I am now working mostly on fixing things we’d like to be fixed for 7.1.0 final. We will defer some more minor 7.x.x bug fixes to 7.2.0; the main branch is ahead of the 7.1.x branch in several ways, some slightly incompatible, and it would be nice to start making 7.2.0-alpha or beta releases.
Adafruit NeoSlider guide was published. Otherwise, it’s been a short week, so not much else to report. Happy Holidays, everyone!
This past week, I worked some more on the Blinka Displayio library. I started by updating the library interface to the same as the CircuitPython 7.0.0 displayio interface including adding the typing. I realized there was much work done in a parallel effort by a community member, but as a complete rewrite, and so I’ve been slowly integrating the code from that project in as I go along so they end up at similar points without sacrificing any of the speed gains.
This week I finished up SPI support for the Broadcom port of CircuitPython and debugged the NeoPixel support. It is now working. There still are some pretty critical bugs in the port, so I’ll be looking at those. I also need to wrap with Zero support and the learn guide to go with it. I’ll be in and out over the holidays and look forward to CircuitPython 2022 discussions in January. Start brainstorming now for what CircuitPython could be in 2022 and beyond.
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 Discord or on Twitter with hashtag #CircuitPython.
CircuitPython’s stable release is 7.0.0 and its unstable release is 7.1.0-beta.3. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20211220 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(https://www.python.org/download/pre-releases/).
2708 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
Adafruit IO and Arduino Programming – EngineerAlly – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 32,243 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.