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!

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 7.3.3 is Released

CircuitPython 7.3.3 is Released

CircuitPython 7.3.3 is the latest bugfix revision of CircuitPython and is a new stable release – Adafruit Blog and GitHub.

Notable changes to 7.3.3 since 7.3.2

  • Adafruit MatrixPortal: Turn off ulab to allow freezing adafruit_portalbase, to create more available RAM.
  • Return None from usb_hid.get_last_received_report() when no report is available or the last report has already been read.
  • Don’t reload or enter REPL when autoreloading.
  • Fix _bleio.PacketBuffer handling of fixed-length characteristics.
  • Update frozen libraries.
  • Build macOS mpy-cross executables with macOS 11.

Firmware downloads are available from the downloads page on circuitpython.org. The site makes it easy to select the correct file and language for your board.

Adafruit Adding CircuitPython Support for Raspberry Pi Pico W

CircuitPython Support for Raspberry Pi Pico W

The firmware UF2 for the Raspberry Pi Pico W LOOKS simple enough… on boot it blinks the onboard LED 3 times and then boots into CircuitPython 8. But, looks can be deceiving! The LED on the Pico W is not connected to a GPIO on the RP2040. It’s connected to a GPIO on the WiFi/BLE module! That blinking means that the bootloader is able to load firmware and communicate with the module in the CircuitPython firmware, an important first step to implementing the rest of the wireless stack. Soon CircuitPython and hundreds of libraries and IoT examples will be ready to run on the Pico W – Adafruit Blog, YouTube and Twitter.

Breaking: mapseflaps on CircuitPython

mapseflaps on CircuitPython

Pepijn de Vos posted yesterday that mapseflaps now works on CircuitPython. mapseflaps is a GPS mapping application for LCD displays – Twitter.

From the Editor

It’s been a week. The United States Labor Day weekend ushers the beginning of Fall/Autumn. A new batch of students will be introduced to both Python and hardware. And different launch times and trajectories were calculated for the NASA Artemis I mission using Python modeling. Hopefully makers had an extra holiday day to work on projects involving Python on hardware. If you did, tag your efforts with #CircuitPython, #MicroPython or #Python on social media.

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 work on CircuitPython Flip Clock displayio Widget Development.

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 Range Step Size – Adafruit Blog and YouTube.

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 and Twitter.

The latest episode was released September 5th and features Radomir Dopieralski. Radomir shares growing up behind the Iron Curtain, gaming on CircuitPython and robots – Show List.

Project of the Week: A CircuitPython Implementation of Conway’s Game of Life

CircuitPython Implementation of Conway's Game of Life

A CircuitPython implementation of the famous ‘Conway’s Game of Life’. It uses Adafruit’s adafruit_st7735r library to draw the game on a 128×160 pixel color TFT LCD and a Raspberry Pi Pico – GitHub.

News from around the web!

A small Raspberry Pi Pico stream deck with CircuitPython

A small Raspberry Pi Pico stream deck with CircuitPython and 3D printing – Twitter.

MIDI Visualizer

Showing incoming MIDI as raining MIDI notes on NeoPixel grid / matrix – Twitter and GitHub.

Digit recognition using CircuitPython

Handwritten digit recognition using CircuitPython, Raspberry Pi Pico, OV7670 and 120×160 TFT LCD – ashishware via Twitter.

An Amiga 600 Keyboard USB Adapter

An Amiga 600 Keyboard USB Adapter with Raspberry Pi Pico and CircuitPython – GitHub.

ESP32-S3-N16R8 build and flash CircuitPython

ESP32-S3-N16R8 build and flash CircuitPython firmware – Timon Peng.

Pi Pico "clone"

A “Pi Pico Clone” using an RP2040, USB-C, NeoPixel, buttons, and 4 or 16Mb Flash – Twitter.

Pico W Doorbell with MicroPython

A silent doorbell controlled by HTTP. Goal: Have a silent way to ask to come in the studio in case a shoot is happening. Uses two Raspberry Pi Pico W with MicroPython – Twitter.

CyberDog

“This weekend I’ve been working on CyberDog – which will be an RGB LED controllable dog coat using the Pimoroni Plasma 2040 & Raspberry Pi Pico W. Archie is modelling it here” – Twitter.

MicroPython LittleFS V2 - Directory to .uf2

MicroPython LittleFS V2: Directory to .uf2 for Raspberry Pico W only – GitHub.

MicroPython containers in Docker Hub

MicroPython containers in Docker Hub – Docker Hub via Twitter.

SparkyLinux & MicroPython

Using SparkyLinux and MicroPython together – Twitter.

WiFi in the Woods

WiFi in the Woods: How to build a captive portal with MicroPython and Phew! – YouTube.

Python Resources for Everybody

Python Resources for Everybody: a collection of Python learning resources – LearnByExample.

Introduction to the RP2040 and its Real World Uses Webinar

Introduction to the RP2040 and its Real World Uses Webinar – Element14.

Using Python to vectorize artwork for PCBs

Using Python to vectorize artwork for PCBs – thea.codes.

BME680 MicroPython Driver

“I’ve got the Pimoroni BME680 running with a Raspberry Pi Pico W using this MicroPython driver” – Twitter and GitHub.

HyperPixel Clock

Making a Pimoroni HyperPixel display based clock in Python – Twitter.

How I made an ai to watch my cats poop for me

How I made an AI to watch my cats poop for me with a Python script – Estefannie and YouTube.

Basic Pitch

Basic Pitch: provide a compatible audio file and basic-pitch will generate a MIDI file, complete with pitch bends. Basic pitch is instrument-agnostic and supports polyphonic instruments, so you can freely enjoy transcription of all your music, no matter what instrument is used. Written in Python – GitHub.

Python Libraries & Frameworks

Python Libraries and Frameworks graphic – Twitter.

Every Linux command I know a-z

Every Linux command I know a-z chart – Twitter.

PyDev of the Week: Wolf Vollprecht from Mouse vs. Python.

CircuitPython Weekly Meeting for this week is delayed a day due to the US Labor Day holiday.

#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Python Notes for Professionals book.

Coming Soon

JTAG programming from a Raspberry Pi

Andrew Hutchings writes “Due to my blog posts about JTAG programming from a Raspberry Pi are quite popular, I have created a small board for JTAG programming from the Pi. I’ll make some available as soon as I’ve documented it” – Twitter.

iLabs Bi2C NFC reader module

iLabs Bi2C NFC reader module will soon be released. This is a complete I2C based NFC reader solution with electronics and antenna in only 62x17mm and attaches with a flexible flat cable to the target system. It appears it will have CircuitPython and Arduino support – Twitter.

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 several are in development.

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

Game & Watch Octopus from Tim C

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

New Libraries!

Here’s this week’s new CircuitPython libraries:

Updated Libraries!

Here’s this week’s updated CircuitPython libraries:

What’s the team up to this week?

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

Dan

I implemented the ability to turn the CircuitPython status bar on and off, in case it might be found to be interfering with something else, or the user did not want to be present. We were having trouble with the Thonny editor and the status bar, when there were errors present. But this might have been due to an existing bug that was not really related to the status bar but was exercised by it.

I also spent time determining why deep sleep on certain ESP32 boards was using more power than expected in some situations. It appears to be due to not shutting down some power-control pins.

Kattni

This week I’ve been working with CircuitPython on the ESP32 V2 Feather. I’m working on a guide to build a WiFi mailbox notifier. The reason the project was switched to WiFi was to simplify the build, and give me a chance to work with the ESP32 CircuitPython workflow and the new web workflow. I’ve already found a couple of bugs.

I also created a new template showing how to install CircuitPython on ESP32 boards – we have explanations in multiple places, but not a board-specific version of it for each board guide.

Melissa

This past week I made a lot of progress with adding Web Workflow features to code.circuitpython.org. I finished adding Device Discovery and made the workflow much smoother. One of the things I’m particularly proud of is adding functionality to be able to transfer your work between different URLs. This solves one of the big problems with users starting work in one place and realizing they needed to save the work on a different device.

Originally we had planned to have everything happen on code.circuitpython.org, but browser security made this difficult and while the workaround of loading the website from the device worked, it made other things more challenging. However, this removes one of the largest remaining obstacles.

Tim

I updated the mpy size measurement PR based on feedback received. I tested and reviewed several library PRs including one for an alternative mode of operation for LSM303 accelerometers. I also worked on PIL based scripts to generate number sprites and create animation frames representing the top and bottom half of the numbers flipping down. I’ve have gotten it worked out so the number of animation frames can be specified so that we can try a few variations to find a good balance between having a smooth animation, and keeping the spritesheets as small as possible to preserve file storage space and memory.

Jeff

I’ve started implementing WiFi for CircuitPython on the Raspberry Pi Pico W (Pi Cow). So far, in my branch, it’s possible to blink the LED attached to the cyw43 wireless chip as a DigitalInOut; and to list (but not yet associate with) access points. Next up is integrating the “lwip” stack for network communication.

Liz

This week I worked on something that was not CircuitPython related: a guide showing how to use Unity with Arduino and a 9 DoF sensor. It would be cool to maybe revisit at some point with CircuitPython. However, in my research for the project, integrating Arduino and Unity seems to be a common question without a lot of written examples and code so I’m excited to have this resource available for folks.

I also worked on a new product guide for the MAX17048 Battery Monitor. That guide does include CircuitPython. I’m out on vacation next week, but I’m brainstorming a few projects at the moment that I’ll be working on when I return.

Upcoming events!

The next MicroPython Meetup in Melbourne will be on September 28th – Meetup. See the slides of the August 24th meeting.

PyCon UK 2022

PyCon UK will be returning to Cardiff City Hall from Friday 16th to Sunday 18th September 2022 – PyCon UK.

2022 Hackaday Supercon 6

After two years in remote mode, Hackaday is very excited to announce that this year’s Hackaday Supercon will be coming back, live! Nov. 4th, 5th, and 6th in sunny Pasadena, CA for three days of hacks, talks, and socializing with the Hackaday community – Call for proposals and Hackaday.

RISC-V Summit

RISC-V Global Summit, December 12-15, 2022 San Jose, California US – Linux Foundation, YouTube via Twitter.

PyCon US 2023 will be April 19-17, 2023, again in Salt Lake City, Utah US – PyCon US 2023.

Send Your Events In

As for other events, with the COVID pandemic, most in-person events are postponed or held online. If you know of virtual events or upcoming events, please let us know on Twitter with hashtag #CircuitPython or email to cpnews(at)adafruit(dot)com.

Latest releases

CircuitPython’s stable release is 7.3.3 and its unstable release is 8.0.0 Beta 0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.

20220905 is the latest CircuitPython library bundle.

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

3.10.6 is the latest Python release. The latest pre-release version is 3.11.0 rc1.

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

jobs.adafruit.com – Find a dream job, find great candidates!

jobs.adafruit.com

jobs.adafruit.com has returned and folks are posting their skills (including CircuitPython) and companies are looking for talented makers to join their companies – from Digi-Key, to Hackaday, Micro Center, Raspberry Pi and more.

35,441 thanks!

35,441 THANKS

Adafruit Discord

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

Codecademy “Learn Hardware Programming with CircuitPython”

Codecademy CircuitPython

Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with Adafruit to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.

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.