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! With Valentine’s over, we scour the internet and find out what’s happening with Python on hardware this week. A new version of CircuitPython 8 is out, and work on 9.0.0 beta versions continues. Chip maker Renesas buys Altium, maker of a professional PCB CAD program. More Raspberry Pi news & reviews and the newest Bus Pirate debugging tool gets a hands-on look. All this and more in this issue – 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.10 Released

CircuitPython 8.2.10 Released

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

Notable changes to 8.2.10 since 8.2.9

  • Fix EPaperDisplay garbage collection.
  • Add proto argument to SocketPool.socket constructor to allow specifying protocol.
  • Allow RGBMatrix framebuffer size to be more than 65535 bytes.
  • Allow creating a mount point on an existing directory.
  • Individual board fixes.

Renesas to Buy PCB Design Software Firm Altium for US $5.9 Billion

Renesas to buy PCB design software firm Altium for US$5.9 billion

Japanese chip company Renesas Electronics Corp. has said it plans to acquire PCB design software firm Altium Ltd. for Aus$9.1 billion (about US$5.9 billion). The move is an extension of Renesas’ mainstream business, which is predominantly the supply of digital and mixed-signal chips for automotive and industrial applications – EE News.

The Telegraph Interviews Eben Upton About the Upcoming Stock IPO

Interview Eben Upton

A direct interview of Eben Upton, Raspberry Pi CEO on their work towards a stock IPO. Raspberry Pi is gearing up for a flotation that is likely to value it at hundreds of millions of pounds. The company has opted for London over New York, a rare choice for a tech businessThe Telegraph.

Hands-on With the Bus Pirate 5 Debugging Tool

Hands-on With the Bus Pirate 5

The Bus Pirate is a hardware protocol analyzer used by thousands of designers since its introduction in 2008. It’s been a number of years since the last iteration but now the Bus Pirate 5 is available, based on the Raspberry Pi RP2040 chip. Hackaday provides a hands-on look at the latest incarnation – Hackaday and Adafruit Blog.

uv: Python Packaging in Rust

UV

uv is an extremely fast Python package installer and resolver, written in Rust, and designed as a drop-in replacement for pip and pip-tools workflows. uv is 8-10x faster than pip and pip-tools without caching, and 80-115x faster when running with a warm cache. APIs behind the uv pip interface make it usable by existing projects with zero configuration – Astral.

YARP5R – Yet Another Raspberry Pi 5 Review

Yet Another Raspberry Pi 5 Review

Pocket-lint takes their own look at the Raspberry Pi 5 – Pocket-lint.

“My Raspberry Pi 5 is a delight, and I’m excited about all its future uses. The Raspberry Pi 5 has plenty of upgrades, but do you need all that extra horsepower? I put it to the test.”

Helen Leigh Featured on Embedded.fm

CircuitPythonista Helen Leigh joined embedded.fm to talk about putting together conferences (including Teardown 2024), indie hardware producers (including via Crowd Supply), and building communities – embedded.fm.

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 hunting CircuitPython 9.0.0 bugs.

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 using the built-in CircuitPython keypad module for buttons – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

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

Project of the Week: Pico and microPython Meets Vintage Radio Shack Kit

Pico and microPython Meets Vintage Radio Shack Kit

Don Wilcher uses a Raspberry Pi Pico to build an adjustable clock with an LED display then integrate the clock with a vintage Radio Shack Science Fair Microcomputer Trainer programmed to function as a 7-bit binary counter. Don adds a Raspberry Pi Pico programmed in MicroPython, making an adjustable digital clock – Adafruit Blog and All About Circuits.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Five Raspberry Pi Alternatives for 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.

Custom ANO Fidget Firmware

Custom CircuitPython firmware for the NeoPixel rotary fidget project – Adafruit Playground.

Using CIRCUP with Web-Workflow

Using CIRCUP with Web-Workflow (beta) – Adafruit Playground.

How about.... a 4 Pixel Video Game??

How about…. a 4 Pixel Video Game?? – Adafruit Playground.

News from around the web

Python 3.13.0 alpha 4 is now available

Python 3.13.0 alpha 4 is now available – Python Insider Blog.

GenAI powered photo frame

A Gen AI powered tiny photo frame using CircuitPython – AshishWare and GitHub via X.

How to use the real-time clock functionality in Raspberry Pi 5

How to use the real-time clock functionality in Raspberry Pi 5 – Raspberry Pi News.

Station electronic bulletin board

Create a transit station electronic bulletin board with Raspberry Pi, a 1602 LCD display and MicroPython – otoku-pc (Japanese).

Pico + Z80

Using a Raspberry Pi Pico operating as ROM, RAM and clock for a Z80 microprocessor, outputting to a serial terminal over UART for status via MicroPython – MakerHacks.

Upgrading an old laptop Coolpad using RPi Pico and Python

Upgrading an old laptop Coolpad using Raspberry Pi Pico and MicroPython – hackster.io.

USB Nugget

Detect CO, ammonia, ethanol, H2, and methane/propane/iso-butane with a USB Nugget running CircuitPython and a MICS5524 sensor – X.

Bark

Bark is a transformer-based text-to-audio model created by Suno. Bark, written in Python, can generate highly realistic, multilingual speech as well as other audio, including music, background noise and simple sound effects. MIT License – GitHub.

Send SMS With Raspberry Pi Pico W

Learn how to send SMS text messages with the Raspberry Pi Pico W for free using Twilio and MicroPython – electromaker.

Airborn LoRa beacon transmitter

Airborn LoRa beacon transmitter made using a retia.io USB nugget and CircuitPython to test line of sight range with a drone – Mastodon.

Model Compression Toolkit (MCT)

Model Compression Toolkit (MCT) is an open-source project for neural network model optimization under efficient, constrained hardware. Written in Python under an Apache 2.0 license – GitHub.

Basic Imgui integration for graphics and USB mouse/keyboard

Basic Imgui integration for graphics and USB mouse/keyboard with MicroPython – X and GitHub.

Pimoroni Phew Template Demo

A demo showing how to use MicroPython code to loop over data structures in a Pimoroni Phew template. Tested on a Raspberry Pi Pico W running MicroPython v1.22.1 – GitHub via X.

10 AI Python code generators

10 AI Python code generators – Analytics Insight.

Python Type Checking (Guide)

A Python type checking guide – Real Python.

New

EmbedFire LubanCat 4

EmbedFire LubanCat 4 card computer is a Rockchip RK3588S dev board with a mini PCIe socket for WiFi or 4G LTE – CNX Software.

OpenMV Cam RT1062

The OpenMV Cam is a small, low-power microcontroller board to implement machine vision applications using Python scripts on a RT1062 ARM Cortex M7 processor running at 600MHz – Antratek.

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 there are some in progress.

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

MEMENTO Focus Stacking from John Park

Qualia S3 Sushi Conveyor Belt from Liz Clark

Digital Clock with CircuitPython from Ruiz Brothers

CircuitPython Text Editor On The Go from Tim C

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

Library PyPI Weekly Download Stats

Total Library Stats

  • 209791 PyPI downloads over 324 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9125
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8743
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 3116
  • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1953
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1921
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1815
  • Adafruit CircuitPython HTTPServer (adafruit-circuitpython-httpserver): 1651
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1640
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1571
  • Adafruit CircuitPython ESP32SPI (adafruit-circuitpython-esp32spi): 1569

What’s the CircuitPython team up to this week?

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

Dan

I released CircuitPython 8.2.10 this past week. It incorporates about six weeks of minor but useful bug fixes for 8.2.x users.

I’m fixing more bugs and reviewing fixes in preparation for 9.0.0 final. One was a setting change for elliptic-curve TLS certificates that fixed access to certain websites. I also updated circup to understand 9.0.0 versions of .mpy files.

Melissa

This past week I’ve been working on updating the Pi_Eyes project to work on the newer Raspberry Pis. I have the main Python project updated so it works and am now updating the C code of the project that displays whatever is on the desktop onto the displays. I have updated the code so it is correctly outputting pixels to the display and am now working on the portion that gets the desktop image.

Jeff

I’m back from a short vacation and I’ve been working through some CircuitPython bugs we’d like to fix before releasing version 9.

Perhaps the most exciting work I did was to enable the creation of https servers on Espressif microcontrollers with CircuitPython. In doing so, I also deleted a net 300 lines of code from the CircuitPython core, which is pretty sweet. I did this by making the Espressif port use the same implementation of the ssl module that was already used by the Raspberry Pi port. This worked because both Espressif and Pico W use the same underlying mbedtls library to implement secure sockets.

Scott

This week I’ve been trying to hammer out the last few 9.0.0 issues on Espressif chips before moving onto another platform. I updated the internal APIs for neopixel_write, rotaryio, pulseio, frequencyio, and countio. Hopefully we’ll have fewer crashes now and also work on newer chips too. I fixed an issue with the Memento IoT doorbell example (thanks to Jerry for finding the issue.) Lastly, I just spent a bit of time tuning neopixel on ESP to primarily fix flickering on the ESP32-S2.

Liz

This week I published the Qualia S3 Sushi Conveyor Belt guide. The guide includes UF2 files for the 320×820 and 240×960 bar displays to endlessly scroll plates of sushi. I also remixed a nigiri sushi model to house the project. I’m really happy with how everything came together.

I also wrote code for the Digital Clock with CircuitPython project. Noe did a fantastic job designing a sleek mid-century modern style clock enclosure. The code uses an RTC module and a rotary encoder to help you reset the time. With this it means that for daylight savings time you can easily adjust the time without having to dive into the code.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on February 28th – Meetup.

PyCascades 2024

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

PyCon US 2024

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

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

20240212 is the latest Adafruit CircuitPython library bundle.

20240212 is the latest CircuitPython Community library bundle.

v1.22.0 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,813 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,689 Thanks

38,689 THANKS

Adafruit Discord

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