If you missed Tuesday’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Tuesday (which is out before this post). 9,300+ 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! This week there are more projects than usual, so you may wish to browse them to look for items of interest.
The CircuitPython in 2022 Survey
As 2022 starts, Scott Shawcroft, lead CircuitPython developer, requests the Python on Hardware community take time to share their goals for CircuitPython in 2022.
Here are a few ways to post:
- a video on YouTube
- a post on the CircuitPython Discord forum
- a post in the /r/circuitpython subreddit
- a blog post on your site
- a series of Tweets
- a Gist on GitHub
TIOBE Declares Python Programming Language of the Year 2021
Python has won the prestigious TIOBE Programming Language of the Year award for 2021. This is the second time in a row. The award is given to the programming language that has gained the highest increase in ratings in one year. C# was on its way to get the title for the first time in history, but Python surpassed C# in the last month.
Python started at position #3 of the TIOBE index at the beginning of 2021 and left both Java and C behind to become the number one of the TIOBE index. But Python’s popularity didn’t stop there. It is currently more than 1 percent ahead of the rest. Java’s all time record of 26.49% ratings in 2001 is still far away, but Python has it all to become the de facto standard programming language for many domains – TIOBE.
Using Both Cores of a Raspberry Pi Pico in MicroPython
diyelectromusic has been doing musical/MIDI visualization projects with a Raspberry Pi Pico. Dual use of an LED matrix and a 4×7-segment display was a bit slow. So they looked to use the unused core on the Pico to provide extra processing power.
One core is listening to the MIDI and updating the LED matrix using the WS2812 protocol; the other is keeping the 8-segment LED scanning (over SPI) showing the last MIDI command/note received.
Project of the Week: An LED Choker
Twitter user rmna demonstrates a wonderful LED alphanumeric choker – Twitter.
My new favorite project: a text display choker for status updates at the club. (It) uses an Adafruit alphanumeric display FeatherWing and a Feather M0. Proto grid hosts a button to switch patterns, and CircuitPython lets the owner edit the code to add new text!
CircuitPython Deep Dive Stream with Scott Shawcroft
This week, Scott did a recap of 2021 and review of the #CircuitPython2021 posts and how close we got to the mark.
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.
PrettyPins – Generate “Pretty” Pinout Diagrams
News from around the web!
Adafruit KB2040 Review: Custom Keyboard Creator – Tom’s Hardware.
So last month I built this lil time/weather/Spotify display from an Adafruit Matrix Portal kit. Very impressed how easy it was (it’s Python!!). The only real difficulty: the Spotify API. They don’t have a “limited input device” API for displays – Twitter.
More on Rubber Duckies and CircuitPython – Adafruit Learning System.
My kickboard is (Raspberry Pi) Pico and CircuitPython powered! CircuitPython is a great and approachable spot to start, because of the fantastic community behind it – Twitter.
Interfacing balena edge devices with AdafruitIO – balena.io.
A lively thread discussing Mu vs. an editor with more features like VSCode – Twitter.
A bouncing ball example in CircuitPython – Twitter.
Encrypt and Decrypting strings (Easily) in CircuitPython – Mark McGookin.
FIDI SAMD21 board: Fast prototyping with CircuitPython – lectronz.
I did it! Using CircuitPython, I can download a bitmap of an album over WiFi from my web server and display it locally – and not run out of memory! Now to hook up MQTT to push new album art. Say hello to Liz Phair. (Ignore the lines, LEDs don’t like having their picture taken) – Twitter.
Packaging a MicroPython module, deploying it to PyPI, and installing it directly onto a Raspberry Pi Pico via Thonny – Twitter.
Secrets of MicroPython: How to measure temperature – Bhavesh Kakwani.
Overengineering Coffee Bean Storage – Dennis Schubert.
lectronz.com is a new marketplace for electronic enthusiasts focusing on the open-hardware and DIY electronics community – lectronz.
Fundamental Python: a comprehensive and FREE Online Python Development tutorial going step-by-step into the world of Python (under development) – GitHub.
PyDev of the Week: Lais Carvalho on Mouse vs Python
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 ten (!) new boards added!
- NanoPi NEO (Blinka)
- CAST-AWAY RP2040
- Compute Module 4
- Seeeduino XIAO RP2040
- STM32 Thing Plus
- Seeed XIAO nRF52840 Sense
- PyKey18 Numpad
- PyKey87 Ten Key Less (TKL) Keyboard
- Orange Pi 3 (Blinka)
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!
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!
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 343!
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!
Last week, I added some features to countio, allowing counting of both rising and falling edges, and also added pullup/pulldown support. This week I wrote a simple example demonstrating using asyncio to control and vary a NeoPixel animation. Now I am working on some further bugs we should fix for the next release of CircuitPython.
I’ve been pulled into the floppy vortex of winter 2021/2022. With some work-in-progress code, I can grab raw flux timings in CircuitPython, then take them to a desktop computer and decode MFM data with a second Python program. The ultimate goal is to allow read access to old DOS floppies directly in CircuitPython with
This past week was short for me, but I started splitting the Blinka Displayio shared functions into a Display Core module. The transition is started, but due to the relatively small number of people that are actually using the system and the availability of much better graphics systems, it makes sense to not put any more work into the library, so I am leaving it to the community or whomever wants to use it to advance it more. The library can be found at https://github.com/adafruit/Adafruit_Blinka_Displayio.
I’m just starting up after taking another long weekend for the holidays. My main goal this week is to wrap up the Raspberry Pi work for the time being and spend some time on the ESP32-S3. I’ve got a pull request out that adds Pi Zero support and hopefully fixes the SD card support along with it. The last thing I want to do is merge in Piunora support because I’ve already started. I should be able to get all of those changes out this week.
On New Year’s Day I also kicked off #CircuitPython2022. I’m excited to see where folks would like CircuitPython to go. I’m going to do a retrospective on #CircuitPython2021 for my first stream of the year and then follow up with #CircuitPython2022 the following stream. So, please let us know when you post something by emailing [email protected]. Thanks!
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. Organised 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.
20220110 is the latest CircuitPython library bundle.
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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 32,563 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.