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

View this email in your browser.

Welcome to the latest Python on Microcontrollers newsletter! Each week I see what is happening in the Python, hardware, and open source communities and I’m in awe. I do a lot of reading to find the most pertinent content to feature in the newsletter, and this week did not disappoint. New versions of CircuitPython and main Python (CPython). Some nice news on Pi 5 hardware and finally dark mode in the OS! All that and some fantastic work by the community in using Python in a broad variety of projects. I hope your December is going well and I hope we all may enjoy the season and each other. – 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:

CircuitPython 8.2.9 Released

CircuitPython 8.2.9 Released

CircuitPython 8.2.9 is the latest bugfix revision of CircuitPython and is a new stable release – Adafruit Blog and GitHub.

Notable changes to 8.2.9 since 8.2.8

  • PIO DMA fix for RP2040.
  • New and removed boards.
  • Individual board fixes.

Raspberry Pi Releases the HAT+ Standard and More on PCIe

HAT+ Standard and More on PCIe

Two months after the announcement of the Raspberry Pi 5, additional details have been released on the hardware. Specifications on the PCIe connector and required cabling will help hardware developers adhere to hardware specifications. In addition, the new HAT+ specification updates the 2014 HAT standard for signaling between peripherals and computer – Raspberry Pi News.

The First Raspberry Pi OS Update Since Pi 5 Adds Features

Raspberry Pi OS Update

Raspberry Pi OS has now been updated to fix bugs since the launch of the initial Bookworm version. The update includes improved support for encrypted connections in WayVNC; the latest version of Thonny; Mathematica and Scratch 3 working on Raspberry Pi 5; and a bunch of other small bug fixes and tweaks. And finally, an often requested feature: Dark Mode – Raspberry Pi News and The Register.

Python 3.12.1 Released

Python 3.12.1

Python 3.12.1 is now available. It is the latest maintenance release containing more than 400 bugfixes, build improvements and documentation changes since 3.12.0 – Python Insider Blog.

Linus Torvalds on the state of Linux today and how AI figures in its future

Linus Torvalds on the state of Linux

Linus Torvalds on the state of Linux today and how AI figures in its future – ZDnet.

“Linus Torvalds at the Linux Foundation’s Open Source Summit Japan talked about the current state of Linux. The next Linux kernel release, Linux 6.7 will arrive right around Christmas.’ On AI, Torvalds replied, “I’m convinced it’s gonna happen. And it may well be happening already, maybe on a smaller scale where people use it more to help write code.”

MEMENTO – A Python Programmable DIY Camera

MEMENTO - Python Programmable DIY Camera

Coming soon to adafruit.com, the MEMENTO Camera Board. It’s a development board to create programmable camera and vision projects, with a camera module, TFT preview screen, buttons, SD card slot and it’s driven by a powerful ESP32-S3 with 2 MB of PSRAM for buffering 5 MegaPixel camera images – Adafruit.

Pybricks Team Releases the First Beta of Block Coding for All Modern LEGO® Hubs

Block Coding for All Modern LEGO® Hubs

The Pybricks team released a new beta of block coding for all modern LEGO® hubs. For the first time, fans of all LEGO themes can bring their smart bricks together in a single app. Whether you want to make smart train layouts, autonomous Technic machines, interactive BOOST creatures, or super-precise SPIKE and MINDSTORMS robots, you can do it with PyBricks – PyBricks.

HP Robots Releases Otto DIY Programmed with MicroPython

Otto DIY

Otto DIY

Otto is a configurable robotics kit licensed under HP robots by Moravia. The bots can be programmed in a Blockly language which has MicroPython underneath – HP Robots via X.

XDA Developers Choose the Best Single Board Computer for 2023

Best Single Board Computer

XDA looks at the single board computer (SBC) market and chooses their favorite eight for 2023 – XDA.

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

Last Friday, Scott streamed work on CircuitPython workflow refactoring.

You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.

CircuitPython Parsec

CircuitPython Parsec

John Park’s CircuitPython Parsec this week is on For Statements with Enumeration – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for December 4, 2023 (notes) on YouTube.

Project of the Week: A CircuitPython-Powered Typewriter

CircuitPython-Powered Typewriter

Max Lupo writes about a CircuitPython powered typewriter project. The project uses an Adafruit KB2040 board to send parallel data to the vintage electronic typewriter via its Centronics (parallel) port – Mastodon.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Eben Upton Hints at an RP2040 Successor, Promises a Raspberry Pi Compute Module 5 in 2024.

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.

Creating a CircuitPython library Bundle for Circup

Creating a CircuitPython library Bundle for Circup – Adafruit Playground.

Retro blinkenlights

Retro blinkenlights: driving 4 charlieplex LED matrices – Adafruit Playground.

UDP Catcher

A UDP Catcher with Raspberry Pi Pico W, CircuitPython and a 16×2 character display- Adafruit Playground.

News from around the web

CUBOTino

CUBOTino, the Rubik’s Cube solving robot. It uses a Raspberry Pi Zero 2W and Python – Raspberry Pi News, GitHub and Instructables.

MicroPython clock

The LaMetric Time clock has multiple modes chosen wirelessly using a Raspberry Pi Pico. Programmed in MicroPython – X (Japanese).

Pi 5 X-rays

Raspberry Pi 5 and RP1 X-ray scans – Jeff Geerling.

The New Essential Guide to Electronics in Shenzhen

Chinese maker Naomi Wu is collaborating with Andrew ‘bunnie’ Huang to update Bunnie’s guide to Shenzhen. The New Essential Guide to Electronics in Shenzhen updates this resource for the present day and is essential for navigating the largest electronics mecca in the world – Crowd Supply via Mastodon and X.

Acorn precision farming rover

The Acorn precision farming rover, solar powered and open source, coded in Python – GitHub via X.

Jorvon Moss interview

Robot Talk chats with Jorvon Moss (@Odd_Jayy) about making robots at home, and robot design and aesthetics – Robot Talk.

3D Bat Model

Roland Schulz has made a simple bat 3D model which can be used to explain to students how it is possible for bats to fly and hunt insects using ultrasound. A speaker and a display show the distance to obstacles. It uses a Raspberry Pi Pico and MicroPython – X Thread.

Automating the Google browser game

Automating the Google dinosaur jump game with an ESP32 and MicroPython – X.

Virtual Jar of Fireflies

Virtual Jar of Fireflies – beauty and ambience created by a Mason jar of fireflies, using an Adafruit Trinket M0 and CircuitPython – hackaday.io.

Yolov7

YOLOv7 pose to OSC output including support for multiple pose detection in Python. Based on the Yolov7 implementationThe Little-Scale Blog.

Calliope mini Python Editor

The Calliope mini Python Editor is a web browser-based editor for Python on a Calliope mini board (which appears to be aimed at German schools) – python.calliope.cc.

shshsh

Shshsh is a bridge which connects Python with the Linux shell – GitHub.

How to Get the Current Time in Python

How to Get the current time in Python – Real Python.

New

Pimoroni Yukon

Pimoroni Yukon is a high-power modular robotics and engineering platform, built around RP2040 and designed to drive robots, props and devices – Pimoroni via X. Programmed in MicroPython – GitHub.

PicoUART6

PicoUART6 6x UART to USB bridge supports up to 6 Raspberry Pi 5 boards. The PicoUART6 board makes use of the new Raspberry Pi 5 UART connector to interface multiple Raspberry Pi 5 over UART and control them through the USB board of the Pico board – CNX Software.

Waveshare ESP32-S3

Waveshare has an ESP32-S3 based board with an integrated 4.3 inch TFT LCD, RS-485, and CAN bus for home automation and robotics applications – Notebook Check.

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 no new boards added. More are in development.

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

Simplifying Qualia CircuitPython Projects from M. LeBlanc-Williams

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

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

  • 145627 PyPI downloads over 323 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 11437
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 10753
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 3602
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1576
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1485
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1271
  • Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1245
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1230
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1212
  • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1210

What’s the CircuitPython team up to this week?

What is the team up to this week? Let’s check in:

Dan

I’m continuing with fixes and additions to CircuitPython 8.2.x and 9.0.0. I released CircuitPython 8.2.9 last week with some minor but useful fixes.

Melissa

This week I wrote a Learn guide on Simplifying Qualia CircuitPython Projects by using the Qualia Helper Library. I also added information on using the new 4.58” Bar Display and 3.7” Bar Display. In the process of doing all of that, I found a couple of CircuitPython bugs and I am helping with testing out the fixes.

Tim

This week I ran a patch on all of the libraries to fix an issue occuring with the docs build inside of Read The Docs. A small chunk of them didn’t complete automatically for one reason or another so I went through those ones manually and applied the same fix. I’ve also continued refactoring the web workflow support proposed for circup.

Jeff

This week a lot of things came together. I published the CircuitPython library for the upcoming camera product (PyCamera). I fixed a problem with CircuitPython on the Qualia board for displays that were not a multiple of 16 pixels in width, and I am in the process of adding JPEG decoding to CircuitPython using the TJpg decoder.

Jpeg decoding with bug (or, accidental glitch art):

Jeff

Jpeg decoding without bug:

Jeff

Scott

This last week I’ve been in Espressif ESP land. I upgraded the ESP IDF to version 5.1.2 and noticed it features dynamic BLE services. Now we should be able to complete bleio support on ESP. (We haven’t started though and it’s non-trivial.) I’ve also continued working on improving the web workflow. I proposed changes to allow SD cards to be used from the web workflow and found and fixed a big bug in the process.

Liz

This week I started working on a couple of different tasks. I’m updating the guide for the 3.5” TFT with Capacitive Touch display for the new revision in the shop. The new version uses the FT5336 capacitive touch driver, so I’ve written a new CircuitPython driver for it. I also started working on a new project with the Qualia S3 and the 4” round display. The project will be a flight tracker with compass functionality so you can visualize where the flights are overhead. So far I’ve been working on the displayio elements with vectorio and next I’ll start on calculating the compass math with a 9 DoF sensor.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on December 27th – Meetup.

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-alpha5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20231207 is the latest Adafruit CircuitPython library bundle.

20231207 is the latest CircuitPython Community library bundle.

v1.21.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,733 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,223 Thanks

38,223 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 38,223 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.