View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! Change is in the air. Arduino embracing MicroPython in a bigger way kicks off this week’s news. We also feature our first In the News from Mastodon as users migrate from Twitter. Some of Adafruit’s content will be on pause, so features you might look for may be on hiatus through the new year. – 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:
Arduino to support use of MicroPython and Introduces Arduino Lab for MicroPython
Arduino has partnered with Damien George to use MicroPython on a number of Arduino products. To accompany MicroPython, the new Arduino Lab for MicroPython is available as an alpha release. It is a rebranded fork of work done by Murilo Polese on an IDE which has a similar look to the current Arduino IDE – Arduino Blog and Arduino Labs.
PyScript Updates: Bytecode Alliance, Pyodide, and MicroPython
Earlier this year, Anaconda unveiled PyScript to enable users to create Python applications in the browser. Anaconda is making strategic investments in both the project itself and its core technology dependencies, such as WebAssembly (Wasm) and Pyodide open-source project (PyScript’s primary runtime). To that end, PyScript has been improving its technical foundations over the past few months – anaconda.com.
We are showcasing a technical preview of a new runtime for PyScript based on MicroPython. MicroPython is excellent at running in constrained environments without an operating system and with limited resources. When you apply MicroPython to Wasm in its default configuration, something new and exciting emerges: With a total size of 303KB, this new runtime loads instantly and starts executing MicroPython logic in less than 100ms.
While very early in the development process, this runtime will be excellent for creative, educational, and visualization use cases. The MicroPython runtime enables PyScript in many development scenarios where the current runtime loading performance is problematic. Since PyScript supports multiple runtimes via configuration, developers can choose the runtime that best fits the particular problem.
Micro Center talks with Raspberry Pi’s Eben Upton
This past week, Micro Center interviewed Eben Upton, the Creator and CEO of Raspberry Pi – YouTube
Python Cheat Sheets Compendium
Cheat sheets / reference pages come in handy when you are coding, irrespective of whether you are a junior developer or a senior developer. Afiz has compiled a list of Python cheat sheets – GitHub via Twitter.
Python Asyncio: The Complete Guide
SuperFastPython offers a free comprehensive guide on Python Asyncio, the syandard multiprocessing API (also used in CircuitPython). The guide provides a detailed and comprehensive review of asyncio in Python, including how to define, create and run coroutines, what is asynchronous programming, what is non-blocking-io, concurrency primitives used with coroutines, common questions, and best practices – SuperFastPython and Cheetsheat.
Raspberry Pi Beret
An Internet of Things mobile phone-controlled Safety Beret, using a Raspberry Pi Pico W, some NeoPixel LEDs, and MicroPython – GitHub and The MagPi, via Twitter.
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 hidden functionality for Core Module Vectorio.
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 is off this week. Catch all the episodes in the YouTube playlist.
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 – CircuitPython Show and Twitter.
The latest episode was released November 14th with Joey Castillo. Joey discusses the LCD Featherwing, the Open Book and its user interface, and power management – Show List.
Projects of the Week
I couldn’t choose from these two Pico W projects so I include them both – Ed.
Raspberry Pi Zero W running Python to display mastodon media on eInk display programmed in MicroPython – Mastodon.
TV Control with a Web Serving Pico
Guy Dupont tweets “Today in “stupid solutions to stupid problems” – the iOS app to control our TV doesn’t work so I deployed a web app running on a Raspberry Pi Pico W that we can all use. Took 20 mins, ~100 lines of CircuitPython code” – Twitter.
News from around the web!
A session hacking Pimoroni badges with MicroPython – Twitter.
“Guy Fawkes pumpkin is gone, so I repurposed the Adafruit N00ds. Why limit yourself to steampunk when you can do cyber ski punk! 😋 CircuitPython. Not much snow in FL though lol. Workshop goggles?” – Twitter.
Liz Clark, Kattni Rembor Celebrate the Raspberry Pi Pico’s CircuitPython Port with a Cow Web Server – hackster.io and YouTube.
Meet the worlds most advanced, WiFi-enabled and globally connected Christmas tree bauble with cheerlights using MicroPython – Twitter and YouTube.
”I have two MCP9808 sensor measuring in and out temperature. One is connected to an Adafruit PyPortal, the other is connected to a Raspberry Pico W. Both are running CircuitPython and I followed Liz’ learn guide. Now I need to wait to have more data points…” – hostux.social.
Pimoroni Galactic Unicorn display and a VL53L5CX distance sensor and MicroPython – Twitter.
Recording cheerlight data using a Raspberry Pi Pico W, MicroPython and MQTT – Twitter and GitHub.
“Who needs fancy (out-of-stock) LED drivers when you got bare WS2811 chips? Take that NeoPixel, your RGB is now orange-orange-orange! (Running on one of those cool black 16MB Raspberry Pi Pico clones) – Twitter.
Put the Raspberry Pi Pico into bootsel mode without pressing the button – Twitter.
Using a Ships Lamp to visualise wind speed from a live feed provided from a Davis Vantage Pro 2 weather station out of the Connected Environments Lab at University College London. The colour of the ships lamp changes, every 3 seconds, from Green to Red over a spread of 0 to 40mph. Uses a Pimoroni Plasma Stick 2040 W and MicroPython with MQTT – Twitter and GitHub.
“Converting C code to CircuitPython lead me down a rabbit hole with how the display functions are handled. Had to consult the source code and some great Adafruit learning guides / examples… A most enjoyable adventure” – Twitter.
How to Create Interactive Excel Dashboards with Python – mirioh.
How to remove backgrounds from images with Python – Tom’s Hardware.
How to Track Location using IP Address with Python – morioh and YouTube.
PyDev of the Week: Sarah Abderemane on Mouse vs Python
CircuitPython Weekly Meeting for DATE (notes) on YouTube
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? New Book: MicroPython for the Raspberry Pi Pico W: A gentle introduction to programming digital circuits with Python.
Coming Soon and New
The Orange Pi 5 uses a Rockchip RK3588S 8-core 64-bit processor, quad core A76+ (quad A55), embedded graphics, 4 to 32GB RAM. Orange Pi OS, Android 12 and Debian 11 supported – Twitter.
The keyboard manager stamp – 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 three 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!
Pico W HTTP Server with CircuitPython from Liz Clark
MagTag Literary Quote Clock from Eva Herrada
Bluefruit Ouija Board 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 391!
Here’s this week’s updated CircuitPython libraries:
CircuitPython Library PyPI Weekly Download Stats
- Total Library Stats
- 222659 PyPI downloads over 323 libraries
- Top 10 Libraries by PyPI Downloads
- adafruit-circuitpython-busdevice: 27931
- adafruit-circuitpython-requests: 26701
- adafruit-circuitpython-typing: 26534
- adafruit-circuitpython-register: 2998
- adafruit-circuitpython-bitbangio: 1140
- adafruit-circuitpython-display-text: 1115
- adafruit-circuitpython-neopixel: 1107
- adafruit-circuitpython-motor: 1069
- adafruit-circuitpython-ble: 1051
- adafruit-circuitpython-pixelbuf: 1049
What’s the team up to this week?
What is the team up to this week? Let’s check in!
I was out for about a week, so my report here is brief.
The LC709203F battery gauge we use on many Feather Espressif boards does not work well on the ESP32-S3. I am attempting some workarounds in the battery gauge library, and having users test the changes.
I am also working on pin sleep issues on the RP2040. If the pin changes state prematurely, before the sleep actually happens, it can prevent wakeup during sleep.
This past week I worked on the Adafruit PiCowbell Proto guide. This nifty little Raspberry Pi Pico add-on board adds a STEMMA QT connector, a reset button, and protospace to your Pico. There are four ways to assemble it, each detailed in the guide. There are also code examples of how to check to see if your I2C breakout is attached properly through the STEMMA QT connector. Finally, there are pinouts details and downloads resources. It has everything you need to get started with your PiCowbell Proto! If you picked up one of these excellent boards, keep an eye out for this new guide!
This past week I’ve been working on catching up on GitHub issues. One of the larger projects that I had put on hold was converting the Raspberry Pi Installer scripts to python. Part of the reason for putting that on hold was because there were some intermittently odd bugs in the Adafruit_Python_Shell library that I wanted to avoid putting into play.
After spending a bit of time really diving in, I was able to make some tests that consistently reproduced the issues and I was able to figure out the fixes to resolve the issue.
This week I got a new desktop computer and it took some time to get everything set up for development, I’ve got everything needed for core builds, docs builds, library PRs, and pre-commit working in the new environment. I tested a PR for some social media API requests, and added svg icon types to the tool that generates screenshots of projects and libraries.
I wrote a new library called NeoPxl8 and added it to the bundle. This library supports 8 simultaneous NeoPixel strands on 8 adjacent GPIO pins on the RP2040 microcontroller. This is inspired by some of the ideas of the Adafruit’s NeoPxl8 library for Arduino, but is an independent implementation that only works on RP2040.
It’s high performance because it not only writes the data to all 8 strands at the same time, it does it in the background so your CircuitPython code can start calculating the next frame of its animation right away. And yes, it works with the LED Animation Library, so that all your previous knowledge about creating great light shows transfers directly to NeoPxl8.
This library works with any board that has an RP2040 and 8 sequentially adjacent GPxx pins, so you can use it with a Raspberry Pi Pico, Pico W, or Adafruit Feather RP2040, Adafruit KB2040, and others. But the library will really hit its stride with the forthcoming “Scorpio” board designed just for controlling lots of NeoPixels.
This week I worked on updating the Si5351 clock generator guide to include the new STEMMA QT version of the board. I also worked on a guide for the new IR LED Emitter board. Both guides have pages for pinouts, CircuitPython, Arduino and resource files. The Pico W HTTP Server with CircuitPython guide that I mentioned last week also went live.
I was really excited and humbled that on 11/9’s Show and Tell two guests came by with versions of projects that I’ve written guides on. I am continually thankful for the opportunity to do this work full-time and that was definitely a highlight to see folks learning and having fun with the guides I’ve written.
The next MicroPython Meetup in Melbourne will be on November 23rd – Meetup. Slides from the last meeting are here.
RISC-V Global Summit, December 12-15, 2022 San Jose, California US – Linux Foundation, YouTube via Twitter.
PyCon US 2023 will be April 19-27, 2023, again in Salt Lake City, Utah USA – 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.
CircuitPython’s stable release is 7.3.3 and its unstable release is 8.0.0-beta.4. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20221113 is the latest CircuitPython library bundle.
v1.19 is the latest MicroPython release. Documentation for it is here.
3.11.0 is the latest Python release. The latest pre-release version is 3.12.0a1.
3,267 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
Vertical Farm Maker – Area 2 Farms – Adafruit Jobs Board.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 35,906 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.