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! The Raspberry Pi stock offering is complete as of Friday. It will be interesting to see the company perform over the next year. Dr. Simon Monk has a new book showing MicroPython on an ESP32. And thanks to Matt Trentini, there is a shiny new image of MicroPython v1.23 for Unix in a convenient Docker image. Plus lots of great content from the web this week. - Anne Barela, Editor

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:

Raspberry Pi is Now a Public Company

Raspberry Pi is now a public company

Raspberry Pi is now a public company. The company’s shares popped 32% after its IPO pricing on the London Stock Exchange - TechCrunch and CNBC.

“Retail investors can’t buy Raspberry Pi shares just yet, as only certain institutional shareholders can trade the company’s shares right now. Retail investors will be able to buy and sell shares starting on June 14th.”

The Absurd Idea of Rendering KiCAD Projects on The Web

Rendering KiCAD Projects on The Web

Thea Flowers’ Supercon 2023 talk ‘The Absurd Idea of Rendering KiCAD Projects on The Web’ was just released - YouTube via X.

Book - Programming ESP32: Learn MicroPython Coding and Electronics

New Book on ESP32 and MicroPython

A new book now out: Programming ESP32: Learn MicroPython Coding and Electronics by Dr. Simon Monk - DoctorMonk and Amazon (US).

“This book is two-thirds MicroPython programming, which applies to and ESP32 board and one third electronics using solderless breadboard. When it comes the electronics side of things, I provide breadboard layouts for two of the most popular ESP32 boards, the ESP32 Lite and the DevKit 1.”

A MicroPython v1.23.0 UNIX Port Docker Container

MicroPython v1.23.0 UNIX Port Docker Container

micropython/unix is a container providing a pre-built instance of the UNIX port of MicroPython. It’s useful for experimentation at the REPL, unit testing and development - Docker Hub via X.

Benchmarking TensorFlow and TensorFlow Lite on Raspberry Pi 5

Benchmarking TensorFlow and TensorFlow Lite on Raspberry Pi 5

Benchmarking TensorFlow and TensorFlow Lite on Raspberry Pi 5 - hackster.io.

“Running the benchmarks on the new Raspberry Pi 5 we see significant improvements in inferencing speed, with full TensorFlow models running almost ×5 faster than on they did on Raspberry Pi 4. We see a similar increase in inferencing speed when using TensorFlow Lite, with models again running almost ×5 faster than on the Raspberry Pi 4.”

Apple’s Embedded Swift Programming Language Lands for Several Microcontrollers

Apple’s Embedded Swift programming language

Bucking the Python on hardware trend, Apple has released a beta of the Embedded Swift programming language with support for ESP32-C6, Raspberry Pi RP2040, STM32F7, and nRF52840 microcontrollers - CNX Software and 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

Last Friday, Tim streamed work on attempting to integrate with BLE workflow.

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 due to technical difficulties. Catch all the episodes in the YouTube playlist.

CircuitPython Weekly Meeting

CircuitPython Weekly Meeting for June 10, 2024 (notes) on YouTube.

Project of the Week: An Akabeko Controller to Play Minecraft

An Akabeko controller to play Minecraft

BBコリー✂︎ (@BitBlt_Korry on X) made an Akabeko controller to play Minecraft. It uses a Tiny2040 board programmed in MicroPython - X (Japanese).

Popular Last Week

What was the most popular, most clicked link, in last week’s newsletter? A New git Cheatsheet (and the accompanying zine).

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.

SevenSeg

SevenSeg: Create an Instrumentation Vibe for Displayio - Adafruit Playground.

Hidden Clock

Hidden Clock is a clock driven by a ESP32C3, using a 3D printed light diffuser and a NeoPixel LED ring. The clock displays the hour and minute as shadowed numbers in glowing hexagons - Adafruit Playground.

Web MIDI Drum Synth

CircuitPython Web MIDI drum synth - Adafruit Playground.

News From Around the Web

TEARDOWN 2024 Talk

Teardown 2024 is a conferece happening from June 21 - 23, 2024 in Portland, OR, USA. Ned Konz is giving a talk: “Prototype to product with MicroPython: faster and happier embedded systems development” - TEARDOWN 2024.

BUS PIRATE 5

Bus Pirate 5 Review: The Swiss Arrrmy Knife of hardware hacking - eclypsium.

TIOBE Index for June 2024

TIOBE Programming Language Index for June 2024: The Top 10 Most Popular Programming Languages. C++ rises to second place but Python remains number one - TIOBE.

Major updates of ViperIDE this week

Major updates of ViperIDE, a web IDE for MicroPython, this week - X and GitHub.

  • Progressive Web App
  • Bluetooth LE support
  • WebREPL support
  • MIP Package Manager finally works

MPDisplay

MPDisplay is a universal display, event and device driver framework for multiple flavors of Python, including MicroPython, CircuitPython and CPython (big Python). It may be used as-is to create graphic frontends to your apps, or may be used as a foundation with GUI libraries such as LVGL, MicroPython-touch or maybe even a GUI framework you’ve been thinking of developing - GitHub.

Hidden Figures of Python

Hidden Figures of Python is a podcast series by the PyPodcats team. Their aim is to highlight voices of the underrepresented group members of the Python community - YouTube Playlist.

Why Raspberry Pi is the perfect companion for AI tinkerers

Why Raspberry Pi is the perfect companion for AI tinkerers - XDA.

Exploring Microphone Magic with I2S and Micropython

Exploring microphone magic with I2S and MicroPython - hackster.io.

Demo of upcoming project: a business card-sized USB and MIDI controller

Demo of upcoming project: a business card-sized USB and MIDI controller using CircuitPython - YouTube and GitHub.

Blinka Says Cardboard Game

Blinka Says cardboard game using CircuitPython - YouTube.

MicroPython Garbage Collection

Don’t let MicroPython’s garbage collector ruin a program - YouTube.

Macrokeyboard - Rasperry Pi Pico

A Macrokeyboard with Rasperry Pi Pico and CircuitPython - Instructables.

Digital Text Art Patterns With Micropython

Digital text art patterns with Micropython - Instructables.

Raspberry Pi powers creepy one-eyed, head-swiveling stuffed koala assistant with ChatGPT

A Raspberry Pi powers a creepy one-eyed, head-swiveling stuffed koala assistant using ChatGPT and Python - Tom’s Hardware and Reddit.

OLED 128x64 SSD1306 I2C Display Raspberry Pi Pico CircuitPython

Using a OLED 128x64 SSD1306 I2C Display with Raspberry Pi Pico and CircuitPython - YouTube.

Mixtile Core 3588E Review

Mixtile Core 3588E Review - The DIY Life.

Beginner’s Guide to Building LLM Apps with Python

A beginner’s guide to building LLM apps with Python - KDnuggets.

Choosing the Best Python IDE

Choosing the best Python IDE for your needs - GeekSided.

New

Dual Micro HDMI to HDMI adapter

Dual micro HDMI to HDMI adapter supports Raspberry Pi 5/4B, offers multiple power options - CNX Software.

Meles RISC-V SBC

Shenzhen Milk-V Technology’s Meles RISC-V credit card-sized SBC is powered by T-Head TH1520 quad-core SoC - 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 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

Pico W YBox3 from Liz Clark

Soundbox RP2040 from Ruiz Brothers

Optical Sensor Drum Track Sequencer from John Park

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

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

  • 88938 PyPI downloads over 327 libraries

Top 10 Libraries by PyPI Downloads

  • Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9461
  • Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 8934
  • Adafruit CircuitPython ConnectionManager (adafruit-circuitpython-connectionmanager): 8273
  • Adafruit CircuitPython Register (adafruit-circuitpython-register): 2600
  • Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 948
  • Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 889
  • Adafruit CircuitPython framebuf (adafruit-circuitpython-framebuf): 881
  • Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 856
  • Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 839
  • Adafruit CircuitPython DHT (adafruit-circuitpython-dht): 805

What’s the CircuitPython team up to this week?

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

Dan

This last week I fixed a CircuitPython USB HID issue introduced by a recent revision of TinyUSB. I also tried to track down the cause of an issue with AnalogIn on ESP32-S3 causing watchdog timer crashes or the loss of USB connectivity. I was greatly relieved to discover that the issue, whatever it was, had been fixed by the latest release (5.2.2) of the ESP-IDF.

We are now very close to a CircuitPython 9.1.0 release candidate.

Melissa

This past week I continued working on the CircuitPython Code Editor. I finished up getting the remaining file operations completely working on the updated REPL JavaScript library. This includes uploading and downloading binary files. The library and new features should be available soon.

Tim

I fixed a few issues that stemmed from the update to pyproject.toml in the Circup repo. I’m working on BLE support for Circup and the new wwshell utility that may eventually come with it. I also wrote the base functionality for a new cardboard arcade game called Blinka Says. Next I’d like to add some fancier elements like LED animations, highscore keeping, and perhaps different modes of play.

Jeff

Following up on the work I mentioned last week to allow playing MP3s streamed over HTTP, it’s now also possible in the “very latest” builds to stream from HTTPS. In both cases, the functionality was tested on ESP32-S3 boards with 128kbit/s mp3 streams. Other WiFi microcontrollers might work, but haven’t been tested yet.

Scott

This week I’m continuing to polish up BLE support on ESP chips. Thanks to the folks who’ve been testing on the edge. My fixes are currently in a PR.

I’ve also enabled deep sleep on a number of ESP chipsets including C2, C3, C6 and H2. (S2, S3 and ESP32 already had it.) It depends on the IDF update in the BLE PR.

Liz

This week I published the Pico W YBox3 project. This project was based on the YBox2 kit that Adafruit used to sell. It was fun to revisit this project concept with new hardware. The code is written in Arduino and has three widget channels that are selected with an IR remote. The channels show the date/time, weather data from OpenWeatherMaps and a fun Amiga bouncing ball screensaver originally coded up by Phil B.

I also worked on a guide and CircuitPython library for the CH9328 breakout in the shop. This breakout acts as a UART to HID converter and is great for adding HID functionality to board that don’t have a native USB peripheral, like the ESP32 and ATmega328. I also included a CPython example that lets you use a Raspberry Pi single board computer as an HID keyboard.

Upcoming Events

MicroPython Meetup

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

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 - EuroPython 2024.

PyOhio 24

PyOhio is being held July 27-28, 2024 in Cleveland, Ohio - PyOhio.

Espressif DevCon24

Espressif DevCon24 will be held Sep 3-5, 13:00-18:00 CEST. Call for presentations now - Espressif.

Maker Faire Bay Area

Maker Faire Bay Area returns to Mare Island Naval Shipyard on October 18-20, 2024 - Maker Faire.

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

20240612 is the latest Adafruit CircuitPython library bundle.

20240610 is the latest CircuitPython Community library bundle.

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

3.12.4 is the latest Python release. The latest pre-release version is 3.13.0b2.

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

39,598 Thanks

39,598 THANKS

Adafruit Discord

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