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! A crazy week as Adafruit ships CircuitPython 9 final loaded with many features. And 9.1 is in the works too. MicroPython is also gaining run time USB device support that is highly anticipated. Python is still a good language to know according to the latest survey, commanding good job offers. Those and much more happening this week. - 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 Released

CircuitPython 9.0.0 Released

CircuitPython 9.0.0, the latest major revision of CircuitPython, is the new stable release. Check out all the new features - Adafruit Blog, Release Notes and Tom’s Hardware.

MicroPython Plans a New Feature for the Raspberry Pi RP2040: Runtime-Defined USB Device Support

Runtime-Defined USB Device Support

MicroPython is planing a new feature for the Raspberry Pi RP2040: runtime-defined USB device support, expected to land in the v1.23 release - hackster.io and Documentation.

Detecting Insecure Code with LLMs

Detecting Insecure Code with LLMs

Melanie Hart Buehler writes about prompting a large language model to determine vulnerabilities in Python code - Medium and GitHub.

“This article presents a short review of some recent findings in vulnerability detection and repair with LLMs and then dives into some experiments assessing GPT4’s ability to identify insecure code in a Python dataset using different prompting techniques.”

My Raspberry Pi 5 is a Delight, and I’m Excited About All Its Future Uses

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 does one need all that extra horsepower? It’s to the test - Pocket-lint.

The 4 Best Programming Languages to Learn

The 4 best programming languages to learn

The 4 best programming languages to learn - Fortune.

“According to the U.S. Bureau of Labor Statistics, software developers earned a median annual wage exceeding $127,000 in 2022 and is projected to rise by 25% by 2032. The top four languages are: JavaScript, Python, SQL and Java.”

Python Software Foundation News

Python Software Foundation News

New Versions of Python Now Out

Python 3.10.14, 3.9.19, and 3.8.19 are all now available - PSF.

PSF Hiring a PyPI Support Specialist

The PSF is hiring a person to manage the increased capacity and allow them to keep pace with PyPI’s seemingly unstoppable growth. This is an associate role that is 100% remote - PSF.

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 a CircuitPython 9 recap.

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 (AdaBox was unboxed). Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

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

Project of the Week: Desktop Lunar Display

Desktop Lunar Display

Lorraine Underwood completes her desktop lunar display which uses a Raspberry Pi Pico W programmed in MicroPython - Element14, Raspberry Pi, YouTube and GitHub.

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? Build Your Own Robot: Using Python, CRICKIT, and Raspberry Pi (Manning).

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.

Building a scientific handheld calculator with double precision math, complex math, uncertainties and fractions

Building a scientific handheld calculator with double precision math, complex math, uncertainties and fractions - Adafruit Playground.

WiFi Power Management for the Raspberry Pi Pico W

WiFi Power Management for the Raspberry Pi Pico W - Adafruit Playground.

Chrome Book Shutter-Offer using Neo Trinkey

ChromeBook Shutter-Offer using Neo Trinkey - Adafruit Playground.

News From Around the Web

RP2040 Boot Sequence

The RP2040 boot sequence - V. Hunter Adams.

uc8151_micropython

uc8151_micropython: a MicroPython driver for the Badger 2040 eink display and other displays based on the UC8151 / IL0373 chip with up to 32 levels of grey - GitHub via X.

Pet expression recognition system

A pet recognition system with Seeed XIAO ESP32-S3 - hackster.io.

LangCard

LangCard: a full keyboard development board for learning programming languages such as CircuitPython, MicroPython, C++, uLisp, etc. - hackaday.io.

DailyPi

DailyPi displays daily tasks, events and weather on a battery-powered e-paper frame using a Raspberry Pi and Python - GitHub.

micro:bit + MicroPython for VSCode

A new version of the micro:bit + MicroPython add-in for VSCode - VisualStudio Marketplace.

SeedSigner

SeedSigner: baremetal CircuitPython on a Raspberry Pi Zero W, a PN532 reader, APDU library (uscard) from specter-diy, and tap a J3R180 - X.

SmartHome4Seniors

Senior citizens learen about the SmartHome4Seniors house model and the foundations of technology; how they work, how they interact and how they are programmed through MicroPython - X thread.

SORACOM LTE-M Button Plus

Connecting a SORACOM LTE-M Button Plus to a Seeed Studio Xiao SAMD21 with CircuitPython - hatenadiary.com (Japanese).

MicroPython differences from CPython

The differences between MicroPython and CPython - micropython.org.

Using Gemini to program the Raspberry Pi Pico timer

Using Google’s AI, Gemini, to program the Raspberry Pi Pico timer interrupt 1 - jhalfmoon.com (Japanese).

Get Started with Arduino Nicla Vision

Using the computer vision capabilities of Arduino Nicla Vision with OpenMV IDE and MicroPython - OKdo.

Installing MicroPython Modbus Library on Raspberry Pi Pico W

Installing the MicroPython Modbus library on Raspberry Pi Pico W - hackster.io.

deptry

deptry: a command line tool to check for issues with dependencies in a Python project, such as unused or missing dependencies - GitHub.

A better Python cache for slow function calls

A better Python cache for slow function calls - Sweep AI.

Probably the Best Data Visualisation for Showing Many-to-Many Proportion In Python

Probably the best data visualisation for showing many-to-many proportion in Python - Towards Data Science.

Coming Soon / New

Penta SATA HAT

Radxa introduces a Raspberry Pi 5 quad SATA hat adapter - Radxa.

EDU PICO

EDU PICO project and innovation kit for Pico W with Grove connections programmable in CircuitPython - Cytron and Tom’s Hardware.

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

IoT Bird Feeder with Camera from Ruiz Brothers

AdaBox 021 from John Park

MEMENTO Camera Quick Start Guide from Anne Barela

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:

adafruit/Adafruit_CircuitPython_RSA

Library PyPI Weekly Download Stats

Total Library Stats

  • 108932 PyPI downloads over 325 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 10160
  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9029
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 7780
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2217
  • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1231
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 1179
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 1142
  • Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 1026
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 947
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 890

What’s the CircuitPython team up to this week?

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

Dan

I made the release for CircuitPython 9.0.0 final last Monday! Users are beginning to switch over. A few have noted some regressions and we are working on those.

We are also moving ahead on changes for 9.1 and later. I did a simple housekeeping task of renaming ports/nrf to ports/nordic. Most of the port names are different from what MicroPython uses, but we both used ports/nrf. Changing the name will make merges from upstream easier.

Melissa

This past week, I added PWM support to Blinka for the Raspberry Pi 5. I also updated Blinka Displayio so that it matches the API of CircuitPython 9.0.0 and tested it on a few displays.

Tim

This week I cleaned up and submitted the PR for OutlinedLabel class to the Display Text library. This new class allows you to make labels with specified color and size of stroke outline. I’ve also been writing new examples for the adafruit_rsa library that saves and loads keys from files rather than generating new ones each time the script is run. Lastly I’ve been experimenting with the ruff code format and linting tool in some local instances of library repos. We are considering migrating the libraries to use this tool instead of pylint and black. MicroPython has already adopted it’s usage as well so it will be a step toward closer consistency in the ecosystem.

Scott

This week I’ve entered a post-release phase because 9.0.0 has been released! Generally my work on the release stops a little beforehand as we wait to see if any issues pop up. Since then I’ve continued to poke a Hancho based CP build, started adding USB host FeatherWing support to CP and updating the ESP-IDF to 5.2.1. The latter two things will likely be released in 9.1.0.

Liz

This week I worked on some product guides for the new PiCowbells in the shop. These PiCowbells make it easier to prototype with the Pico boards. There’s one with terminal blocks and two that are similar to the Proto FeatherWings with single and doubler options. Whenever I work on projects, I try to choose components that make wiring and assembly simple for folks, so having these options with mounting holes, GPIO labels, STEMMA QT connectors and reset buttons available is great.

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

20240324 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.0a5.

3,858 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,953 Thanks

38,953 THANKS

Adafruit Discord

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