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! Folks are sending in their feedback on where CircuitPython should go this year. You still have time to do the same. CircuitPython 9 is getting closer to a beta release along with major image and video handling capabilities. Raspberry Pi 5 still dominates much of the news as people get them and either put them to work or add new accessories. And much more news including a blast from the past robot from Arduino. – 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:

#CircuitPython2024 First Posts

The #CircuitPython2024 effort allows the community to share goals for CircuitPython in 2024 and beyond. The developers would like everyone in the CircuitPython community to contribute by posting their thoughts to some public place on the internet.

You can see the first two posts by the community: incrediblelittlebee and DJDevon3 – Adafruit Blog.

Scott Shawcroft is the lead developer on CircuitPython. Catch his thoughts for the year ahead – Adafruit Blog.

Learn how to post your own #CircuitPython2024 message – Adafruit Blog.

8 Raspberry Pi Attachments Radically Expand Its Powers

8 Raspberry Pi attachments radically expand its powers

PCWorld highlights 8 Raspberry Pi attachments which radically expand its powers. Want to use your Raspberry Pi for Lego Mindstorms, machine learning, handheld gaming, and more? Check out these HAT expansion modules – PCWorld.

UVC Video Coming to CircuitPython 9

UVC Video

TinyUSB, the USB driver used by CircuitPython, has recently added UVC support. UVC is a USB device class that describes devices capable of streaming video like webcams, digital camcorders, analog video converters and still-image cameras. Jeff Epler has been doing preliminary work to integrate UVC into CircuitPython 9 so devices can act as webcams, for example – YouTube and pull request GitHub.

Running a ChatGPT-Like LLM on the Raspberry Pi 5

Running a ChatGPT-Like LLM on the Raspberry Pi 5

Nurgaliyev Shakhizat presents a tutorial for how to run an advanced ChatGPT-like large language model on a Raspberry Pi 5 – hackster.io.

Comparing a Raspberry Pi 5 Computer to an Intel N100 Mini PC

Raspberry Pi 5 Computer vs an Intel N100 Mini PC

Jeff Geerling compares a Raspberry Pi 5 system vs. an Intel N100-based PC with Windows. A look at total cost, power draw, and efficiency – YouTube and Blog.

Adafruit Designs Raspberry Pi Pico RP2040 Floppy Drive Interface

Adafruit designs Raspberry Pi Pico RP2040 floppy drive emulator

Tom’s Hardware looks at the new Adafruit floppy disk interface in development – Tom’s Hardware.

“At the moment, the PCB features a 34-pin IDC pinout for interfacing. It also has support for 26-pin interfaces; however, the team mentioned the possibility of adding support for Disk II support in the future after some success when tinkering with an Apple disk.”

Making a Drone Using Raspberry Pi and Python

Drone

Slash Gearwalk goes through the essential components for building a drone, guides you through the computational aspects of a computer-controlled drone, and tops it off with a few inspiring project examples, all using Raspberry Pi with customizations in Python – Slash Gear.

The Ultimate List of Python YouTube Channels

The Ultimate List of Python YouTube Channels

The folks at Real Python couldn’t find a good and updated list of Python developer or Python programming YouTube channels online. So they created their own list with the best and most Pythonic YouTubers – Real Python via X.

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 discussed #CircuitPython2024.

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 sorted() – Adafruit Blog and YouTube.

Catch all the episodes in the YouTube playlist.

The CircuitPython Show Wraps Today

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.

Monday January 29th will be the last episode in this series. Tod Kurt will interview host Paul Cutler and discuss another podcast series they will do, The BootloaderMastodon

The CircuitPython Team thanks Paul for all his contributions to the Python community.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for January 22, 2024 (notes) on YouTube.

Project of the Week: Using ChatGPT to Code in Python

Using ChatGPT to Code in MicroPython

Using ChatGPT to Code in MicroPython

John Chinner wanted to code an app on a Raspberry Pi with Sense HAT to display information about the International Space Station (ISS). He turned to ChatGPT to look up how to code various parts of the project- X Thread.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Four Raspberry Pi 5 Projects to Make Use of the Power of One of the Best SBCs Out There.

You can read past newsletters in the repository.

News from around the web

Arduino Unveils Alvik, an Arduino Nano ESP32-Driven MicroPython Robot

Arduino unveils Alvik, an Arduino Nano ESP32-driven MicroPython Robot. It offers STEMMA QT/Qwiic, Grove and LEGO Technic capabilities – hackster.io and CNX Software.

ADC Measurements

Lies, damn lies and analog inputs (comparing ADCs on ESP32, Pico and Arduino) – DoctorMonk.

Bluetooth transmitter to display

A Raspberry Pi Pico programmed in MicroPython transmits to an eInk display – X (Japanese).

PiDog

The new PiDog is programmed in MicroPython to respond to sound – X (Japanese).

MacroPad by MCHilli

MacroPad by MCHilli is an Adafruit MacroPad + CircuitPython script that allows one to manage macros via a WebUIGitHub.

MicroPython Simulation in Wokwi for VS Code

Offline MicroPython simulation in Wokwi for VS Code – GitHub.

Get Your Raspberry Pi 5 Running on 2TB NVMe Drives

A step-by-step guide gets a Raspberry Pi 5 running on NVMe drives greater than 2TB – Reddit via hackster.io.

XIAO RP2040 Mouse - Rev 3.0

Rev 3.0 of the RP2040 mouse project using CircuitPython on a Xiao RP2040 – hackster.io.

How to use an L298N with Raspberry PI Pico: Driving Motors with MicroPython

How to use an L298N with Raspberry PI Pico: Driving Motors with MicroPython – peppe80.

Remote car

IR remote car with motor control in MicroPython – X.

Creating a Raspberry Pi Compute Module 4 (CM4) Carrier Board in KiCad

Creating a Raspberry Pi Compute Module 4 (CM4) carrier board in KiCad – DigiKey and YouTube.

How to Build a Pi 5 NAS with PCIe

How to build a Pi 5 network attached storage (NAS) with PCIe solid state storage – YouTube.

MicroPython Morse code trainer

A Morse Code trainer in MicroPython on a Raspberry Pi Pico – X.

Firmata

Using Python with classic Arduino boards like Uno R3 using Firmata – Real Python.

Weather Station with Raspberry Pi Pico

Building a weather station with Raspberry Pi Pico and MicroPython – hackster.io.

New

M.2 to PCIe adapter

Geekworm X1003 PCIe to NVMe SSD adapter for Raspberry Pi 5 works with the active cooler or official case, supports short 2230 or 2242 NVMe M.2 SSDs – CNX Software.

ESP32-C6-based IoT development board

A new ESP32-C6-based IoT development board supports solar battery charging – CNX Software.

52Pi water cooling kit

The 52Pi water cooling kit keeps a Raspberry Pi 5 SBC cool at 3.0 GHz – CNX Software and YouTube.

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

Qualia S3 Compass from Liz Clark

Sound Reactive Rapunzel Hair from Erin St Blaine

MEMENTO Wireless Remote with TouchOSC from John Park

Remote Shutter Button for MEMENTO 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 475!

Updated Libraries

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

  • 105,658 PyPI downloads over 324 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8389
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8078
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2610
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1206
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1104
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1077
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1073
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 958
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 907
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 873

What’s the CircuitPython team up to this week?

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

Dan

This past week Scott and I did some pair debugging and were able to fix a longstanding issue that made some operations not work correctly when you subclassed the built-in dict type.

A user encountered another core language problem. I found it was already reported to MicroPython, and is not easy to fix without possibly causing an mpy version change, so we’ll await a fix from upstream.

Melissa

This past week, I’ve been working on getting the PiTFT displays working on the Raspberry Pi 5 with Bookworm. So far, the 2.2” PiTFT has been updated and works. I’m still struggling with getting the touch rotation to work for the 2.8” capacitive and resistive touchscreens, but hopefully that will be worked out soon.

Tim

This week I’ve been working on the 1D Chomper game and Learn Guide. I did a load of cleaning up and commenting the code. I also set up the light box to take some clean photos for the guide and recorded a quick look introduction video for the project.

Jeff

With bitmapfilter merged into the “absolute latest” CircuitPython builds, I’m concentrating on something new: support for CircuitPython operating as a “UVC” device, which lets CircuitPython appear like a webcam to a host computer. Ultimately, the intent is to make this work with displayio applications, so that in addition to displaying to an LCD or similar display attached to the microcontroller, they can display on a host computer.

Scott

This past week has been co-opted by a daycare flu. Ari got it and then I got it a few days later. So, I haven’t done as much as I would have liked. My main work is accessing the SD card over WiFi and BLE. The PR is ready and will hopefully get merged in the next few days. Next, I’m finishing up my #CircuitPython2024 post. After that, I’ll be heads down on bug fixing for the 9.0 release. I’d love to get 9.0.0 released in February (just like 8.0.0 was released last February.)

Liz

This week I published the Qualia S3 Compass project. I used a Qualia S3 with a 2.1 inch round display and a 9-DoF sensor to create a working compass. I learned a lot working on this project, since first of all I had never really used a compass, but there was a lot of math involved in calculating the compass heading properly and displaying it in two different ways on the round display. I’d like to extend a hug report to community member Gamblor21, whose AHRS CircuitPython library in the community bundle was extremely helpful for this project. I also used rotozoom from the built-in bitmaptools for the first time and once I understood how to use it properly, it was a game changer. I look forward to using it in future projects.

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’s 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 in February 2024 – 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.9 and its unstable release is 9.0.0-alpha6. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20240123 is the latest Adafruit CircuitPython library bundle.

20240125 is the latest CircuitPython Community library bundle.

v1.22 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.0a3.

3,798 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,569 Thanks

38,569 THANKS

Adafruit Discord

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