View this email in your browser. Warning: Flashing Imagery
Welcome to the latest Python on Microcontrollers newsletter! The community continues to hum along with several new happenings this week. The new BeagleV-Fire SBC is out. Another company takes a bite out of Raspberry Pi. And twenty one boards were added to CircuitPython this last week! You’ll want to take a look at the latest additions. Now to think of an internet radio that doesn’t play holiday music for the next three weeks… Anne Barela, 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:
The BeagleV-Fire Single Board Computer Is Now Out
The BeagleV-Fire is a new single board computer powered by Microchip PolarFire MPFS025T penta-core RISC-V SoC FPGA that follows the BeagleBone Black form factor for compatibility with BeagleBone cape expansion boards. BeagleV-Fire comes with Ubuntu preinstalled to get started out of the box. Some suppliers have them on order, RS apparently has some now (at press time) – CNX Software, beagleboard.org, and YouTube.
Arm Acquires Minority Stake in Raspberry Pi
Arm Holdings plc today announced late last week that it has made a strategic investment, a minority stake in Raspberry Pi Ltd — the arm of Raspberry Pi responsible for the new Raspberry Pi 5 and past Raspberry Pi products.
Arm’s minority stake extends the long-term partnership between Arm and Raspberry Pi, which has seen Arm CPUs feature in all of the Raspberry Pi and Raspberry Pi Pico SoC. The partnership began way before the Raspberry Pi was available for sale, in 2008 — when the original board was still just a dream. Fast-forward to 2023 and there is a generation of learners who have taken their first steps with coding, science and electronics thanks to the Raspberry Pi – Tom’s Hardware and Hackster.io.
The investment, financial terms of which have not been made public, comes a month after Upton spoke of interest in floating the firm on the London stock exchange at a $500 million valuation — and seven months after Sony, which runs the Welsh production facility which makes many of Raspberry Pi’s boards, made its own “minority investment” in Raspberry Pi.
Espressif Announces the Arduino ESP32 Core version 3.0.0
Espressif Systems is announcing the new release of the Arduino ESP32 core including support for the ESP32-C6 and ESP32-H2 with the most recent ESP-IDF 5.1. To help the migration from the Arduino ESP32 core 2.0.x to 3.0.0, there is a guide to assist with the migration process – Medium.
Girl Scout Maker Badges
Stanley Black & Decker has partnered with the Girl Scouts of the USA to launch Maker Badges. These new badges are providing the next generation with the tools to tap into their creativity, discover new interests and explore future careers in the trades – Girl Scouts via X.
The Official Raspberry Pi Beginner’s Guide, 5th Edition Is Out Now
The latest edition of the flagship book about Raspberry Pi products is now out: The Official Raspberry Pi Beginner’s Guide by Gareth Halfacree. In its fifth edition, there is new coverage of Raspberry Pi 5, Raspberry Pi Zero 2 W, and the most recent version of Raspberry Pi OS. Gareth even included a bonus chapter that covers Raspberry Pi Pico and Pico W – Raspberry Pi News, Order and code on GitHub.
Gender Diversity and Representation in Popular Python Community Podcasts
Throughout the years, the Python community as a whole has made significant effort in improving diversity. This can be seen in improvements in speaker diversity at Python conferences, and among PSF Board of Directors. However, when looking at popular podcasts in the Python community, Podcats noticed that women are still underrepresented compared to men. They could not find an existing analysis about this, therefore they decided to do their own research to gather data about gender diversity at podcasts about Python – pypodcats.live via Mastodon.
Python Software Foundation News
The PSF announces that Marie Nordin is their new inaugural Community Communications Manager. Marie joins the PSF as a longtime contributor in Open Source, an experienced community organizer, and an enthusiastic communicator – PSF.
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
Last Friday, Tim was updating projects for the new
displayio API in CircuitPython 9.0.0 alpha.
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 WiFi Web Workflow – Adafruit Blog and YouTube.
Catch all the episodes in the YouTube playlist.
CircuitPython Weekly Meeting
CircuitPython Weekly Meeting for October 30, 2023 (notes) on YouTube.
Project of the Week: An Electronic Guitar with an Ultrasonic Neck
An electric guitar with some novel twists. Programmed in CircuitPython on a Raspberry Pi Pico, it uses an ultrasonic sensor rather than a neck to detect movements and translate them to notes – X Posts.
Popular Last Week
What was the most popular, most clicked link, in last week’s newsletter? eBook: Simple Electronics with GPIO Zero.
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.
Accurately Calculating Coordinated Mars Time with CircuitPython – Adafruit Playground.
SamplerBox is an electronic musical instrument. Drop audio samples onto it, hook up a MIDI keyboard, and you’ll be able to play with realistic piano, organ, drums sounds and more – Adafruit Playground.
Bluetooth-controlled electrical outlets – Adafruit Playground.
PaletteFader: a CircuitPython Community Bundle color palette and list brightness setter and normalizer tool – Adafruit Playground.
News from around the web!
Plane Spotting with Redis, Node.js and MicroPython – simonprickett.dev.
Dandy is a set of reusable Python functions and examples to help display sensor data in a graphical user interface (MicroPython/CircuitPython) – hackster.io.
Getting an ESP32 board connected to a large eInk panel with CircuitPython (Czech) – X.
A Twitch on-air/viewer count RGB matrix display with CircuitPython – X.
Air quality monitor PICO displays PM2.5 particulate values and calculates AQI index values, displaying them on a TFT LCD display and LED RGB bar (WS2812) using MicroPython – hackster.io.
Using an MPU-6050 with a Raspberry Pi Pico with MicroPython – Medium and YouTube.
MicroPython examples for running LilyGo’s T-deck – GitHub.
Using buttons to control RGB LED colours – Raspberry Pi Pico, MicroPython, PWM – YouTube.
The Ebyte LoRa E32 library and MicroPython – mischianti.org.
Speeding up Cython with Intel SIMD instructions – pythonspeed.com.
Automagically Switch an Idle FlexRadio to WSPR with Python – Whisky Tango Hotel.
Luckfox launches an ultracompact Linux-capable Single-Board Computer (SBC) with on-device AI smarts. With a 32-bit Arm Cortex-A7 and the pairing of a RISC-V microcontroller and a neural processor, this compact board aims for edge AI work – hackster.io.
The Olimex RT1010-Py board runs MicroPython on 500 MHz NXP i.MX RT1011 Cortex-M7 MCU. The board comes with two 20-pin GPIO headers exposing various interfaces such as SPI and I2C, a microSD card slot for storage, two buttons, and a USB-C port for power and programming – 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 21 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!
Adafruit Qualia ESP32-S3 for RGB-666 Displays from M. LeBlanc-Williams
Updated Learn Guides!
Adafruit GPIO Expander Bonnet for Raspberry Pi from Liz Clark
Adafruit IO Basics: Digital Input
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 457!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
Library PyPI Weekly Download Stats
Total Library Stats
- 90880 PyPI downloads over 318 libraries
Top 10 Libraries by PyPI Downloads
- Adafruit CircuitPython BusDevice (adafruit-circuitpython-busdevice): 9751
- Adafruit CircuitPython Requests (adafruit-circuitpython-requests): 9186
- Adafruit CircuitPython Register (adafruit-circuitpython-register): 4204
- Adafruit CircuitPython ADS1x15 (adafruit-circuitpython-ads1x15): 2327
- Adafruit CircuitPython LIS3DH (adafruit-circuitpython-lis3dh): 1730
- Adafruit CircuitPython Display Text (adafruit-circuitpython-display-text): 1285
- Adafruit CircuitPython Motor (adafruit-circuitpython-motor): 876
- Adafruit CircuitPython ServoKit (adafruit-circuitpython-servokit): 847
- Adafruit CircuitPython Pixelbuf (adafruit-circuitpython-pixelbuf): 837
- Adafruit CircuitPython NeoPixel (adafruit-circuitpython-neopixel): 832
What’s the CircuitPython team up to this week?
What is the team up to this week? Let’s check in!
I’ve narrowed down a problem with NINA-FW, used on AirLift boards, that causes it not to work with certain SSL certificate chains. I now know the exact call that’s causing the problem, but it’s not something that should be breaking. So it may be some kind of configuration problem.
We added CircuitPython library bundles for version 9.x when we released CircuitPython 9.0.0-alpha.2. Coincidentally, GitHub CI updated the default version of Python to Python 3.12 at just around the same time. This caused some bundle and library building to break, and the circup program also broke. We fixed the bundles and libraries in the past few days, and I changed circup so it is now more robust when unable to download new bundles.
This past week with CircuitPython 9.0.0 released, I added a whole bunch of new boards to circuitpython.org. I also wrote several new libraries for CircuitPython and Arduino. This includes Adafruit_CircuitPython_PCA9554, Adafruit_CircuitPython_CST8XX, and Adafruit_CST8XX_Library. I also updated the Qualia ESP32-S3 guide with usage of the new touchscreen libraries.
This week I’ve been working on some infrastructure issues in the CircuitPython org bundle that were raising errors in circup. I’ve also been working on different components that will be used to make a way for circuitpython libraries to specify dependencies that are in a bundle but not deployed to PyPI which is optional and many community bundle libraries are not on PyPI. The first step was to alter the build-tool to add the pyproject.toml file into the bundles.
This week I’ve been getting back to switching CircuitPython (CP) to an auto-growing split heap. MicroPython (MP) 1.21 added this functionality for the ESP32. It greatly simplifies CP code where allocations need to happen outside of the VM even when it is running. We couldn’t do this before because the VM heap took all of the remaining memory.
One of the major hurdles with the code change was running out of flash space for the added heap code. It occurred on the continuous integration tests (CI) with GCC 12.3 but built ok on my computer with GCC 13.2. As a long shot, I checked to see if ARM released GCC 13.2 and they had! So, we’ve updated GCC in the CP CI and now there is room for the split heap stuff.
Next on my plate is bug fixing for 9.0 alphas.
This week I worked on a few things. The first was putting the finishing touches on the VCNL4020 CircuitPython library. I wrote this library similarly to the other two I’ve worked on recently by using ChatGPT4 to port the Arduino code. Scott also gave me a lot of really helpful feedback during the review of the HUSB238 library that I was able to apply to the VCNL4020 so this went a lot smoother.
I’ve also started working on a project using the 4” round 720×720 display. This will be a clock project that shows Earth time and Mars time with an “analog” clock face. The trickiest part was figuring out the math for rotating the polygon clock hands. However I was able to figure that out and I’m able to pull down time via Adafruit IO and display it. Next will be adding Earth and Mars modes and converting Earth time to Mars time.
Some titanic items are to be announced at GitHub Universe, November 8 and 9, live in San Francisco and virtual (online tickets are free) – GitHub Universe.
The next MicroPython Meetup in Melbourne will be on November 22nd – Meetup.
The inaugural PyLadies Conference will take place December 1-3, 2023 – pretalx.
The Pyjamas Conference, the 24-hour online Python conference, will be returning for a fifth year on December 9-10.
PyCon US 2024 Launches – May 15-23, 2024 in Pittsburgh, Pennsylvania US – PyCon US.
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.
CircuitPython’s stable release is 8.2.7 and its unstable release is 9.0.0 Alpha 2. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20231103 is the latest Adafruit CircuitPython library bundle.
20231102 is the latest CircuitPython Community library bundle.
v1..21.0 is the latest MicroPython release. Documentation for it is here.
3.12.0 is the latest Python release. The latest pre-release version is 3.13.0a1.
3,703 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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 37,976 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, Instagram Reels), 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.
Join the Adafruit Discord or post to the forum if you have questions.