If you missed this week’s Python on Microcontrollers Newsletter, here is the ICYMI (in case you missed it) version.
To never miss another issue, subscribe now! – You’ll get one terrific newsletter each Tuesday (which is out before this post). 10,511 subscribers worldwide.
The next newsletter goes out in a week and subscribing is the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Welcome to the latest Python on Microcontrollers newsletter! The last three days have been a holiday weekend in many places, giving a short break between busy weeks. School is out too, with student projects sitting idle, waiting for Autumn. But there are always events and the newsletter below provides the latest happenings around the world. Of note is CircuitPython 8.1.0 release and a 8.2.0-beta.0 with some neat capability. I hope you can relax and read this issue rather than catch up with a busy inbox. – Ed.
Two New CircuitPython Versions Released
The CircuitPython team simultaneously released CircuitPython 8.1.0 and a new beta 8.2.0-beta.0. 8.1.0 remains unchanged from the 8.1.0 release candidate reported last week. 8.2.0-beta.0 incorporates some interesting new features:
- Continued enhancement of
CircuitPython 8.1.0 – Adafruit Blog.
zigpy-zboss library makes Nordic Semi nRF52840 Zigbee dongles compatible with Home Assistant
zigpy-zboss is a Python library that adds support for Nordic Semiconductor nRF52840 modules to zigpy open-source Python Zigbee stack project, as well as other Network Co-Processor radios that run firmware based on ZBOSS Open Initiative (ZOI). This enables integration with compatible Zigbee gateway implementations such as Home Assistant’s ZHA integration component and allows users to directly control Zigbee devices from a wide range of manufacturers such as IKEA, Philips Hue, Samsung SmartThings, ITEAD SONOFF, Xiaomi Aqara, and others – CNX Software and GitHub.
Microsoft DeviceScript for Programming Microcontrollers
Microsoft has quietly released a Technical Preview of DeviceScript. It brings a professional TypeScript developer experience to low-resource microcontroller-based devices. DeviceScript is compiled to a custom VM bytecode, which can run in very constrained environments. It uses a Visual Studio Code Extension to make an Integrated Development Environment with full debugging – GitHub.
Free Certification Courses in Data Science with Python from IBM
Cognitive Class is offering three IBM courses in Data Science using Python – Twitter.
Sending Data Between Multiple Raspberry Pi Pico W’s
Connecting multiple Raspberry Pico W’s can be essential in projects involving distributed systems. In a tutorial, ShillehTek demonstrates how to send messages between two Raspberry Pi Pico W devices using the Thonny IDE in MicroPython – ShillehTek, GitHub and YouTube.
The Python Language Summit 2023: What is the Standard Library for?
“Overall, there was agreement that the original motivations for a large, ‘batteries-included’ standard library no longer held up to scrutiny. ‘In the good old days,’ Ned Deily reminisced, ‘We said ‘batteries-included’ because we didn’t have a good story for third-party installation.’ But in 2023, installing third-party packages from PyPI is much easier.”
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 is on the hunt for a displayio bug.
You can see the latest video and past videos on the Adafruit YouTube channel under the Deep Dive playlist – YouTube.
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 – CircuitPythonShow and Twitter.
The show is off this week. Last week featured CircuitPython core developer Dan Halbert and next week Martin Tan, author of micro:bit Projects with Python and Single Board Computers: Building STEAM Projects with Code Club and Kids’ Maker Groups, joins the show.
Project of the Week: A Handheld LoRa Messenger Using Wio Terminal
News from around the web!
A rechargeable BLE Candle project. It uses an Adafruit ItsyBitsy nRF52840 RGB BLE, an electric candle, and Cedar Grove adapter. It has flicker, pulse, rainbow, coded with pure PWM from scratch, no animation library is used. Controllable via a Bluetooth phone or tablet – Twitter and Mastodon.
An all-terrain LEGO robot climbs obstacles like no other! Built with LEGO SPIKE and coded with Pybricks MicroPython – Twitter.
Measuring a resistor using a voltage divider to find the nearest E12 value and draw a picture of the resistor. Written in MicroPython on a Pimoroni Pico Explorer Base with a Raspberry Pi Pico – Twitter.
An MQTT communications protocol primer – Kev’s Robots.
Remaking an analog meter clock with Raspberry Pi Pico and CircuitPython – Twitter Thread.
An old telephony linesman set is upgraded with an Adafruit PyPortal and CircuitPython – Twitter Thread.
CircuitPython 8.1.0 and up fully supports the Fig Pi boards (RP2040 microcontroller boards shaped like LEGO Minifigs) as well as Mini SAM M4. Upgrading the firmware is as easy as booting into BOOT mode, and dragging the new firmware from here onto the drive that shows up – Mastodon.
A Python Regular Expressions Cheatsheet – Twitter.
Plotting with the Pimoroni Pico Explorer Base. The Raspberry Pi Pico has the memory and power to do this using MicroPython – Twitter.
Raspberry Pi adapter sends keyboard input from an iPad, via HID, to devices – Tom’s Hardware.
PyDev of the Week: Draga Doncila Pop on Mouse vs Python
CircuitPython Weekly Meeting will be today 5/30/2023 at 1pm/1300 US Eastern Time on the Adafruit Discord Server.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? Raspberry Pi Pico W Lessons for Absolute Beginners.
Adafruit Mini I2C Gamepad with seesaw – STEMMA QT / Qwiic I2C port for no solder needed connectivity – Adafruit.
Olimex shows off an ESP32-WROVER Open-Hardware Single-Board Computer built specifically for Fabrizio Di Vittorio’s FabGL library. This new board can power emulated PCs, handheld games consoles, and more – hackster.io.
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 17 new boards added!
- SparkFun Thing Plus Matter MGM240P
- EFR32xG24 Dev Kit
- EFR32xG24 Explorer Kit
- Feather RP2040 CAN Bus
- Feather RP2040 with USB Type A Host
- Feather RP2040 ThinkInk
- YD-ESP32-S3 N16R8
- TTGO T-Display ESP32 16M
- YD-ESP32-S3 N8R8
- T-Watch 2020 V3
- Feather RP2040 Prop-Maker
- Core2 ESP32 IoT
- T-Display RP2040
- M5Stack Timer Camera X
- LOLIN S3 MINI
- LOLIN C3 Pico
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:
- How to Add a New Board to CircuitPython
- How to add a New Board to the circuitpython.org website
- Adding a Single Board Computer to PlatformDetect for Blinka
- Adding a Single Board Computer to Blinka
New Learn Guides!
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!
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 439!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
Total Library Stats
- 132362 PyPI downloads over 310 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9907
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9153
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 2973
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 1924
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 1273
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 1158
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1049
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 924
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 920
- Adafruit CircuitPython PCA9685 (adafruit-circuitpython-pca9685): 901
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
I released CircuitPython 8.1.0 final on Monday May 22, and followed quickly with CircuitPython 8.2.0-beta.0 on Wednesday, May 24. It’s great to have 8.1.0 out the door.
We’ll continue to work on 8.2.0, which will probably appear as a stable release relatively soon. However, I’m also working toward the longer range goal of 9.0.0. The first task is to merge the MicroPython v1.19.1 changes; later someone else may do the v1.20 changes.
I also spruced up the Adafruit Forums a bit last week. I updated subforum titles and descriptions, and moved a few forums around.
This week I published the Canary Nightlight guide. In this project, you’ll build a little glowing friend to watch over you from the outlet by the light switch. This 3D printed canary lights up blue when it’s your time to be awake, and red when it’s your time to sleep. As well, it watches over you by telling you when your internet is down by blinking red. The code is super customisable, so you can change the timing, colors, and brightness to whatever works for you, or disable the network down detection if that isn’t your thing. Not to put top fine a point on it, but you should definitely check out this guide!
This week, I worked with Erin to finish up the Magic Storybook with ChatGPT learn guide. I wrote the Software Setup and Usage pages. I was able to fix the majority of the bugs, but being that this project is as complex as it is, there are likely some cases where bugs can occur. It was a joy to work with Erin and she kept me on my toes by finding bugs that I had overlooked.
This week I finalized testing and reviews on an update to the
HTTPServer library that brings many new features and improved functionality. I’ve also submitted a few changes for the requests, and
websocket libraries to allow more control over redirect behavior and headers sent to open the socket respectively. I’ve continued building an API for NeoPixels and DotStars on top of the upgraded
HTTPServer library, dynamically import animations are the latest feature added.
After several weeks of work, I think that CircuitPython’s new synthesizer support is pretty complete. You can check it out in the new beta of CircuitPython 8.2! Thanks to all who helped educate me during this project. I can’t wait to see what folks do with this new capability.
This week I’ve been bouncing between MCU flasher and the Pyrate code bases. MCU flasher needs a little reorg and polish. Pyrate has many more modes to implement. I got the prototype board, so I’ve been making that work fully. You can now toggle power supplies, pull ups and use SPI mode.
This week I published a guide for the new ANO encoder STEMMA QT breakout. This breakout uses an ATtiny816 to run seesaw firmware. This makes wiring up one of these encoders super easy. It makes it so much easier that I started working on a project with five of them to build a synth using the new
synthio module in CircuitPython. The circular shape of the encoders has inspired the evolution of the synth to use Euclidean rhythms and advance chords using the circle of fifths.
EuroPython 2023 will be July 17-23, 2023, in Prague, Czech Republic and Remote – EuroPython 2023.
PyCon UK will be returning to Cardiff City Hall from Friday 22nd September to Monday 25th September 2023 – PyCon UK.
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.
20230529 is the latest CircuitPython library bundle.
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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,375 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.
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.