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! The chill of winter appears to be waning and Python news is blooming. Raspberry Pi celebrated 12 years on leap day. PyCon US 2024 talks have been announced with at least three PoH related events. A new verson of KiCad for all your open source PCB design needs. And so much more - I encourage you all to consider answering the Adafruit IO survey below. - 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:

Raspberry Pi Celebrates 12 Years

Raspberry Pi Turns 12

Happy Birthday to Raspberry Pi on 29 February. They’re a leap-year baby, technically it’s their third birthday. They’ve sold 61 million units as of their anniversary. They celebrated by having their in-house maker Toby whip up projects with Raspberry Pi Pico W, NeoPixel LEDs and MicroPython - Raspberry Pi News, Tom’s Hardware and Adafruit Blog.

PyCon US 2024 Talks Schedule

PyCon US 2024 Talks Schedule

PyCon US has released their speaker schedule for 2024. Several talks and tutorials involve Python on Hardware - PyCon US 2024.

  • Open Source Robotics with Python: Learn Robotics with No Robot Required, by Kat Scott
  • Connecting Old to New with CircuitPython: Retrocomputer input devices on modern PCs, by Jeff Epler
  • Introduction to MicroPython: getting started with BBC micro:bit, by Juliana Karoline de Sousa

KiCad 8 released

KiCad 8 released

The KiCad project announced the release of version 8.0.0 of their PCB layout program. Despite coming only a year after KiCad 7 was released, version 8 is packed with new features, improvements, and hundreds of bug fixes - KiCad and Adafruit Blog.

Adafruit IO in 2024 Survey

Adafruit IO in 2024 Survey

Inspired by Scott’s blog post, CircuitPython 2024, the developers and designers on the Adafruit IO team are requesting feedback (from you!) to help guide development of Adafruit IO in 2024 - Adafruit Blog.

“If you’re a current Adafruit Free IO user, an Adafruit IO Plus (paid) user, or have previously used Adafruit IO in the last year, we want to hear from you!”

The US White House Recommends Use of Memory-Safe Languages Like Python

US White House Report

Last week, the White House published a report recommending the use of memory-safe programming languages to eliminate an entire class of vulnerabilities affecting software. The report quotes claims from large software producers like Google and Microsoft which estimate that 70% of vulnerabilities affecting software are due to memory-safety issues. The Python Software Foundation’s response to the US Government’s Request for Information noted Python’s memory-safety and ability to wrap code written in C, C++, and Rust among other systems languages - PSF.

9 tips I Wish I knew Before Starting My First Raspberry Pi Project

9 tips I wish I knew before starting my first Raspberry Pi project

Find your new Raspberry Pi daunting? These tips from Pocket-lint should have your Raspberry Pi projects up and running in no time - Pocket-lint.

Arduino Docs Gets a Revamp

Arduino Docs gets a revamp

Arduino Docs, a public and collaborative repository of info, tech specs, and tutorials, gets a major facelift - Arduino Blog.

“Open-source through and through, Arduino Docs is a shared space that’s wonderfully alive with updates and new ideas. But it can also get messy and confusing – and that’s why we decided to revamp its design and architecture completely, to improve your experience and navigation.”

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 {subject}.

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 Display Buttons - Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for February 26, 2024 (notes) on YouTube.

Project of the Week

UIs for Your Projects

Craft Stunning UIs for Your Projects: Transform a Word Clock with a Web Server (Pico, ESP32 and MicroPython) - YouTube, GurgleApps and GitHub via X.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Raspberry Pi 5 vs 4: Is the extra power worth the cost?.

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.

Output Eurorack Control Voltage (CV) Signals from synthio

Output Eurorack Control Voltage (CV) Signals from synthio - Adafruit Playground.

WaveStore: Create a Library of synthio Voices

WaveStore: Create a Library of synthio Voices - Adafruit Playground.

A Beginners Guide to writing USB HID Report Descriptors by a Beginner

A Beginners Guide to writing USB HID Report Descriptors by a Beginner - Adafruit Playground.

News from around the web

Radar Clock

A radar-style clock using a Raspberry Pi, a round display and Python - X.

Radxa X2L and ADC Pi, Bridging Microcontrollers with Linux

Radxa X2L and ADC Pi, Bridging Microcontrollers with Linux (and Python) - Brian Dorey.

Tiny Logo

A tiny Python logo created using a scanning electron microscope. It measures 40μm x 40 μm, likely the smallest Python logo made to date - LinkedIn.

Dial USB

Using a rotary phone dial to enter numbers as a USB keypad with CircuitPython - Mastodon.

AQI Quality Monitor

AQI Quality Monitor v2.0 Webserver using a Raspberry Pi Pico W and CircuitPython - hackaday.io and YouTube.

Raspberry Pi Pico Synth_Dexed? – Part 3

Raspberry Pi Pico Synth_Dexed (with overclocking) – Part 3 - DIY Electronic Music.

Maker uses Raspberry Pi and AI to block noisy neighbor's music

Maker uses Raspberry Pi, Python and AI to block noisy neighbor’s music by hacking nearby Bluetooth speakers - Tom’s Hardware and hackster.io.

A Retrospective on Requests

A Retrospective on Requests: using Python for HTTP/HTTPS requests - cat /dev/brain.

What is a Real-Time Operating System (RTOS)

What is a Real-Time Operating System (RTOS) - DigiKey.

Armbian

Armbian released for the Raspberry Pi 5 - Armbian.

Lightweight DietPi v9.1 adds support for Raspberry Pi 5

Lightweight DietPi v9.1 adds support for Raspberry Pi 5 - Tom’s Hardware and DietPi.

WiFi-enabled memory stick

PiUSB – How to make a WiFi memory stick using a Raspberry Pi Zero W - Maker Hacks.

Almost a fully open-source boot chain for Rockchip's RK3588

Almost a fully open-source boot chain for Rockchip’s RK3588 - Collabora.

BME680 driver for MicroPython

A new BME680 driver for MicroPython - GitHub via X.

Neo trinkey Pomodoro

Using an Adafruit Neo Trinkey as a Pomodoro timer - Mastodon and GitHub.

“Solved my issue of being able to use the Trinkey Neo as a pomodoro device I can pop into a computer without it loading a drive every time I do, but keeping drive access available with one of the touch buttons on boot if I do want to adjust the code. Was extra deliberate since I didn’t want to lock myself out and have to reset so it took a bit, but I got it done!”

How Many CPU Cores Can You Actually Use in Parallel?

How many CPU cores can you actually use in parallel in CPython? - Python Speed.

New

Milk-V Duo S

The Milk-V Duo S includes dual CPUs, 512MB RAM, and Wi-Fi 6 connectivity. In Arm CPU mode, the Milk-V Duo S can reach 1GHz speed, outperforming the Raspberry Pi Pico but with limitations. The base model starts at $11. For $20, you can get 8GB eMMC, Wi-Fi 6, and a PoE HAT - XDA Developers.

Waveshare ESP32-H2-DEV-KIT-N4-M

Waveshare ESP32-H2-DEV-KIT-N4-M: a low-cost ESP32-H2 development board going for $6.65 - CNX Software.

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, but several are in the works.

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

BLE Cat Thermal Printer with MEMENTO from Liz Clark

How to use Blockly for Actions on Adafruit IO from Tyeth Gundry

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

Updated Libraries

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

  • 148526 PyPI downloads over 325 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9575
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9426
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 4158
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2483
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1704
  • Adafruit CircuitPython RGB Display (adafruit-circuitpython-rgb-display): 1382
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1333
  • Adafruit CircuitPython HTTPServer (adafruit-circuitpython-httpserver): 1302
  • Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 1289
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1254

What’s the CircuitPython team up to this week?

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

Dan

I’ve been fixing nRF and MEMENTO-related bugs for the 9.0.0 release. Then I’ll move on to whatever remaining bugs there are.

Melissa

This past week, I worked on writing a guide on some of the new features of Web Workflow, but unfortunately ran into a bug in CircuitPython that stopped me from finishing up the guide. Once the bug is resolved, I’ll be able to finish up. In the interim, I switched over to fixing some Raspberry Pi related bugs including updating the Blinka installer and PiTFT installer script to fix a couple of issues so they are now backwards compatible with Bullseye.

Tim

I did library PR reviews across several libraries. I’ve also been working on applying changes from feedback on the web workflow support for circup. The workflow APIs have changed slightly, so it needed some catching up an addition to the feedback from prior review. I’m trying to dig into circup for a different issue that was noticed as well that is resulting in it not wanting to install the new ConnectionManager library based on its PyPI name.

Jeff

I’m excited to be on the talk schedule at PyCon US 2024! I’ll be giving a talk titled “Connecting Old to New with CircuitPython: Retrocomputer input devices on modern PCs” on May 19 in Pittsburgh, PA.

Scott

Last week I was fixing two USB host related issues we wanted to fix before 9.0 release. This week I’ve been out most of the week with a sick kid at home. Once I’m back to work, I’ll continue fixing 9.0.0 issues so that we can release another major stable version.

Liz

This week I published the BLE Cat Thermal Printer with MEMENTO guide. This guide goes through connecting the MEMENTO camera to print photos on the BLE cat thermal printer with a gameboy photo filter. This was really fun to work on and I especially enjoyed writing the guide copy on the overview page.

I also wrapped up the product guide for the new ItsyBitsy ESP32. You can run CircuitPython on this board with web workflow and I wrote a few example pages stepping thru the process for downloading the project bundle and uploading the libraries and code thru the browser. I hope these steps will help folks new to web workflow get the hang of it.

Upcoming Events

MicroPython Meetup

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

PyCascades 2024

PyCascades 2024 is back in Seattle, Washington, USA and online, April 5-8th at the University of Washington, Kane Hall - PyCascades.

2024 Open Hardware Summit

The 2024 Open Hardware Summit will be taking place May 3 & 4, 2024 at Concordia University and lespacemaker in Montreal, Canada - oshwa.org.

PyCon US 2024

PyCon US 2024 launches May 15-23, 2024 in Pittsburgh, Pennsylvania US - PyCon US.

Open Sauce

Open Sauce, the Maker extravaganza, is returning to San Francisco, California June 15-16 - Open Sauce.

EuroPython 2024

EuroPython is the oldest and longest running volunteer-led Python programming conference on the planet. This year it will be held July 8-14 in Prague. Call for Proposals, the Mentorship Programme, and the Financial Aid Programme will be starting this month - EuroPython 2024.

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.10 and its unstable release is 9.0.0-beta.2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20240301 is the latest Adafruit CircuitPython library bundle.

20240221 is the latest CircuitPython Community library bundle.

v1.22.2 is the latest MicroPython release. Documentation for it is here.

3.12.2 is the latest Python release. The latest pre-release version is 3.13.0a4.

3,819 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,814 Thanks

38,814 THANKS

Adafruit Discord

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