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! This week’s issue leans into MicroPython with some interesting content. The announced Adafruit RP2350B single board computer is something your editor has been waiting for to emulate classic gear. This has been a busy week (in so many ways). See all that has been happening in the community in this issue. – Anne Barela, Editor

We’re on Discord, Twitter/X, BlueSky and for past newsletters – view them all here. If you’re reading this on the web, subscribe here. Here’s the news this week:

Maximizing MicroPython Speed

Maximize MicroPython speed

There are times where we’d like code to run much faster than it does at present. Part of any coding class, beyond the basics, involves optimizing code for speed and size, especially in resource restricted environments (like microcontrollers and single-board computers). MicroPython has documentation which helps suggest code changes to make programs run faster including the Native and Viper code emitters – ReadTheDocs.

MicroPython IDEs and Tools

MicroPython IDEs and Tools

Mayur Koshti has a new guide to the best development environments for MicroPython – Medium. Click “No Medium subscription? Read the full article 👉 here.” in the second paragraph to read.

Debugging Within Visual Studio Code

Debugging Within Visual Studio Code

Visual Studio Code allows for debugging within the interface including setting up a REPL (Read-Eval-Print Loop) – visualstudio.com and specifically Python Debugging.

Adafruit Announces Fruit Jam, an RP2350B-based Single Board Computer

Fruit Jam

Looking to “jam a ridonkulous amount of hardware” into a single-board computer, Adafruit has shown their design in progress, initially entitled Fruit Jam. Adafruit is aiming it for classic game and computer emulation and CircuitPython, although it should work with any RP2350 compatible language – Adafruit Blog, Hackster.io, and Tom’s Hardware.

“With the extra pins of the QFN-80 RP2350B, we’re able to jam a ridonkulous amount of hardware into this shape: RP2350B dual 150MHz Cortex M33 w/ PicoProbe debug port, 16 MB Flash + 8 MB PSRAM, USB type C for bootloading/USB client, Micro SD card with SPI or SDIO, DVI output on the HSTX port, I2S stereo headphone + mono speaker via the TLV320DAC3100, 2-port USB type

A hub for both keyboard and mouse or game controllers, chunky on-off switch, Stemma QT I2C + Stemma classic JST 3-pin, EYESPI for TFT displays, 5x NeoPixels, 3x tactile switches, and a 16-pin socket header with 10 A/D GPIO + 5V/3V/GND power pins. The PSRAM will help when we want to do things like run emulations that we need to store in fast RAM access, and it will also let us use the main SRAM as the DVI video buffer.”

Adafruit Updates PioMatter Library For Raspberry Pi 5

PioMatter Library For Raspberry Pi 5

The Raspberry Pi 5 can now drive Adafruit’s RGB Matrix Bonnet and HAT accessories, thanks to the RP1’s PIO blocks – Adafruit Guide and hackster.io.

US Government Releases Ghidra 11.3 NSA Reverse Engineering Software

Ghidra 11.3

Ghidra is a open source software reverse engineering (SRE) framework developed by NSA’s Research Directorate. This framework includes a suite of full-featured, high-end software analysis tools that enable users to analyze compiled code on a variety of platforms including Windows, MacOS, and Linux.

The PyGhidra Python library, originally developed under the name Pyhidra, is a Python library that provides direct access to the Ghidra API within a native CPython 3 interpreter. PyGhidra contains some conveniences for setting up analysis on a given sample and running a Ghidra script locally. It also contains a Ghidra plugin to allow the use of CPython 3 from the Ghidra GUI – GitHub.

An Interview with Gordon Hollingworth of Raspberry Pi

Gordon Hollingworth Interview

Tom’s Hardware: The Pi Cast has Raspberry Pi CTO Gordon Hollingworth on the show to talk about software engineering for the Raspberry Pi – YouTube. Via BlueSky.

Why Mark Zuckerberg Wants to Redefine Open Source so Badly

Why Mark Zuckerberg wants to redefine open source so badly

For open source experts, it’s all about community. For Meta, it’s all about the money – ZDNet.

New Python Versions Out

Python 3.13.2 and 3.12.9 now available

Python 3.13.2 and 3.12.9 now available – Python Insider Blog.

  • Python 3.13’s second maintenance release, about 250 changes.
  • Python 3.12’s ninth maintenance release, 180 changes.

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 Zephyr WiFi in CircuitPython, take 3.

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 is off this week. Catch all the episodes in the YouTube playlist.

The CircuitPython Show

The CircuitPython Show

The CircuitPython Show begins a three part series on designing a PCB, building CircuitPython, and writing a CircuitPython library. First in the series is Designing a PCB to work with CircuitPython with Bradán Lane – The CircuitPython Show.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for February 3, 2025 (notes) on YouTube.

Project of the Week: CuPy

CuPy

CuPy is an open-source array library for GPU-accelerated computing with Python. CuPy’s interface is highly compatible with NumPy and SciPy; in most cases it can be used as a drop-in replacement. CuPy utilizes nVidia CUDA Toolkit libraries to make full use of the GPU architecture – cupy.dev and YouTube.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Free eBook: Think Python.

Did you know you can read past issues of this newsletter in the Adafruit Daily Archive? Check it out.

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 Reduced Sized Bitmap Fonts From .ttf File

Creating Reduced Sized Bitmap Fonts From .ttf File – Adafruit Playground.

Zephyr Quest

Zephyr Quest: Troubleshooting a Pi Pico 2 build error – Adafruit Playground.

Circuit Playground: Galaxy Explorer

Circuit Playground: Galaxy Explorer – Adafruit Playground.

News From Around the Web

Return of the Mac

Paul Rickards takes a Mac Portable M5120 case and transforms it into a Raspberry Pi 5 computer with a color screen. A Raspberry Pi Pico running KMK firmware (using CircuitPython) handles keyboard inputs. It runs a Mac emulator – hackster.io.

Tanmatsu

Hackaday provides some additional details on the Tanmatsu (Japanese for “Terminal”), powered by the new Espressif ESP32-P4 application processor. It’s expected to run MicroPython and native applications. Preorders are open via Nicolai Electronics. Via Hackaday.

GIT Chart

A complete chart of essential Git commands for everyday usage – X.

Interstate 75W

On BlueSky, ‪Gadgetoid at Pimoroni has been making some nice LED matrix panel animations with the RP2350 and MicroPython Viper. Above is one of many examples – BlueSky.

CircuitPython on a DIY Pico Cam

CircuitPython on a DIY Pico Cam: Raspberry Pi Pico 2 + OV5640 camera sensor – coXXect and YouTube.

Projects for a 16GB Raspberry Pi 5

7 exciting projects for a 16GB Raspberry Pi 5 – ArtFormWorld.

MicroPython for Arduino

Python Milano presents a talk from Leonardo Cavagnis on how MicroPython enhances Arduino development – YouTube.

Setting up PlayStation Controllers on the Raspberry Pi

Setting up PlayStation controllers on the Raspberry Pi – PiMyLife.

Dactyl Skeletyl

A build of bastardkb’s Skeletyl split ergonomic keyboard with an RP2040 and CircuitPython – hackster.io.

DIY Pomodoro Bot With VIAM

A DIY Pomodoro bot with VIAM using a Raspberry Pi 5 and Python – Instructables.

How to build Ollama to run LLMs on RISC-V Linux

How to build Ollama to run LLMs on RISC-V Linux – Jeff Geerling.

How do PIR (passive infrared) sensors work

How do PIR (passive infrared) sensors work and how to connect them to a Raspberry Pi with Python – Circuit Basics.

API vs SDK

Comparing an API vs. a SDK – X.

How to write and run a C program on the Raspberry Pi

How to write and run a C program on the Raspberry Pi – Circuit Basics.

5 Python libraries to extend Excel’s capabilities

5 Python libraries to extend Excel’s capabilities – XDA.

Yo, I heard you like decorators

Yo, I heard you like decorators – Bo Bayles Annex.

New

WeAct RP2350B Core Board

The WeAct RP2350B Core Board exposes all 48 I/Os from the Raspberry Pi RP2350B microcontroller – CNX Software.

Interstate 75 W (RP2350)

Interstate 75 W is a RP2350A-based driver board for HUB75-style LED matrices. It includes an RM2 module (CYW43439), supporting IEEE 802.11 b/g/n wireless LAN, and Bluetooth – Pimoroni.

iW-RainboW-G54S

iWave Systems iW-RainboW-G54S is a credit card-sized SBC fitted with an OSM Size-S (30x30mm) system-on-module based on STM32MP133 or STM32MP135 Cortex-A7 SoC with up to 1GB RAM, and up to 128GB flash – 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.

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

The Adafruit Learning System has over 3,000 free guides for learning skills and building projects including using Python.

RGB Matrix Panels With Raspberry Pi 5 from Tim C

Toddler Timer from Ruiz Brothers

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

New Libraries

Here’s this week’s new CircuitPython libraries:

Updated Libraries

Here’s this week’s updated CircuitPython libraries:

What’s the CircuitPython team up to this week?

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

Dan

I am working on the NINA-FW firmware, which is used in Adafruit’s AirLift breakouts and co-processors. A pull request to update NINA-FW from its upstream repo has been stalled for a while, but I believe I am now making progress on finishing the update.

Tim

This week I worked on examples and a Learn guide for using RGB matrix panels with the Raspberry Pi 5 using the new PioMatter library that Jeff wrote. After that I started working on the GC9A01A display. I’ve adapted a 3rd party driver for the latest versions of CircuitPython and added it to the bundle. I’ve got another project lined up that will make use of this display.

Jeff

My last week saw more PIO activity. I fixed a regression in rp2pio that affected RotaryEncoder on RP2040/RP2350 when more than one encoder is in use. This is merged into CircuitPython and will appear in an upcoming release. I also worked on allowing multiple rotary encoders on Pi 5. This work has not yet reached the stage of being PR’d.

Another thing I’m working on is automatically connecting to an attached display on boards like Feather RP2350 with the HSTX connector. When this code is added, boards that enable it will check for the presence of an I2C EEPROM at address 0x50, which holds the monitor’s EDID information and enable a framebuffer when it’s found. At the time of writing, this work is in a draft PR and will undergo some improvements before it’s merged.

Scott

This past week I’ve polished up my Zephyr work and submitted a pull request (PR) for review. It is still a work in progress but gives folks a chance to test it and expand it. I took a little detour to update our Python code formatting to ruff from black too. This matches what MicroPython does. Next up I’m circling back to WiFi within Zephyr.

Liz

Thanks to Tim now assisting with product guides, I finally had time to work on the guide and CircuitPython driver for the INA228. This breakout lets you monitor high or low side power measurements over I2C. There is support in both Arduino and CircuitPython, so you can easily add detailed power monitoring to your projects.

Upcoming Events

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on February 26th – Meetup. You can see recordings of previous meetings on YouTube.

PyCon US 2025

The community is coming back to Pittsburgh, Pennsylvania for PyCon US 2025 May 14 – May 22, 2025 – us.pycon.org.

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

20250206 is the latest Adafruit CircuitPython library bundle.

20250130 is the latest CircuitPython Community library bundle.

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

3.13.2 is the latest Python release. The latest pre-release version is 3.14.0a4.

4,191 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,742 Thanks

38,742 THANKS

Adafruit Discord

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