Daily tips and tricks from the experts at Adafruit!
View this email in your browser

View this email in your browser. Warning: Flashing Imagery

Welcome to the latest Python on Microcontrollers newsletter! We welcome 2024 as a wonderous 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

MicroPython Version 1.22.0

The latest release of MicroPython introduces SSL/TLS support to asyncio, for both the client and server sides. The interface matches CPython: asyncio.open_connection() and 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 Exploring Manufacturing in India

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

PEP Talk

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

GitHub Slash Commands

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 Version 11

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

MEMENTO Camera Board

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

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 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

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.

CircuitPython Parsec

CircuitPython Parsec

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

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

Raspberry Pi ZeroWriter

ZeroWriter is an open-source DIY eink 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.

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

WaveBuilder: Construct a synthio Wave Table from a List of Oscillators - Adafruit Playground.

News from around the web

CT6

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.

NumWorks Calculators

The evolution of NumWorks calculators running MicroPython - Qiita (Japanese).

Moon phase

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.

PCF8523

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

The haunted keyboard: a 40% Pico Keyboard PCB with ChatGPT integration (written in CircuitPython) - Tindie, YouTube and Hackaday.

es100-wwvb

es100-wwvb is a WWVB 60Khz Full functionality receiver/parser for the I2C bus based ES100-MOD, receiving the time signal from NIST in Colorado to Python and CircuitPython - GitHub.

Game Device

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.

Power Of CircuitPython For IoT Devices

Leveraging The Power Of CircuitPython For IoT Devices - OpenSource.

Turtle Graphics on ESP32-S3-EYE/CircuitPython

Turtle graphics on ann ESP32-S3-EYE with CircuitPython - YouTube and Coxxect.

IoT Smart Home App

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.

Quote display

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 kbd.news

Another year of keyboard news (2023) from Keyboard Builders’ Digest - kbd.news.

Flirc Raspberry Pi 5 Case Review

A review of the Flirc Raspberry Pi 5 case - bret.dk.

Revolution Pi

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

A Python/Django Advent calendar - b-list.org.

Raspberry Pi Retro PC

Using a Raspberry Pi to emulate a vintage PC - Hackaday and Printables.

New

LILYGO T4-S3

The LILYGO T4-S3 board combines a 2.41-inch AMOLED touchscreen display with a ESP32-S3R8 microcontroller - CNX Software and GitHub.

Sipeed Longan Pi3H

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

New Learn Guides

Adafruit MEMENTO Camera Board from Liz Clark

CircuitPython Libraries

CircuitPython Libraries

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!

New Libraries

Here’s this week’s new CircuitPython libraries:

Updated 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:

Dan

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.

Melissa

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.

Jeff

Jeff

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.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on January 24th – Meetup.

PyCascades 2024

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

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.

Latest Releases

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

CircuitPython translation statistics on weblate

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.

38,336 Thanks

38,336 THANKS

Adafruit Discord

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

ICYMI

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.

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.