View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! Each issue highlights new boards supported by Python and this week is the Raspberry Pi Pico W, H, and eventually the WH. The “PiCow” will be popular by shear ubiquity, even if Espressif has been in this space for a long time (with integrated chips). New projects are already being demonstrated. Also in this issue are some very interesting firmware/driver updates and beautiful projects by the community. Enjoy and hopefully you had a happy Canada Day / July 4th for those who celebrated.
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:
Introducing the New Raspberry Pi Pico W
June 30th, Raspberry Pi launched three new members of their Pico family. Raspberry Pi Pico W is priced at $6 and brings 802.11n wireless networking to the Pico platform while retaining complete pin compatibility, adding an Infineon CYW43439 wireless chip.
The CYW43439 supports both Bluetooth Classic and Bluetooth Low-Energy per the datasheet. Raspberry Pi has not enabled Bluetooth on Pico W at launch, but may do so in the future.
Getting started guides for C and MicroPython, as well as links to API level documentation, are available in the microcontrollers section of the Raspberry Pi documentation site. Raspberry Pi expects more demos and documentation to be released in the next month or two. CircuitPython does not currently support the wireless aspects of the Pico W, and there is not yet a custom build for the board. The original Pico CircuitPython build will largely work on the Pico W though there are some minor pin differences.
Pico H ($5) and Pico WH ($7) add pre-populated headers, and a new 3-pin debug/UART connector, to Pico and Pico WH, respectively. The connector is a 1.0mm pitch 3-pin JST ‘SH’ connector SM03B-SRSS-TB.
Pico H and Pico W are available now; Pico WH will follow in August. It was first available from UK retailers and is expected in US retailers shortly.
The CMW43439 is a powerful chip in its own right. It has a Cortex-M3 core with 512KB RAM and 640 KB ROM. This is in comparison to the RP2040 which has 264KB RAM and 16 KB ROM – Twitter and CMW43439 Datasheet.
And if you are curious what’s under the RF shield of the board – Twitter.
There is a C driver for CYW43xx WiFi and Bluetooth by MicroPython lead Damien George, which is free only for non-commercial use. The cyw43-driver is also available for use with Raspberry Pi Ltd semiconductor devices under different terms – GitHub.
An RGB Hexagonal Keyboard Powered by CircuitPython
A beautiful custom keyboard with colored hexagonal keys. The keyswitches are Kailh Choc, the keycaps custom resin. It’s powered by a Solder Party RP2040 Stamp with custom CircuitPython – Twitter and Firmware.
Tom’s Hardware PiCast Featuring CircuitPythonista Debra Ansell Tuesday
Tom’s Hardware PiCast videocast week has special guest Debra Ansell, @GeekMomProjects, to talk about her fantastic range of LED infused projects. From bags, wearables, robots, blobs, chances are GeekMomProjects has found a clever way to add RGB LEDs – Twitter and YouTube Broadcast.
Adding a Webserver to CircuitPython
CircuitPython lead developer Scott Shawcroft has added a web server to CircuitPython that enables file browsing and manipulation from a web browser. Serial support will be added in a follow up PR – GitHub.
QMK Keyboard Firmware Significant Updates
The popular QMK firmware for keyboards has added Raspberry Pi RP2040 support with PR 14877.
This has enabled an important addition to QMK of Adafruit MacroPad RP2040 support which includes a driver for the SPI OLED display. Adafruit contributed a USB VID/PID identification pair just for QMK installation – PR 17512.
urequests MicroPython Library Updated
MicroPython PR #500 adds basic auth to urequests. Also added: redirects, chunked uploads, timeouts, response header parsing and a collection of other fixes – GitHub via Twitter.
PSF Board Member Election Results
The Python Software Foundation congratulates the election of new board members – PSF via Twitter.
- Kushal Das
- Jannis Leidel
- Dawn Wages
- Simon Willison
This Week’s 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
This week, Tim streamed work on Web Workflow and maybe Game & Watch Octopus.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
John Park’s CircuitPython Parsec this week is on SVG graphics to VectorIO – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
The CircuitPython Show
The CircuitPython Show is a new 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 twenty to thirty minute interview – CircuitPythonShow and Twitter.
The podcast is off this week. Last week Guy Dupont shared his many projects and the next episode, on July 11th, features Nicholas Tollervey, creator of the Mu code editor – Show List.
Projects of the Week: Raspberry Pi Pico W
Here are a couple of projects using the new Raspberry Pi Pico W with MicroPython, inspired by Les Pounder’s article in Tom’s Hardware How to Connect Raspberry Pi Pico W to the Internet:
Raspberry Pi Pico W gets the names of the ten people currently in space using JSON and MicroPython. The publicly available data is from the internet via WiFi – Twitter.
Been tinkering all afternoon with my Raspberry Pi Pico W and finally got the real time latitude and longitude of the Space Station showing on a tiny OLED screen, getting data from the Open Notify API through my home WiFi using MicroPython – Twitter.
News from around the web!
A round display knob, similar to a Nest thermostat, with a round display. Made possible by a cool hollow rotary encoder and some clever 3D printed parts. Not done yet but it kind of works! It runs on an Adafruit QT Py RP2040 using CircuitPython – Twitter Thread.
FTDI, at Embedded World 2022, demonstrates their IDM2040-7A display, powered by an RP2040 and CircuitPython. Nice work on drivers! – YouTube.
Fetching images over the internet, saving to an SD card and rendering to an eInk display with Raspberry Pi Pico W and MicroPython – Twitter.
An inexpensive 10 MHz GPS-based frequency standard using a GPS module and an Adafruit QT Py running CircuitPython – Adafruit Blog, Project Details, GitHub.
Live air raid status for Kharkiv, Ukraine using @yongxiangxu251 ESP32-C3FH4-RGB, Dmytro Panin, sirens.in.ua/api/v1, some MicroPython and very bright NeoPixels – Twitter.
Using a round display and a LSM9DS1 accelerometer to measure movement. A dot moves as the board moves via CircuitPython – Twitter.
And the two display eyes version by Mark Komus – Twitter and code – GitHub.
A cheat sheet to help you remember grep commands while using Linux – GitHub via Twitter.
Using a Raspberry Pi Pico W and MicroPython to get a web page from the internet in only a few lines of code – Twitter.
The Pimoroni MicroPython libraries have been updated for the new Raspberry Pi Pico W – GitHub.
Pimoroni celebrates the Raspberry Pi Pico W launch with an explosion of “Pico W Aboard” carriers, ranging from a wide-format RGB LED matrix to a full outdoor weather station setup – hackster.io.
Using a Banggood RP2040 board with 1.14” LCD and LoRa to draw shapes with MicroPython – YouTube and GitHub.
Hooking up a tiny thermal camera to a tiny SPI LCD with remarkably little Python – Twitter.
The upcoming 3rd edition of Python for Data Analysis is available as an “Open Access” HTML version on site https://wesmckinney.com/book in addition to the usual print and e-book formats – Wesmckinney.
Resources for learning Python – Women Who Code.
Build a Quiz Application With Python – Real Python.
Python Tutorial For Beginners – #46. Dice Program in Python – YouTube.
When the LIDAR sensor is out of stock, but you have a temperature sensor handy… – Twitter.
PyDev of the Week: Stephen Gruppetta – Mouse vs. Python.
The CircuitPython Weekly Meeting for July 4th will be held on July 5th at 1PM US Eastern time due to the US July 4th holiday.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Digi-key at Embedded World with Eben Upton of Raspberry Pi.
Galactic Unicorn is a huge, densely packed, programmable 53 x 11 LED matrix / sign from Pimoroni with wireless connectivity and oodles of extras – Pimoroni.
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.
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!
Walkmellotron: Cassette Player Mods from John Park
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 357!
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!
I’m continuing to work on porting CircuitPython to plain ESP32 (no suffix) processors. The first target is the new Feather ESP32 V2 board.
The ESP32 doesn’t have native USB, but ESP32 boards often include a serial-to-USB converter chip, connected to a UART on the ESP32. This is also true of ESP32-C3 and the micro:bit nRF boards. I refactored the serial support used on those boards to be more general, and now I’ve made the REPL available via this USB serial connection. I’ll be testing the other functionality of Feather ESP32 board, like I2C, SPI, and WiFi.
This week I worked on a guide for a GitHub Actions status tower light. It uses a USB-controlled tower light to show the status of your latest Actions run on a repo you specify. I also included files for a 3D printed stand to bolt onto the bottom to make the light more stable. Guide should be out soon, so keep an eye out for that!
I worked on writing classes to show and animate sprites for a PyGamer port of an old Nintendo Game & Watch handheld game called Octopus. I’ve also cut out, scaled, re-packed, and prepared all the bitmap assets for the game. I reviewed a few typing PRs. I made a pass through the GitHub workflow status script I wrote recently to add more thorough documentation and assisted Kattni in understanding it so it can be written up for a Learn Guide.
This week I polished up my web workflow code and sent it out for review. It will enable file editing through a web server presented by CircuitPython.
In the interim I fixed a couple bugs including a crash on ESP32-S3 that was introduced with my auto-WiFi work.
Yesterday I began work on adding a WebSocket url to the server that will allow interacting with the serial connection to CircuitPython. I’ll continue that work in addition to responding to review comments on the first PR.
This week I worked on a Cassette Mod guide with JP and an updated STEMMA guide for the ADS1115 and ADS1015 ADC boards. JP and I worked on two different ways to use CircuitPython to modify cassette players. My mod is the more chaotic of the two and uses an L9110 motor driver with a potentiometer to control the speed and direction.
This coming week I’ll be working on a project with the NAU7802 STEMMA board to create a food scale. A container will sit on a platform and its weight will be measured by a strain gauge. I’ll also be using an alphanumeric display for the GUI.
The next MicroPython Meetup in Melbourne will be on July 27th – Meetup. See the slides of the June 22nd meeting.
SciPy 2022, the 21st annual Scientific Computing with Python conference, will be held in Austin, Texas, USA from July 11-17, 2022. The annual SciPy Conference brings together attendees from industry, academia, and government to showcase their latest projects, learn from skilled users and developers, and collaborate on code development. The full program will consist of 2 days tutorials (July 11-12), 3 days of talks (July 13-15) and 2 days of developer sprints (July 16-17) – SciPy 2022.
EuroPython 2022 will be held on 11th-17th July 2022 and it will be both in person and virtual. The in-person conference will be held at The Convention Centre Dublin (The CCD) in Dublin, Ireland – EuroPython 2022.
PyOhio is a non-profit annual Python community conference usually held in Columbus, OH. It is being held online starting Saturday, July 30, 2022. It is free to attend and welcomes anyone with an interest in Python. Content ranges from beginner to advanced and is intended to be relevant to all types of Python users: students, software professionals, scientists, hobbyists, and anyone looking to learn more – PyOhio.
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.
CircuitPython’s stable release is 7.3.1 and its unstable release is 8.0.0 Alpha 1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20220704 is the latest CircuitPython library bundle.
v1.19.1 is the latest MicroPython release. Documentation for it is here.
3.10.5 is the latest Python release. The latest pre-release version is 3.11.0b3.
3,062 Stars Like CircuitPython? Star it on GitHub!
Call for help – Translating CircuitPython is now easier than ever!
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 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.
Job of the Week
Science Kit Builder – MicroKits – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 34,848 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
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, 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.
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.