 Hey, welcome to DeskLadyAda. Hey, everybody, and welcome to my desk. It's me, Lady Aida, hacking away. It's been so rainy this weekend. And so we got a lot of hardware done. We didn't get as much sun. So let's jump right in. Let's go to the overhead. We'll talk about some of the prototypes that we've been working on. So last week, we talked about the seesaw stem of boards that we've been working on and the prototypes that we've been putting together and getting them working. So this is the first one I wanted to get working, because this is the one I get in the most tech support questions about. A lot of people have, well, this is a Raspberry Pi computer over here that it's connected to. But a lot of people have single board computers like Alwinter, RockChip, Omega, Pi, Onion, Orange, Banana, Sorbet. And they want to use Neopixels, because we have a Blinka library, and Blinka lets them use all sorts of I squared C devices. I don't know if I have any I squared C devices on. Actually, it's weird. I usually have like 15, but I don't have any I squared C stuff on my desk. But they want to use sensors, accelerometers, and temperature sensors, and light sensors, and all that. But then they also usually want to run Neopixels. And the problem with that is that Neopixels, they're really easy to use because they only use one GPIO pen. You only need power, ground, and green is data. But you need to have very specific timing. And on the Raspberry Pi, we actually take advantage of the PWM subsystem. And we DMA it, or we use SPI and DMA it. So it's like a hack, because it's very hard to get bit banging working on single board computers, because you don't usually get to use the CPU for that whole 10 milliseconds you need to spit the data out. And also, there's a lot of new chips that come out that don't have Neopixel. Like, every once in a while, there's a new chip from Renaissance, or NXP, or whatever. And somebody has to write that Neopixel driver. That person tends to be somebody to eat a fruit. But also, a lot of contributors as well. However, it could take some time, or maybe it's buggy. And so there's people who are like, I just want a way to control a strip of Neopixels from any single board computer, even if it's not a Raspberry Pi. So this is our little dev board that does that. So this is a Neopixel driver and uses seesaw. So it's got an AT Tiny 1616, which has 2K of RAM in it. And that means it can buffer, because you have to buffer the entire Neopixel strip at once before you write it. And you need three bytes per pixel. So this basically can do 500 plus pixels. And here I have it connected up to, it's not 500, but it's 165 or so LEDs. They're very high density. This makes it easy, because I can keep it on my desk. And I can make sure that it works for long strings without having, like, 5,000 meters. And so this is being controlled, even though the Raspberry Pi technically can drive pixels directly, this is going through I squared C. So this is the I squared C IO connected to a Stem IQT port. And then it's sending the seesaw commands, basically like the data and address, and then whatever data it wants to put onto the Neopixels. And every time you set a Neopixel color, it sends an I squared C command. And then the internal buffer get updated. And then you say, OK, show the data. And it sends all the data out on the Neopixel port. So it's got pre-soldered terminal blocks here. And there's three outputs that are connected to my Neopixel. I just have them plugged in. And then this is the power input. So there is a power pin here, but this power pin is 3 volts. And that should be for the sensor logic. You'll need a separate power supply for Neopixels. Why? Because you're never going to get the amp or two that you often need over these thin wires and over this connector. This is really only rated for 100 milliamps or 200 milliamps. You just get something connects. And you could put an amp through it. Doesn't mean you should. You can melt this connector. So there's a separate terminal block input for power. And it's labeled 5 volt in, ground, and then ground signal and 5 volt out. So the 5 volts and ground are just connected together. And then I have this connected to a USB power supply and give me two amps. And then this is the demo. So let's go to the computer real fast. And I can show. So the code is here. And so this is using Blinka. When I have the green demo going, it makes me transparent because of the green screen. And I tell it how many Neopixels there are. And then when I instantiate it, I use seesaw. And I tell it the I squared C address. And you can have multiple I squared C addresses. This has, like, I think, three or four jumpers. So you can have tons of these. And then these are the animations. And then you instantiate it through the seesaw interface rather than with the direct pin. But the good news is, again, this works on any chip that has I squared C. Trade-off is it's not as fast, right? Because there's nothing faster than just doing all in RAM and blending it out. So just as a reminder, don't forget you can group config.txt. In config.txt, you can set the I squared C speed. Because most microcontrollers, you can kind of instantiate I squared C to whatever speed you want. Usually 100 kilohertz or 400 kilohertz. And you do that in the system. Or sometimes per device, like with Arduino, you would say, I want to connect to this device. And I'm going to use this speed. You can set the frequency dynamically. You can't do that with Linux. But what you can do is in the I squared C parameters, here you can set the baud rates. Or here I have it set to 1 megahertz. And the teeny core for the IT Tiny 16 is, like, works great at 1 megahertz. You just have to make sure you have good pull-ups for something like that. But as long as the cable's fairly short. Now remember, the I squared C cable can be short. And then the neopixel strip can be quite long. It works pretty well. So that's one board. And I've sent that off. And I think it'll be really handy for people. Because, again, I get so many requests. Like, can you please port neopixel to this? Instead, I'll be like, you have I squared C. Here you go. It's like six bucks. Add this. Add on. OK, so that's one demo I did. And yeah, it's like, I'll figure out exactly. You can do the math. And basically, every time you write a pixel, it takes six bytes over I squared C. So if you're wondering, like, how long does it take to write the strip? It's, again, it's not ideal for very, very long strips where you want to do very complex animations. But if you're doing, like, a sparkle animation, or you're doing some, like, color swirls, and you don't have to write all the pixels every time, you don't have to send the data for every pixel every time, you're good to go. OK, back to the overhead, please. OK, the next board that I was working on for Seesaw is this little game pad. This is actually very similar to a feather wing that we make. But that feather wing uses a Sam D09, which it's, like, annoying to get. And so I also ported this to the ATtiny816. It's got six buttons. And I'm kind of digging these. These are kind of tall, but they're nice and soft. So you can kind of, like, press them all at once without hurting your fingers. And then there's these two tactile buttons that are a little bit clickier. And then this is an XY thumbstick. So this we have to solder in. It's not surface mount, although, you know, ironically, I just press fit it in and it kind of works fine. And then you get a couple of pull-up resistors. One of the things I really like about the ATtiny816, instead of the Sam D09, is, yes, it's not as fast. It doesn't, you know, whatever. But it's about the same price or cheaper. And you don't need a regulator because it runs from three or five volts, no problem. And you don't need a level shifter because the iSquad T can also work either way. Oh, that reminds me, actually, I forgot to mention, for this NeoPixel seesaw, probably wondering, hey, you know, NeoPixel's like five-volt logic. So there's actually a little, my favorite AP3602 switch cap, loose converter. Not very power efficient, but boy, it does not take a lot of space because you only need the chip in one capacitor. It's very inexpensive and just gives you like a couple milliamps of five-volt power. So what's interesting is that this is actually running at five volts so that the logic output is five volts, but then the iSquad C pull-ups are to 3.3 volts. And that works just fine for us. And that way, you know, if this is three-volt logic here, this gets boosted up, but you still have three-volt iSquad C and five-volt NeoPixel output. Also means that this chip can run at 20 megahertz, which is a little bit nicer in case, you know, I want to have fast responses to iSquad C. Okay. Sorry, that was all stack pop. All right, back to here. Right, so this one's running at 3.3 volt logic. And then, you know, there's always a project where I'm like, I just want to add a little like as controller. And I know that we have like the Wiimote Classic, but sometimes I want something maybe, you know, very small and very simple just to add a little bit of a control interface. So this connects over iSquad C, you know, to access joystick, you can have two address pins. And then also uploaded this with the C-Sauce software. So go to my computer. So on my computer, this is the code for connecting to it. Let me see if I have the code that I programmed into it. Okay, this is the code I programmed into it. You know, I tell it the peripheral code. So this is the code that's, it's like Arduino, but it's compiled to run on the chip on the little gamepad. I tell it the peripheral address. It's got two iSquad C address selection pins. It's an interrupt pin. And then I config the analogical converter. Every time you add a peripheral, it takes more flash and RAM because I have to manage those commands. So I don't turn them on unless I need them. In this case, I need the ADC. And then it runs the C-Sauce peripheral code. And then on the gamepad side, I have the pin definitions. So these all match up, you know, 625-1016, match up with the schematic. So here you can see, you know, 16102-65. So these are the Arduino pins that I put here nicely in the schematic to help me connect with, like P before, what does that really call them? I kept looking at this diagram until I'm like, okay, I'm gonna put it in the schematic. Then it connects over iSquad C. It turns on pull-ups for all of the GPIOs, which saves me a bunch of resistors on the board. I don't have to do that. And then it can read the two analog inputs for the XY. And then it does a little bit of hysteresis. So it checks here and makes sure that, you know, because there's a little bit of wobble, you know, the potentiometer isn't perfect. There's always a little, sometimes it goes back and forth one or two digits. So as long as it's been, it doesn't print out the, it only prints out if there's been a change in the X and Y. And then it prints out every button that's been pressed. It reads all the buttons at once. It reads like it does one bulk read of all the buttons over iSquad C. So it gets like one four-byte array with up to 32 IOs. And then, you know, checking whether the button is zero, the button bit is zero, it knows it's been pressed. So let me see if I can. Okay, so I actually have that running right now. Let's see if it's still working. Okay, so here I'm pressing the little buttons on the... There you go. As I press the little buttons, it's like, okay, select, start. And then when I move the XY, it knows that something's changed. So you've got X and Y cornered. So another little handy breakout board, I think will be great for using with seesaw. Okay, so that's what I've been working on my desk. So next up, we've got some news from the fruit, from about Michael Patheon's tenure. A few things. So first up, you've been in the middle of your redesign. So we had to do a 300 homage to all your redesigns. And I think that goes in with the 10 year celebration of MicroPython, you could pull that up and talk about what's been going on. Yes. And then we'll also talk about some of the things that we've been doing, the RP2040, and that'll bring us to the great search after that. So there's an anniversary. Yeah, there's an anniversary. So it's 10 years of MicroPython, you know, I'm zooming in, but of course, I downloaded this poster from micropython.org. First off, I didn't know that there's a new Ambic Apollo-based Pie Board D, which is pretty cool. This is a Bluetooth low-power chipset that Sparkfund is really into, that I think they call it the Artemis. I think it's the same family, but I'll be honest, I haven't used the chip very much. So if it's a different version, I apologize, but it's apparently very, very low power and it does Bluetooth low energy, so that can be very cool. You know, they talk about historical things, you know, micropython is now supported within Arduino. The, you know, Raspberry Pi Pico chip was a really big deal. The suggested programming interface for that board and that chip is micropython. The chip itself was designed specifically to make it really easy to use with embedded microcontrollers. It has just what I like to call a s-ton of RAM. Most Cortex M0 microcontrollers come with 1632K of RAM and with micropython and then circuitpython, which is based on it, of course, all the instructions have to live in RAM, like you load the code dynamically. And so 32K of RAM is like really the bare minimum to kind of get anything done. You really need at least 128K to have a good time. And the RP2040 comes with 264K plus a really wonderful bootloader that I keep seeing people love. Don't forget, micropython has GitHub sponsorship and who are some sponsors of micropython? Mr. Lady, Ada, could you? Well, just on related to this, I was emailing with Damian and we helped get the word out about their sponsors on GitHub and they were able to hit some of their goals. But Adafruit is a financial sponsor of micropython and will continue to do it. And we also will help get the word out. If you use it, there is a way to sponsor on GitHub. And then there's large entities like Lego. We also reached out to some other companies that have used micropython. We said, hey, like this is how we can show that open source can work. And we have a flavor of micropython, circuitpython, and there's lots of other variants. So we had said, hey, let's continue to build off of each other, do the whole skateboard thing where we're just all doing tricks to push the state of the art. And so far, so good. I think it's probably one of the best success stories of a community. And that also led to more chip support, more people being able to use it, and just overall, more projects. A good time. Yeah, more projects. Don't forget, you can sponsor, and part of that sponsorship might be requesting features or board support. If you give them money, they're way more likely to be able to do it because it does cost money. Engineers are well compensated as they should be that takes cash and while hugs and tweets and likes are always appreciated, they also really could always use a couple bucks. So throw them a couple dollars. If you love using the free and open source and very liberally licensed micropython core, we do, because we love it. And on this topic, part of the 300 redesigns, and of course, featured here in this newsletter is the RP2040. And I thought, yes, that's me. A lot of these boards that are flying out in this is Adafruit. Yeah. I'm actually up to like 312 now, I think as of yesterday. I was like, I hit 300 last week and I was like, I kind of did another little bit of a push. But you're seeing a lot of them in the new product section on Adafruit. Some of them are hidden revisions. You may not notice that they've been revised, but silkscreen, if the silkscreen gets updated, that's a good indicator. All right, so speaking of RP2040, let's go to the great search. Where is search with DJ King? The great search brought to you by did you key in Adafruit every single week? Later use of power of engineering, help you, yes, you, find the part that you need. Or in this particular case, in this particular week, one of the keystone, could I say keystone? Keystone. Fundamental? Yeah. It is a fundamental force of nature now because we've been able to do so much with the chip, and we were thinking, oh, did we do a great search with RP2040? Turns out we didn't. So now, no time like the present. Okay, so let's go to the overhead real fast. I'll just show off like a board I've been working on. So doing a lot of board designs and a lot of them are featuring the RP2040. We talked about this chip a lot, but maybe you got to this video from Google and you're like, what is this chip and where can I get it? So this is a microcontroller that does need a couple of accessories with it, like it needs a Q-Spy flash and you'll want a USB port to go with it and a crystal and a lot of capacitors and then a boot button and a reset button. But other than that, it's a very well integrated chip that has a microcontroller core. It's got a dual Cortex M0 running at about 133 megahertz, but like you can really overclock it to like 250 if you feel like it and we do that all the time. It's got four analog inputs, which is great. It has two PIO machines, which allow you to control more complicated devices that aren't just iSquared CSPI. It's got iSquared CSPI and you are built in two of each, but like you want to drive NeoPixels or maybe you want to like BitBang DVI or USB host or you want to do I2S, all these things you would control with the PIO machines inside the RP2040. That's kind of their innovation. It's very cool. NXP also has this thing called FlexIO, but basically a lot of times engineers have to BitBang with a microcontroller and it has like auto BitBanging devices. Super neat. There's also PWM outputs and lots of timers. So it's a really cute microcontroller and it's very inexpensive. Do note that of course you have to add an external flash chip, which will add 50 cents and a crystal and that's gonna be another 20 cents or so USB, maybe another 10, 20 cents. So a total of bill of materials costs about a buck, but you get 256K of RAM in that. Sorry, 264K of RAM with that, which is a lot. And a lot of my controllers in this price range do not come with more than eight or 16. So it's, even though it's not a very powerful core, it's only a Cortex M0, not an M33 or M4. You get a lot of RAM and a lot of flash in exchange and these powerful peripherals that may make up for the fact that it's not like a super ultra hyperpowered Cortex M7 or something. Okay. And then it's going to my computer and nothing, the reason we were on this topic was that MicroPython is one of the recommended programming languages. The RP2040 was designed to be very easy to integrate and then also easy to run. You can run Arduino on it. You can run PicoSDK, which is CMake CC++. There's also, I think Rust ported to it. That's probably Golang, Lisp, a lot of other languages. It's, you know, because it's ARM Cortex, a lot of stuff is going to compile very cleanly to this core, as long as you just have the peripherals you need to get your work done. So good news, if you're like, wow, I want this chip. Is this affected by the silicon shortage? Actually, it kind of never was. It was available all through the last two years, which made it one of our favorites for redesigns. You guys want to, I'll say a little bit more boring, great searches, because you just searched for RP2040 and there's like a whole bunch of stuff. The key thing you may want is the RP2040 chip itself, which is available under SC0914, but you just Google for RP2040 and the chip is right here. The price was originally a dollar a piece, but thanks to good price competition, it's now available at 70 cents a piece. What a good deal, 70 cents is pretty amazing. Usually that's what you would get for an 8-bit microcontroller, like an 8051 core, but here you're getting a dual Cortex M0 with a ton of RAM. However, you know, if you're going to use this, I will say you might want to check out, first off, they have great documentation, but we also have, if you want like a ready to go, I don't even want to look at schematics. We've got a whole bunch of RP2040 feather boards that you can use as your basis. They're all openly licensed. We've got like the Feather RP2040, which we published basically when the feather with the RP2040 came out. It looks like this. You can do, it kind of has a little bit of everything. It has a NeoPixel and battery backup and STEMAQT and boot switch and, you know, flash memory. So if you want to just kind of use this as your basis to make sure there's a lot of little power supply things, you just want to make sure you get right. You can use, you can use this Eagle CAD file and of course you can import that into CAD. We have many, many more boards as well. So like this RFM board and this DVI output board, if you want DVI output. The other option is though, and, you know, one thing that Raspberry Pi kind of, they like to make interesting decisions is that they also have the Pico boards and let's see, this is probably under a Val boards. So there's a few, like, you know, wisdom that makes a couple. There's a few of the compatibles, but the original is like the RP2040 Pico. And what's interesting about this is it comes with these cast-related pads, which make it very easy for it to be pick and placed or hand placed onto a PCB and then solder directly onto the circuit board. And there are people who do this because once in a while you're like, I don't want to have all the components and I want to like do the arrangement. I just want to like place this on a board and I'm ready to go. I can move on to the Russian design. So this is actually available in cut tape and tape in real. So you can get a real of 480. And actually when we get them to sell in the Adafruit shop, they come like on a big reel and we have to cut them out. So you could send this to a board manufacturer and have them pick and place it onto your design. There's a couple of pads that are on the bottom. You'll, you know, there's, on the bottom, there's pads. See if it's documented here. Let's see, this is the pinout. So yeah, so this is the mechanical layout. And on the bottom, there are these test pads and these test pads are the boot pin because that's not exposed. And I think, yeah, the USB minus and plus. And so if you want to have an external, separate USB connector elsewhere, you out them out. The LED, in case you want to have the LED indicator be also available somehow in the boot select pin and that's how you enter into boot loader mode. So those are not brought out on the cast-related pads. They're brought out only on the test points. There's these test points here. This is the USB test points and these are the LED and boot test points. There's also three cast-related pads here for SWD for debugging and in-circuit programming. But you may be like, ah, you know, I don't want to solder it directly on. Well, there's also the Pico H and the Pico H, it's a little bit of a hack because it's like, why is this such a long thin board? So this board on the bottom, it has this like structure with all the pins brought out so you don't get the test pads, right? So you're not going to get the boot select and D plus, D minus, but this is something where you don't have to solder it directly on and you can plug it in. And if you're like, well, what's an easy way to have this plug in, this is the same as a 40-pin 0.6 inch sockets, sorry, which are called an IC socket. So the two by 20, I'm sure there's more than these but these are some like really quick ones. You can get an IC socket and have this plug in. So instead of, you know, because you're like, well, I don't want, if I don't want to permanently solder it in, why would I get it with pins? You can get a socket and then have it plug in directly that way. So it's removable in case like you want update to like a Pico W, which they have with wireless or if the Pico gets damaged. So a couple options for you for manufacturing but still my pick of the week is the RP2040 chip, just the chip itself. What a good deal, 70 cents and they've got 85,000 available at Digi. How can you say no? Where in the world is that part I need? Search with Digi. That's the show for this week. Thank you everybody for hanging out and more. We'll see everybody during the week this week, full schedule of shows, new products, sneak peeks. We're going to keep shipping up and source hardware. We're going to keep publishing code. We're going to keep doing all the things to hopefully make our little corner of the universe a little bit more open, a little bit more shiny, a little bit more blinky, a little bit more fun. So we'll see everybody later. All right, thanks everybody. Bye bye. Good night.