Sean Tibor: Hello, and welcome to teaching Python. This is episode 110. My name is Shaw Tibor, and I'm a coder who teaches and my name. Kelly Schuster-Paredes: Is Kelly Schusterparedes Perez, and I'm a teacher who codes. Sean Tibor: And this week is all about Circuit Python. We are excited to talk through this, and we have a very special guest who many of you may have recognized on the byline of, I think, about every other Adafruit learning guide. We're joined today by Katney Rembor from Adafruit. She's a creative engineer over there and has written everything from the welcome to Circuit Python Guide to the most advanced, crazy, technical, cool things that you can think of on the platform. And we're just thrilled to have her. Welcome, Katney, to the show. We're excited to talk with you today. Kattni Rembor: Thank you very much. Sean Tibor: I'm excited to be here, and Katney has been a good friend and a good wingman for wing person, I guess for PyCon. Like, we've gotten to know her over the years, and it's an extra great opportunity to hang out together and talk more about the things we love, which is Python and Hardware. Or at least two out of the three of the people on the call love Hardware with Python. Right. Kelly Schuster-Paredes: I wonder who so unfair. No. And I'm excited. I wish we were in person, because every time we're in person I learned so much from you, and I always beg for Circuit Playgrounds, so COVID last year. Kattni Rembor: No, that's good to hear. I'm glad. Learning things every time is an excellent thing to happen. Kelly Schuster-Paredes: Absolutely. Sean Tibor: Nice. Well, why don't we jump into the wins of the week? Katney, we're going to have you go first because it's fun to make our guests go first, and it gives me a second to formulate my thoughts. Kattni Rembor: Okay, so my win this week was that I'm currently writing a guide for a particular thing that is basically two keyboard key switches, and they have NeoPixels behind them and to do a lot of fancy NeoPixel stuff. It's hard to do with the key presses just based on it's pulling constantly, and so something might block something else. So I ended up writing a very simple example that worked out really well. And each time you press one of the keys or the other key, it turns the Led, a random color using rand int, and it's a lot of fun, it turns out. I've actually been fidgeting with it quite a bit, and it almost becomes a game to try and get them to the same color because it's any number of colors, there's 256 options across the whole rainbow. So I was really happy with that. And it actually didn't take me all that long, which was another win bonus. I didn't bang my head against it for very long. So I'm really happy about that because often I spend way too much time trying to figure out how to make things work, and I didn't have to this time, and I made a really fun demo. So that was my win. Sean Tibor: Nice. That's awesome. I love anything with NeoPixels in it because it just makes everything so much more fun and colorful and enjoyable. And I know our students have enjoyed that too. Kattni Rembor: Yeah, for sure. I'm a huge fan. Kelly Schuster-Paredes: Yeah, they love the colors. When they get to pick, they see the colors on a website. We give them the RGBs and just having them kind of try to get the pixels the same color, it's always a super win. You get to see what the color likings are and I don't know, it's kind of like a personality tracker when you look at the. Kattni Rembor: Hold on. Sean Tibor: So cool. Kattni Rembor: They're kind of close, but they're not the same color. Right. Sean Tibor: I'm looking at this. So these are keyboard switches with NeoPixels underneath them. And then you've got kind of like a clear keycap on top of it that it's translucent. Kattni Rembor: It's sort of smoke colored. Sean Tibor: Oh, nice. Kattni Rembor: On my face, it might actually focus. Sean Tibor: Running off like a cutie pie for that one. Kattni Rembor: Yes, cutie pie. RP 2040. Sean Tibor: Nice. Kelly Schuster-Paredes: I have a whole bunch of those in the classroom. Kattni Rembor: That's great. They're excellent little boards. And these are breakouts that work with cherry MX or MX compatible switches. And there's a version that runs with the Kale chalk, low profile switches as well. And this guide that I'm writing will be for both the code and so on, is identical. It's just the boards are a little different. Sean Tibor: All right, and what's the Ada Fruit part number of that? And how many of them should I order? Kattni Rembor: I actually don't know off the top of my head what the part numbers are. Kelly Schuster-Paredes: We'll put it in the show notes. Kattni Rembor: Yeah, but I will tell you one thing, the MX version is probably a better option if you do pick any of them up, because MX switches are a lot easier to find than the chalk switches. Sean Tibor: Nice. Very cool. I have given a lot of my paychecks over to Adafruit over the years and gotten so much more back out of it. So it's been fun. All right, Kelly, how about you win this week? Kelly Schuster-Paredes: Well, mine's an obvious kind of lame win. I'm on summer vacation, hence the tank top and the wine at 03:00. I literally have watched a lot of TV in the past few days, just enjoying the fact that I didn't have to wake up and do any coding. I try to get back into my regular coding schedule and I've coded a little bit for an hour or two, trying to practice all the stuff I learned over the past six months. But I just needed downtime. And I keep telling myself, I earned this downtime and I'm going to take this week. So that's my huge win is just forcing myself to stop and relax. I even bought a big raft for the pool. I laid in it for like two minutes and then I was like, okay, let's go, what do I got to do? But I at least rested for a little bit. Sean Tibor: That's so unbranded for you, Kelly. You rested for two straight minutes consecutively. Kelly Schuster-Paredes: Yeah, and then I was booking a whole bunch of people for the summer. So yeah, I couldn't stop too much, but nice win. Kattni Rembor: Good on you there. That's an excellent one. Kelly Schuster-Paredes: Yeah, that's a long time coming. Sean Tibor: Nice. Sean so my win has been that I've been developing a lot of training over the last three weeks or so for our summer interns and we've covered everything from an introduction to cloud computing, talking about infrastructure as code. We've been doing a lot of nontechnical training about how to communicate effectively in a technical environment, time management and prioritization techniques. So trying to be very comprehensive in the most useful things for an intern to know to be successful over the course of the summer. But the win behind this is I've gotten really good at using the Mark tool for generating presentations. So it's a way to write markdown code and have that transformed into presentations that you can put together. Now you could probably do like a lot nicer, more sophisticated, more beautiful presentations with Keynote or PowerPoint or something else, right. But for me to just put together bullets and things that people can follow as we're talking through something, it works extremely well because I can write all of it in code and have it generate a PDF version or an HTML version actually, while I'm writing it. So in Vs code, I have my markdown on the left and I have a Mark previewer using a plugin on the right and it shows me all of my slides. So you can put background images in there and pictures and things like that and use all of your standard markdown tools. But then what really helped me, particularly with my procrastination and getting over the writer's block of getting things started, is that you can ask Chat GPT to make a presentation for you in MARP format and it does a pretty good job of roughing it out. So it helps me get to a point where I at least have something to start with and then I keep going with it and making my own. And the Win has been being that productive to create all of this content and all of these lessons and trainings in a very short amount of time and be very responsive to what my interns are asking for and what they're looking for. Kattni Rembor: Well done. Kelly Schuster-Paredes: Very cool. And what can't chat GPT do? I sean not well, I'm not saying what can it do? Well, just what can it do because we're not into that conversation. Sean Tibor: Yeah, that's a different one. And the fail from this is kind of the same thing as the Win, which is because it's been so easy to create these and get my thoughts out into slides. I haven't been giving myself enough time to really do it well, so my trainings have been pretty good and I've been kind of winging it and it's working pretty well and they seem to be responding to it well. But I know I could be doing better if I was giving myself more time to focus on it and really prioritize it. So it's like the win is that I can do it pretty close to when they need it. The fail is that because I'm doing it that close, I end up running out of time and not doing as well as I think I could be. Same win, same fail, I guess. Kelly, any fails on your side this week? Kelly Schuster-Paredes: No, I'm just going to say no, it was all good. We go into other fails other day, but no, no fails. Sean Tibor: All right, katie, any any fails on your side? Kattni Rembor: You know, I gave it a lot of thought because I wanted I wanted to find one, and I haven't had anything in the last week or so that has been enough of a failure that there's been anything to learn or I don't remember it, which is equally possible. But yeah, I have nothing going on that was enough of a fail to be worth mentioning. Sean Tibor: Okay. Oh, I have a bonus failed. I triggered an hour long outage for our single sign on login system for all of Europe, Africa, the Middle East, and Asia on Friday. Kelly Schuster-Paredes: Hopefully you learned quickly from that. Sean Tibor: Yeah, it's probably like 50, 60,000 users maybe, but thankfully it was like 05:00 P.m. On a Friday or later their time, so hopefully no one noticed. Kattni Rembor: Achievement unlocked. Sean Tibor: Yeah. Kelly Schuster-Paredes: Excellent. Sean Tibor: Yeah, it's not all wins all the time. Sometimes it's an oh, no, and I totally missed the alert notification that said, like, hey, there's a problem. There was a great root cause analysis on, like, what could we be doing better next time? So. Kelly Schuster-Paredes: Excellent. Let's get started in this conversation. I want to talk about this. Sean Tibor: All right, good. All right, let's get into it. So let's talk circuit Python. Kattni, can you give us just the basics for our audience? If they haven't heard of circuit Python before and what it is, I know you do this really well, that's why I'm kicking it over to you. You've presented this so many times, but what is circuit python and why do we use it for learning and teaching? Kattni Rembor: So circuit python is a version of python that runs on tiny computers called microcontrollers. This little itty bitty board right here is a microcontroller, and it's not full python. It's a subset of python. There are parts of python that are too big or don't make sense for microcontroller use. And so, for example, NumPy isn't available for circuit python because it's just too big to run on a microcontroller. But we do have a subset of that called microlab. So we do try to compensate for those situations. But the gist of it is that you won't be able to take your Python code and just drop it in there and have it work. You may need some modifications. And circuit Python, we designed it specifically for beginners and for learning. And the idea was we wanted to lower the barrier to entry for folks who want to get into programming and electronics, and it does exactly that. It's super simple to get going. We have so many guides on doing that, both board specific and there's a main guide, and it creates a situation where you can start to learn very quickly and you can interact with the physical world very quickly. Python is a lot about data manipulation, and circuit Python is about manipulating the physical world. And for me, that made the difference of me being able to learn Python or not. I started with circuit Python, tried to learn Python and couldn't, and it wasn't working for me, and then found circuit Python and never stopped running. So it runs on microcontrollers. And just like Python, there are libraries, and these libraries are either helper libraries or hardware libraries. And the major difference between your Python code and your circuit Python code is that you have to tell circuit Python where to look for the hardware that you're using. So there would be an extra set of lines underneath your imports that would be doing that and telling circuit Python where you actually wired things up, where things are connected to the microcontroller physically. And the rest of it is pretty common in terms of Python in your code. You can have definitions, you can have classes, your control flow is the same, all that sort of stuff. Other than working with hardware, the format of it is very similar. If you already know Python, you'll be very comfortable in circuit Python. And if you don't know any of it, circuit Python makes it very easy to get started. And that would be the reason why it's often used for learning and teaching is that it provides a different way into learning Python, manipulating an Led or something to make it blink, or using a temperature sensor to get the temperature, things like that. For some folks, that is far more of a hook than doing math or other basic Python things. So it's a great situation because you can get the folks who need that extra push into programming and electronics, whether or not they like it, and everybody gets really excited about it, and it's an easier way to learn it, and it expands the horizons in terms of what you can actually do with it. Sean Tibor: Nice. I think for me, one of the things I really liked about circuit Python was there are constraints that are enabling, right? So one of the things that's a little bit challenging about Python on computers and running it in the full environment is that you can do pretty much anything right? So you could get sports scores, you could connect to the Internet. You can make text adventure games, you can draw things. You can do all of these different things. And because you have some constraints, like, there's only so much you can load onto a board, right? It only has so much memory. It only has so much processor power. You have some limits to what you can do, and you have to be very careful about what you bring in. But those limits actually breed some really interesting creativity, right, and some thoughtfulness and some introspection on how you're approaching solving the problem that I think is sometimes lacking when you have the resources of a modern computer at your disposal, like a full computer. Kattni Rembor: We've actually done every project that you just listed off with Circuit Python. Sean Tibor: Well, fine. Kattni Rembor: Never mind everything you just said, we've done it. The limitations also breathe the creativity in the core code, right? Because you have to create slim enough core code that it is running on this microcontroller, and it's not limiting how much code you can use. So it works both directions in terms of, like, everybody has to work within those limitations, whether it's developers or users or library writers, et cetera. And it changes a little bit how those things are written because we want to make sure that folks can do exactly the things you're talking about. Sean Tibor: Yeah, and I think that's a really good point and a very fair one, too. And Kelly, I promise I won't let you speak here. Kelly Schuster-Paredes: I'm sorry, kids, nerded out on this. Sean Tibor: I'm so excited about it. I'm so excited. I think it's a really good point, because, like you said, every project I just mentioned has been done on Circuit Python. Okay? But I feel like it all stems from this. Like, well, you can't get sports scores on a Circuit Python. It's like, someone's like, hold my coffee, I'm going to make this happen, right? Or you can't do that. Hold my drink, I'm going to go make that happen, right? It's that determination that we will find a way to figure it out and use what's available to us in clever and creative ways to make it happen. And that's also one of my favorite things about working with hardware and working with Circuit Python specifically. Kattni Rembor: Funny story, when we first started doing things where we were pulling information from the Internet and like, maybe bus routes or something like that and displaying it on a display, we did many different projects with this. And about four months after we started, somebody finally says, should we do sports scores? And somebody else said, I guess. And it didn't even occur to anyone. Not a single person on our team, not a single person in management. Nobody even thought about doing sports course until about four months after we started doing the exact thing that would let somebody do that, right? So we did a couple of sports course things, and obviously they're very popular. But yeah, that just give you an idea of the type of people I work with. Kelly Schuster-Paredes: We're going to back it up a little bit because there's a lot of people who are not as savvy with hardware. Because in the classroom, if you're with 20 something kids and everyone's having some sort of issue and it's either the connection wire or the breadboard or the Mac's not picking up, or somebody named it not main and not code or they don't have a library, it gets a little bit crazy. But at the same time, I just want to go back into the advantages for education before we get into the troubleshooting, because I have a couple of people that are avid listeners and really want to get into circuit Python this year. But some of the advantages of education and I'm like spinning right now on that microlab thing because I was like, oh, data analysis on the circuit Python, that sounds great. That's a new challenge accepted, because I love data. But what are other advantages? I'm thinking obvious science connections here's. Sensors get real live data. You have art kind of thing. Here's some creativity. Go ahead and tell me the craziest things that maybe connect with humanities or English or have you seen anything done that would be advantageous for everyone else? Kattni Rembor: Real quick thing about microlab. The coolest thing that I've ever seen done with it was at python this year, and there were two folks who got one of the blue fruits because obviously the circuit playground wasn't big enough to handle it. And they used Fourier transforms to measure based on just pulling it back and letting it go, measuring how far up the wire they were holding it based on the pendulum swing physics. Kelly Schuster-Paredes: I wonder how. Here Katney, here's a challenge for you. Have somebody write something up and visualize it with Dash, because that's like my new passion now. Dash is a library with plotly, and it does data visualization, and you can have all these beautiful graphs. There you go. Someone ate a fruit. Write it up for me because I will be banging my head a lot harder than you guys will signs. Kattni Rembor: Yeah. So advantages. That's an example of an obscurely creative thing to choose to do. We have no note about doing something like that anywhere. That was completely from them. But in terms of humanity, I guess there's the ability to do a lot of environmental sensing. And as per the northeast right now, that is something that would be really good for humanity, is to have real quick DIY air quality sensors to know whether you should be actually wearing a respirator in your house or not and things like that. That's a particular example. But we have seen Circuit Python go to space on microsatellites. There's a lot of different projects that would apply to this sort of thing. I mean, there's physics obviously, example there I don't so much know in terms of English what I feel like somebody could come up with something and I'm sure somebody will. Kelly Schuster-Paredes: Sort of natural language, maybe some sort can you do like, speech to text and something in Circuit Python? I don't know. Kattni Rembor: I'm not sure. Well, I haven't done the machine learning stuff. One of my coworkers has been doing most of that and I don't know how much of it was done in Circuit Python or how much of it required, like, a Raspberry pi to do, because there's been projects with both. Circuit Python was used to track a cat. A cat would walk by and it would know that the cat had walked by. That was done on a Circuit python board without desktop being necessary. So there is some machine learning stuff that's viable, science wise. There's so many things. This is a vague example, but we did a project that was like a shaker type thing that are in chemistry labs for agitating your chemical mix for five minutes. And so you're not sitting there doing this very carefully for five minutes. And those things cost tens of thousands of dollars. We did it for 30. That's a pretty huge thing because it makes that sort of thing accessible to anyone or almost anyone. Right? Because nobody's got well, people do, but I'm saying, like, most people don't have tens of thousands of dollars sitting around to agitate their stuff. They would just sit there and do this if that's how much it was really going to cost. At $30, that's doable. And I think one of the biggest places that we and this has already been is being done. So I know for a fact that this can affect a lot of people is assistive technology simple? Two simple examples. One is a door opener that's controlled by someone, something on someone's chair, for example. $17,000 to $40,000. We did it for 45, I think. Kelly Schuster-Paredes: Wow. Kattni Rembor: And it's basically taking stuff that is totally inaccessible to most people. And instead, there's just for example, one young woman had no door on her bedroom because she couldn't control it. So the only way for her to be able to get reasonably in and out without someone else, like, knowing when she needed to, is to just have no door. And there's a group of people called at makers, and they do a lot of stuff where they'll actually have local high school groups do the actual builds and take them to the people so they can work all over the world, even though they're stationed in one state. And this particular young woman was now able to slam the door of her by drum and her brother's face. And that was like the biggest thing for her was just to be able to say, like, get out of my room and then close the door. But it makes a huge difference in these people's lives. It's very small stuff, but the ability to open and close a door when you've never been able to is mind blowing, right? So assistive technology is a huge thing and Circuit Python makes it quite easy to do. So the other thing is, if you don't need it but you want to contribute, it's also easy to do because the code is not that complicated to do these things. I mean, obviously the integration into the chair part of it is a little more complicated. And that's where you'd need someone who does this all the time and they know how these things work. But the making of the actual chunk of hardware that does the closing and the opening based on a signal is very doable. Kelly Schuster-Paredes: I think that's like what inspires me the most to force myself into hardware. And I think that's where Sean and I found the passion to get into Circuit Python because that ability to let the kids just go crazy and get creative is huge. And we sort of brought this up a little bit preshow, but I've been reflecting a lot, obviously, about the future of education and computer science and the fact that my 8th graders, we gave them a social good project. Focused on whatever they wanted. But we said, you need to use chat GPT, and you have to make something that you've never seen before. And you have that end, and then you have the 6th graders down just getting the basics. And then you have 7th graders when you're trying to say, okay, don't do your apps in Chat GPT, but here just do a trivial code and try to do Rock, paper scissors by yourself when it's everywhere on the internet. And it's kind of like what do you do in the middle between a beginner and a not so beginner? And these idea of putting in the ability to make amazing things for social good for education is kind of where we're at with Circuit Python. It's pretty cool. Any thoughts on that? Kattni Rembor: Well, I think the big thing that it does do for education is that because it makes doing so many things relatively I mean, I say relatively because it can get very complicated if you want it to. But relatively simple is that you can tell someone who's in the middle to just be creative, right? And the getting from the thing in your brain to the writing of the code and the actual project, there's a lot less barriers there. And so you're in a situation where you can be not so much vague, but more broad in what you say. And you don't have to get super specific because super specific limits creativity, whether or not anybody likes it. It's just once someone hears do this project, they're going to do that project, or they're going to limit what they think about to the scope of that project and not say, well, what about this ridiculous thing over here? And that's what you want is the ridiculous thing over here. So being able to say do a project that you think is creative, that is, here's three things we want you to incorporate, but that's it. And anything else is you. And that's a really big deal for anyone on any level, but definitely for the people that are not quite beginner but not quite expert yet. It means you can spanned on what you want to do from when you're just making an Led blink. And being able to make that happen is still reasonable. It's still reasonable and quite easy to do. So I think that's where that comes in. It's just that it's easy to take the thing in your brain and turn it into an actual piece of hardware doing something. And you have those skills, you just kind of haven't used them to the extent that this project calls for yet. And that's what you want is expanding those skills. Sean Tibor: Yeah, it's interesting. I was thinking about this a little bit as we were talking and preparing for the episode. I think the first programmable hardware that I ever worked with was All Arduino. And it was like an Arduino uno. That all I wanted it to do. I wanted to ring one of those little bells that you see like at a hotel desk or whatever. It's like this ding ding ding. And I wanted to make it so that it would ring a bell when someone tweeted, right? And I came up with this ridiculous Rube Goldberg type contraption where it had a servo and the hammer that I stole out of a Don't Break the Ice board game. Remember that one where you had to bash the little blocks of ice and if it all fell, then you lost? I took the little green hammer out of that and I super glued it onto a servo and hooked it up to this thing. Actually, it was a raspberry pi. I'm confusing this. It was Raspberry Pi. But I remember just kind of getting to the point where I could do that and literally the only thing was if a tweet comes in, activate this servo, right? And in order to do that, I had to get a Raspberry Pi. I had to wire it up. I think I was using like node red or something like that to do all the interactions with Twitter and with the servos and everything, wire it all up and then get it to move the servo and line everything up. And I was able to do it over the course of a couple of days. But that whole process of saying I want to do this thing right, I have this idea or this dream that I want to do and I want to make it real. And for me to get from nothing to working prototype took a lot of different steps that I had to follow and challenges that I had to overcome in order to. Get there. And that was my middle, right. That was my middle project from where I started with Arduino and that uno board to later on where I was using Circuit Python to do some cool things. Based on a lot of your guides, that middle one was probably one of the hardest projects I had to do because I knew enough to be dangerous. I knew that it was possible, but I didn't know how I was going to get there. And all the steps in between were relatively complicated, like, install this, do this, hook it up to a computer. How am I going to make this work? And what I like about Circuit Python is that if I were to do that same thing, probably I would have to come up with what's the right board that would have connectivity to be able to pick up Twitter posts and then have it hook up to a servo. And the rest of it is just Python code. Right. And it's pretty straightforward from there. So it lowers those barriers. Right. It makes them easier to hop over instead of having to think about them as being insurmountable walls to get from one step to the next. Kattni Rembor: The only thing you need to install anywhere is if the board has never had Circuit Python on it, you need to load Circuit Python on it. That's very simple. It's explained in every board guide. Beyond that, you need an IDE. You need a code editor. And that's it. You could use your notepad if you wanted to. It's not a great one. I don't recommend it, but if it's all you have, it's possible. Yeah. Kelly Schuster-Paredes: And Moo Editor works really well with exactly. Kattni Rembor: Yes. It's a simpler editor. It's got the serial console and a plotter built in. And so it definitely makes it much simpler to get started with Circuit Python because everything is right there versus learning how to use a terminal program and command line thing, which is definitely an advanced version of it. Mute editor. You click a button and you get that serial console where all of your print statements and or errors are printed. And it helps, definitely with troubleshooting, for sure. Sean Tibor: Yeah. And I think that's one of the other benefit for education is that it's a simple way to get started. Right. But you also have you've noticed we've only mentioned a few boards by name here, but there's, as of the time of this, 413 boards that are available on circuitpython.org. Right. Everything. Kelly Schuster-Paredes: And Sean owns like 308 of them. Sean Tibor: Well. Kattni Rembor: The majority of them are actually not Ada Fruit. Sean Tibor: Yeah. Kattni Rembor: We have so many other folks who have designed boards who want it to work with Circuit Python for all of the reasons that we've been talking about. And most of the boards that aren't Ada Fruit were added by the folks who designed them. So that is like an extra step they wanted to take to be able to say it's Circuit Python compatible. Sean Tibor: Yeah. And so you've got just this huge range of different kinds of boards that you can use for a wide variety of purposes. But in education, one of the hardest things is getting every kid to get hands on with something, right? Can they actually do it? If you're working with really expensive, fragile sorts of components, you might only be able to get a couple of them for a classroom. And then how much time do kids really get? Whereas a lot of these boards are pretty affordable. They're something that most classrooms could get a set of 20 or 30 of them for not that much money and be able to get going. Some of these are, what, four or $5 a board? Maybe $40 a board for some of the really fancy ones. They're not crazy amounts of money at. Kattni Rembor: Least for boards that are through. Adafruit also does education pricing. So there's like I don't know the details because I've obviously not dealt with it, but there's discounts for educators as well, so that's something worth keeping in mind is you can not only afford this stuff, but you would also be able to maybe get a little more because the cost of the board itself is brought down. And so if you had a budget of X amount, you'd be able to fill the rest of that budget with fun extras to go with it. Kelly Schuster-Paredes: I have a question. I'm going to throw you one. Top five best boards to buy for education, for ease and for fun projects. Obviously. Blue fruit is my favorite. Well, okay, but that's just mine. Kattni Rembor: Yeah. So I would say top one for me. 100% for education is the circuit. Playground Bluefruit. There is the Circuit Playground Express, which is also excellent. However, the microchip on it, which is what makes up the brains of a microcontroller it's small, not in terms of size physically, but it's small in terms of memory. And so you very quickly, as you get into more complicated code, will run into problems because it just can't handle it. And the chip on the circuit. Playground Bluefruit doesn't have that problem. So the difference between the two boards other than bluetooth is there's no infrared sensors on the blue versus there are on the circuit playground express, so there's very little difference between them. And in fact, there's a library that I wrote that makes it working with it super simple, because it does all the hardware set up in the background. So you can get right into the Python code without understanding how to tell Circuit Python where to look for things. And that works on both. It works exactly the same on both. So if you have a mix of them, you are totally fine. But the blue fruit is a little bit beefier and so it works a little better. I Would Say number Two is The Circuit Playground Express for All The Same Reasons both of them have a bunch of LEDs sensors, touchpads switches, buttons, all this stuff built in so you can do all kinds of projects with just that board. You don't have to attach anything to it. The pads around the outside are alligator clip friendly so if you do want to attach stuff to it pretty easy to do but you can get a lot of learning in and a lot of creativity and a lot of things done with just that board. So in that case you don't have to buy accessories to go with it. If your budget is X amount you can just get X amount of circuit playground they're also the same price the Blue Fruit and I think the Express so you can get X amount of those and hand them out to your kids. And as for you're talking about fragile, I carried them to Python with 70 of them in a ziploc bag crammed in my luggage somewhere and would just throw them around as I was like getting them out. They're not fragile by any stretch of. Sean Tibor: The I think I've seen them thrown across a classroom before I mean you. Kattni Rembor: Could tear stuff off it if you tried but I've never run into that. Kelly Schuster-Paredes: I think that the only thing I've sean is the USB thing. But that's from a kid that's literally trying to break it, I think, getting mad at it. Kattni Rembor: Other boards. So beyond that point, you're looking at a microcontroller that doesn't necessarily have fun buttons and other things built in. So you're going to need to either solder, which obviously adds a little complication, or you can do the soldering and then just give the board to them on a breadboard. But at that point, you're also buying breadboards. You would then need to wire things up which is a whole next step because of those alligator pads around the outside of the Blue Fruit and the Express you can learn how to wire things up without needing to solder but these other boards often require soldering. Now, the cool thing about most of our recent boards, all of our recent boards, I say recent in the last couple of years, is that there's a stem, a QT connector on it, which is it talks to the board using a particular communication protocol, particular language of talking. And we have so many things, so many sensors, so many displays and buttons and all this other stuff that use that connector. And you can just put the little cable between the two, which means you can get a bunch of accessories for the board and not have to solder anything. And most of those things, daisy chain, you can put ten of them together as long as there's no address conflicts and you just use them. So there's no soldering needed there. So there's some ways that all the other boards have become fairly extensible to use. There's also boards like the fun house or. Sean Tibor: The pie portal here. Kattni Rembor: Yeah. I think the Fun House is a good board because it has a display, but it also has buttons and, like, a touchpad and a little slider and all this other stuff. And so that's got a display on it, which means you can actually work with display code and showing there's a temperature sensor attached to it. Cool. Okay. What is the temperature? Kelly it shows up on that display if you add the code. So boards like that as well are good. Basically anything that's got multiple things built in to work with are excellent. But because of the stema connector, you can add all sorts of stuff to any of our existing boards. And the feather boards. So, for example, the Feather RP 2040, right? I use that for a lot of things. All the feathers have a battery connector on them. So you can also power all of that. Just like the Circuit Playground Express and Blue Fruit, you can also power all of that off of a lithiumion polymer battery. So the other cool thing is you can get those kids disconnected from their computers and running around the room, which maybe you don't want, but get them real into it. Right. And they can go play zombie tag or whatever example they're working on thing where you work together with another group to do multiple things. Kelly Schuster-Paredes: And that's a good cost board. It's only like I'm looking at it right now, $11 if you buy more than ten. Kattni Rembor: That's great. Sean Tibor: And I think that's a lot of the fun that I have digging around on Adafruit and on thecircuitpython.org website is looking at all the really interesting boards that are out there, and there's some stuff that just opens up. That creativity. Right. Like, one of the earliest boards that came out was the Gemma M Zero. Right. It's not a very powerful board by comparison to later boards like the RP 2040. But it's small and you can actually sew it into clothing. Right. So now you get all this wearable textile stuff that you can work with. And it's super light. It has a battery connector on it. Also, you can run NeoPixels off of it. Just awesome, right? Kattni Rembor: Yeah. And it's basically a tiny version of the Circuit Playground boards. But the Gemma came first, so they're just a big version of the Gemma, I suppose, is a better way to put it. Yeah. Sean Tibor: I sean everybody has to grow up someday, right, and add more things. But I mean, even just there's fun boards out there. Like the hallow wing, right? Little skull shaped board that runs Circuit Python, and it has a screen on it. And there's all kinds of cool Halloween guides to make stuff that work with a Halloween I'm looking through here. There's a couple of others that I've. Kelly Schuster-Paredes: Played with that are the Neo Trellis you brought in. Kattni Rembor: Yeah. Those are very satisfying button covers. Sean Tibor: Oh, yeah. Whoever sourced the Silicone pads for that. Well done. That was really cool. Right? Kelly Schuster-Paredes: Do you see why I asked you, Katney? Because he's going to name like, 20 boards he's so addicted to Ada Fruit, he's buying stock in it. Sean Tibor: There's just so many things to play with. And remember I talked about that Arduino Uno that I worked with back in the day. I dug out this Uno hat that I had made for it that was also from Ada Fruit, but it had like one of those old school LCD two row displays on it. Kattni Rembor: Yeah, the character LCDs. Sean Tibor: The character LCDs. And I love it because it's so cool and retro and you can play around with it. And I soldered it myself. It was one of my first complicated soldering things I did. So I'm proud of all my really bad blobby joints on it, but they make a Pin compatible Uno style circuit Python board called the Metro, right? Yeah. Kattni Rembor: Form factor. And we have so many different versions. Sean Tibor: Of it and some of them have WiFi and everything. So the first thing I did was I took that hat that I soldered ten years earlier, and I plugged it on top of the circuit python board that was pin compatible with it, and I wrote code that was like, displaying characters on the board. And it was really satisfying to be able to connect those together and make it work. So that variety of boards and just so many creative ways of doing it. With 400 boards out there, you've got a lot of options. Kattni Rembor: Yes. Kelly Schuster-Paredes: All right, another question. Sorry, I'm going back to the basic sides. I like flip over. Quick couple of tips because we got four or five boards, we got ten more with Sean. Love it. And then tips, techniques or common problems that teachers could watch out for. I know, for me it's just like plugging it in and getting it connected with a Mac sometimes is annoying. That's my major one. My second one is libraries. Sometimes with the blue fruit knowing which libraries extra besides the ones that are on the website that they may want. That's my two biggest ones. What are other common issues that you've heard of? Kattni Rembor: Even myself, I've done tutorials and the stuff I've run into is definitely stuff that teachers would run into. Same concept. The getting things going part is always difficult. You may want to set aside a whole class period just for that. And you're going to have some bored kids for a half hour, 45 minutes, because some of them, it's just going to work. Others, it depends on the computer platform, it depends on the cable, because there's charge only USB cables which have no data line in them, and those don't work. That's a hard learn. I did that exactly right. We now put that caveat everywhere because of that and getting mew working and connected. Sometimes there's issues with connecting to the serial console, which because it's a serial communication format. And there are sometimes computers want permissions, very specific permissions, to allow that. And it's not always obvious. It just won't work, doesn't tell you why. And there's getting circuit python loaded on the board. Sometimes that's something you could do ahead of time. Otherwise you may want to teach the kids how to do it and or if they've been using the same boards for six months, you want to upgrade. So that is always a test of test of I can't think of the word now sticking with it, because that one, there's always confusion and what do I do with this file and where did I get it? And I copied it to the thing, and it's doing nothing. And it turns out they're copying it to the circuit pi drive, not the bootloader drive, stuff like that. And you have to go figure out each individual situation because it's never everybody having the same problem. So the getting it going part, you just have to set aside time for it. It's it's completely doable. And if you have tas, it's so much easier if you don't, which I've done for groups of 30, 35, 40 people, you just have to tell everyone, hey, it's going to be a minute, and go work with those individual folks. That's a definite caveat. It's just that the getting going part, despite the fact that it can be very simple for most folks, and it is sometimes can be a bit of a hang up. As for libraries, we have put a lot of effort into making that easier, but mostly for existing project guides, where there's a link above any embedded code that says download project bundle. And that bundle has every library you need and the code, and you will wipe out what's on your board right then. So if you want to save what you have, make sure you save it somewhere. But you copy that chunk of stuff, including assets, image files, fonts, whatever, sound files, you just copy it right over to your board, and it will just work everything's there. Now, if you just wrote some complicated code that needs a bunch of libraries and some sound files, you have to figure that out, and that can be an issue. The biggest recommendation I have is I'm capable of writing a whole large piece of code without having the libraries present. And most of the time it works, but newbies are not. And so my biggest recommendation is teach them to copy the library they need as soon as they import it. So as soon as they say, oh, I've got this particular MCP 98 sensor, say, okay, as soon as you import that, I want you to copy that library to your board. And then you don't end up with the situation where you're trying to figure out ten libraries to copy all at the same time. So, like I said, for existing code, that's in the Ada fruit learn system. Download that project bundle. It's got everything you need for brand new stuff. Import things as you use them, it does make everything overall a little more simple. I'm trying to think. Go ahead. Kelly Schuster-Paredes: I'll give you three that I know that just a caveat for teachers out there. My big three learning ones were wiping the boards or making sure that there's, like, at least one new code on there that's kind of cool to give them an idea, because sometimes kids will get a board that's full of really cool code that's already done, and then they're like, I did it. And they're like, really? You didn't do it? That's teach file transfer storage hardware on your computer versus on the board. That was huge for Sean and I. And teaching them to rename and how to actually find files on their computer. That's like a lesson itself before you even give them the circuit playground. And then the third one that's really important that I learned a lesson on is that very first code where it's just the little red light blinking. Make sure you tell them it's just the tiny little red light blinking, and they're looking for a NeoPixel, and it's like, no, it's just that red light going on and off. Kattni Rembor: Right? Yeah, that's our hello, world. That's the very first piece of code I ever wrote. Kelly Schuster-Paredes: The kids are waiting for something spectacular. And you're like, no, it's working, but I don't see anything. You're like, no, that little dot right there. Oh. Kattni Rembor: Every tutorial I've given, I leave NeoPixels till the end, because as soon as you get into NeoPixels or sound, you're done. Nobody's paying any attention anymore because they've figured out how to make the thing light up. It has worked pretty well to build up to that in ways that you can then combine everything that has been learned into, like, using the buttons to control the NeoPixels and make noises. Right. You've now combined three concepts that you just learned, and I think that's another thing worth mentioning is don't start with sounds and NeoPixels unless that's all you're ever going to teach. Kelly Schuster-Paredes: But they're so much fun making them go this way and then that way. Kattni Rembor: And then color everything I've done. I've always started with demo code on. There the tutorials I typically didn't. I think Circuit Python and everything was set up, and there were code PY files on them, but they did not do spectacular things. But I hosted open Spaces at PyCon multiple times, and there's a huge demo on those that shows every single feature. And I immediately tell everyone it's a terrible way to learn Circuit Python, because it's very complicated code, but it does let you play with the hardware initially to get an idea of what's possible. And then I send them to basically all of the individual examples for each individual part and say, start with these and go through it, and then start combining them. If you want the Led to turn on when the button is pressed, use this button example in the Led example and see if you can figure that out. Right. And most people do. Kelly Schuster-Paredes: That's a good lesson for Littles, though. Like when you give them a good code like that, and you talk about inputs and outputs, just a heads up, like if you get that really fun code from Adafruit and you give it to the younger kids, I'm talking even lower school, and say, look, here's an input, here's an output, here's a little computer, it's really fun. Lot of engagement going there. Kattni Rembor: I can imagine which is really the point, right? Engagement is the huge end goal, especially for younger kids. Sean Tibor: All right, well, I think we have time for one last question and I'm going to steal it. My question is let's talk about what's possible, right? What have you seen? What are the things that are probably the most interesting or cool projects that people have pulled off with Circuit Python that can get our listeners thinking about what they can do and how they can apply this in their classroom? Anything that comes to mind that's like, wow, that was really pretty amazing, or people really got into that other than sports scores, which we've already talked about. Kattni Rembor: Right. That physics example blew my mind. Now it's one of my first things I bring up when people ask me questions like this. It was so out there to me like nothing I had ever considered being possible and or considered being able to do with Circuit Python. So that's why that one kind of blew my mind. And it's a good example of the fact that there's so much you can do with Circuit Python that if you haven't thought of it yet, it doesn't mean you can't do it. And if it's a weird thing you come up with, you're absolutely going to be able to do it. We do have a lot of Midi projects, midi controller projects. Those are super excellent. And also folks get real into being able to make lots of sounds and so those are some pretty good examples. There's a number of different boards that have been used for that sort of thing, including the neotrellis in some pretty neat ways, all the boards with displays on them and or if you connect a display to a board, allow you to do all kinds of stuff including displaying gifs and quick videos. You can display images, that sort of thing. Also text. Obviously that gives a lot of leeway in terms of what images and why and what text and why and maybe it's sensor data, maybe it's something you're pulling from the Internet. There's like pages that have just quotes or something to that effect and you can pull the quotes each day. Let's see what else. Environmental sensing is pretty fascinating, especially because on a temperature and humidity board, you can breathe on it and it changes very quickly. So that's something that is quick to interact versus air quality doesn't change super fast, typically. So that might be not as interesting, but being able to take this thing and have it maybe light up when it reaches a point, you can breathe on it and make it light up, and that's now you doing a thing. Almost anything involving neoplas, I would say, simply because it's it's a it's a very obvious change. You you change a color or you make a rainbow happen or it sparkles or whatever you make it do, it's very apparent. And for a lot of people, that's a big deal. I will definitely say there are plenty of people who just don't get hooked in by LEDs, and so that's why you don't want to only do that. But definitely that catches a lot of folks. There's IoT setups. We have boards that have wireless on them, and you can connect to things in your smart home. But in terms of the classroom, you can connect to other boards or like an Internet service that is providing some piece of information and do all kinds of stuff with it. Once you have it, display it on display, or make the LEDs change color. Or I had a project where I had the LEDs doing a thing and someone could tweet a particular color and it would change the LEDs to that color. In fact, my PyCon badge, I had a Pi badge set up at PyCon this year that was hosting its own little website, that if you went to that if you were on the same wireless, so you went to that IP address, you could use a color picker to change the colors on my A badge. And during one of the events, I posted to Mastodon about it, and the LEDs were just changing the whole event, which was amazing and stuff like that is possible. It's kind of endless if you can think of it. Some form of it is possible. Some things are obviously a little complicated or a little too big, or there isn't hardware for it, or you're probably not going to build a circuit python car, at least for now. Sean Tibor: Hold my coffee. Kattni Rembor: I know, right? But you could build a little robot that's a car and have it control it and do things. I mean, there's plenty of circuit python robot things going on with legs and individual control over them and so on and so forth. So it's got places in robotics, like obviously, we talked earlier about some of the science implications. There's assistive technology, there's all kinds of sensing. There's a lot of radio signals and wireless and Bluetooth you can control. For example, the Blue Fruit has there's an app that Adafruit wrote for Android and iOS that you can connect to the board and do things, control the LEDs, or change change something or whatever from buttons on your phone, which is also kind of fascinating at times. So the possibilities are endless at the moment because we still haven't reached that point. And folks are coming up with new and new and different things, um, to do. Kelly Schuster-Paredes: Definitely can fill a year's worth of curriculum, learning everything about Python, doing all kinds of social good changes. It is an amazing product. Sean Tibor: We haven't even talked about the fun stuff. Like, there's a whole section of the Ada Fruit Learning System on Cosplay uses for boards and python and everything. It's amazing. So if you can dream it, you can pretty much do it. Kattni Rembor: This is a photo light box that's running circuit Python. This one with the white diffuser on it and the one that's here is grow lights over airplanes. Sean Tibor: Nice. Kattni Rembor: And it's all circuit Python. Kelly Schuster-Paredes: Wow. There you go. Kattni Rembor: Personal stuff. I'm like, hey, I need to I have these plants. I don't want them to die. Circuit Python. I need to take photos. Circuit Python. This lightbox is actually the first real build I ever did. It was before I wrote my first guide because I wanted to get really good pictures for the guide. So I decided to build this lightbox. That's awesome. Sean Tibor: Yeah, that's awesome. Well, we said we'd talk for 45 minutes and here we are an hour later because it's way too much fun. Why don't we wrap it up here? Katney, of course people can find you on the Adafruit Learning System and all the guides that you're writing there. Where else can they catch up with what you're doing online and follow you for projects and everything? Is Mastodon the best place? Are there other places? Kattni Rembor: I mean, mastodon is where I am. So yes, I am at Katney at Octadon Social as well, probably the more because I do post about some of the stuff I do, but I don't post projects there that often. The Adafruit Discord server. Obviously there's a lot of Ada Fruit talk there, so I do talk a lot about projects I'm working on and so on on there. And you can get to that by going to Adafru. It Discord and that invite will get you into the server. And I am at Katney, so pretty easy to find. Sean Tibor: Nice. Kelly, do we have any announcements for our audience or anything to share with them this week? Kelly Schuster-Paredes: Not yet. I'm still lining up. We are trying to get every Wednesday, almost every Wednesday at three for live streaming. So if I forget to tweet about it like crazy or put it on LinkedIn, we are there. That's our goal. Every Wednesday except for the 21 June and the 28 July when Sean and I actually are going to not be around on Wednesday. But that's our goal. We'll see if we can come through with it. Sean Tibor: I'm officially calling it the Summer of Streaming. Kelly Schuster-Paredes: Summer of streaming. And I wrote two blog posts. I had inspiration and I'm going to try to write some more. But those were my two reflections for the end, and it's pretty much all chat GPT kind of thinking, and a lot of things going on with that and rethinking curriculum and stuff. Not curriculum, but the teaching curriculum, obviously, not the written curriculum. Little caveat for my work the teaching, the actual lessons. Sean Tibor: Nice. All right. Well, katney, thank you for joining us this week. It's been really a pleasure catching up with you and talking about circuit python. As you can tell, like, kelly and I have been working with it for a while. We love it. We love teaching it. We know our students really get into it. And so thank you for all you've done to build the community up and help us learn how to use circuit python better, both in the classroom and for our personal projects. So just can't say Enough good things, you know? I'm a huge fan, kelly's a huge fan. Just keep going and can't wait to see what you do next. Kattni Rembor: Thank you very much. And you're entirely welcome. And thanks so much for having me on. Sean Tibor: Nice. Well, for teaching python, then. This is sean, and this is kelly. Kelly Schuster-Paredes: Signing off. Kattni Rembor: Our channel. Our channel.