This is a replay of The Bootloader's livestream on the Adafruit YouTube channel on CircuitPython Day. Tod and Paul take a look back at the last year and share some of their favorite CircuitPython projects and features. This episode has been slightly edited and we do use screensharing, so you may want to check out the video on YouTube.
Show Notes
00:00 Intro
01:04 CircuitPython in the last year
1:32 CircuitPython 10 Audio Effects
4:32 CircuitPython 10.1 and 10.2 updates
4:45 MicroPython and upstream
5:10 The Adafruit Fruit Jam
5:34 Sean Carolan’s Pac-Man Clone
6:31 Dan Cogliano’s Z Machine and Zork
8:27 Dan Cogliano’s Fruit Jam Screensavers
9:22 Liz Clark’s Fruit Jam Video Music Player
11:49 picogame by Vladimir Smitka
16:31 Lorraine’s Autonomous LEGO Train with CircuitPython and LIDAR
19:50 RV Circuit Studio by Armstrong Subero
24:18 Liz Clark’s Chiptune Player
27:39 PicoTTY
30:37 Wrap-up
Welcome to The CircuitPython Show. I'm your host, Paul Cutler.
Speaker:This episode is a replay of my other podcast, The Bootloader, and the live stream Tod Curtin and I recorded on CircuitPython Day 2026.
Speaker:We do use video and screen sharing, so you may want to check out the video on the Adafruit YouTube channel, which I've linked to in the show notes.
Speaker:And with that, here's the episode.
Speaker:Welcome to the bootloader. I'm Paul Cutler.
Speaker:And I'm Tod Kurt.
Speaker:If you haven't heard of us,
Speaker:we're the host of The Bootloader podcast,
Speaker:but you can find in your favorite podcast player
Speaker:on the first Monday of each month or at the bootloader.net.
Speaker:The show works like this.
Speaker:Paul and I each have brought a few things to share,
Speaker:all about CircuitPython for the last year.
Speaker:And a big thank you to Liz, who's on camera control.
Speaker:Paul, let's break down some of the numbers.
Speaker:Yeah, it's crazy that another year has gone by already.
Speaker:Since last CircuitPython Day,
Speaker:CircuitPython 10 was released in October with a ton of improvements.
Speaker:This was the first release to add some audio effects,
Speaker:full Fruit Jam support,
Speaker:including the new CPsaves partition for SD cards,
Speaker:and a bunch of graphics updates,
Speaker:including better PICODVI support to work on more monitors.
Speaker:Okay.
Speaker:It's going to be like 100 degrees today, I think.
Speaker:So what was CircuitPython to you last year, Tod?
Speaker:So last year, CircuitPython 9 was all about synthio.
Speaker:It was like when synthiO really got going and really got good.
Speaker:It kind of existed before, but it was like we had to try to figure out how it worked right.
Speaker:But with CircuitPython 9, we could make real interesting sense in CircuitPython.
Speaker:This year, it's all about audio effects because a synthesizer voice by itself is just okay.
Speaker:But having audio effects after that, like delay and reverb, chorus, and like that.
Speaker:Like version 9 had echo chorus and reverb created by Mark Gamblor.
Speaker:Thank you, Mark.
Speaker:But then very soon after that, right after 9 was released, and right, I think for the 10 betas,
Speaker:Cooper added multi-tap delay, phaser, and distortion.
Speaker:And like both kinds of distortion, like a simple clipping distortion,
Speaker:but also like this sort of soft overdrive distortion.
Speaker:And then Cooper made some really important changes to how the effects works.
Speaker:We can chain them together.
Speaker:It was kind of hard to do that before.
Speaker:And so now you can basically plug them together like guitar pedals,
Speaker:which is great because it kind of matches how synthio work.
Speaker:Because synthio kind of looks and acts like a semi-modular synth
Speaker:where you kind of connect little cables together to make a synthesizer.
Speaker:So it's like we've got this modular synth on one hand,
Speaker:and then we've got a guitar pedal board on the other.
Speaker:So it's all becoming really interesting.
Speaker:And then earlier this year, Tim, aka FoamyGuy,
Speaker:added a granular pitch shift to complement the pitch shift effect that Cooper had it earlier.
Speaker:They're both relevant.
Speaker:Pitch shift uses less resources.
Speaker:Granular pitch shift can sound better for larger pitch shifts.
Speaker:And then also the audio mixer module is updated.
Speaker:So it's a level in pan knobs can be modulated with LFOs.
Speaker:Oh, and did I mention that all these effects have parameters that can be modulatable with SynthiO's?
Speaker:They're like LFOs are like automated knob turning.
Speaker:So you can have things on your synthesizer or now audio.
Speaker:effects that can automatically have their pan shifted or their distortion amount change, things like that.
Speaker:And then to bring it home, earlier this year, Tim added the audio I2S In module, and now the audio duplex module, or I forget what it's called it, but it's let you can, both of them let you do stereo audio into CircuitPython as well as playing audio out via I2S.
Speaker:So you get high quality, 16-bit audio. And so now we can truly have CircuitPython-based guitar pedal.
Speaker:or effects boxes, which you might have heard a couple of hours ago when Cooper was demonstrating that.
Speaker:And also, just in the last episode, what are these segments called we're doing on CircuitPython Day?
Speaker:Live stream.
Speaker:Last live stream, there we go.
Speaker:Tim demoed how he had hacked the Teenage Engineering Ting handheld effects unit with the entire alternate CircuitPython firmware that lets you do cool real-time effects.
Speaker:of your voice.
Speaker:And so it's like CircuitPython
Speaker:and a commercial product
Speaker:and it sounds cool
Speaker:and it's fun to play with.
Speaker:It is cool.
Speaker:I can't create music,
Speaker:but it's been really fun
Speaker:watching the different projects
Speaker:that you, Cooper and Liz
Speaker:have done with the new audio effects.
Speaker:Yep.
Speaker:So after 10.0,
Speaker:we then saw 10.1 in February
Speaker:and 10.2 this past April.
Speaker:10.2 included the latest ESPIDF
Speaker:as well as the MicroPython
Speaker:1.27 merge.
Speaker:So thanks to Dan for keeping up with Upstream.
Speaker:Yeah.
Speaker:Thanks.
Speaker:Thank you to MicroPython.
Speaker:which made all this possible.
Speaker:I like that CircuitPython is still merging in updates to MicroPython as time goes on.
Speaker:I think that's pretty hard to do because CircuitPython has deviated a bit.
Speaker:So I think Dan's been the one who's mostly responsible for the merges.
Speaker:So thank you, Dan.
Speaker:Jeez, that must be a really hard task.
Speaker:So, Paul, what's your first one for this show?
Speaker:If there was another theme over the last year is that it was the year of the Fruit Jam.
Speaker:This credit card size CircuitPython powered MicroPC was.
Speaker:a hit. It was first released in July of 2025, but it was hard to find the first few months.
Speaker:And in the last Ada box, late last year, Adafruit shipped them to all the subscribers.
Speaker:I'm not going to go into all the hardware specs. You probably know them by now.
Speaker:But Tod, let's share a few of our favorite Fruit Jam apps from the last year.
Speaker:My favorite is probably Sean Carolan's Pac-Man clone. Originally written for the Wii O
Speaker:Terminal, Cooper Dalrymple ported it to the Fruit Jam and upstreamed it to Sean.
Speaker:Sean vibe-coded Pac-Man in an afternoon, and it's a fantastic port.
Speaker:I had him on a recent episode of the CircuitPython show, and he shared where he got the game resources, how he recreated the sounds of Pac-Man, and more.
Speaker:I'll have to admit to losing a few hours just to playing it.
Speaker:Yeah, it's, I find it really fascinating.
Speaker:I got myself on the wrong screen.
Speaker:I found it really fascinating that we're at this stage where we're able to recreate old hardware in Python running on a chip.
Speaker:like no OS involved, no super high-powered system.
Speaker:You know, it used to be if you wanted to do emulators,
Speaker:you had to get like a really powerful desktop computer or something.
Speaker:But now it's like, oh, yeah, we can do this on a thing that, you know,
Speaker:fits in your hand.
Speaker:What was one of your favorite Fruit Jam things this year?
Speaker:So for me, that was the Zork player.
Speaker:So if you're unfamiliar,
Speaker:Zork ran on this thing called Z machine.
Speaker:It was a virtual machine created in 1979 to run,
Speaker:run many of the text adventures created by Infocom.
Speaker:Infocom, they did Zork, they did Hitchhikers of Guide to the Galaxy,
Speaker:they did a ton of games.
Speaker:Like, in fact, on this webpage, Dan has a picture.
Speaker:And the cool thing about this Z-machine, virtual machine,
Speaker:is it let Infocom get put Zork and all these other games
Speaker:on all the platforms of the 1980s,
Speaker:like the Comber 64, the Atari ST, the Sinclair CX81, I think, even.
Speaker:And thanks to that,
Speaker:Dan was able to do the same with a Fruit Jam.
Speaker:His port has that cool retro CRT, 80 by 24, green screen CRT effect.
Speaker:I think for maximum this nostalgia, you should hook your fruit gem up to a CRT, you know.
Speaker:But Dan wrote this Z code parser in CircuitPython instead of C,
Speaker:which is what most people have been doing for the last, you know, 40 years or whatever.
Speaker:And it works nicely with the Fruit Jam OS, which if you have the CircuitPython-based OS,
Speaker:but writing OS is in CircuitPython, right?
Speaker:But if you run a Fruit Jam OS, it works nicely with that.
Speaker:So it just becomes another app for your free gem.
Speaker:And it's a lot of fun to use this as just Zork and Z machine
Speaker:because it's the first chat system that we normal folks got to have access to.
Speaker:And learning how to use how to play Zork and how to use the language that Zork wants
Speaker:is kind of not that different from the prompt engineering we've had to learn recently
Speaker:of like, how do I phrase this thing so the LLM will spit out something that will work.
Speaker:And so now you too can be eaten by a grue or get lost in a maze of twisty passages,
Speaker:just like 1980s kids.
Speaker:Yeah, I was terrible at Zork.
Speaker:But Dan's been busy.
Speaker:Yeah, yeah, yeah.
Speaker:He's been doing a lot, huh?
Speaker:In addition to the Z machine, he also released a handful of classic screensavers and another game,
Speaker:Moon Miner.
Speaker:Yes, yes, yes.
Speaker:It's related to the classic Lunar Lander game for,
Speaker:from the 80s, your mission is to retrieve minerals from the moons around the solar system.
Speaker:It's all physics-based.
Speaker:You try to land your rocket ship based on how much thrust you're giving it and the gravity below.
Speaker:You need to make a safe landing to harvest the minerals, and you can't tip over either.
Speaker:I'm not good at Zork, and I'm not good at physics games either.
Speaker:Yeah, this one, this one of the earlier vector, black and white vector game coin up arcade games called Lunar Lander.
Speaker:But it was totally a physics game as well
Speaker:where you had to navigate your fuel
Speaker:and land on these little platforms on a lunar surface
Speaker:and I was terrible at it and it was,
Speaker:but it had such good sound.
Speaker:What's your next one for us?
Speaker:So our host for CircuitPython Day,
Speaker:Liz Clark built a hardware music visualizer
Speaker:for the Fruit Jam modeled on the old Atari video music box.
Speaker:She calls it the Fruit Jam video music machine.
Speaker:And let me see if I got a picture up here.
Speaker:I can show you.
Speaker:So this is kind of what it looks like.
Speaker:The white screen is just a monitor.
Speaker:The device that she built is this cool kind of 1970s-looking thing
Speaker:with wood grain and these step switches
Speaker:and the cool brushed aluminum knob.
Speaker:So the original Atari video music hardware
Speaker:was released in 1977,
Speaker:and it was the first commercial video music visualizer,
Speaker:as far as I'm aware,
Speaker:but it had no CPU.
Speaker:The video it output was created just with logic chips,
Speaker:clocked from the video signal
Speaker:and modulated by the audio signal,
Speaker:It looked like a piece of hi-fi gear with four knobs and 12 buttons.
Speaker:You wouldn't know it was like something for your TV.
Speaker:It looked like something that would just belong in your amp stack.
Speaker:But with those controls, you can get a neat range of effects that reacted to music.
Speaker:Granted, all these effects were variations of colorful diamonds or lines,
Speaker:some of which that Liz has put up here on her demo.
Speaker:But they were still pretty neat.
Speaker:This is like 977.
Speaker:So Liz took the design inspiration for the entire video music
Speaker:It made this cool Fruit Jam-based thing.
Speaker:And the code that she has for it is pretty cool because it takes the audio from the mic that's, oh, yeah, instead of having to feed a mic into it, it just reads from a built-in microphone.
Speaker:So it takes audio in real time, it takes audio in from the mic.
Speaker:It gets a spectrogram of that audio using FFT, and it does analysis on that spectrogram to use it as inputs for the various visual effects.
Speaker:And this kind of process, this loop, is really useful for a lot of audio projects.
Speaker:Anytime you want to do any kind of, I want to look at the audio at a more kind of higher level than just looking at the amplitude.
Speaker:This is the same process.
Speaker:So if anyone is interested in doing any sort of audio project that actually does audio analysis, look at Liz's code.
Speaker:You can get some cool techniques from it.
Speaker:I love audio reactive projects.
Speaker:My first CircuitPython project ever was an audio reactive process.
Speaker:project with a PDM in mic and an 8x4, so a 32 neopixel feather wing.
Speaker:Still sits on my desk to this day.
Speaker:Oh, coolP.
Speaker:Yeah, I love audio reactive stuff.
Speaker:So what's your next one for the show?
Speaker:Where to start with this one?
Speaker:First, let me start this by saying, I'm not a game designer.
Speaker:I don't know anything about designing games.
Speaker:So if I get some of the details wrong here, I'll just apologize up front.
Speaker:One of the knocks against CircuitPython is that it's not that fast when compared to Arduino
Speaker:or C, and that's okay. That wasn't a primary feature for CircuitPython. But that perception may be
Speaker:why CircuitPython doesn't have a lot of homebrew games for it, and that's where picogame comes in.
Speaker:picogame was created by Vladimir Smitka, and he's created a great write-up of picogame on Chiptron
Speaker:EU. picogame is a small 2D game engine built on top of CircuitPython and requires about 200K of
Speaker:RAM to run, and it can also run on the RP2040 and 2350 family, as well as a number of boards
Speaker:from expressive. What Smitka, as he goes by in Discord, has created, is a game engine written
Speaker:in C, compiled into CircuitPython. This handles all the graphics, including collisions and other
Speaker:computationally heavy tasks. On top of that is a set of Python libraries to help with USB game
Speaker:pads, keyboards, audio, synthesis, animation, score saving, and more. This lets the programmer focus
Speaker:on what's important, the game design. And the game programming is done in CircuitPython,
Speaker:and we all know that Python is one of the more popular languages,
Speaker:and CircuitPython tries to conform as much as possible with C Python or desktop Python.
Speaker:Smitka shares his motivation for creating picogame
Speaker:in that he had a PicoPad that you see on the screen here,
Speaker:a checkmade handheld gaming device that uses an RP2040.
Speaker:The PicoPad has a picture of a defender-like game on it,
Speaker:and Smitka tried to recreate it, but found display I.O. too slow.
Speaker:And so picogame was born.
Speaker:With picogame using a core,
Speaker:written in C, performance goes way up, and the article also shares the impressive performance
Speaker:stats.
Speaker:There's an Adafruit game called Bouncing Balls that runs at about 115 frames per
Speaker:second normally.
Speaker:With picogames compatibility layer, more than double to 250 frames per second.
Speaker:We mentioned Dan Cogliano's moon miner game earlier.
Speaker:Smitka rewrote that in picogame, and not only was it six times faster, the code was
Speaker:40% smaller thanks to the engine's native functions.
Speaker:So what can you create and how do you create a game with picogame?
Speaker:Well, it's got a great documentation website.
Speaker:And just starting at the top, it's got what is picogame?
Speaker:You can see it in action here.
Speaker:It tells you what it gives you, and then right here it shows you what can you build.
Speaker:So not only does it have the example games in there, you can try them right in your browser.
Speaker:Yeah, the simulator aspect of picogame is really cool because it lets you kind of work on something
Speaker:wherever you're at, you don't have to have the particular piece of hardware you're designing for with you at all times.
Speaker:Right. And what I love about this with the games is not only can you play them right in your browser, you scroll down,
Speaker:and you can see that this Tetris clone is running in less than 200 lines of CircuitPython.
Speaker:Oh, we're not seeing that. We're just seeing your browser.
Speaker:Oh, no. I'm not quite sure how to change that, to be honest.
Speaker:So let me drop this in the Discord. But if you hit that link, you'll go right to the
Speaker:playground where you can try the games in the browser and see the code that makes up each game.
Speaker:Yeah.
Speaker:So the development has all been in the open.
Speaker:Smitka has shared progress and asked for feedback in the CircuitPython Development Discord
Speaker:channel.
Speaker:There was even a recent discussion about if I understood it right, including picogame
Speaker:in the CircuitPython core and not as a library.
Speaker:I think this is an awesome idea.
Speaker:The batteries included nature of having this built right into CircuitPython would make it a great fit.
Speaker:pair it with something like the Fruit Jam
Speaker:and we'll have to get the word out to the maker
Speaker:and homebrew game communities that there's a new game
Speaker:platform on the block.
Speaker:If you want to see picogame in action,
Speaker:tune into FOMI guys' Game Jam
Speaker:Scream later today at 6 p.m. Eastern.
Speaker:He'll be building his game and picogame
Speaker:and I'm looking forward to see what he comes up with.
Speaker:I think there's a PR
Speaker:currently open
Speaker:in the in the CircuitPython
Speaker:GitHub repo, which means
Speaker:there is a
Speaker:pre-built UF2s, I think.
Speaker:I think that's what happens with the PR is you get kind of pre-built versions,
Speaker:which means you can try out picogame in CircuitPython right now without having to do any sort of compiling,
Speaker:which is very nice.
Speaker:Oh, that's awesome.
Speaker:I didn't even realize that you could just install one of the UF2s off the PR.
Speaker:That's genius.
Speaker:Yeah, I think that's the way it's all set up.
Speaker:But yeah, it sounds like Scott's been working with Smitka to help get it into CircuitPython,
Speaker:because this is like some pretty low-level changes to how the display stuff works.
Speaker:And so I'm really looking forward to it.
Speaker:Yeah, I'm excited.
Speaker:What's your next one for us?
Speaker:So another neat project outside of the Adafruit community that I saw recently.
Speaker:It's building a autonomous Lego train with CircuitPython and LIDAR.
Speaker:This is from Lorraine from Element 14.
Speaker:She also posts a nice YouTube video describing the design hurdles and how it all comes together.
Speaker:And you can actually see the final effect in action.
Speaker:But her project immediately taught me two things that I should have known.
Speaker:Like, wait, you can get a Bluetooth-controlled Lego train.
Speaker:Like when did this happen?
Speaker:I'm going to have to get, yeah, I might have to get one of those.
Speaker:The other is there are serial controllable 360-degree LIDAR scanner modules.
Speaker:They're like 70 bucks.
Speaker:I'll put a couple of links in the show notes for like later.
Speaker:If you're listening to this on a podcast, clearly I'm not as good at hackers I thought I was,
Speaker:that I missed that these two things existed.
Speaker:I thought lighter scanner is like a hugely expensive, like multi-thousand-dollar things.
Speaker:You can only put on top of your smart car or whatever.
Speaker:But now you can get them, and they're about the size of a deck of playing cards.
Speaker:So her project is really funny.
Speaker:It uses CircuitPython on a Seeed XIAO NRF 52840 to talk BLE to the train,
Speaker:and then talk serial to the LIDAR scanner, and control Neopixels along the way.
Speaker:And let's see if there's a, I forget if there's actual picture.
Speaker:This is kind of the picture of the final result.
Speaker:And this is a perfect use for CircuitPython because, you know,
Speaker:CircuitPython, BLE on the NRF chips is really great
Speaker:and doing cereal and neopixels is so easy.
Speaker:The only real complexity was the data coming off the LIDAR
Speaker:is just kind of this raw data that you need some math,
Speaker:some algorithms to actually parse and something useful.
Speaker:But fortunately, she found some Python code for the Raspberry Pi
Speaker:written in normal Python and was able to quickly port this to CircuitPython
Speaker:because this is one of the great things about CircuitPython
Speaker:is it's almost like real Python.
Speaker:And so if you find algorithms, there's a good chance it'll work
Speaker:or you can get this work for CircuitPython.
Speaker:And so the result is that she's got this autonomous light-up train
Speaker:that moves along a track on her wall up near her ceiling
Speaker:and it knows where it's going.
Speaker:So it doesn't run into the ends or if there's something on the track,
Speaker:he knows to stop.
Speaker:Yeah, it's like, yeah, sure.
Speaker:You know, she notes that you could have done this
Speaker:with maybe just a couple of ultrasonic distance sensors,
Speaker:but that's not nearly as fun as using a LIDAR scanner.
Speaker:Right.
Speaker:So this is cool.
Speaker:Watch the video.
Speaker:She shows in the video, I don't know how well this will play,
Speaker:but getting data off the lighter scanner.
Speaker:It basically gives you a sort of 360 donut around it showing you how far things are.
Speaker:And this is her hand playing around with the lighter scanner
Speaker:and just giving the raw data out at certain arcs of the view that it has.
Speaker:But it's really cool.
Speaker:I highly recommend checking out this article.
Speaker:and watching the video.
Speaker:Yeah, watch the video for sure.
Speaker:And like you mentioned, I love the fact that she was able to take Python code and port it to CircuitPython.
Speaker:Like I mentioned earlier, right?
Speaker:CircuitPython tries to conform as much to see Python as it can.
Speaker:And that's just one of the benefits is that portability, which is just so cool.
Speaker:So what's your, I guess, maybe final one?
Speaker:Is this, are we almost done?
Speaker:Yeah, time flies when we're
Speaker:live.
Speaker:Yeah.
Speaker:By now, I'm guessing most folks have heard that our favorite CircuitPython code editor, Mu, was sunset back in December of 2024.
Speaker:We've seen a couple of really strong online editors since then,
Speaker:and now we have a spiritual successor to Mu called RV Circuit Studio.
Speaker:Created by Armstrong Subaro, RV Circuit Studio is a full-featured circuit
Speaker:Python ID, itself written in Python.
Speaker:It has so many nice touches, I'll probably forget a few.
Speaker:But the first time you started up, it asks you,
Speaker:where do you want to back up your code.py file, which is so nice.
Speaker:Just pick a local directory.
Speaker:on your PC and it will also save it there when you update your code.py on your micro controller.
Speaker:And then when you plug it in a board, it will detect whether it's running the latest
Speaker:version of CircuitPython or not and open the download page to your board to help you
Speaker:if you're running an older version to make it easy to download.
Speaker:So here's a, here's RV Circuit Studio in action.
Speaker:The first thing that you might want to do is hit the settings button and make the text
Speaker:size a little big, a little bigger than it is.
Speaker:It's a little small when you start.
Speaker:And I've got it blown up for the, the, the last.
Speaker:live stream today. But everything that you need is right along in the menu bar. So you can see
Speaker:you can open files here. There's a play button for the REPL to start and stop. One thing to note is
Speaker:that Control C and Control D does not work down here. You actually have to use the button to start
Speaker:and stop your code. I've got a nice pink feather RP2040 with a very old DPS 310.
Speaker:Oh, limited edition pink feather. That's right. Very proud of that. And this is a
Speaker:is a temperature and barometric pressure sensor, and I'm just printing the temperature in Celsius
Speaker:to the Rupple. So one of the other nice things it does is it makes Tod Bot's serial plotster
Speaker:obsolete. It has its own serial plotter built in. So you can see it plotting along the temperature.
Speaker:You can see when I grabbed it and it actually changed the temperature. But here's where my favorite
Speaker:feature might be. In the left-hand sidebar here are a ton of code snippets organized by type.
Speaker:I don't know about you, but I learn a lot by cobbling together different bits of code.
Speaker:And here it puts a ton of examples right at your fingertips.
Speaker:From debouncing, there's an example for that, to PWM to battery voltage monitoring.
Speaker:It's all built in.
Speaker:Like I mentioned, it's a Python app available on Windows, MacOS, and Linux.
Speaker:But it's not a native app, so you'll need to use the built-in menu bar, like I mentioned earlier up here.
Speaker:Everything in the UI has a toggle so you can hide or show the project explore.
Speaker:the snippets and more.
Speaker:It has a debugger built in
Speaker:and you can step through functions
Speaker:like you would find in most modern IDs.
Speaker:You can also reformat your code using the black linter
Speaker:and it will also prompt you to install it
Speaker:the first time when you try to run it.
Speaker:And lastly, one of my favorite features is the library manager.
Speaker:What it does is it shows you all the libraries
Speaker:that you have installed in a list and they're color coded
Speaker:if the library needs to be updated.
Speaker:And there's just one button to click update
Speaker:and it will update all your
Speaker:libraries for you right in the ID, which is great.
Speaker:And then it's got another button right next to it called Browse the Bundle, where if
Speaker:you click that, you can look for any library that you need in the official bundle.
Speaker:I wasn't able to get the community bundle up and running within it.
Speaker:I'm sure I'm probably just missing something.
Speaker:No, I actually opened an issue on this.
Speaker:And it's an official response that he will not support the community bundle.
Speaker:Oh, bummer.
Speaker:Okay.
Speaker:Yeah, it's a bummer.
Speaker:But either way, my.
Speaker:My hat's off to Armstrong.
Speaker:You know,
Speaker:thanks for creating RV Circuit Studio.
Speaker:When someone asked me for an editor recommendation,
Speaker:this is now my go-to for CircuitPython.
Speaker:It runs locally,
Speaker:has install packages for MacOS, Windows, and Linux.
Speaker:It does all the major things you would expect,
Speaker:and there are so many nice touches from the code backup
Speaker:to the snippets,
Speaker:to the library manager to using black for code formatting.
Speaker:I could go on.
Speaker:I'm a big fan.
Speaker:Yeah, and it's also written in Python itself,
Speaker:like desktop Python.
Speaker:So if you want to learn,
Speaker:like if you're pretty good at,
Speaker:CircuitPython and want to learn more like quote unquote real Python. You can totally peruse his,
Speaker:app here and kind of see how things work. But because I think it is written in Python,
Speaker:some of these other aspects we might expect from an application, like be able to do Control
Speaker:C in the Ripple or use the native file edit view menu doesn't really exist. So just beware.
Speaker:It's kind of its own little self-contained world. Yep, it sure is. What's your next one for us?
Speaker:This is another retro-inspired project from Liz Clark.
Speaker:Thank you, Liz.
Speaker:This is the chip tune player.
Speaker:It's a inside this cool little arcade-looking box is a feather, an I-2-S audio DAC,
Speaker:and a touchscreen display that has a SD card little holder at the top.
Speaker:And it lets you load up an SD card with retro chip tunes and play them.
Speaker:And you think, oh, that's just like a MP3 player or a wave player.
Speaker:But no, it's so much cooler.
Speaker:because Liz made a CircuitPython library that uses synthio to emulate the
Speaker:AI-8912 sound chip.
Speaker:This is a chip that's been in many coin-out video games from the 1980s.
Speaker:All those bloops and bloops you might think of old video games are probably sounds
Speaker:generated from the AI8912.
Speaker:Unlike today's modern fancy game sound generation hardware, back in the 80s,
Speaker:you had to use one of these special chips to make noise, and they had very specific limitations.
Speaker:For the A1-892, you got three whole channels of sound.
Speaker:and each channel could either play a square wave or white noise,
Speaker:and you could adjust the pitch and the volume,
Speaker:but that was it.
Speaker:If you wanted to do any sort of envelope generation,
Speaker:there was one envelope generator for the whole chip.
Speaker:It infected all the voices.
Speaker:There was no filters.
Speaker:There was nothing.
Speaker:But with that, a clever game designer could make a whole video game soundtrack
Speaker:with game sound effects.
Speaker:And so some of my favorite arcade games from that time period
Speaker:that use this chip are Frogger,
Speaker:Tron and Spy Hunter.
Speaker:I love Spy Hunter.
Speaker:So these chips are very beloved,
Speaker:so much so that there's a whole special file format
Speaker:called VGM files for video game music
Speaker:that stores the various chip instructions
Speaker:on how to make sounds at certain times.
Speaker:And there's entire fan websites out there that will,
Speaker:let me see if I can show you it real quick here.
Speaker:It's called VGA rips.
Speaker:There we go.
Speaker:So these are VGM files for various games or other things.
Speaker:And you can just download these and stick them on the SD card and play them in Liz's thing
Speaker:because her CircuitPython library parses these VGM files and then runs that through the
Speaker:AI8912 emulator.
Speaker:And the library is pretty cool because it's a great demonstration of how Synthio does stuff
Speaker:and how you had to use it for something actually useful.
Speaker:because like, A, doing three square waves and some noise with a simple envelope, that's something that Synthio can totally do.
Speaker:And being able to like have that as a, here's a thing that accomplishes a specific goal is very cool.
Speaker:I've been for the last like year or so trying to do an SN 76489, I think, a sound effects chip emulator.
Speaker:This was a chip that you could buy from Radio Shack back in the 70s and 80s.
Speaker:It's about the same complexity as this chip that Liz emulated.
Speaker:So thank you, Liz.
Speaker:I might be still in some of your work.
Speaker:Got to love open source.
Speaker:Yeah.
Speaker:And like you, I was a big spy hunter fan, but I think I loved the Tron video game even more.
Speaker:Yeah, it was good.
Speaker:All right.
Speaker:Well, I think we have time for one more.
Speaker:And Tod, I'll let you share it as it's one of the most innovative uses of CircuitPython I've seen in the last year.
Speaker:Yeah.
Speaker:And I forgot to bring up a screen for this.
Speaker:Here we go.
Speaker:I think maybe this.
Speaker:He has a really nice website for it.
Speaker:It's called PICOTTY.
Speaker:There's actually a really good story about this as well.
Speaker:So CNX Software Embedded System News is a really old embedded software blog, very handy to look at.
Speaker:But so what is PCOTTY?
Speaker:Imagine this.
Speaker:You've got a whole cluster of servers and you need to manage them remotely.
Speaker:What do you do?
Speaker:So PICO TTY helps you manage that server cluster with a collection of PICO's
Speaker:running CircuitPython, and then a Raspberry Pi 2W as a manager.
Speaker:It's a real niche tool for system administrators to manage groups of machines,
Speaker:but it shows how useful CircuitPython can be even in these demandian environments.
Speaker:The problem with servers is that they're headless.
Speaker:They've got no screens, no keyboards,
Speaker:but you still need to be able to remotely type on their keyboards
Speaker:and see their console messages, especially when they boot.
Speaker:Normally it means you have to buy some expensive remote management KVM hardware,
Speaker:but security researcher ChironGV,
Speaker:created a low-cost system for network serial console
Speaker:for a networked serial with keyboard injection
Speaker:using Raspberry PiCicos.
Speaker:They're in CircuitPython using the USB serial
Speaker:and USB Hid modules that are built in CircuitPython.
Speaker:The CircuitPython PICOS feed keystrokes to the server
Speaker:to type commands on their keyboard
Speaker:because it looks like a keyboard to the server.
Speaker:And then it receives console messages over USB serial.
Speaker:This does require that the server is configured
Speaker:to actually output console messages via server.
Speaker:which is something that like Linux can do,
Speaker:but Windows can't do, I think.
Speaker:And then the reason why there's a PICO is that you've got,
Speaker:sorry, the reason why there's a Raspberry Pi 2W in there
Speaker:is it's a hub.
Speaker:It receives all the messages from the PICOS
Speaker:and lets you control the various PICOS.
Speaker:Via a nice web interface,
Speaker:you can see different server messages
Speaker:from all the different servers in real time.
Speaker:You can send keystrokes.
Speaker:You can even do OTA updates of the PICOS
Speaker:if you want to update like the version of Circa Python or whatever
Speaker:without having to touch anything.
Speaker:As long as you can access the Raspberry Pi 2W,
Speaker:you can access all the servers and all these little picos controlling the servers.
Speaker:So this is kind of the architecture diagram of what he's got set up.
Speaker:Here's the, here's the Raspberry Pi 2,
Speaker:here's the various picos,
Speaker:and then these are the various servers down at the bottom here.
Speaker:And if you wanted to, you can even make a little 3D printed enclosure
Speaker:that includes four of these modules for these picos and a Raspberry Pi.
Speaker:It's something that I wish I needed.
Speaker:I needed this like 20 years ago back when I was a system in.
Speaker:Don't need it now.
Speaker:But I've got a home lab with like maybe four servers that I could perhaps benefit from this.
Speaker:But so cool.
Speaker:And it's kind of neat to see the ghost of my past job kind of pop up.
Speaker:What a great use of CircuitPython.
Speaker:For so often we think of makers or maybe people new to programming or coming to CircuitPython.
Speaker:But here it is in a commercial production environment being used with real world servers,
Speaker:which is just so cool to me.
Speaker:Yeah.
Speaker:Well, that's our show.
Speaker:Thanks for hanging out with us.
Speaker:and to learn more about The Bootloader,
Speaker:visit thebootloader.net
Speaker:or find us in your favorite podcast app.
Speaker:Stay tuned for JPs Workshop at the top of the hour,
Speaker:and thanks to Adafruit for having us.
Speaker:And until next time, stay positive.