CircuitPython Weekly Meeting for September 8, 2026 @circuitpython #circuitpython #adafruit
Watch on YouTubeVideo summary
CircuitPython Weekly Meeting for September 8, 2026, marked the release of version 10.3.0, a new stable update that introduces significant enhancements including a Pico game engine module, advanced audio features like I2S duplex settings and biquad filters, and SDIO storage support for RP2 devices. The release also resolved critical issues such as restoring functionality to ESP boards and fixing various build failures. In the realm of projects, the community highlighted a new ROS2 library for MicroPython developed by Kevin McAleer, which allows boards like the Pico 2W and ESP32 to interact with real-time topics without requiring C toolchains or firmware reflashing. Additionally, innovative applications were showcased, including a custom Prusa Print Companion app built with MicroPython on a Tufty 2040 for monitoring 3D prints remotely, and a creative MP3 player project housed inside a cassette tape.
The meeting provided a detailed quantitative overview of the project's health, noting that the core team merged 34 pull requests in the previous week, bringing the total supported boards under Blinka to 174. The library ecosystem continues to grow with nearly 600 Python-level libraries available, split between Adafruit and community bundles. A significant portion of the discussion was dedicated to guiding new contributors on how to get involved, emphasizing that reviewing pull requests is an excellent entry point for those without specific hardware. The team encouraged participants to test code changes on their own setups, report findings via GitHub comments, and eventually join the review team or submit their own patches to address open issues ranging from bug fixes to feature requests.
In the status updates and hug reports segments, community members recognized key contributors like Smitha for improving GitHub CI builds, Dan H for resolving BLE workflow bugs, and Mikey Sklar for integrating new chips such as the AT32F435 and ESP32-S31 into CircuitPython. Individual updates covered a range of activities, from documenting time-of-flight sensors and preparing a Halloween-themed candy dispenser to advancing a game jam project with real graphics and tutorial levels. The team also addressed long-standing hardware issues, including a seven-year-old STM32 booting problem related to crystal capacitor sizing, which has finally been stabilized through both software and future hardware adjustments.
The final segment of the meeting, titled "In the Weeds," facilitated discussions on emerging topics like Rust support within CircuitPython. Developers debated the potential benefits of writing modules or board ports in Rust alongside existing C code, acknowledging that while dynamic loading is not currently supported, compiling Rust into the firmware image is a viable area for exploration if it does not overly complicate the build process. Another important topic addressed was the issue of multiple third-party manufacturers using Adafruit's USB vendor ID, which has been identified as an internal matter being resolved to ensure proper identification for boards that CircuitPython has not yet officially supported. The meeting concluded with reminders about upcoming schedules and invitations for attendees to support the project through purchases or newsletter subscriptions.
Read the full video transcript
Hello everyone. This is Circuit Python
weekly meeting for Tuesday, September
8th, 2026. It's time of the week where
we get together to talk about all things
Circuit Python. I'm Liz. I'm sponsored
by Adafruit to work on Circuit Python.
Circuit Python is a version of Python
designed to run on tiny computers called
microcontrollers. Circuit Python
development is primarily sponsored by
Adafruit. So, if you want to support
Adafruit and Circuit Python, consider
purchasing hardware from adafruit.com.
Meeting is hosted on the Adafruit
Discord server. You can join anytime by
going to adafruit.it/discord.
We hold the meeting in the Circuit
Python dev text channel and the Circuit
Python voice channel. This meeting
typically happens on Mondays at 2:00
p.m. US Eastern, 11:00 a.m. Pacific,
except when it coincides with a US
holiday, like this week. In the notes
doc, there's a link to a calendar you
can view online or add to your favorite
calendar app. We also send notifications
about upcoming meetings via Discord. If
you would like to receive these
notifications, ask us to add you to the
Circuit Python Nices Discord role.
There's a shared notes document that
accompanies the meeting and recording.
You can contribute to this document
beforehand. File notes document includes
timestamps to go along with the video so
you can use the doc to skip around and
view the parts of the video that
interest you most. Meeting tends to run
30 to 60 minutes. After each meeting, we
post a link for next meeting's notes
document in Circuit Python dev channel
on the Adafruit Discord. Check the pin
messages to find the latest notes doc so
you can add notes for the following
meeting. If you wish to participate but
cannot attend, you can leave hug reports
and status updates in the document for
us to read during the meeting.
Meeting is held in five parts. First
part is community news. Second part is
state of Circuit Python libraries and
Blinka. Third part is hug reports.
Fourth part is status updates. And fifth
part is in the weeds. And that covers
how the meeting will go. And with that,
we will get started with community news.
Uh Circuit Python 10.3.0 was released.
Circuit Python 10.3.0 is a minor
revision of Circuit Python and it's a
new stable release. And there are links
to Adafruit blog and GitHub. And notable
additions, gaming and display Pico game
engine module, which a lot of folks have
been talking about on here, has been
added. In audio, a ton of new features,
I2S in audio file writer.
Synthio biquad filters, duplex I2S in
settings.toml, a lot of new options.
Storage SDIO now available on RP2.
And then fixes, ESP now works again. And
then there are a bunch of build failures
that were fixed as well.
And then for projects, a robot operating
system ROS2 library for MicroPython.
Kevin McAleer is making Snake ROS, a
pure Python ROS2 client for MicroPython.
Snake ROS lets a MicroPython board, a
Pico 2W, a Pico W, and ESP32 publish and
subscribe to real ROS2 topics. No C
toolchain, no custom firmware, no
reflashing to add a message type. And
that's linked on GitHub and X.
Kevin does really cool projects, so
definitely check his work out if you
haven't.
And then another project, building a
custom Prusa print companion app with
MicroPython. Use a Tufty 2040 with a
Prusa 3D printer API to create Prusa
companion to monitor 3D prints while
away from the desk. With this app, you
can see the print progress, monitor
temperatures, and see the state of a
print directly from Tufty 2040 that is
with you or worn around your neck.
And then finally, another really cool
project, MP3 player stuffed into a
cassette using MicroPython. And that's
over on Instructables.
And these news items and more are
available in our weekly Python for
microcontrollers newsletter, which goes
out via email on Monday mornings. Visit
adafruitdaily.com to subscribe to
newsletter. Thanks to Anne for putting
newsletter together. If you have any
Python on hardware projects to share or
find content you'd like to see included,
please consider contributing to
newsletter. Email CP news@adafruit.com
with a link to content. And that is
community news. Next up is state of
Circuit Python libraries and Blinka.
This is a quantitative overview of the
entire project. Gives us a chance to
look at the health of the project
separate from our stats updates. We'll
talk about the project overall, then
separately discuss the core, libraries,
and Blinka. So, overall, there were 36
pull requests merged by 13 authors. And
they were lint smitka, 4rh1t3ct0r7,
0r7,
uh relic-se, j-berchall-svg,
the philipcom 4607, gr-grant, tannewt,
mykisglar, d-halbert, brian-barnett,
fomyguy, and aatl.
There were also three reviewers,
fomyguy, tannewt, d-halbert. There are
19 closed issues by five people, and
four issues opened by four people. And
now we'll hear from Dan about the core,
if you're available.
>> Okay, yes. So, in the past week we had
Can you hear me?
>> Yes, yes, you're good. You're good.
>> Great. Okay. So, in the past week we had
34 pull requests merged, which is
probably some kind of record.
Um
by 12 authors,
uh which by uh lint smitka,
one or two by 4rh1t3ct0r7.
Maybe next time I won't say that whole
thing. Uh the philipcom
4607 is also
kind of new.
Uh or maybe new, and uh
brian-barnett has done a few and did
some more.
And those were reviewed by three people.
Uh there are now 19 open pull requests.
This is very fluid as of yesterday, so
it could easily have changed. Um
there were 14 issues closed by four
people, and four open by four people
over the past week. We've got 759
remaining open issues. We've got seven
active milestones which helps us keep
track of the priorities
of our issues. So, for
issues that we want to fix in in some
version of 10.3,
uh we've got three open issues, some
50 open issues that we want to fix
somewhere in the 10
uh
version. And then 14 issues that we've
deferred until sort of Python 11. And
then there are other categories like
long-term and stuff. And there are no
issues not assigned a milestone, so
everything's been triaged.
So, that's it for the core.
>> Awesome. Thank you. And now we'll hear
from Tim about the libraries.
>> All right. Thanks, Liz. Uh this section
covers the Circuit Python libraries
which are split up on uh GitHub into two
different library bundles. We have the
Adafruit library bundle which has right
now 399 libraries in it. Uh so, coming
up on 400 there. And the community
library bundle, that one has 183
libraries in it uh for a total right now
of 582
Python level libraries that support
various pieces of hardware or helper
functionality uh on Circuit Python. Um
over the past week in the Adafruit
bundle, we had two pull requests merged
by two different authors. Uh or excuse
me, by one uh author, I should say. Uh
so, thanks to attle a a t l e. Uh this
week is a new or less frequent
contributor name that I haven't seen pop
up too much here at the very least. Uh
thanks to Dan for reviewing this week.
Uh the pull requests that were merged
were uh both brand new, just 1-day old
over in the mpu6050 library. Um pull
requests that remain open,
we have 40 of them right now across the
Adafruit bundle. The oldest one is a
draft. Uh and the newest one actually
listed at 18 days right now. So, uh I
have uh no It looks like we've got all
the newer
ones merged over the last week or two or
three-ish.
Issues-wise, we have five closed issues
by three people over the last week. No
new issues opened up, leaving us with
768 open issues, and there are two of
those right now that are labeled as good
first issues. You can find those two as
well as the rest over at
circuitpython.org/contributing,
which is a website where you should head
if you are interested in contributing to
Circuit Python on the Python side of
things. When you first load that page,
circuitpython.org/contributing,
you'll find a list of open PRs and open
issues. The thing that we tend to point
folks to first if you want to get
involved but don't have a specific thing
that you know you want to work on is
reviewing PRs. So, when you first load
that page, you can scroll through the
list of PRs. Those are links over to
GitHub, and the the the job there
essentially is click through to GitHub,
and then leave a comment reviewing that
proposed change um in the PR. So, you
can look over the code for spelling,
syntax, logic, anything like that. If
you have the hardware for whatever that
library is, then you can test it out on
hardware as well, and then leave a
comment there on GitHub letting us know
what you found when you looked over the
code. If you were able to run it on
hardware, let us know how that went.
Include details about like what version
of Circuit Python, what hardware,
all of that good stuff. If you get
comfortable with that process and you
would like to get leveled up to join the
review team that we have on GitHub so
you can get a few additional
notifications and other tools to find
stuff that needs review. We can work
with you to add you that. If you would
like to start submitting some of your
own
code as well, you can also do that from
the same page. If you click over to the
issues tab, you can find a list of links
to GitHub issues. These ones are things
identified as perhaps bugs or new
feature requests or new functionalities
that people want, Uh but they don't have
uh a proposed change yet. They're
waiting for a person to come along and
actually uh uh make the change and
submit it. And that could be you if you
want to uh get started working on this
stuff. So, uh you can click through to
GitHub again, read about what the issue
is, and then this time you'd be
submitting a PR to resolve that issue.
Uh we do have a learn guide for
contributing Circuit Python using Git
and GitHub. And we also have folks who
are around here on the Discord uh in the
help with Circuit Python channel uh who
are more than happy to help you get spun
up. So, if you are wanting to
contribute, uh reviewing PRs, or you're
wanting to submit some uh PRs of your
own to start working on issues, uh come
say hi in the Discord if you are having
any kind of trouble, especially. Uh let
us know what kind of issue you're
having. We will be happy to help you
out. Uh we want everyone to be able to
contribute in a way that works best for
you. Uh and I will leave you with
updated libraries of the week is MPU6050
in the Adafruit bundle. And then not
represented in the stats here because it
was just merged this morning. Uh over in
the community bundle, there's a new
library for the PN 7150, which is a a
different uh NFC reader. So, anyone
interested in NFC can check that out uh
this week. And that's what we've got.
Thanks.
>> Awesome. Thank you. And now I will read
about Blinka.
Uh Blinka is our compatibility layer for
Circuit Python code on single board
computers like Raspberry Pi. There were
zero pull requests merged this week. Uh
but there are currently 16 open pull
requests. There were zero issues closed
and zero new issues opened. There are
currently 80 open issues. And the number
of supported boards stands at 174.
And that is state of Circuit Python
libraries and Blinka. Next up is Hugger
Ports.
And Hugger Ports is a chance to
highlight folks in Circuit Python
community and beyond for doing awesome
things. I'll start and then we'll go
down the list of Hugger Ports
alphabetically. If you're text only or
missing the meeting, I'll read your
notes when I get to them in the list. Uh
so, I will kick things off with a group
hug. And then we'll hear from Dan.
>> All right.
Thanks to Smitha
for all the
improvements he's been making to the
GitHub CI.
We're running jobs now, especially with
all these pull requests that I
mentioned. It really helps to speed up
the continuous integration builds.
Okay.
>> Awesome. Thank you. And now we'll hear
from FomyGuy.
>> All right. Thanks, Liz. I also have a
hug report for Smitha. This time for
their work on Pico Game, an ever-growing
list of improvements and tweaks to both
the Pico Game module itself, and
especially the web level editor lately
based on my usage and feedback that I've
been working through with them. So, a
huge thanks for the module overall and
all of the new updates to the level
editor. They've been lots of fun to play
with. Thanks.
>> Great. Thank you. And now I'll read for
Tyeth, who is text only.
He has hug reports for myself and Anne
for looking at my factory reset sketches
and fixes for learn guide repo CI.
Scott for patience and the pointer on
Pico 2 WBLE PR for Zephyr for his BLE
scan success. Dan for all the BLE work
recently.
Probably have some bugs for you soon.
Mikey Sklar for sharing his hardware in
the loop test farm and pushing Zephyr.
And then a group hug for everyone
pushing CircuitPython world further.
And now we'll hear from Mikey Sklar.
>> All right. I got a few hugs this week,
so also another one for Smitha cuz the
PR
the PRs he's been submitting to speed up
the CI have really just been critical
and desperately needed.
And another one for to Dan H. Thanks for
helping me with this old KVM hit issue
that I dug up while just kind of
researching pain points and made a mess
of, but he was very patient through all
that.
And that's merged. And to Tod Bot who
had a really good suggestion for UF2s
that he made 3 years ago and we kind of
finally got around to giving him a
utility that does most of what he wants,
not everything, but it gets a little
closer to bundling up UF2 images um in a
convenient way that anyone can just drop
them on a board.
And then to Scott, thanks for doing all
those reviews last week. I really needed
the help getting some of the new chips
in.
>> Awesome. Thank you. And that's going to
do it for Hug Reports. Next up is Staz
updates.
So, Staz updates is our time to tell
folks what we're up to individually. I
will start and we'll go through the list
of updates alphabetically. When I call
on you, take a couple of minutes to talk
about what you've been doing since last
meeting and what you'll be doing until
the next meeting. If the discussion
becomes too long for Staz updates, we
can move it to In the Weeds. Uh so, last
week, I wrapped up the Adafruit Monster
Eyes guide and it was published. I'm
going to be reworking it to be an
Arduino library which will make adding
some additional features easier. It kind
of started off as just a standalone
Arduino project and then morphed into
this really big thing.
Uh but this week, I'm documenting the
TMF8801 and TMF8806 time of flight
sensors. I'll I'm also writing up the
code page for the Frankenstein candy
dispenser that Noe is working on. And
the code's written CircuitPython, runs
off Feather RP2040 Prop-Maker Feather.
Hopefully, that guy will be done end of
week and it'll be just in time for
Halloween.
And now we'll hear from Dan H.
>> All right. Um
so, I'm fixing bugs post 10.3.0 that the
10.3.0 release symbol have a 10.3.1
pretty soon.
Um
uh a lot of the bugs I'm working on,
there were some regressions, I'm working
on some BLE workflow bugs
that weren't completely fixed in 10.3.0,
and I'm reviewing and merging a ton of
pull requests. So, thanks everybody
who's submitting those pull requests.
>> Great, thank you. And now we'll hear
from FoamyGuy.
>> All right. Um,
last week the guides I was working on
for the T-engineering SP1 with Circuit
Python as well as the Circuit Python
watchdog guide were published. Uh, I
have moved on next to working on this
Pico Faces project. This is actually
outside the Circuit Python world, um,
but this runs on the RP2040 and I have
been working on porting it to run on the
Fruit Jam and adapting it to use HSTX
DVI for output. The original one can
output, um, over just like raw image
data over serial back to a host PC or it
can output over VGA. Uh, so I've added
the ability to do DVI output like we
have uh, in Circuit Python and other
Fruit Jam based projects. Um, so that is
going pretty well. Um, and then back
into the actual Circuit Python world, I
have been working, uh, continuing on the
game jam, uh, game that I started for
Circuit Python Day. This past weekend I
added a handful of new tile types and
behaviors. Um, I switched over to real
graphics instead of just colored box,
uh, placeholders. So, that was cool
working with actual, um, sprites and
stuff. And then I started a tutorial
level that has some preset messages at
certain, uh, waypoints that will explain
to the user how to play and what the
controls are and stuff. So, getting much
closer to, uh, kind of being able to
actually just design levels and have,
uh, mostly a finished game, which is
where I will probably, um, put it down
for this project. Um, and that's what
I've been up to. Thanks.
>> Great, thank you. And now I'll read for
Fede2, who's text only.
Uh, continuing the exploration of Rust
support in Circuit Python. So far, some
basic test modules and a meshtastic
client are working okay.
And next is Mikey Sklar.
>> Yeah, and we got three new chips
in the in the flow over in the process
of going into Circuit Python.
Um, the artery is one of these more
obscure ones, the AT32F435,
which booted up, I think, for the first
time yesterday. Um, it has native USB,
so you actually have a Circuit Pi drive
on it. And I think this is going to be
really similar to our other, um, STM32
variations, like the one feather we have
of that type. Um, the next one is the
ESP32-S31.
This is a really large board, um, very
beefy chip that also booted for the
first time. That's a Zephyr mix as well.
So, the first two are both, uh, Zephyr
Circuit Python builds.
And then the ESP32C5, this is our first
5 GHz board, so it has 5 GHz Wi-Fi, and
it's got one PR out of three merged, so
it's actually getting pretty close to
getting into Circuit Python. So, maybe
the next release, possible. Um,
and then, uh,
there was one really nasty STM32 bug
that's been around for a long time, and
it's kind of related to the capacitor
sizing on the one of the crystals, kind
of it doesn't boot reliably, and it was
a 7-year-old bug, and it's,
uh, finally been kind of nailed down,
and I think in both in future hardware
and software, there's some fixes to kind
of stabilize it. So, it's nice to see
some of these older issues get resolved.
And then, um,
uh,
I did one CI improvement PR last week,
and it was just to speed things up, um,
much like the work Smitek has been
doing, and that was to move Zephyr out
of the ports folder, so it wasn't
building every time. Um, and so,
hopefully that'll be noticeable. And
then,
uh, there's a uh, an older USB HID
protocol bug with the KVM issue that,
um, Dan kind of helped me work through
last week. So, that's that's been merged
as well. So, that was it for last week's
work.
>> Great. Thank you.
And that's going to do it for Stas's
updates. Next is in the weeds and there
are two are two bullet points there
folks want to start reading before I get
there.
Uh so, in the weeds is an opportunity
for long-form discussions that either
come out of Stas's updates or that folks
have identified ahead of time. If you
have any in the weeds topics, please
make sure they get added while we're
discussing other things. We're not
waiting around to see if anyone has
topics, but there are two topics today,
both from Fede2.
Um and the first is is there anything to
gain from Rust support in CircuitPython?
Any questions the devs would like me to
review? What would be a good idea to PR?
And uh
I'll leave it to core devs to
say uh
uh comment on any of that.
>> So,
I think there are kind of two.
One question is
like would it be helpful if for instance
somebody could write
do a board port mostly in Rust for some
reason or implement some new module
in Rust where the thing is built in.
And that's one
question about Rust support. And then
the other is
whether
you want to have dynamic loading of Rust
code.
Uh we don't support dynamic loading of C
code. MicroPython does or
we might support it, but it's like
it might work, but it's unsupported
kind of thing. So, I'm
uh
I'll see what Fede2 says about that.
I think the idea of can can you use the
Rust compiler
and write Rust code
in conjunction with the C code is kind
of interesting thing.
Okay, so they say currently Rust code
works only as compiled and putting them
on MPU I with MPU I cross.
So are you talking is that is that what
you're talking about is like runtime
loading of Rust code or you also talking
about putting Rust code in the firmware
image?
And we're just waiting for typing.
So it it it I think that Rust as another
language to do either of these things
is there's no problem
with that
as long as it doesn't make the build too
complicated.
Uh
But you say it works what what works
works in C right now to load in
um
C modules.
Uh I think somebody got that to work. We
don't use it very much at all
but it could work also in Rust
uh and we don't sort of push
we don't recommend that as a solution
necessarily
uh or we don't have a lot of use cases
for that ourselves.
But if you'd like to come up with this
some examples
uh
I don't see anything wrong with working
on that. Especially if the C code
already works then if it's possible to
do Rust too that that would be fine.
Uh
maybe it would be worth like making up
an issue or making kind kind of a
straw man PR
for the use case you have in mind.
>> Okay.
>> If Scott were here, he might also have
something else to say.
>> Right.
>> Yeah, we ourselves haven't written any
Rust code
that I know of, so we'd have to
learn it and see how it works out. We'd
also maybe see how it if anybody's doing
that in MicroPython, it would be
interesting.
So, Fede 2 is is pointed in the um
in the notes in in in the in this text
transcript to
uh some examples.
So, I guess I guess this I think for
your general question, it's a positive
response.
It's okay.
Maybe even an example where
you did it in C and you did it in Rust
and like why what's so what's what's the
advantage of doing it in Rust?
And you're
I don't know if there is some advantage
you know, there there is some advantage,
so
that might be another another thing to
write up. You could even write it write
like a playground note about this or
something for now. That might be
interesting.
>> Cool. Um and then Fede's second in the
weeds topic, um
especially talking about an issue where
multiple board makers are using Adafruit
USB vendor ID, um
Dan, I know you're working with PT and
Ladyada on this internally. Um was there
anything else you wanted to
>> No. No, we just say
right. There's this this this issue is
being worked internally.
Uh
The thing is that MeshTastic and
MeshCore and maybe some other mesh
something boards
uh
because
nRF52840s
which are often used for these purposes
um use
often use a hour UF2 bootloader they
appear
as
uh Adafruit
boards.
Uh
but
they
they and end up being that they the
Adafruit vid
the USB vid was being used on boards
that like Circuit Python had never heard
of we'd never heard of.
And so that
and and and the pids that were being
chosen for those were
uh kind of random. So we're working this
issue and that's all that's all I like
to say about it right now.
>> Very good. Thank you.
All right. Uh I think we can move to
wrap up then.
Uh this has been Circuit Python Weekly
for Tuesday, September 8th, 2026. Thank
you everyone who participated. If you
want to support Adafruit and Circuit
Python and those of us that work on
Circuit Python consider purchasing from
the Adafruit shop at adafruit.com. Video
of this meeting will be released on
YouTube at youtube.com/adafruit
and the podcast will be available on
major podcast services. It will also be
featured in the micro port uh
Wow. It will also be featured in the
Python for microcontrollers newsletter.
Visit adafruitdaily.com to subscribe.
Next meeting will be held next Monday as
usual at 2:00 p.m. Eastern 11:00 a.m.
Pacific. Uh this meeting is held on the
Adafruit Discord where you can join by
going to adafruit.it/discord.
To be notified about the meeting and any
changes to the time or day you can ask
to be added to the Circuit Pythonistas
All on Discord. And we hope to see you
all next week. Thanks, everyone.