CircuitPython Weekly Meeting for September 21, 2026 @circuitpython #circuitpython #adafruit
Watch on YouTubeVideo summary
The September 21, 2026 CircuitPython Weekly Meeting, hosted by Tim and sponsored by Adafruit, kicked off with significant updates regarding "CircuitPython Turbo," a new toolchain designed to compile Python functions into native machine instructions for performance-critical tasks such as NeoPixel effects and audio processing. This innovation coincided with the release of stable CircuitPython 10.3.1, which extended Turbo support to Raspberry Pi ports and ESP32-C5 devices, alongside the development version 10.40 alpha.2 that introduced 5 GHz Wi-Fi capabilities and additional Turbo modules. The session also highlighted practical workflow tips, such as utilizing Git work trees on host computers to manage CircuitPython drives without depleting limited flash memory, while showcasing new hardware integrations like the ChemLab Auto platform for automating lab instruments and an ESP32 LoRa module that enables off-grid messaging via the Meshtastic network.
Project health statistics revealed a record-breaking 66 pull requests merged into the core repository, with special recognition given to contributors like Mike Sclar and Scott for their extensive review efforts. The ecosystem's breadth was underscored by the combined total of 589 libraries across the Adafruit bundle, which contains 404 entries, and the community bundle with 185. Technical updates covered a wide range of developments, including Tim's work on pixel dust accelerometer demos and Software Defined Radio audio output over DVI, Dan's progress on Zephyr build optimizations, and Mikey Sclar's strategies for text-to-speech using Moonshine for low-end chips and SVox for high-quality voices. The team also discussed Hug reports recognizing contributions to Meshtastic compatibility and firmware optimizations, while addressing the renaming of bundle modules to align with their GitHub repository names to resolve existing naming confusion.
A major portion of the discussion focused on standardizing library naming conventions to address inconsistencies where packages lacked "Adafruit" prefixes or used incorrect underscore placements. The team debated adopting repository names versus package names for consistency, ultimately deciding to add metadata to libraries to clarify ambiguities rather than forcing immediate changes that could break existing workflows. Furthermore, the group questioned the utility of specific folders to distinguish between helpers and drivers, proposing a shift toward using tags or markdown lists to prevent misclassification errors. These structural issues were documented as formal problems for future resolution, ensuring that the project maintains stability while refining its public API before full integration of Rust support, which had already demonstrated significant speedups in benchmarks like the Mandelbrot set calculation on the Metro M7.
The meeting concluded with administrative details and a call to action for the community, reminding attendees that the next session is scheduled for Monday, September 28, 2026, at 2:00 p.m. US Eastern time. As always, the team encouraged supporters to sustain the project's momentum through hardware purchases or newsletter subscriptions, emphasizing that these contributions directly fund the development of tools like CircuitPython Turbo and the continuous expansion of device support. By consolidating efforts on naming standards, optimizing build processes, and integrating new hardware capabilities, the CircuitPython community continues to evolve its platform to meet the growing demands of makers and developers worldwide.
Read the full video transcript
Hello everyone. This is the Circuit
Python weekly meeting for September
21st, 2026. This is the time of the week
where we get together to talk about all
things Circuit Python. My name is Tim
and I am sponsored by Adafruit to work
on Circuit Python. Circuit Python is a
version of Python that's designed to run
on tiny computers called
microcontrollers. The Circuit Python
development is primarily sponsored by
Adafruit. So if you want to help support
Adafruit and Circuit Python, consider
purchasing hardware from them at
Adafruit.com.
This meeting gets hosted on the Adafruit
Discord server. You can join the server
anytime by going to adafru.it/isord.
We hold the meeting in the circuit
python dev text channel as well as the
circuit python voice channel. The
meeting typically happens on Mondays at
2 p.m. US Eastern time or 11:00 a.m.
Pacific time except when that coincides
with the US holiday. Uh the notes dock
does have a link to a calendar which you
can view online or add to your favorite
calendar app. Uh we will also send out
uh notifications about changes to the
upcoming meetings via Discord. If you
would like to receive those
notifications, you can ask to be added
to the Circuit Pythonistas role here on
Discord. Uh which is the same role you
need in order to speak as well. So if
you'd like to participate, that really
is the role that you want here on
Discord. And uh if you do need that,
just uh mention so in the Circuit Python
dev channel anytime and uh somebody will
be happy to add that for you. Uh there
is a shared notes document that
accompanies the meeting um and
recording. You can contribute to that
document ahead of time uh if you would
like. Uh the final notes document
includes timestamps to go along with the
video. So you can use that doc to skip
around to the uh skip around in the
video to the parts that interest you the
most. The meeting tends to go uh 30 to
60 minutes depending on how many folks
we have. Uh sometimes a little more,
sometimes a little less. After each
meeting, we post a link for the next
meeting's notes document in the Circuit
Python dev channel uh here on the
Discord. So again, if you would like to
put your uh notes in there, your hug
reports and your status updates, you can
do that throughout the week as well. Uh
following the meeting, there will be a
new uh link posted with a uh ping there
in the discord.
Um we will hold the meeting in five
parts as usual and I will explain each
of them uh as we get to them uh instead
of going through them all uh twice again
today since we are running a little bit
behind. So first up is community news.
So I will take a time stamp for this one
and then tell you about it. So all of
these items come from the uh newsletter
which I'll tell you uh more about the
the newsletter at the end. But the items
that I've picked out of it this week are
uh Circuit Python goes Turbo. Um Circuit
Python Turbo is a host side tool chain
that compiles selected Python functions
into native machine instructions. So the
busiest loops run directly on the chip
while the rest of the program stays in
ordinary Python. Uh it targets
computebound work uh like NeoPixel
effects, fractals, audio processing,
sensor filtering, and pixel pushing.
Turbo is being rolled out to select
boards with more planned and there are
links here to uh Adafruit blog I believe
or learn excuse me to the learn turbo
guide and then to hack a day as well if
you'd like to read up on that and uh I
do uh also happen to know we have some
other uh projects in the works. So if
you are interested in turbo and more
examples keep an eye on the learn
system. There will be more uh popping up
there soon. Uh, next up from the
newsletter, we had Circuit Python 10.3.1
and 1040 alpha.2 were both released. Uh,
Circuit Python 1031 is a bug fix version
of Circuit Python. It's now the new
stable release. Uh, Circuit Python 1040
alpha.2 is the new unstable release uh
that has work planned for the next
stable release when we get to it. Uh so
there is uh links here to the Adafruit
blog for 1031 as well as 1040 alpha 2.
Uh and there are release notes uh there
on GitHub as well. Uh there's a link to
that too if you want to see the full
list of changes. Uh and I will give you
just the highlights uh from those
changes. So on the stable side of
things, so the new 1031 uh stable branch
changes since 1030 include uh allowing
the uh turbo imports. So app viper and
at native decorators uh in mpy files on
the uh RP2 uh boards Raspberry Pi port.
Uh so this is the stable one has turbo
support in Raspberry Pi. Um also in
stable we have uh ESP32C5 support. We
have expressive and Nordic B fixes that
improve the B workflow. Uh we have some
other bug fixes and then we have lots of
infrastructure improvements and speedups
for GitHub and our actions and all the
ways that we test things. Uh next on the
development side of things, uh 1040
alpha.2 the new uh development release.
Uh this one includes uh 5 GHz Wi-Fi
support uh importing turbo modules on
more ports. So this one adds uh
Espressive, Nordic and SAMD51 devices on
top of the uh Raspberry Pi port uh
that's in stable. Uh so more turbo is
enabled there in the development
release. Uh also in this development
release, B numeric compression uh pin
pairing on expressive uh merges up from
uh MicroPython. We have uh merged in
MicroPython 128 and 129 into the Circuit
Python core in the development release
and loads of other bug fixes as well.
All right. Uh so
is it for the Circuit Python updates.
Next up uh from the newsletter is uh Git
and Circuit Python. This one caught my
eye this week. Uh Marshall Horn shows
how to use Git directly on a Circuit Pi
drive without theGit folder uh eating
your limited flash or triggering auto
reloads on every commit. Uh the trick is
to create a git work tree on the
computer and then copy uh the copy just
the oneline.get pointer file to the
device. Uh history stays on the host but
the board holds just a few uh bytes of
the relevant code. So I thought this was
a very interesting little trick. Uh I am
always looking for uh sort of improved
ways to manage the workflow between um
uh git repositories and uh circuit
python drives and I'm always working on
uh ways to backup and do all kinds of
stuff. So, this is very interesting,
right up my alley. I will definitely be
uh trying this one out. Uh see how it
fits within my workflow. So, cool stuff
there. Uh next up is uh Chem Chemistry
Lab uh automation stuff. So, Chemistry
Lab uh automation. Chemlab auto is a
lowcost microython platform that is
built on the uh Raspberry Pi Pico. It
bridges commercial lab instruments over
their serial APIs with uh uh with all
assembly documentation uh published so
that undergrads can adapt it. Uh this
one caught my eye as well as I thought
this was just a cool uh article this
week and a cool usage of uh microython
and open- source hardware in general to
be able to interface with these uh what
I imagine are very uh expensive
laboratory equipment devices. I I did
not know that people were out there
hooking up like Raspberry Pi Pico in
there um in order to automate control
over these things. So very cool stuff.
If you are in a chemistry lab, uh this
will be extra interesting to you, but I
thought it was just neat from the uh the
device uh and open source hardware and
integration perspective as well. Uh next
up and last one uh from the newsletter
for this week. Uh I wanted to throw this
one in. ESP32 Laura introduction uh how
a $2 ESP32 and Laura module uh will let
you text off-rid with no inter uh no
internet or cell signal. This is a link
over to How to Geek. Uh and I wanted to
throw this one in uh to also mention if
you are interested in Laura um stuff we
do have now a meshfruit uh library which
uh will come up later when we talk about
libraries in the bundle and stuff uh
there is a new circuit python library
with support for meshtastic compatible
um reception. So anyone who's interested
in Laura and this uh meshtastic network
which is what this uh article is talking
about um you also can take a look at the
new library for circuit python. We've
got stuff going in that world uh in
circuit Python as well. Uh so now all of
these items came from the uh Python on
microcontrollers weekly newsletter. Uh
I'll tell you uh more about that now.
It's a circuit python communityrun
newsletter which gets emailed out every
Monday. The complete archives are
available at adafruitdaily.com and it
highlights the latest on Python and
hardware related news from around the
web including Circuit Python, Python and
MicroPython developments. Uh if you
would like to contribute your own news
or projects uh which we always love when
people do uh you can email those to
cpnewsafruit.com
uh contributions always appreciated uh
there. Uh all right so next up we will
get into the state of circuit python the
libraries and blinka. Uh this uh section
is a quantitative overview of the entire
project. It will give us a chance to
look at the health of the project
separate from our status updates. We'll
talk about the project overall and then
separately discuss the core, the
libraries and Blinka.
So, first up, I will tell you about the
overall stats. I'll take a time stamp
here. Uh so, lots of activity this week.
Uh overall, we had 66 pull requests
merged uh which I don't know if we have
stats for uh records or not, but that
certainly sounds like the largest number
that I can recall uh hearing or seeing
in one of these meetings. Uh so, that's
very cool to see. We had uh 15 different
authors, a number of which uh had names
that I don't recognize. So perhaps newer
or less frequent contributors uh or
folks who have managed to slip by uh
without my eye uh you know catching on
to their name before but those folks uh
this week who who I'll read off uh the
the newer less frequent contributors. Um
let's see here. So we had uh Routurus
uh I don't know the pronunciation on
that so my apologies if that's not
correct. We had Mrovo. We had uh uh MMA
uh so maybe mm Abby or perhaps something
like that. uh Peter Bay, uh Securely
Fitz, uh and then Video Pixel uh as
well. So, thank you to all of those
folks as well as our other uh authors
this week whose uh names I see pop up in
these lists a little bit more frequently
uh or have in the past as well. Uh
reviewer wise, uh we had five reviewers.
Thanks to uh Mike Scalar, Liz, uh and
then especially uh special uh thanks I
should say to Scott and Dan. Um uh early
hug report to those two for core uh PR
reviews this week. I know there's
obviously as the numbers show a huge uh
influx in PR. So uh those two uh
definitely deserve some special thanks
uh this week for uh extra review effort.
Uh issues wise we had 14 issues closed
by four people, five new issues opened
up by five people uh across all of the
uh Circuit Python repos and then I will
pass it over to uh Scott next if you are
available to tell us about the core.
Um
>> can you hear me?
>> Yes.
second.
>> Yeah, you have a buzz a buzzer.
>> I know. But yeah, I can hear you.
>> Yeah, I'm sorry. There's some some noise
from outside. That's I don't know what
it is, but
>> yeah, I know what you're talking about.
It's not something I I could close the
window, but I' it take a little. Um,
okay. So, for the core, uh, we had 58
poll requests merge. And I thought it
was funny, Tip, that you were saying
that because I'm pretty sure last week
or the week before when I ran the
meeting and it was like 30 something
poll request merge. I was like, I think
this is a record. So, I think it's safe
to say that 58 or 66 are both records
for us. Um, it's awesome. We're writing
a bit of this rocket ship is kind of how
I'm thinking about it of just lots of
LLM generated fixes. They're all nice
and small, which makes them easy to get
in, which is great, too. Um, so thank
you to the folks that you shouted out.
And then I just wanted another shout out
uh in terms of uh Mikey Sclar started
doing reviewers reviews for the core. So
thanks to Mikey for that. Um, not only
is he doing a lot of uh PRs, but also
starting to do reviews for us, too. So
thank you for that. And if anybody else
wants to start reviewing for the core,
uh, let us know. We're happy to to add
some more folks there. Uh, we have 28
open poll requests. So we are um over
our goal of being 20 do doing 25. Um 25
is has been kind of my goal because
that's a single page on GitHub. Um
staying under that has actually been
harder uh just because we're getting
lots of good pull requests and um I I
try to only look at them once a day and
so they do get batched up a little bit.
So we're we're right around 25. Not too
concerned about it. We'll get back down
there. Um, but again, we have like maybe
10 that or maybe at least five that are
very old and maybe we should just close
um because they're not being picked up.
Um, and that would give us a little
headroom as well. So, that's where we
are for pull requests in the core.
Issues wise, we have 12 closed issues by
two people and four open by four people.
Uh, we have a total of 754 open issues.
Uh we track Adafruit funded
prioritization um based on the milestone
system. Um right now 10.3 is our latest
stable release and we have five open
issues there. Um but I do uh I'm not too
worried about that. I haven't looked at
those. But I I think 103 generally is
quite stable. Um I know there are some
fixes that Dan's getting in as well. Um
and he can speak to that later. Um, we
were just talking in our internal
meeting that ran a little late. We
think, uh, instead of doing 10.4, we're
going to call it 11. Um, so I will say
that 11.0 has 14 open issues. Um, I'm
not sure that we'll actually do all of
those for Circuit Python 11. The one
that we definitely do want to do is the
removal of the Broadcom port. Um, so
don't be surprised by that. Um, that's a
pretty quick change. We're just
basically saying like we don't support
um Circuit Python on the Raspberry Pi
single board computers bare metal
anymore. It's always been this a bit of
a minefield because it was never uh
really refined and so we're going to
just remove that in 11. So don't be
surprised that that comes up. Um
otherwise we we're getting through
issues which is great. Um did I read
that we're at 12 closed issues by two
people? Yeah, I think I did. Anyway,
yeah, we're uh we're getting through
issues, which is great, and our poll
request volume is is growing, but we're
getting through that as well. So, that's
where we are at with the core.
>> All righty. Thank you, Scott. Uh, next
up, I will tell you about the libraries.
Uh, this section covers all the Circuit
Python libraries, which are hosted on
GitHub under two different library
bundles. We have the Adafruit library
bundle, uh, which has 404 libraries in
it right now, uh, all found in the
Adafruit library bundle. We have the
community library bundle with 185 that
has libraries contributed by third
parties, members of the community,
individuals and uh small groups who uh
contribute and uh maintain those ones.
So we have a total then of 589 different
libraries that support various uh pieces
of hardware and helper functionality on
Circuit Python. Over the past week in
the Adafruit bundle, we had eight poll
requests merged by four different
authors uh thanks to uh video pixel uh
pager I believe and then Liz and Tyth uh
and then the fourth one is Tyth as well.
Tithe AI assisted uh so a little uh LLM
agent there. Uh and then reviewers
thanks to Scott, Liz, and myself for
reviews on libraries this week of the
pull requests that were merged. Uh
mostly everything was on the new uh side
of things. The oldest one was only 5
days and then a handful of the newest
ones were all at one day when they were
merged. That leaves us right now with 42
pull requests open. The oldest one is a
draft that's up to 1495 days. The newest
one is uh 4 days old right now. Um
issues wise over the past week we had
two issues closed by two pisss uh by two
people. Uh and then one new issue opened
up by one person which leaves us with
766 open issues right now. Uh and there
are two of those which are labeled good
first issues. You could find those two
as well as the others over at circuit
python.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. Uh what you will find when you
first load that page is a big list of uh
pull requests that are uh links over to
GitHub. Uh and the first place that we
tend to point folks who want to get
involved but don't have a specific thing
they want to do is reviewing pull
requests. Um as Scott mentioned we have
uh increase in pull requests in uh the
core. I imagine uh in the libraries that
is a thing that will be happening as
well. It has to some extent already. Uh
but I imagine uh more and more as time
goes on um we'll be getting new PRs in.
So anyone who would like to come join us
uh and help out with reviews is more
than welcome. Uh again at that page
circ.org/contributing
you can click through there to GitHub
read up on what the pull request is. Uh
it might be fixing something or adding a
new feature or something like that. And
what uh you can do in this case is read
over the code uh look at it for syntax
spelling logic anything like that. If
you do have the hardware that that
supports uh the microcontroller and then
if there's any other modules it needs if
you have that stuff you can run it on
hardware and uh what you can do is just
leave a get uh leave a comment there on
GitHub letting us know uh what you found
when you looked it over. If there's
anything you think should change or uh
if it all looks good to you. If you did
have the hardware, let us know how it
went when you ran it on there uh and
tested it out. Uh if you would like to
get uh leveled up to join the review
team that we have on GitHub, we can work
with you to add you to there. It will
get you notifications and a few other
things to help you find stuff to review.
Um we do have guides for contributing as
well. So if you'd like to start getting
your feet wet contributing some of your
own code, uh we have guides for
contributing to Circuit Python using Git
and GitHub. Uh and we also have folks
who are more than happy to help you get
spun up here on the GitHub. So, if
you're uh new to the whole process to
version control to actions to all this
stuff uh and you're having trouble with
it, um just come say hi on the Discord.
Let us know what you're up to, what kind
of issue you're having. We will be happy
um to help you out. We want everyone to
be able to contribute in a way that
works for them. Uh and then I will leave
you uh with the library updates for the
last 7 days. So, new libraries, uh lots
of new stuff coming in. Mesh Fruit, like
I mentioned, for meshtastic stuff. And
then a couple of uh new uh hardware
drivers, the TCS uh 3448 and the TSL
2585 uh new libraries this week. Uh and
that is it for libraries. Next up, I
will tell you about Blinka. Uh, Blinka
is our compatibility layer for running
uh, Circuit Python code on Raspberry
Pies and other single board computers as
well as under uh, MicroPython instead of
uh, Circuit Python as it would be
traditionally run. Uh, lightweek uh,
this week in Blink and no pull request
merge, no authors. Uh, and there are
2019
I should say uh, open pull requests
right now uh, in Blinka land. Uh, a
number of the newest ones related to
Blinka display.io I think speeding up
some of the rendering and stuff. So I
have uh those uh popped open in a tab to
take a look at later uh as well cuz uh
Blinka display io is right up my alley
uh too. Um uh so that is uh it for let's
see the blink PRs. We do have uh 80
issues in Blinka land. There are broken
out by different repos here if you're
interested in those and we are up to
right now 175 different devices that
support uh the Blinka compatibility
layer. So that is it for those stats.
Next up, we will get into uh the hug
reports. I'll take the time stamp here.
Uh hug reports as a chance to highlight
folks in the Circuit Python community
and beyond for doing awesome things.
I'll start then we will go down the list
uh as they appear in the notes document
here. If you're text only or missing the
meeting, then I'll read your notes uh
for you. Uh otherwise, I'll call on you
and then you can take a couple minutes
to uh to read off your notes. Uh so like
it uh like I mentioned, I'll kick us off
here. I have hugger report this week.
Thanks to Pedro and Liz for working on
the Meshtastic uh compatibility library
uh library. Uh I was playing with that a
little bit with some old hardware over
the weekend. Uh very cool stuff to have
that started and working under Circuit
Python. Now uh next up, uh Fedy 2 has
some hug reports text only. So I'll read
uh Fed2 says hug report for Mikeclar for
help uh benchmarking the Circuit Python
Rust against the C examples. Uh hug
report to Tanut. Uh, Scott, thanks for
suggesting Circuit Python Rust a long
time ago and for Dan for helping me fix
my mag tag. Uh, and then next up, I will
pass it over to Dan.
>> I want to thank Smidka for further PRs
for Picoame and also for more space
saving PRs and a bunch of other fixes
just really going strong. Thank you. And
then thanks to Mikey uh for a bunch of
quick PR reviews over the weekend and
for numerous fixes that he also
submitted. And uh thanks to Scott again
for some discussions last week about
where to head on Zephr work. And that's
it.
>> All right. Thanks, Dan. Uh next up is
Mikey Schclar.
>> Yeah, I want to thank Dan for all his
flash savings. That was really some
pretty incredible work to go in so
quickly. and um the CI fixes as well,
which has really been sped up. And Scott
for um getting in a few PRs that were
all kind of peacemeal last week, like
the additional turbo boards and the 5
GHz um which uh seem to all be stable
now and in. And also to attack for
helping uh us move up to the latest tiny
USB. We were just waiting on one little
CDC ripple overflow issue well race
condition and he uh kind of took my PR
and remixed a version of his own and now
we can uh we've already merged the new
tiny USB pin. So main is now up another
440 commits on tiny USB and then um
Hackadday for covering um the story.
They actually covered the circuit python
turbo in their blog and their podcast
last week and um showed really strong
understanding. I think they kind of
missed the point about how we were using
um a really small version on our boards
just having a little loader, but
otherwise uh really good coverage worth
listening to. Thank you.
>> All righty. Yeah, thanks Mikey. Uh and
next up and rounding out the hug reports
is Scott.
>> Hello. uh for me uh Bob G who's been
doing uh many fixes including having uh
updating updating us to ES the ESP
protocols subm module of ours uh to
include some fixes for MDNS which will
make MDNS discovery much faster which
will be cool.
>> Nice. All right, thank you Scott. And
that is it for the hug reports. Next up
we will get into status updates. I'll
tell you about that one right now.
Status updates is our time to tell folks
what we're up to individually. Uh again,
I'll start then we'll go through the
list of updates as they appear in the
notes doc. Uh when I call on you, take a
couple minutes, tell us what you've been
up to uh since the last meeting and what
you'll be working on until the next
meeting. And uh if a discussion becomes
too long for SAS updates, we can always
drop it down to in the weeds where we
can have a more long form uh back and
forth discussion on that. So uh let me
take a time stamp here and kick us off.
Uh I did realize that I forgot to put
these in until just now, so I uh hastily
wrote these in. Uh but uh a couple of
the things I've been working on over the
past week or so. So last week was mostly
uh the pixel dust or sand uh
accelerometer
um demonstration. So turbo uh one of the
first turbo guides that has uh
demonstration code in it. Um this is an
example that's been done a couple of
times on the matrix portal and on a
couple of other devices as well with
TFTs, but in the past it was always
using Arduino. uh it's kind of like
accelerometer uh example where you can
turn the device over and then all the
pixels sort of fall with uh gravity and
collision and stuff. So with uh turbo
modules we're able to actually run this
in circuit Python now um and uh with
Picoame as well uh we're able to render
this on like 320 x240 TFT display uh and
keep everything running real smooth and
stuff. So there's a guide coming out for
a metro with the TFT and then the Matrix
portal uh version of that as well uh
that will be coming out uh later this
week or next. Um after that the next
stuff that I started looking into is uh
mostly USB uh USB host work. So uh USB
host with camera uh was something that I
kind of started on. Um it turns out this
requires a thing called uh isocchronous
support uh out of the sort of underlying
USB stack. So uh I started there and got
a a USB camera uh example working and
then uh from there actually built out uh
audio next and it turned out audio is
even a little bit simpler than uh video.
Um, so I have sort of uh in development
versions of libraries of these and I
have some changes in uh Pico PO USB that
support this work. Um, so this is stuff
that we'll be looking to um get PR
submitted already actually in fact for
uh Pico PO USB. So there's PR there. Um,
but we'll be looking to uh release these
examples and things and the new
libraries that support it once the uh
the upstream work is in. Uh, and then
the other USB host thing that I looked
into actually this morning was uh SDR
stuff. So, a little USB uh software
defined radio and then picking up like
FM radio stations. Uh and then in this
case, what I was doing with it was uh
outputting it over um DVI. This was an
example that PT put together. So, uh in
the past, we've been able to output uh
video signals over DVI like from the
Fruit Jam for instance. It has the the
HDMI plug on it. You can output that to
uh a standard display. Um and we are
working on adding audio uh into that
output channel as well. So, uh, in this
case, the demo is using an SDR to load
up, uh, FM radios and play that audio
out of the the sort of DVI output there.
Um, but obviously what we're looking to
do is make this generalized to where you
could use that audio output for any, uh,
sort of source um, at the end of the
day. And then also this SDR stuff will
bring in some capabilities as well if
you're into ham radio and that sort of
stuff. So, um, that is where my head is
at lately. Uh, so that's what I'm up to
and I will pass it over to uh, Dan next.
Okay, so uh in the past week or so I got
a bunch of PRs to speed up and the Zephr
builds and also to fix some problems
with them. The uh non-English uh builds
were actually not working and also as
mentioned I've done a bunch of PRs to
reduce the firmware size for on various
builds and I'm kind of finished with
both of those uh for now. Uh also now
whenever the uh continuous integration
GitHub action does um a build it builds
a firmware size report. You can see that
at the top of the list of artifacts in a
run. So it's there's sort of this nice
interactive
uh browser for this firmware sizes for
every board.
I reviewed a bunch of PRs. I fixed some
bugs like I fixed some bugs having to do
with B fixed a bug having to do with B
on the C6 which on the um fruit jam.
Uh I released sort of Python 1031 and
1040 alpha.2 two uh as mentioned
and we've decided I said need to decide
but we've decided that we really are
kind of working more toward Circuit
Python 11 than Circuit Python 104. So
that'll give us the freedom to make some
incompatible changes that we've been
waiting to make.
And that's it for me.
>> All righty. Thank you, Dan. Uh next up
is Fetty2 text only. So I'll read uh
Fetty2 says uh benchmarking to test how
well uh is ESP32S3
uh DSP uh is already supported. So how
how well DSP is already supported. Uh
and then creating a library for
calculating Mayan calendars in circuit
Python and creating an example for mag
tag that wakes up in the middle of the
night and shows the current date in
Mayan calendar. Uh today is 8 wind 15
cave. Fascinating. I've always been very
fascinated by different um timekeeping
systems. I'm glad I don't have to to do
too much with them, but they are very
very fascinating stuff. So, cool stuff,
Fetty 2. Uh next up is Mikey Scalar.
>> Sorry. Um yeah, the
uh tiny USB update was what I was kind
of driving towards multiple times last
week and that has now merged. So, thank
the Pico SDK went in over the weekend.
So we went from 220 up to 231 and that
has been merged as well. And uh so far
both of those things are testing fine on
the farms and stuff. So I don't expect
too many new issues out of that. Um and
then the uh RP2 alarm is kind of a new
thing I've been looking at this week,
which is we don't have um sleep and
alarms and timing stuff for the RP2350.
So um this is looking at adding a few of
those. And I think this will be open as
a draft for discussion for a while. It's
not necessarily a solid PR. Um but that
is in place for talking about. And in
terms of last week I spent a lot of time
looking at text to speech and basically
we're kind of going two different
routes. Um the moonshine clat uh looks
like it's going to be good for the
low-end chips. Um and by that I mean uh
some of the older boards we're using
like an M4 for example or an RP2040. Um
it can produce text um about five times
faster than real time. So we can
actually uh do text to speech very
quickly and not have to load audio files
on the board itself. So it saves a ton
of space. And then for boards that do
have more flash, we can get a much
better voice. So using the SVox Pico, we
can get um we have to give up about 2
megabytes of flash, but we can start to
do uh much higher quality voices like
where you'd actually wanted to read you
a book or do longer dict dictation types
of applications. Um, so we're going to
be looking at how we can merge that into
libraries and have a standard interface
where people can use speech.
>> All right. Thank you, Mikey. And next
up, rounding out the SAS updates is
Scott.
You are talking, Scott. I do not hear
you. I see that you're unmuted.
Is anyone else able to hear Scott?
Maybe. Is it just me?
>> I can't hear him either.
>> Apparently my uh wireless mic died.
Gotcha. Okay, figured out. Oh, you know,
I think the case might be dead, too.
That's why putting it in the case didn't
charge the wireless mic. Um, luckily the
other one's charged.
So, yippee. Um, so I did reviews. Um,
lots of stuff's coming in, so I'm trying
to get through that. Thanks to Mikey and
Dan who's who are also doing reviews.
Uh, Dan did review my little FS change
and I need to take a look at that and
get back to it. Um, my pinboxing PR is
out. Um,
and I'm poking at that to get the CI
working. Um, but I think it's close. And
then I do have a follow-up for that
which allows us to turn on finalizers
for well I I will turn on finalizers for
all core modules like bus.io digital in
out um those sorts of things so that um
we don't need uh bulk reset or never
reset in the ZE report. And I'll put uh
the never reset calls behind a flag so
we can just turn those off and have
we'll never have never reset in the ZE
report. And then that will all also
allow us to remove it from other ports
as well um without doing some huge
blanket refactor that I've I've started
but is is unwieldy. So I'm going to do
it first for Zephyr and then we'll go
port by port. Um I did also find the I
squed C scanning is broken on the LM20A.
Um I'm not going to fix that
immediately, but it would threw me off
for the pin muxing stuff. Um, my kind of
like focus is trying to be on the NRF 54
L15. Um, so I'm gonna get dust that off
once little FS is in. The L15 is going
to use Little FS and we'll figure I'll
I'll go back to getting the bootloader
stuff done for that um to get the L15
all ready for um some Adafruit hardware.
>> All right, thank you Scott. And that is
it for status updates. Uh, next up is in
the weeds. As a reminder, in the weeds
is an opportunity for some more long-
form discussions. These can either come
out of status updates or be identified
ahead of time. Uh, if you do have topics
that are not already in there, make sure
you scroll down, add those to the docs.
Now, we have a couple others, so you do
have a minute. Um, but uh if there are
none here, then we'll skip past the
section. So, make sure you get those in
before the meeting when possible. Uh,
first up, uh, in the weeds topic is fed
2. I'll read this one out. uh is about
uh Circuit Python Rust support. So,
draft PR uh 11393 is in for Circuit
Python with Rust. Um doing benchmarks as
suggested two weeks ago. Uh more details
are in the PR, but for the Metro M7, the
Mandelro came out about 7.5 times uh
faster than Turbo. The SANS demo, I
think the Turbo Sand demo, like the one
I was talking about, about 6.2 times
faster. And then uh it looks like a
plain uab square root of 1024 came out
about 17.8 times faster than uh the C
equivalent using this REST compilation
chain uh that is in again this PR1393
for folks that are interested in this.
Uh so the extra tools for building the O
and adding it to intomppy could be
integrated or modeled as uh modeled to
look like the Turbo CLI. Um, now I need
help with folks testing and giving
suggestions or requesting ports/benches
uh benchmarks and what ports would be
good to add this. I think there uh uh
also I have a handful of uh have a
handful of circuit python hardware for
testing on. So fed2 here looking for
feedback on the rest stuff. What kind of
benchmarks would be helpful? What kind
of uh other devices what uh ports rather
I should say would be good to add? Um
and that sort of stuff. Uh the piece of
feedback that I would give maybe is on
the uh the compiling like the turbo CLI.
I might um hold off for now cuz I I
foresee the the Turbo CLI and the way we
distribute the libraries and stuff
potentially evolving uh at some point.
So if you are uh wanting something more
stable, it might be good to wait rather
than model it off of exactly what's
there for Turbo and the way that it does
the different architectures and stuff
cuz um I don't think we've settled there
all the way like uh ultimately I think
we'll want to get Circup updated as well
as the bundler uh that the learn system
uses and then um kind of have everything
else follow the format that those two
things put forth. So, I don't know
exactly how the Rust layer um fits into
that puzzle exactly, but that would be
my my main piece of feedback right now
is um on the CLI um either hold off for
a bit until we get circup and the
bundler set or uh or just know that it
may shift at some point.
Uh and also feedback on uh whether Rust
is something that we want for Circuit
Python.
Um and
>> yeah, go ahead.
>> This is Mikey. I was um I've been
looking at this PR and talking to 52 on
this as well and um I think this is
something that
uh the initial PR still has a little bit
of extra stuff we want to trim out of
it. You know, it's got like specific
chip support and other things that don't
need to be in the PR. There's just a
couple of um small uh things I had
suggested that can be included here that
you know we don't want to it was naming
expressive and some other things that
are already enabled through separate PRs
but um I think the benchmarks have been
helpful and it's been helpful to come in
as a uh comparison of how we can use
external languages and let them come in
through this native code that um Turbo
has enabled. So, it's sort of a learning
process for all of us and uh I kind of
like that the PRs are structured around
uh more of a discussion because it it
helps to actually see the code and
what's being offered and what's being
suggested. Um but uh I think um from
Scott, I'll let him speak about this
too, that it's basically been, you know,
we're very supportive of using CC code
with Circuit Python as the main harness,
you know, using Rust code with Circuit
Python as a harness. And you know, it'd
be something that's outside of our
support, but it allows people to use
this robust platform that's in place and
then have really fast code that they're
injecting in.
>> Yeah, I think I I think Mikey's right.
It I saw that PR and it was actually not
very clear to me why it was rest
specific. Um, I haven't looked at it
this week yet, so I I haven't refreshed
it, but um, I think for Rust compiling
down to MPY files or whatever we do for
Turbo, I think like that's great and we
should do that. Um, obviously like
Mikey's saying, we haven't figured out
exactly what the the build story for
Turbo is. Um, but from the core side, I
think we just need to like figure out
what, you know, the native loaded
modules look like and just and what API
surface they're expected to touch. Um,
I do want to make sure that like that
code that we load is not
system on a chip specific like it
shouldn't be register writing registers.
I would I would not want to do that. Um,
I kind of imagine that it's only CPU
architecture specific, not system on a
chip specific. Um,
so yeah, thinking more about like what
exactly the the public API for those
modules is would be good, but I don't
see how that's different from like the
API that we provide for the like turbo
stuff which is either you know
transpiled Python or like C generated
stuff like I we don't actually care
right like from the core side we only
care about what native code are we
loading and how is it um what API
surface does it have? What do we what do
we dynamically link to it? And how do we
do that and make sure that it's stable?
Um art specific, not chip specific. Um
and then yeah, on the tooling side, I
don't I imagine that we
you know, this is kind of like the Pyth
Pippi equivalent of wheels. Um and so
we're going to want probably like some
GitHub action that is standardized for h
for how we generate that stuff. Um,
and then for the broader question of
circuit rust in Circuit Python, I think
I I'm actually been keen on being able
to do internal modules like basically
common house with Rust as well, but
that's not what this is. Um, and I'm not
exactly sure what that buys us,
especially in the Zephr world where
Zephyr is primarily C or C++ still. Um,
but I would be open to that too. Uh,
if you if it was kind of isolated on a
per if it was isolated on a per module
basis, that would be interesting to me,
too. Um, so that's my my take on Rust.
All right. Uh, I do see FedE2 is typing.
So, I'll hang out for just a minute
before we move on to the next one to see
if uh there's anything there we want to
cap off. Let's see. Betty 2 in the chat
says for anyone listening uh
on here. Uh,
in a way it is you can build ULAB and
Rust to compare without uh to compare
with the current u build ulab in Rust
build. So like Mike uh like uh sorry
Scott was saying
sounds like maybe you can write those
modules in Rust with this. Uh I'm using
it for external modules like meshtastic
client that I made. It should be usable
for internal modules as well. Okay.
Sounds like maybe either uh Python level
code or
internal code could be rewritten and use
this. Okay. So yeah that uh discussion
there is in the PR as well. And we got
um some good stuff I think to work
towards
moving forward. Um and then we do have
one more. Let me get the timestamper
here. So uh I'll hand it over to uh Dan
for the other in the weeds topic.
Yeah. So this was inspired because I
every time I want to load an example
using circup, it actually turns out the
naming scheme is kind of really really
really confusing. It looks like a path
name but it's not. And part of the
reason is that right now the module
names in the the bite the bundle that is
if you look at the ad at the repo
adafruit circuit python bundle they're
short names instead of adafruit ble it's
just ble for example
and uh what this means is that yeah it's
easier to type sometime and maybe it's a
little easier to look up because it's
not all adafer underscore But it means
that there are two names for things.
You're not sure what the name is. Um
it's not clear which library it refers
to. And there are exceptions like
NeoPixel. There's no Adafruit NeoPixel.
There's just NeoPixel.
And there are a couple other examples
like that like async.io. We don't have
Adafruit Async. It's just async.io.
Um, so my proposal
would be to rename the subm modules in
the bundle
and
then take out and then have CIRCUP
handle that and also maybe and have
CIRCUP be backward compatible for now.
Uh, just so everybody knows what the
names are and it's it's always been a
slight support headache. The other thing
is that right now the um the uh
the libraries are divided up into
um library or helper. So things like a
breakout board is a library but a helper
might be something else that isn't
particular to a particular board,
a particular peripheral board. And
this is sort of interesting, but it's
actually hard to think about and you
have to kind of decide where is it is
under under libraries or helpers. And
again, just having everything
al together seems easier to me in the
long run and remove this distinction of
classifying things as libraries or
helpers. So I'd be interested in
feedback one way or the other on both of
these ideas.
>> Yeah. Um, I I would offer up on the
names. I'm I'm totally into changing the
names to match the the repo as well. I
don't I don't know of any
uh thing in particular that that will
absolutely break from that. There may be
cases where uh different things need to
update for sure. Like you mentioned
circup um probably Adabot has some as
well for the reports and the bundle
releasing that it does. Um but I would
be into changing them to match the repo
names as well. Yeah, cuz that will uh
like you said, we'll keep some backwards
compatible stuff in, but ultimately that
will mean we can um down the line remove
some of the logic that's like
essentially just a map between the short
name that we ended up with and the real
name because we do in in I'm pretty sure
both Adabot and Circup essentially we
have sort of like a dictionary or some
kind of lookup that's like here's the
the short names that map to the long
names for for the ones that don't go
cleanly like you were saying how they
either don't have Adafruit or for
whatever ever reason they got a
different underscore in a different
place or whatever. Um, so there's a few
of them that that just get mapped sort
of manually um by those. So it' be good
to get rid of those as well, I think.
And I think uh it's also probably a good
time to be thinking about changing the
bundle as well. Kind of dovetales into
the previous discussion about Turbo at
some point. Um I imagine a a few of the
libraries uh we may want to sort of
compile as Turbo. So like hashlib and a
few others. there's there's maybe not a
whole lot of them that make sense. Uh
but for a few of them it may make sense
to compile those with Turbo and um at
some point we'll have to figure out like
how does the bundle fit into that? Does
it hold all the different architectures
and if so how and all that stuff so so
that's kind of a separate discussion but
I do think um makes it a convenient time
to be changing the the bundling al
together because we kind of have a few
things that would be sort of good to do.
Um
>> yeah,
>> thanks. Yeah, I mean would you would you
say that you want the names to be ad
like Adafruit Circuit Python B or just
the import name
>> lower case?
>> Um the import name is an is an
interesting thought. I hadn't thought
about using the import name. Yeah, we
kind of we we sort of ended up with like
three names, didn't we? because we had
the name of the repo, we had the short
name which ends up as this the subm
module, the folder and then we have the
import name which is sort of a mashup of
the two in most cases. Um
>> the import name is what I like. Yeah,
but I don't know.
>> Yeah, I would
>> I I would go with the pi package name.
>> Yeah, that one's like a third one. That
one's like basically the repo name but
usually hyphens instead or something, I
think.
>> Yeah, with dashes.
That's even another thing, right? And we
also have to fix the bundler that is in
the learn guides.
So when I wrote this in, I wasn't
thinking about so many places and I was
also not thinking of, you know, my idea
of of the obvious naming like I'm always
what what happens with me is I'm
I'm I I I copy some code copy some
code.pay PI and it imports Adafruit_FU
and then I go to circup and I import I I
install Adafruit FU and I don't care
about what the repo name is. I just care
about what it is in the code.
So uh but I think maybe all these names
need to be
there probably should be more metadata
in the library in in the bundle itself
to find these things. Uh so yeah I I
think I think this under advisement and
I've also been saying like this is also
just kind of make work. We don't really
have to do this right now. It does work
like it
>> it doesn't work right now.
>> So uh I I will mention too for the the
other bit that you had in here the the
distinction between helpers and drivers.
I I'd be perfectly fine if that was not
made by uh the folders anymore. I don't
necessarily see a a specific need to
keep that. If we ever wanted them to be
labeled that way still, we could do it
with tags or or um just a list like we
have them in a markdown file separated
anyway. We could keep the the markdown
separate if we wanted rather than um the
folders cuz occas I I will say uh
removing the folders might be nice
because occasionally either somebody
will put one in the wrong one or they
end up with like a driver instead of
drivers or something like that and so
it's like um and then we end up go back
and change them with the extra layer. So
I'd be fine losing those as well just
going everything in the route.
>> Okay. I I think I'll write up some of
this as as issues.
>> So, just to put it down on imprint and
then we'll think about doing it at some
point.
>> Sounds good. All righty. Thank you, Dan.
Uh that is it for in the weeds topics
for today. So, next we will get into the
wrap-up. Uh so, let me scroll here real
fast. Okay. Uh this has been the Circuit
Python weekly meeting again for uh
September the 21st, 2026. Thanks to
everyone who participated. Uh, as a
reminder, if you want to help support
Adafruit and CircuitPython and those of
us that work on CircuitPython, consider
purchasing hardware from the Adafruit
shop, which you can do at Adafruit.com,
the video of this meeting will be
released on YouTube at
youtube.com/adafruit.
And the podcast will be made available
on major podcast services. It will also
get featured in the Python for
microcontrollers newsletter, which you
can visit Adafruit.com in order to
subscribe to that newsletter. Uh the
next meeting will be at the usual time
next week on Monday at 2:00 p.m. US
Eastern time, 11:00 a.m. US Pacific
time. That's uh the uh 28th of
September, next week on Monday. Uh so
we'll be back for that. Uh as always,
the meeting is held on the Adafruit
Discord, which you can join anytime by
going to adafru.it/isord.
If you like to be notified about the
meeting uh and any changes to the day or
time, you can ask to be added to the
circuit pythonistas role on discord. Uh
uh so thanks uh thanks everyone for
participating and that is all for this
meeting. We hope to see you all next
week.