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! Things are heating up in the Northern Hemisphere and Pythonistas are looking for any chance to stay chill. A new version of CircuitPython helps, adding some requested goodness. Your editor did a videocast and finally some really nice projects rounds out this issue. I hope you enjoy – 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.0 Beta 1 Released!

CircuitPython 8.2.0 Beta 1

CircuitPython 8.2.0-beta.1 was released this past week. It’s a beta release for CircuitPython 8.2.0. – Adafruit Blog and release notes on GitHub.

Notable changes to 8.2.0 since 8.1.0

  • Continued enhancement of synthio.
  • RP2040 alarm.sleep_memory.
  • Reduce size of stack frames.

Focus on RISC-V

A Major Tectonic Shift away from Arm to RISC-V may be in the works for Qualcomm, Samsung, Google, Nvidia and Apple

A major tectonic shift away from Arm to RISC-V may be in the works for Qualcomm, Samsung, Google, Nvidia and Apple – Patently Apple.

RV32I RISC-V emulator

You can get started with RISC-V quickly, without using an FPGA or a logic simulator with the RV32I RISC-V emulator. Run 1.19 MicroPython on it and analyze the emulator to understand RISC-V – Twitter and GitHub.

Industry Leaders Launch RISE to Accelerate the Development of Open Source Software for RISC-V

Industry leaders launch RISE to accelerate the development of Open Source Software for RISC-V – The Linux Foundation.

rv – a RISC-V CPU core written in ANSI C in 600 lines of code – GitHub.

Autodesk announces EAGLE CAD Retirement in 2026

EAGLE CAD Retirement

Effective June 7, 2026, Autodesk will no longer sell nor support EAGLE. New and active Fusion 360 and Fusion 360 with EAGLE Premium subscriptions will continue to give access to Fusion 360 electronics as well as EAGLE Premium functionality until EAGLE is no longer supported in June 2026.

A lot of boards designed to run Python and Open Source designs are created in EAGLE so this may affect a large part of the industry – Autodesk.

Videocast: Ardan Labs talks Adafruit, Engineering, and Foreign Service with Anne Barela

Videocast

Adafruit CircuitPython team member Anne Barela (Ed Note: also your editor) spoke with Ardan Labs on a number of topics including Adafruit and CircuitPython as well as Anne’s life pre-Adafruit – YouTube.

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

This week, Tim streamed checks on ESP32 SPI socket compatibility.

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 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 – CircuitPythonShow.

The show is off this week. Last week Martin Tan joined the show and next week Paul interviews Erin St. Blaine from Adafruit – Show List.

Project of the Week: Using the RP2040-based Round Waveshare Display with CircuitPython

Waveshare Display with CircuitPython

Recently Josh found a microcontroller with a round LCD made by Waveshare. It’s built around the RP2040 chip that sits at the heart of the Raspberry Pico, making it very compatible with Arduino and Python. It has some built in sensors, 4MB of flash, and a lipo charger circuit.

Although the official website only mentions C and MicroPython support, there is a beta CircuitPython firmware build available to download on circuitpython.org. This device uses the GC9A01 graphics driver, which is supported by the latest CircuitPython release – Josh on Design.

News from around the web!

Functional Tricorder Quick Test

Making a functional Raspberry Pi + Python-based Tricorder – YouTube and GitHub.

How Raspberry Pis are made (Factory Tour)

How Raspberry Pis are made (a factory tour) – Jeff Geerling and YouTube.

Guitar

Automated guitar picking action courtesy of a Pimoroni Servo 2040 – a board combining an RP2040 microcontroller and servo controllers, programmed in CircuitPython – Electronics Weekly.

DIY Voltmeter with ESP32 and MicroPython

Making a DIY voltmeter with ESP32 and MicroPython – YouTube.

Battery Capacity Measurement Using Kitronik Inventor's Kit and Adafruit CLUE

Making a battery discharger which can measure a battery’s capacity with a constant current load using the Kitronik Inventor’s Kit and an Adafruit CLUE. It includes CR2032 lithium coin cell testing – Instructables.

MicroPython with esp8266 and esp32

MicroPython with ESP8266 and ESP32: flashing firmware and programming with basic tools – mischianti.org.

BTTF Clock

Using a Pi Pico and CircuitPython to control several multi segment displays to recreate the Time Circuits from Back to the Future – Twitter.

AHT20 Driver

Creating a DFRobot AHT20 sensor breakout library for MicroPython – Twitter and GitHub.

A custom driver for Ebyte's E32 modules

“Finally got a successful transmission with a custom driver for Ebyte’s E32 modules after 2-3 days of work. Just a couple more tests and documentation and the RFM9x modules will finally have some proper competition” – Twitter.

Monocle

The new Brilliant Labs monocle in used with GPT3, MicroPython, and LangChain to find esoteric words/definitions/examples. Perfect at a dinner party and you want to use open source hardware and software to know things – Twitter.

IO Expander

A CircuitPython driver for the Pimoroni IO ExpanderGitHub via Twitter.

Pico Motor Driver

Driving motors with a Raspberry Pi Pico and MicroPython using an L298N motor driver shield – Elektor.

WiFi illuminance & motion sensor

I installed MicroPython on Wio Node (ESP8266) and made a WiFi illuminance and motion sensor – GCD.

Intel Mono Font

Intel One Mono is an expressive monospaced font family that’s built with clarity, legibility, and the needs of developers in mind. It’s easier to read, and available for free, with an open-source font license – GitHub via omg! Ubuntu.

Mojo

A first look at the Mojo language. Mojo aims to be as easy to use as Python, but as powerful and fast as Rust – Infoworld.

Go’s best-kept secret

Go’s best-kept secret: executable examples – Bitfield Consulting.

micropython_rsa: a port of Adafruit_CircuitPython_RSA to run in MicroPython – GitHub.

SwiftIO Playground

SwiftIO Playground: an IoT hardware set for hardware programming in Swift – CrowdSupply.

An Entire RISC-V Operating System Into Just 2,000 Lines of Code

Egos-2000 packs an entire RISC-V operating system into just 2,000 lines of code – hackster.io.

PyDev of the Week: Prabhu Ramachandran on Mouse vs Python

CircuitPython Weekly Meeting for June 12, 2023 (notes) on YouTube

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Official MicroPython YouTube Channel.

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

Circle of Fifths Euclidean Synth with synthio and CircuitPython from Liz Clark

Computer Perfection Synthesizer from John Park

Clue Shot Timer from Eva Herrada

CircuitPython Libraries!

CircuitPython Libraries

CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!

For the latest libraries, download the Adafruit CircuitPython Library Bundle. For the latest community contributed libraries, download the CircuitPython Community Bundle.

If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Have you written a library you’d like to make available? Submit it to the CircuitPython Community Bundle. Interested in helping with current libraries? Check out the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and GitHub if you need help getting started. You can also find us in the #circuitpython 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 443!

New Libraries!

Here’s this week’s new CircuitPython libraries:

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

Library PyPI Weekly Download Stats

Total Library Stats

    • 138910 PyPI downloads over 310 libraries

Top 10 Libraries by PyPI Downloads

    • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 7001
    • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 6223
    • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2108
    • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 2031
    • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1307
    • Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 1253
    • Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1192
    • Adafruit CircuitPython Wiznet5k (adafruit-circuitpython-wiznet5k): 1030
    • Adafruit CircuitPython BLE (adafruit-circuitpython-ble): 1029
    • Adafruit CircuitPython MiniMQTT (adafruit-circuitpython-minimqtt): 992

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.0-beta.1 on Thursday, June 8. Notably, it contains the latest round of synthio changes, and fixes an issue on the Circuit Playground Express that caused stack overflows.

I’ve started merging MicroPython v1.19.1 into CircuitPython. When that is working, we’ll start on v1.20. There are also some interesting changes post-v1.20 that we might want to pick up soon.

Kattni

This week the Feather RP2040 DVI guide went live. It has everything you need to get started using your Feather DVI. If you picked up one of these nifty boards, check out the guide!

Next up is the NeoKey MX and CHOC Breakouts guide. It will have all the details about these little boards, including demos in CircuitPython and Arduino. Keep an eye out for this one!

Melissa

This past week I continued working on GitHub issues. My main focus was on testing a PR for CircuitPython and updating the MatrixPortal library for an upcoming new version of the MatrixPortal board.

Tim

I’ve been working on moving typing PR’s forward that had been stalled since being submitted this week. In addition I’ve continued digging inside of the core displayio code to gain a better understanding of its internals and ultimately try to fix an issue that causes hidden elements to take longer to render then their visible counterparts.

Jeff

Last week I mentioned that I was working on a synthio enhancement. This work, per-note filtering based on the mathematical “biquad” filter, has been merged and is in 8.2.0-beta.1.

Scott

This week I’ve bounced from adding 1-Wire and UART to the Pyrate code, to slimming down stack frames to allow more recursion in CP and writing a generator for the swirly mounting grid. I’ve also been poking the STM32G0 Stemma QT board that I designed.

Liz

I had two new guides go live this week. The first is the product guide for the NeoDriver, which is a seesaw-based breakout that lets you control NeoPixels over I2C. This is really handy for folks using Blinka on non-Raspberry Pi single board computers. I did some testing with some of these SBC’s and had some great results. The most impressive were with Libre Computer’s Le Potato board. I wrote up the steps required to get it running on one of my user pages.

The second guide was a big project: the Circle of Fifths Euclidean Synth with synthio and CircuitPython. This was a fun challenge to use the synthio module for the first time and come up with an intuitive and responsive musical interface using the ANO rotary encoders. I hope folks will find the guide useful for inspiring their own synthio projects.

Upcoming events!

MicroPython Meetup

The next MicroPython Meetup in Melbourne will be on June 28th – Meetup. From the May 24th meeting – Notes.

EuroPython 2023

EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote – EuroPython 2023.

PYCON UK 2023

PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.

Hackaday Supercon 2023

Hackaday has announced that the Hackaday Supercon is on for 2023, and will be taking place November 3 – 5 in Pasadena, California, USA.They’d like to hear your proposals for talks and workshops! The Call for Speakers and Call for Workshops forms are online now, and you have until July 18th to sign up – Adafruit Blog and Hackaday.

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.1.0 and its unstable release is 8.2.0-beta.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20230612 is the latest CircuitPython library bundle.

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

3.11.4 is the latest Python release. The latest pre-release version is 3.12.0b2.

3,559 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.

37,431 thanks!

37,431 THANKS

Adafruit Discord

The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,431 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, IGTV (Instagram TV), 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 Tuesday. 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.