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! Another busy week! CircuitPython 9 is one step closer to being complete with its first release candidate. Please test if you can as any last issues are taken care of. What’s different between MicroPython & CircuitPython? Catch a comparison article. And much more in this packed 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 9.0.0 Release Candidate 0 Now Out

CircuitPython 9.0.0 Release Candidate 0

CircuitPython 9.0.0-rc.0, a release candidate for 9.0.0 final, is out. This release is believed to be stable and is meant for testing before the final release of 9.0.0. See the post for all the additions and changes - Adafruit Blog and GitHub.

MicroPython vs CircuitPython: A Comprehensive Comparison

MicroPython vs CircuitPython: A Comprehensive Comparison

MicroPython and CircuitPython are two popular programming languages that have gained significant attention in the world of embedded systems and Internet of Things (IoT) development. Both languages are based on Python, a versatile and easy-to-use programming language. This article explores the similarities and differences between MicroPython and CircuitPython whic may help you choose the right language for your project - APalgorithm.com.

Developing FPGAs on a Raspberry Pi 400 with Python

Developing FPGAs on a Raspberry Pi 400 with Cocotb

Learning FPGA needs complex tools and large powerful computers, right? No. One can develop FPGAs on a Raspberry Pi 400 with Cocotb. Cocotb can test and verify chip designs in Python - hackster.io.

Back to the Future Time Circuits Built with a Raspberry Pi Pico and CircuitPython

Back to the Future Time Circuits

Reddit user traveling_fred presents a lovely Back to the Future time circuit build with dial in time setting. The displays come from Circuit Setup and the project uses a Raspberry Pi Pico running CircuitPython - Reddit and Tom’s Hardware.

How to Control your Raspberry Pi Camera using Python and a web UI

How to Control your Raspberry Pi Camera using a web UI

Using Picamera2 on a Raspberry Pi SBC isn’t difficult, but for some the pure Python interface can be challenging. James Mitchell has created Picamera2 Web UI Lite, a web interface for Picamera2 which provides a full suite of camera settings to tweak, along with an image gallery where we can view and download images - Tom’s Hardware.

Raspberry Pi 5 Operating Systems

Raspberry Pi 5 Operating Systems

Raspberry Pi OS is far from being the only operating system for the Raspberry Pi 5. Explaining Computers looks at seven different OSes and how they stack up - YouTube.

Also: Venturing beyond the default OS on Raspberry Pi 5 - The Register.

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 bugs and builds.

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

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for March 4th, 2024 (notes) on YouTube.

Project of the Week: The stoRPer Robot

stoRPer

stoRPer is a modular adaptable AWD Raspberry Pi Pico based robot rover. A novel twist is the circuit board forms the base of the robot. It is programmable in MicroPython, making it more affordable - GitHub, Hackaday and YouTube.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? 9 tips I wish I knew before starting my first Raspberry Pi project.

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.

Easy Helldivers II Stratagem Macros for RP2040 Macropad

Easy Helldivers II Stratagem Macros for RP2040 Macropad - Adafruit Playground.

Adafruit Connection Manager

Adafruit Connection Manager - Adafruit Playground.

News from around the web

CircuitPython Statistics

CircuitPython statistics: Pull Request #9000 was recently opened by a community member in CircuitPython. As the same pool of numbers is used for issues and for PRs so it’s not accurate to call it the “9000th pull request” but it is very significant (it is actually about the 5100th pull request) - GitHub.

Build Your Own Robot

New Book: Build Your Own Robot: Using Python, CRICKIT, and Raspberry Pi by Marwan Alsabbagh - I Programmer and Amazon (US).

Radar-style clock

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

Reviving Pagers with Python and Mastodon

From Beeps to Toots: Reviving Pagers with Python and Mastodon - Finney Dolfin.

Student Projects

Physical computing with Raspberry Pi Pico. Students learning about MCU pins, how to connect and control electronic components like traffic light LEDs with MicroPython in computer science class - X.

Better PC cooling with Python and Grafana

Better PC cooling with Python and Grafana - Cal Bryant.

Dragon Ball scouter

A Dragon Ball scouter using Raspberry Pi Pico and MicroPython with a transparent OLED display - X.

A CircuitPython compatible RP2040-based dev board

A CircuitPython compatible RP2040-based dev board that’s less than 15mm wide for use in Eurorack designs that are as narrow as 3HP, without having to do the shark-fin thing off the back - Mastodon.

Upgrade your Smarthome with Radar and Home Assistant

Using MicroPython and Home Assistant to integrate a doppler radar sensor for motion and presence detection into a smarthome - hackster.io.

Set a static IP address on Raspberry Pi OS 12 'Bookworm'

How to set a static IP address with nmtui on Raspberry Pi OS 12 ‘Bookworm’ - Jeff Geerling.

MicroPython Driver

Porting an Adafruit VL5310X sensor driver to MicroPython with non-blocking - GitHub via X.

Line Follower projects

3rd year pre-service engineering teachers last semester at the University of Limerick School of Education. Their ‘Line Follower’ projects demonstrated MicroPython knowledge and creativity - X.

Battery Monitor

Monitoring a battery state with an Adafruit ESP32 V2 Feather, ThinkInk 2.9” display, AHT20 temperature & humidity sensor and Pimoroni ADS1015 ADC connected to a car battery, programmed in CircuitPython - X Thread.

Raspberry Pi 5: 6 great tips, tricks & uses for the single-board PC

Raspberry Pi 5: 6 great tips, tricks & uses for the single-board PC - PCWorld.

Embedded Swift on the Raspberry Pi Pico/RP2040 without the Pico SDK

Embedded Swift on the Raspberry Pi Pico/RP2040 without the Pico SDK - swift.org.

Enough Markdown to Get You By in Most Cases

Enough Markdown to get you by in most cases - kattni:decoded.

Tcl interface to the ADU100 via SWIG

A Tcl interface to the ADU100 via SWIG - Eventual Labs.

Coming Soon

Pineberry Pi

Pineberry Pi opens March with a smorgasbord of fresh boards available for preorder! Dual NVMe, NVMe with Coral Edge TPU, NVMe with Ethernet and more - X.

2×2 Quad Display Board

SB Components’ 2×2 Quad Display Board is an MCU development board fitted with either a Raspberry Pi Pico W board or an ESP32-S3-WROOM-1 module used to drive four small color displays in square or round shapes. MicroPython, CircuitPython, and Arduino samples should become available in due time - 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 some are coming up momentarily.

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

OpenAI Image Descriptors with MEMENTO from Liz Clark

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

  • 117506 PyPI downloads over 325 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8805
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 8701
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 7704
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2353
  • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 1731
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1184
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1136
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1120
  • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1091
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1075

What’s the CircuitPython team up to this week?

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

Dan

I fixed some remaining nRF bugs for CircuitPython 9.0.0. We are now ready for a release candidate, and there may well be one by the time you read this.

Melissa

Melissa

This week I continued working on updating Pi_Eyes. I now have it resizing and displaying the desktop successfully on the displays. However, it is running very slow with the biggest delay being in the SPI transfer. Next up will be figuring that issue out so the display updates happen in real time.

Jeff

I fixed some bugs in CircuitPython 9, including improving a situation where having an SD card and a display that share an SPI bus caused problems accessing the SD card through the web workflow.

A second bug I fixed was how “timeout” errors were signaled for SSL sockets. There was a long-standing bug on the Pico W, which began affecting the Espressif-family microcontrollers after another change I made to share the SSL code between the processor families.

I have some other long term items that are cooking but those are on hold while we work on getting version 9 stable and ready for wide use.

Scott

This week I’ve done three more fixes for CircuitPython 9.0.0 and have run out of things to debug. So, 9.0.0 is close and I’ll keep an eye out for subsequent issues to fix. Thanks to everyone who has tested it and filed issues!

Liz

This week I wrote up two guides. The first was the OpenAI Image Descriptors with MEMENTO project. The CircuitPython code lets you connect to WiFi, take a photo, send the photo to OpenAI with their API and then save the response as a text file. I included six different prompts to get folks started. This was really fun to work on. I loved coming up with the prompts and figuring out how to add different text to the MEMENTO display with the PyCamera library and review images on the microSD card.

The second guide was for the Adafruit STEMMA Analog SPDT Switch. This was just added to the shop and lets you switch between two analog signals. For the demo, I switched between two waveforms generated by one of my synth modules (Pamela’s New Workout for those who are into Eurorack). It was really cool to be able to see the waveforms switch in the Serial Plotter as the input pin was toggled.

One special thing that happened this week was that I went on JP’s Product Pick of the Week show. The product pick was the 3.5” TFT FeatherWing with Capacitive Touch. I helped to demo the multi-touch functionality for the display with CircuitPython. The code has four touchscreen buttons that can detect if they contain the touch point. I added the demo to the examples for the FT5336 touch library since I think it could be helpful for folks who want to make projects with UI elements.

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

20240307 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,834 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,855 Thanks

38,855 THANKS

Adafruit Discord

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