View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! We welcome 2024 as a wondrous year for Python on Hardware. A new version of MicroPython is out now and CircuitPython 9 is on the horizon. New Raspberry Pi hardware has invigorated single board computers. And the community is thriving! May everyone have a joyful New Year. – Anne Barela, Ed.
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:
MicroPython Version 1.22.0 Out Now
The latest release of MicroPython introduces SSL/TLS support to
asyncio, for both the client and server sides. The interface matches CPython:
asyncio.start_serve() now both accept an SSL argument to supply an
SSLContext object. As part of this, new methods were added to
SSLContext to load certificates, and certificate date/time validation was enabled on all ports that use mbedTLS.
Qstr pools are now sorted, which provides a significant performance boost for
qstr_find_strn(), which is called a lot during parsing and loading of .mpy files, as well as interning of string objects, which happens in most string methods that return new strings. And much more – GitHub.
Note with MicroPython 1.21 and earlier versions, an advisory was released December 28th CVE-2023-7158 · ISSUE 13007 – VulDB.
Arduino Exploring Manufacturing in India to Limit Counterfeit Sales
Arduino is considering manufacturing in India. The company, best known for its open source microcontroller boards, hopes to restrict the rise of counterfeit boards and cater to the growing demand from India’s youth population.
The Italian firm is currently exploring partnerships with electronic manufacturing service (EMS) companies in the South Asian nation to begin its local production by as early as the first quarter of next year, CEO Fabio Violante told TechCrunch in a virtual interview. This marks a substantial shift from the company’s practice of producing all its boards in Italy.
“It is a challenge, because we are open source and make money from selling the original hardware,” he noted. “So, the clones and counterfeits are a big chunk of the market.”
Arduino is looking to address the problem of fake boards globally by making its hardware more sophisticated, which makes it more difficult to counterfeit – Techcrunch.
PEP Talk: What is a Python Enhancement Proposal
Mariatta’s talk at the 2023 North Bay Python gathering explains what Python Enhancement Proposals (PEPs) are and how they provide information to the Python community – Speakerdeck.
GitHub Slash Commands Save Time Writing Markdown
Are you placing your code in GitHub and documenting with Markdown? GitHub slash commands make it easier to type more complex Markdown, such as tables, tasklists, and code blocks – GitHub.
FreeRTOS Version 11 Out with Symmetric Multiprocessing
FreeRTOS V11.0 is out, and the big news is that it has finally Symmetric Multi-Processing (SMP) integrated into the mainline. This greatly simplifies FreeRTOS usage, easily switching between single-core and multi-core applications – MCU On Eclipse.
CircuitPython Powering Adafruit’s MEMENTO Camera Board Makes Programming Vision Apps a Snap
Adafruit’s latest development platform focuses on camera and vision. The MEMENTO Camera Board lets you experiment with an all-in-one, CircuitPython-enabled five-megapixel camera board with a rich set of peripherals, like those you might find on an IoT device. Plus, it fits in the palm of your hand!
The centerpiece of MEMENTO’s 63.6 x 63.3 x 13 millimeter printed circuit board is an OV5640 camera module. This 5MP still image sensor supports manual and auto-focus. An Espressif ESP32-S3 system-on-chip (SoC) module powers the camera board – hackster.io and CNX Software.
10 Raspberry Pi Projects with Python to Boost Your Skills
The internationally popular series of Raspberry Pi boards comes with the simple, yet powerful Python programming language built in. Once you’ve got your bearings and have things set up with your Pi, you can get your hands on projects that work with additional Python derivatives such as MicroPython and CircuitPython. In this list of Raspberry Pi projects that work with Python, you’ll find some intriguing ways to sharpen your programming skills. Whether for practical use or just for fun, being able to program in Python is a valuable asset – All3DP.
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
Deep Dive with Scott and Tim will resume January 5th, live on YouTube. You can see past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park’s CircuitPython Parsec is off this week. You may catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
The CircuitPython Weekly Meeting will return January 8th.
The CircuitPython Show
The CircuitPython Show is an 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 – CircuitPython Show.
The latest episode was released January 1st and features Debra Ansell. Paul and Debra discuss the Orb-sessed LED Sphere, favorite maker skills, the Pixelblaze, and more.
Project of the Week: Raspberry Pi ZeroWriter eInk Typewriter
ZeroWriter is an open-source DIY e-ink typewriter. It’s built for beginners to the DIY/Cyberdeck/Raspberry Pi world. It uses an inexpensive 4.2” e-paper panel with modified drivers and is powered by a Raspberry Pi Zero 2W, coded in Python – Tom’s Hardware and Reddit.
Popular Last Week: Python in EXCEL Cheatsheet
The most popular link in the newsletter continues to be a Python in EXCEL Cheatsheet – X.
New Notes from Adafruit Playground
Adafruit Playground is a new place for the community to post their projects and other making tips/tricks/techniques. Ad-free, it’s an easy way to publish your work in a safe space for free.
WaveBuilder: Construct a synthio Wave Table from a List of Oscillators – Adafruit Playground.
News from around the web
CT6 Is a Raspberry Pi Pico W-powered four-port home energy monitor running on a Raspberry Pi Pico W and MicroPython – hackster.io and GitHub.
The evolution of NumWorks calculators running MicroPython – Qiita (Japanese).
Lorraine Underwood is completing a Raspberry Pi project where you enter a date and the moon shows what it was on that date, coded in MicroPython – X.
Testing a PCF8523 real-time clock (RTC) on an Adafruit Adalogger FeatherWing. The MCU is a Raspberry Pi RP2040 on a Feather board (Guide). The ‘Wing also has an SD card slot – X.
The haunted keyboard: a 40% Pico Keyboard PCB with ChatGPT integration (written in CircuitPython) – Tindie, YouTube and Hackaday.
es100-wwvb is a WWVB 60 Khz full functionality receiver/parser for the I2C-bus-based ES100-MOD, receiving the time signal from NIST in Colorado to Python and CircuitPython – GitHub.
Using an Adafruit ItsyBitsy M4 with CircuitPython and Microsoft’s MakeCode. Choose your game and copy its bootloader (UF2) to the circuitpy drive, then play – X.
Leveraging The Power Of CircuitPython For IoT Devices – OpenSource.
Turtle graphics on ann ESP32-S3-EYE with CircuitPython – YouTube and Coxxect.
An Internet of Things (IoT) Flutter application that allows users to interact with and control connected devices which are programmed in MicroPython – GitHub via X.
A weekend project to view my Readwise daily highlight, it refreshes every hour. Built with Inkplate 6 from Soldered Electronics and Micropython – X.
Another year of keyboard news (2023) from Keyboard Builders’ Digest – kbd.news.
A review of the Flirc Raspberry Pi 5 case – bret.dk.
Revolution Pi is an open, modular and inexpensive industrial PC based on the well-known Raspberry Pi. Housed in a slim DIN-rail housing, the three available base modules can be expanded by a variety of I/O modules and fieldbus gateways – Revolution Pi.
A Python/Django Advent calendar – b-list.org.
Using a Raspberry Pi to emulate a vintage PC – Hackaday and Printables.
The LILYGO T4-S3 board combines a 2.41-inch AMOLED touchscreen display with a ESP32-S3R8 microcontroller – CNX Software and GitHub.
The Sipeed Longan Pi3H is a Raspberry Pi Zero-sized board with gigabit Ethernet, WiFi 6, HDMI, and USB ports – CNX Software and GitHub.
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 no new boards added, but 2024 will certainly bring many more. Stats from circuitpython.org show nearly 600 boards run CircuitPython!!
- 468 boards run CircuitPython
- 128 boards run CircuitPython with the Blinka compatibility layer
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:
New Learn Guides
Adafruit MEMENTO Camera Board from Liz Clark
The CircuitPython library numbers are continually increasing, while existing ones continue to be updated. Here we provide library numbers and updates!
To get the latest Adafruit libraries, download the Adafruit CircuitPython Library Bundle. To get the latest community contributed libraries, download the CircuitPython Community Bundle.
If you’d like to contribute to the CircuitPython project on the Python side of things, the libraries are a great place to start. Check out the CircuitPython.org Contributing page. If you’re interested in reviewing, check out Open Pull Requests. If you’d like to contribute code or documentation, check out Open Issues. We have a guide on contributing to CircuitPython with Git and GitHub, and you can find us in the #help-with-circuitpython and #circuitpython-dev 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 471!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 90423 PyPI downloads over 323 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 6898
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 5994
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2107
- Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 904
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 771
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 769
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 740
- Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 715
- Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 688
- Adafruit CircuitPython BME680 (adafruit-circuitpython-bme680): 656
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in:
It’s been a quiet week. I am looking at 9.0.0 issues, and also doing some additional support work to cover for people who are out for the holidays.
This past week I’ve working on fixing scripts that broke when the new Raspberry Pi OS came out. I’ve also been fixing Raspberry Pi 5 related issues.
I made some improvements to the
jpegio module. It’s now possible to read a jpeg file from a file or even from an
adafruit_requests response object! You can see sample code within the Pull Request – this will be in the next version 9 alpha, whenever it comes out.
The next MicroPython Meetup in Melbourne will be on January 24th – Meetup.
PyCascades 2024 is back in Seattle, Washington, USA and online, April 5-8th at the University of Washington’s Kane Hall. – PyCascades.
PyCon US 2024 Launches – May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.
Send Your Events In
If you know of virtual events or upcoming events, please let us know via email to cpnews(at)adafruit(dot)com.
CircuitPython’s stable release is 8.2.9 and its unstable release is 9.0.0-alpha6. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231228 is the latest Adafruit CircuitPython library bundle.
20231227 is the latest CircuitPython Community library bundle.
v1.22.0 is the latest MicroPython release. Documentation for it is here.
3.12.1 is the latest Python release. The latest pre-release version is 3.13.0a2.
3,768 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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,336 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, Instagram Reels), 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.
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.