 And welcome to Death Gladiator. Hey everybody, welcome to Death Gladiator. Brought to you by Clorox Disinfecting Wipes, which I'm going to put away now. I clean my desk. So we've got an exciting half an hour of some goodies from my desk. It's me, Lady Aida. This is my desk. It's just chock full of electronics. We've got some trinkets to show off, some designs. We've got a great search at the end. But I thought we would kick it off with a preview of a new feature that's coming to learn, or at least at learn. And you can check out. It's called Bundle Fly. Yeah, that's right. So I'm going to go to the computer. And we're still working on this. So please try it out and let us know how it works. But basically, and Lady Aida will talk about this in a minute, all the things on how it works. We'll have a fun little helper. Right now it's Project Bundler, Project Bundle, Project Bundling. We say Project Zip right now because it's the old way we used to refer to it. But we'll have a little character called Bundle Fly. And Bundle Fly will help you out. No one's ever heard of insect politics. And so Bundle Fly will be a little helper that will bundle it up for you and fly it off to you. That's Bundle Fly. So Lady Aida, what exactly does this do? What is this nightmare? OK, so you love Circuit Python. It's so easy to write code for and adapt and modifying to really fast develop. I've been told it's too easy. Too easy. But there's one thing that is a little annoying is dealing with all the libraries. Because here at Adafruit, we're computer scientists in MIT. We're computer scientists and we believe in this computer science concept of dividing up your code into small modules that you can then reuse code as much as possible and share it among all of our drivers, all of our board support packages, et cetera. So we have one library just for Neopixels. And we have one library for Neopixel animations. And we have one library for every sensor. We have a library for touch screens. We have a library for dealing with S-quared C devices and SPI devices. Each one has its own library, which means you only import the things you need. But then when you end up with a complex project like this Touch Deck, which is an RP2040 display touchscreen, so you've got libraries for the touchscreen, for the display, for the buttons, the icon, to loading bitmaps, et cetera, et cetera. And for stuff like Arduino, you use the library manager in Arduino and you install the libraries once and then they're linked and compiled in so that you have one firmware file. But with interpreted languages, it doesn't quite work like that. Yes, we could, in theory, make one circuit Python build that has all the libraries built in for every project, but that would be overkill and complicated. Instead, we use the file system. We have all the files on the file system. But that means that every time you build a project, you have to go to the bundle and extract the files and the MPYs, put them in. And I hear you. It's a little annoying. I just do it in the back of my consciousness while I'm zoning out. But if you're starting out, it's like, why do I need all these files? And then you drag one on and then there's a dependency. And you didn't even read the dependency because it's inside the library. So the project bundler solves this problem from within learn by automatically giving you a bundle for the embedded code in a project that includes every library and every library dependency. So let's check it out. So this is the project code. So this code here actually lives on GitHub. This is actually embedded inside. And we do that so we can have one place where code lives. And it's a place where we can do continuous integration and we can quickly grep through every example if there's a change or a bug that we copy and paste it a lot of. If the code lived in learn, there would be no way to automatically check it. So the code itself, if you click on code.py, actually, sorry. If you go to the bottom of this very, very long thing, no, it's not here. Sorry, it's under, oh no, we changed it. Or maybe it isn't under learn. No, it is under learn. Sorry, it's under GitHub, but I don't know why. Anyways, I'll figure that out. I think we've changed this. But there's code in GitHub anyways. So to download the entire bundle, click download project zip. And we're going to change this to say project bundle. It'll be a nice big button. And then when you click that, the web server will create a zip file for you. And inside the zip file is the code and anything that went in with it. In this case, it comes with also a bunch of bitmap images for every icon and everything. And then it also includes all the libraries. And so you can see there's a lot of libraries. And it does this by there's actually a little tool that can search a Python script and find all the imports, which is a little bit better than grep maybe, but maybe not. Like you basically grep for the imports. And then you're like, OK, well, that will give you the libraries, but then they all have dependencies. How do you figure out what the dependency tree is? When you include trying to think like a different feather wing, a different feather wing actually has a bunch of other dependencies. It depends on the IOLI 9341 library. And maybe it depends on the touchscreen library. There's a lot of libraries that are hidden here. They're not literally shown here, but they're in the dependency tree of these libraries. So that project is called the dynamic bundler. Well, it's actually a couple of things. So let's just back up. So for every library we have, there is a requirements.text. And the requirements.text, it's always there. And it always has all the dependencies for the library. So in this case, it's a Blinka display I.O. and Bitmap font. Every library makes, when the person makes a library, they put in all the dependencies. And then what's nice is if you pip on a Raspberry Pi or a Windows computer, you'll get all the dependencies automatically because this is a standard Python thing. This was invented in 2005 or something. The people are used to requirements.text. So then we have in our bundle, which is done every night, which looks for all the new circuit Python libraries that have been released, we have a new file called the JSON file. And the JSON file is like what it sounds like. It's a gigantic JSON file with, and I'm not going to, I guess I could open up a JSON parser. There is every library and every dependency that is on it. So for every library, it's like this is the first library. And it says, is it a package? What's the PyPI name? What's the version? What's the repo? And then it'll also say what all the dependencies are. So this depends on bus device, for example. And so instead of having to go to every single repo and ask it for the requirements of text, this basically takes all the requirements of text and sort of flattens it into one JSON file. And we'll have this also for the contributor bundle as well. But this runs every night. And then if you want to basically get the same thing but without the back end, I don't think the back end literally uses this code. I think the code for the back end of learn is in Rails. And so it's not using this JavaScript. But if you want to implement this on your own or use this on your own, you can use this example. So if you click on the dynamic bundler URLs down here, it'll automatically in JavaScript create you a similar zip file with all the libraries and all the dependencies in them. So basically this is the start of having IDE support for managing your libraries and automatically installing all the dependencies. And this is something that we thought about from the minute we first wrote libraries because having lived through Arduino libraries and it took many, many years for there to be a library manager. And it wasn't until last year that there was a dependency manager. We wanted to make sure that it was all ready to go. So when we wrote this code to do the bundling and the JSON and the dependency mapping, we would have all the data there. We wouldn't have to go back and maintain it. So we're taking advantage of the existing Python dependency system that uses request.text. We're just making, maybe it's the caching that data once a night so that learn doesn't have to hit all 400 libraries to ask each one of them and then do a depth-first search for every single dependency. So if you want to check out that JSON file, you can then use it. And then we're going to probably have IDE plug-ins for like VS Code and Adam and all those that can look at your code and say, hey, you're importing something. You need to install that. I'll get it for you because I've got that JSON file that tells me all the dependencies. All right, well, first up, before I talk about a couple of things, thanks, Greg, for donating $4.99. Yeah, $4.99. That helps fund some server time. So one of the things. It's like one happy meal. So pre-COVID last year, I was a Circuit Python power user. And I built a lot of projects. I did a lot of things, found a lot of bugs, fixed a lot of bugs, did all these things that were really important. I don't give as much time now because I've been running Adafruit in a financial and global health pandemic. So one of the things I used to do, and I think what you have to do is look at folks what they do when they're in a hurry or they don't have a lot of time because they get very efficient. I would freeze my projects. I would take all the files off my Circuit Python drive. And I would move them to a folder on my computer. And I would zip them or I would just call them the time date and the whatever it is. And I would have code.py, all the libraries and all the dependencies. And I knew if I had to in the future, I would just zap my Circuit Python device and I would just toss it back on there. And those are all the working project files. That's really neat. So there's two things I suggest. So one, always make sure you get the latest version of Circuit Python. Double click your Circuit Py, drag the new UF2 over, and then go to the Project Bundle and use our friend, Bundlefly. Bundlefly. Bundlefly will eat all of it, digest it, and then drop it in your browser. And just like that. And you won't have to do what I was doing, which is keeping all of your projects in an archive. Because they already are. And if you look at what a lot of people do, they want to do a project. And then they start to mess around with some code. So you can easily get all of your project before it was just like just drag these things. That was easy, perhaps too easy, according to some. And then now it's even easier, which is you just get a chunk of files, and then drag them over and you're set. Yeah, and having it all in one zip. And another nice thing is that when we update lots of libraries, instead of having to go back and update each one, first, if you could use the ID plugins that will eventually develop, or you can just go back to the Learn Guide, click Download Zip, and it'll download whatever is the latest. You'll always get the latest. Because we also saw people, sometimes, they'd have their libraries desynced. Like, they'd update some but not the others. And there'd be enough change that we would have, one would be updated, one wouldn't be, and it would have a desynchronization and data expectations. So this way, every night, the bundle gets created by Adabot. The JSON gets created with all the version numbers. And then when you start up your IDE, it'll download that JSON file and it'll check. Also, by the way, every MPY file has a version inside of it that's automatically generated on the release tag of the library itself. And we, again, worked really hard on this two, three years ago to make sure that in the future, if we had an MPY file, you can ask it, what version is it? And it will, you can figure that out by doing some funky searching stuff. Or you can load it and query it. So the goal is to make automatic library management within whatever IDE or from learn, either way. OK. Do you see this as augmenting SirCup or a replacement? I think SirCup is going to be the command line version of this. And it's absolutely still going to be supported and used because there's some people who just really want to do it for the command line. But it will probably end up using this JSON if it doesn't already. I think we've done some PRs to it recently. If it doesn't use this JSON already, it should. It'll really speed things up quite a bit. All right. So try this out now. That's basically the same code. Try it out now. Break it. Break it. Do everything because we're going to be adding this to all the IDEs. And then if you're someone who's been in electronics for a long time, you're going to say, boy, this is saving me so much time. It's so easy. And if there's someone who's coming into this new, they're not going to get frustrated by all the things you need to do with all computers and all downloads and all IDEs and all code and all libraries and all dependencies. I think we solved a really big problem, especially for the people that don't even know that this is solvable yet. Like they haven't even got to like, man, this is hard. They're not even starting their journey. But now when they want to do a project, they can just hit up Bundlefly. Bundlefly. Bundlefly. OK. What's next? OK. So that's Bundlefly. Thank you, Bundlefly, for your helpful things. So yeah, this is just I want to show really fast. Can you go to the computer? This is the back end URL. So this is when I edit code. So this is where the code actually lives from code.py file. So the goal is to make it so people just have code. They don't have to know what the dependencies are. As long as the code works for them, we'll generate that dependency tree. So cool stuff. OK, next up, it's Trinky Trinky Trinky time. So we have the NeoPix, the Neo Trinky guide went live. There's more to come with it. But we have at least the beginning of the Neo Trinky guide. People are digging the Neo Trinky. And so I thought we would, learning from the Neo Trinky, I've learned a couple things. We designed a couple more Trinkies. And I thought I'd show them off the overhead. And I can also do little demos for each one. So maybe I'll show them all off. And then I'll do a demo for each. OK, so do you want to talk about the little characters? You want to do that afterwards? Let's show these off. And then you can show the characters because it'll be matchy-matchy. OK, so this one is NeoKey Trinky. I'm getting really close because these are pretty small. OK, great. So this is NeoKey. So NeoKey Trinky, as you might expect, is a mechanical key that you can put in any MX-compatible key. It has a capacitive touchpad and a little NeoPixel that goes through and can light it up. So this actually works. But the only thing I did is I moved it 180 because the LED was a little bright out here. So I made it so it's like when you plug it in, it's kind of glowing from the USB port sort of itself. So it's the NeoKey. Then I also have the Rotary Trinky, which I think we've shown on a previous desk of Lady Eda. So it's one rotary encoder that has also a clicky switch. So this can be used. All these are CircuitPython or Arduino. It's all SAMD21 on the bottom. And it's just like nothing is going to be that small and have USB and broad support. Like for something this tiny, it does a pretty good job of being as small as the rotary encoder. So I didn't want something big. I wanted these to be cute. We made Slide Trinky. We weren't sure this was going to work out because if you pull it, is it going to yank out of the USB port? But it turns out it doesn't, actually. When you pull it, even if you're kind of being a little rough, you have to really yank at it to pull it out. That said, it's best if you hold on to it. But I think that there's still value in something like this. And you can see there's two reverse mount LEDs as well for glowing the Slide Potentialer. And then there's Proximity Trinky. So Proximity Trinky uses a APDS9960, which is this sensor here. It's actually a couple of things. It's an IRO Proximity sensor. It's also a light sensor and a color sensor. It also does gestures. Although I'm always disappointed by the gesture sensing capability. It's also too capacitive touch and then to neopixels. And this was actually inspired. I was thinking about this. And I remembered that Kano, a long time ago, made this motion sensor. So I thought I'd show this off. So this is from Kano. I believe that this is a discontinued part because I actually got this sort of on a clearance site for $10. It's a really good deal, by the way. I'll do a quick, back in the day, when I would try to be a maker journalist, I would write about maker startups. So Kano, they are a UK startup. I think they were up to like $40 million in funding. And I remember that because it was about the same as little bits at the time. And they were doing Raspberry Pi and or single board computing kid laptops, essentially. And they have since done some brand stuff with Disney. I think there was a Star Wars thing. And then we saw the Pi stuff and some of the Star Wars stuff on sale at Target. And then they pivoted, I guess, to more non-Razorberry Pi laptop computers for kids. Yeah, I think they're doing X86 now, right? Yeah. And then their blog recently. Actually, I really love their camera. We stopped their little camera. And it's great. This thing is so cool. And so I also saw on their blog, they were talking about blockchain and NFTs and all sorts of stuff. So I think as a startup, they have the ability to work on some of these things, even if they discontinue it. They have cushion where it's like, well, here's a proximity thing or here's a camera thing. And whether it's something that is going to be part of the core product line or some of the past products, they can continue to do product development. Eventually, they've got to probably. They've got great product design. I mean, this camera, by the way, we saw hundreds of these cameras. So they have retail packaging and all that stuff. So anyways, we saw this camera. We stopped in the store because it was a really good camera. And then we wanted to play around with this proximity sensor because we have a proximity trinket. Yeah, so I actually got one of these and it came in. So they're really nice packaging. So this is magnetic. It's got the little magnetic-y flap. And then they've got this huge manual where it's really beautiful art that they go through how this works. And then it snaps in. So they've got projects that are built into their system. So you can pick these up if you search for the Canon Motion Sensor. You can pick it up for $12. It's a great deal for $12. I think originally it was more. And then it also comes with stickers and stuff. So this is pretty neat. And I'll actually show you the output. But basically, it comes with, so this is just a USB extension cord. And this is like wound around the foam. This is kind of intense. So let me put this away. I'm going to throw in some questions. Yeah, tell us some questions. This is a USB cable. One is related ones up. Are we going to have a reverse-mounted megapixels in the interface store? Yeah, they haven't come in yet. I don't know why they're taking so long. How about an IR Trinkie, both transmitted and received plus touch pads? Yeah, I tried to make an IR Trinkie a long time ago, the PIR key. And it was always such a nightmare. It never really worked very well. So I might look again at it as part of this. But on the SAMD21, it was such a challenge to get it to the IR library was so big. Maybe I could do it with an RP2040. New chips? Yeah, new chips. Time for you to visit. So this is a little suction cup thingy. And then you can attach this extender to it. Maybe the Lego compatible? I don't know. I don't think so. It looks a little bit too wide for Lego. So but then you can. This is kind of a cute suction this year. So this is actually, so I took it apart. It doesn't normally come in three pieces. Obviously, I want to take it apart to show you guys. Yeah, it doesn't need a thing. Lady, I'll talk about this. And we're probably going to use this idea. The way it spits out data. Yeah. So this is, if you pop it, this thing is a little, this doesn't really do anything, I don't think. So this is just a little protector. And I pulled it off. I also kind of cut this down the side and realized that that was not essential. Like you just pulled this off instead. So you've got your SWD pads here. It's a very classic two by five. Here is your APDS9960. It looks just like an APDS9960. That's how I know what it is. I've seen this many, many times, a sensor. And then underneath here, if you pull this up, it's a, they use my favorite AP2212 regulator, which is totally overkill. So they probably used it because I use it. And then here is an AT-SAMD21E16. So this is running Arduino code. I know it's running Arduino code because the VID is Arduino, so they didn't change it. So they either used, they may have used the Trinky Core or they might have created their own core. I don't know. There's a SAMD21E18. It's inexpensive, so it makes sense. And then connected to an APDS9960 over I squared C. And then I can plug this into my computer. I've got a non-cano extender. Let me see, even though I broke it a little bit. I think if you see the, this camera, you can see the infrared transmitter, that thing light up. So then if you, let's go to the computer and I can show what it looks like. So on the other side, you get this, which is, you know, it's JSON data. Whoa, hold on. I can't zoom in. Be able to believe me. So this is JSON data coming out. Hold on, there's too many, too many ports. One second, let me unplug this and re-plug it. Okay, great. So it spits up JSON data and as I move my hand, it sends it out. Interesting, when you get close, it stops sending data, I don't know why. But yeah, you know, proximity data and it's JSON formatted. I'm assuming that it also can receive JSON commands because you have to change the APDS if you want to put into gesture mode or light set. Like the modes have to be set. Like it's default proximity, but you have to tell it what mode you want it to be in. So it probably has some JSON commands that it can take. So that's kind of interesting. So it's good. I'll probably use this kind of formatting because actually I'd rather like it. You know, it's simple to parse. You could parse it Arduino with Arduino JSON. We do everything in JSON now, so we may as well. Yeah, and even in CircuitPython, even if you don't have the JSON library, this is a very easy string to parse. You know, you could even eval it. Even that's a bad idea you could. Okay. I think it would evaluate as a dictionary. So those are all the trinkets? So that's the trinkets. So you decided to work with Bruce to come up with some cool graphics for you. So each one's gonna have a little character that goes along with it. This is gonna be the Neo Trinky and we'll do some animations and probably name them and have some fun. Our community will name them, who knows. And then here's a proximity Trinky because it's a bat, you know? Kind of, you know, like echo location sort of. And then here's the rotary Trinky, kind of like an L. Yeah. Like it's head can move around. So this is start. These are sketches, work in progress. And those are the Trinkys. Yeah. So then I thought I'd show, do we have, how are we gonna, whoa, it's okay. Yeah, keep going. You wanna quickly do a quick demo of a couple of these. So I have, let's start with the slide Trinkys. The slide Trinky goes in this way. So this demo, the code I wrote, actually it's, this is spitting out the slider data. And then on my computer, I have it hooked up to my hue light here. So as I dim the bulb, so you can see the bulb got brighter and got dimmer. It's kind of hard to maybe see the bulb itself. Yeah, you can. If I point it out. Okay. So this is bright and then this is dim. Yeah, you can kind of see it. All right, there we are. Dimming, brighting, dimming, brightening, dimming. So that's the slide Trinky project example. Okay, so that's slide Trinky. So I'm gonna make this bright again. Thank you. And then rotary Trinky I thought would be, what's needed is actually for the Arduino HID. I found that there's this thing called surface dial and this can mimic a surface dial. So when you press it and rotate it, it can actually perform things on Windows 10 as like a native device. So can you go to my computer real fast and I'll, I'll show if you hold down the button, it, your Windows 10 pops up this thing. And for example, you can select, you know, volume or you can select scroll or zoom. So let's do zoom. You select it by clicking again and then you can use this to zoom in. Oh, can you? Yeah, I'm gonna bounce between two. Yeah. You can use this for zooming. And then if I click again and I select scroll, I can then use this to scroll as a scroll wheel, but it's the same rotary encoder. So they already kind of like figured out the UI for this. That's kind of neat. I thought this was a cool demo. Zoom, scrolling style. Yeah, this is scrolling. That's kind of neat idea. So that's the rotary Trinkie. And then the key Trinkie, the Neo Key Trinkie, we, hold on. For the Neo Key Trinkie, I actually wrote some like a quick code to turn it into like a rubber ducky. So when you press the button, it opens up on notepad and like types and you've been hacked. So let's go to the computer and we'll see, we'll see if this works. Yeah, this extension cable is not very good. All right, so let's press this button. Weird, I don't know why this, this one's not acting so great. I don't know, this one's a little flaky. All right, so I'll demo this next time. I don't know why this Neo Key is acting weird. And then finally, proximity, which I actually already did show off a little bit. What do you use? Nothing's working. Hold on. Okay, so this one, it's weirdly sensitive. I wonder if that's cause there's so much more light here. There's a lot of light. So for this one, I turned it into like windows of proximity. When the proximity of your hand is close enough to the sensor, it'll send a space bar. So for this one, I made it so you can play the, well, you can be very bad at playing the dino game. Okay, so let's try again. Go, go, go, go, go, go. Dino, dino. Yeah, that's proximity. Do it underneath here so I can also show you. Okay. You're going like that? Yeah, but it's weirdly, I have to fix the sensitivity cause I think I set the proximity before all these lights were on and so now it's a little bit more sensitive. Okay, cool. So I'm going to ask some more questions, right? Yeah. Slight trinkets can be a turtle with the next to get out, yeah. So once that they enjoy using the Neo trinkets, seems like a cool way to add status lights to a small Raspberry Pi OT device. Cool way to take touch input, to acknowledge events, yep. Next up, someone said the bat looks like Leforte. Yes, I'm going to fly it over to Jeopardy. They better get Levar Burton on there. Next up, was that an Arduino library to make the windows think it was a surface dial? Yeah, that's the Arduino HID library. We don't have that support in Circuit Python for surface dial yet. Yeah, why is this even weird? Okay. I don't like this extension port. Let me get another extension port. Someone wants to, they want classic enclosures for trinkets, yeah, I know one page where we'll probably make those. You can totally 3D print classic enclosures. Next up, as you do more devices where you can find, do you know where to find compatible key caps with traditional labeling, delete, halt, et cetera? Any MX key will do the job. Okay, do you have one favorite besides CherryMX it? KL switches are pretty good, but really anything that's MX compatible. Okay, this is really flanking. Oh, there you go. Cool, all right, there's a vote for a tricky form factor with Wi-Fi, VLE, that way you can power within a USB port and a new power strip that has a couple USB ports. That's, yeah, that's kind of like an ESP32 S2 feather though. Like I don't, they would be like so big. I mean, this is for like, it's connected to a computer. Like these are not designed to be powered from a USB port and doesn't, it doesn't make sense. The whole point is that you're sending data to a computer and then the computer can act on it. Yeah, we'll probably do a little, you know, like power adapter, specific, pluggable Wi-Fi thing at some point. It might not be the same, it might not be tricky, might be something a little different, next up. Could one make some sort of stream control setup with different trinkets doing different things? Yes. You could, at some point, you would make like a custom build project. This is for like, there's times where it's like, you just want one key, or you just want one rotary encoder, and instead of having to like get an Arduino and plug this in and so on or whatever, it's all in one, you sort of like plug and go. All right, and Yuga mentioned that there's WASDI keyboards that does CAPS custom, et cetera. Absolutely, there's key CAPS companies. Anyway, so when I use the Kano extension cord, which seems to be, these three meter cords. Did you make a joystick trinket? I don't know. I mean, the thing is that that's tough about a joystick is that there's a lot of torque on it. A lot of these things, I'm trying to pick things that don't have high torque, because you'll just yank it out of the port, or you'll like, you'll bang the port back and forth. So, you know, joysticks are like that. Joysticks are not sensitive. They're very abused compared to rotary encoders. You just can't, you don't have torque on the rotary encoder, you're twisting it. Scroll wheel, the track balls. There's a couple things that we might experiment with, but stay tuned. Yeah, okay. Okay, so next up, hold on this keys. Definitely being naughty. I don't know if you're aware of why this one looks like you. Okay, so that was my little ducky demo. And so then I was thinking of making, you were like, oh, well, how about we make like this kind of trinket and that kind of trinket. Oh, let's go to the computer. Like all these different kinds of trinkets. I was like, well, I don't want to make like every, I don't want to make like 300 trinkets, like one for every sensor. So we thought like, let's make, you know, a trinket, like something that plugs right into a USB port that has a stomach UT connector. And then, you know, you can add any of our stomach UT boards on top. You just attach it on top. And then you can have, you know, you're saying like, oh, let's make, you know, one with pressure sensor or barometric or, you know, light or whatever, or, you know, a gas sensor. And I was like, yeah, I think if you're gonna do that, you just plug it in over stomach UT and then you could run whatever. But you can't do that with a SAMD 21. The SAMD 21 just doesn't have enough memory to guarantee one every sensor that we have over I squared C well, because it just has a limited RAM. And like, once you start to, if you start to do some of our more advanced sensors or you start to, like you try to do a little bit too much and it quickly can run out of RAM. And so I thought like, also for like displays and stuff, like you can't really run one of our OLED displays very well in the SAMD 21. You kind of can, but like, not that well. So I thought this would be a good opportunity to make some chips using the RP2040 instead of the SAMD 21, which is not as compact, like it wouldn't work on the rotary trinky because it really needs to be small and the 2040 needs too much stuff. But if you're gonna, you know, if you have a little bit more space, the price is comparable, right? For the RP2040 plus all the extras. So, you know, I kind of came up with this on the afternoon, which is an RP, let's see, turn on, 2.q. So this is a RP2040 with a STEMIQT port on the end and it plugs into USB. And then this is the same size as our standard STEMIQT, like one inch by 0.7 inch. So you could just like pop the sensor on top and then you would like attach it somehow, like using the four mounting holes. And you would, you know, it doesn't make sense for every device, but like, let's say you wanted a, you know, a gas sensor, you would take an SGP40, plug this in and then you could get data out. For a lot of people, I would recommend using something like the MCP2221, which would actually convert it to something that Python can read. But I can see some situations where folks are like, no, I really wanted to spit out serial data or like the JSON data. Or they just, you know, they want, they want it to come in directly into something like processing or unity, right? Where you don't have a Python, you don't want to have a Python interpreter feeding data into it, you just want it to read. You can open up a serial port and read the data, but anything where you call a Python interpreter from it, gets complicated. And I get that, it's like there's people who, they want to, you know, integrate it into some C code or they want to maybe integrate it with web serial Java, right? All these things, it would not, it would not work well to do it over Python, see Python running on the computer. So this would be, you know, a circuit Python or now even Arduino supporting board and it just has a QT on the end. And it's really simple, it has like two megabytes of flash and you don't need that much. And then the boot and reset buttons are on the outside so you can kind of squeeze it if you need to, because it's going to have the sensor on top. So question? When do you think boards to convert a rotary encoder to I2C is coming? I don't give ETAs. Okay. I think someone's asking, is that a QT pie? No, it looks like it, but it's not. It's not a QT pie, but it's, it took a QT pie and it kind of tore it apart. It's single sided, which will make it a lot easier to make to fabricate and use a 603s, which I really like instead of a 402, so it's a single sided. Suggestion, maybe question. Ooh, you could do a Tricky with male SH connector and a little bit of spacing, which you could plug most of the STEM or QT boards in, the one. There's no such thing as a male SH connector. Okay, there's no such thing. That's right. Yeah. So you use this and a cable because you'd have to plug it into the top anyways. Okay. Okay, so let me show, let's show what I want and then we'll go into the great search. Okay, so let's go. So this is, this is, this is my Mimic, right? This is not the board I just designed, but this is like what, you know, it's similar to size. So the idea is that I would have a, you know, if you have like this VCNL 4040, actually I wanted my MCP 2221 and I forgot to grab it. Grab it. Hold on, sorry. There's so much on my desk. All right, while you're doing this, I'm gonna ask a question at the same time. Yeah, ask a question. What do you think, what do you think the most elegant way to parse Jason's serial data on a microcontroller is? On Arduino use, Arduino Jason and on something with CircuitPython, you can just use a string parse and capability or a valid, it's a dictionary. Okay. I'm gonna vote for CircuitPython only because I've done a bunch of Jason Parsons, CircuitPython. Can you see the TVBGON project? I don't have a Jason Parsons, it'll fit in a SAMD 21. So I just, it valid the file that contains the Jason and it's fine, like you can do that. Like nobody's going to root your chip. So who cares? Cause it's like you wrote the code. So this is the MCP 2221, which is that same, you know, like you could theoretically do this. You would have a board on top, right? And you could attach it and then have a little connector. And honestly, I don't, I mean, the MCP 2221 is popular. I think it could be more popular. I think it does solve a lot of problems because we have all this Python code. So, you know, maybe I'd make a QT version of that, just, you know, a tricky version of that as well. But this is, you know, it's inexpensive. And then, you know, this could, could mount on top cause it's the same, it's the same size. And the question is how do you mount these boards on top and then you can use this little cable to connect them? Cause again, there is no direct pluggy. There's no such thing. Everyone's always like, oh, how, there, it doesn't exist. Believe me, if it existed, I would absolutely buy it, it does not exist. So instead you have to use a little cable. And then, you know, you could use something like these, these standoffs, right? To connect between the boards like that. I mean, I'd want a shorter one. And then it would snap it together and then this would be one physical shape. So that's what we're doing on the Great Search. I wanna find these because I actually got these in a kit and I don't know what they are. All right, we're gonna do the Great Search in a sec. Would you, I have ideas on how we're gonna do some of these requests, but would you do a Trinkie with the NFC reader? No, because the antenna would be huge. You'd bump into it and you'd probably break your USB port. Okay, so let's hop on to the Great Search, ready? Okay. Where? The Great Search is brought to you by Digikey and Adafruit. Lady Adafruit uses her powers of engineering to find things on the Digikey site. So you can find things on the Digikey site. So let us know when you find things or you can't find things. I can't find things. Well, a lot of people say I finally found the stuff I was looking for and now I can go to production or now I can go to manufacturing because before I couldn't figure out all the parts, leads times, all the things that I needed to get done for this giant project. So Lady Adafruit, what is this week's Great Search? Okay, for this week's Great Search, let's go to the overhead. I want to find something that will let me take a board like this, which has four mounting holes in the corner. And then I have a separate board and they're gonna be connected together through this cable. Ta-da, like so. And then I want them to, instead of this kind of jangling off here, I want this to be able to mechanically be stable, connected here. And so on the version I have with the USB port, you know, this plugs in and I can even get even shorter cables, right? I can get a cable that's like, you know, less than half a centimeter long. This would plug in together and it would be one physical shape. So this is, I actually got these from a kit. Maybe it was a primary kit, I don't remember. And like, you know, these snap into here. Oh, and they don't come in easily. This might actually be the wrong size. Hold on, let me get the, yeah. All my pliers, we'll see. If not, I'll find the ones that are the right size, for sure. So, let's see, this is fit. I should have tried this before the video, but there you go. Okay, so this is one and let's do the other one. So you definitely, these are a little tougher to do, but they do fit in and then this also fits in. Also quite challenging. So maybe I'll get ones that are a little easier to fit in. Hold on, I'll do one at a time. Okay, so there's one, the other. Okay, so it looks like squeezing it is the best way to do it. But this is, you know, mechanically a strong way to hold these, and of course, you know, I only have two, but I would have all four. And then this would be, like, a very strong mechanical connection. I also want them to be shorter. Like, these ones that I have in my tool bin, they're quite long. I think these are like a quarter inch or so, let's see. These are, well, they're quite long. So they're 0.32 inches. So I want something that's more like, yeah, like a quarter inch would be plenty. So that would be that far. So you came up with this, you're thinking about it, and then... But what are these? And you're gonna do exactly what you would normally do. You just have, we happen to, like, broadcast this and work with Digikey on these. So now you're gonna find these. I'm gonna find them. Okay, so I've shown you what I'm looking for, right? And here's the thing. I thought that these were called board standoffs, but they're like actually not called board standoff. So this is the thing. Knowing the name of the thing is part of the hardest part of the search. So let's go to the Digikey site. Okay, so we're ready to search. So I actually originally looked for PCB standoffs. So I was like, oh, this is a nylon PCB standoff, right? So there's almost like nothing that came up, and there was like LED spacer standoffs and terminal blocks. I was like, okay, well, that's not the thing. So then I thought like, maybe it's under standoff. And it turns out that you can go to board spacers standoffs. But when I looked here, I found like a lot of screws and hex thingies and like a lot of hex standoffs. And so I was like, well, you know, let's look for active, you know, and they're not threaded, right? Cause they have the little thing. So I was like, well, it's not threaded. So I searched for this. So I spent a lot of time here, but all I could find was like these hex things. And I technically, those are hex, you know, I was like, well, what's the screw size? I was like, well, it's kind of like a number two, you know, maybe. So I searched and searched and searched, but I actually, and I was a little bit like, what are these, you know, I couldn't find them because it turns out that these things are not, even though they are standoffs, they're not called standoffs. They're called PCB spacers, different, different things. So, sorry, they're not called PCB spacers. They're called board supports, PCB supports. So it's a different, it's a different thing. So if you go to board supports, you're like, ah, that looks like the right thing. So even though they perform the same purpose as a standoff or spacer, they're called supports. So this was kind of what I learned. So it's like, oh yeah, look, that's a thing. It's like, this is what I want. So let's find the exact one I'm looking for. So let's look for active and in stock. And then there's a couple different, you know, there's a lot of options, but I think the most important thing is the board hole diameter, right? You saw like, you have to really like fit it in. So let's make sure that we have one that's really, ours is, our holes are, if you look at the PCB, this is a 2.5 millimeter, which is, you know, 0.1 inch. So I'm gonna basically select all four of these options or all three of these options. You definitely don't wanna go to two, too small. You don't wanna go to three, too large. Okay, so yeah, like these are starting looking good. Yeah, that's what I want. Okay, so then, it's like, well, how tall do we want it between board height? And remember I said, I want, you know, I want it to be higher than the USB-C port, for example. So, you know, if you measure the USB-C port, it's like, yeah, you know, 0.125, you know, an eighth, sorry, not a quarter inch, eighth of an inch. But maybe I'd be able, we'll need to go up to a quarter, you know, just, I mean, in case like one, you know, one size is much more common or much more available. So let's look, and then there's, you know, we've basically like pared it down. So there's like now, okay, there's like these adhesives. These are kind of cool, but this isn't what we want. So I'm going to get the snap lock, not adhesive type. And then it's mostly a matter of like, okay, well, let's look at all the ones. And this one is kind of the closest to what I've got here. And it's also, you know, what I like about all of these is that there's tons in stock. So it looks like a Centra makes some and Keystone makes some, which is cool. And they're not too expensive, Worf makes them as well. But I like that this one, you know, Keystone, like I've heard of them, looks like they have a lot of options. They have one in the eighth inch. So let's look for eighth inch. And maybe like a little bit more, 3.5 millimeters. Yeah, I mean, there are not a lot of options for this. So of all of these, you know, the Keystone has a low price and has the most in stock. So what I did is first off, you can, you can check out this cool 360. Always like the 360, you can zoom in. You can like rotate. Hey, rotate. And then I looked at the data sheet, which I downloaded. And whenever I find a part that I like, especially mechanical one, I look at the data sheet to see the catalog options because, you know, there's sometimes more info. Like for example, you know, there's tension fit, easy lock in and lock in. And like I was like, well, this is the easy version. So it doesn't get any easier than this. These look like much harder to fit, perhaps. But these are pretty easy, I guess. And then, yeah, they come in different lengths. They also have a tension fit. I guess I might get a couple of each of one of these to try them out. So it looks like one is permanent and one is tension fit. And this is permanent. So this one might be interesting because with this tension fit, I could have to tell people like, oh, you know, attach the permanent side to the STEMA QT board, sorry, to the trinket. And then the tension fit part goes above to the QT board. So I think I like 7789, sorry, so 8879 and 8888. So I think I'm gonna get both of those. So this one, and then keystone. Also, these are called board supports. So I think I'll pick up like 20 of each and then I'll try them out and I'll see which physically feels easiest to use. Because with these, you really have to try them out. As you saw, this one can be a little tough to use. Hopefully the tension fit ones are perhaps a little bit easier. But I think this is a good solution. This will let people mechanically attach boards on top without any soldering at all. And I can include like a bag of 10 with each kit and then you can make your own custom trinket, basically. So it's a custom trinket land. And that's the great search. Okay, so let's do another question. Okay. Yeah, folks wanna know about the calipers. We have them on our website. Go to Adafruit.com and just type calipers. Calipers, or you can get mid-tutorials. Sure, I've had four. Not a poor question, but if you're looking for one, the NRF 52840 Feather Express has the space in the center as a debug port. The Sense uses it for sensors, which is great, but at its cost, any chance to update the Express or another version replaces the debug with a STEMI QT. No, no plans right now. I don't know if, yeah, maybe. Got it. I don't know. I got a lot of stuff on my plate. All right. Added the long list. Tricky naming, thanks for the secrets. Are there any stackable supports? I can make it like three pie. For those, I would use Hex. They're called male-female standoffs, and then you can have them stack up on top of each other. Tricky tower. Tricky, you can make a tricky tower. Someone will make a tricky tower. And you can use this in this, you know, you can get Hex standoffs, it'll fit. The problem is that you need Hex nuts and screws. What I like about these is they're all in ones, right? You just snap them on and it's like, ooh, I got the mechanical connection. You don't need anything else. Yeah. And then as we work on these, so these are, you know, just three of the five that we're kicking off Trinkies with. One thing that we've noticed is there might be like some really unique, interesting, weird, and maybe discontinued or not long life parts as far as like manufacturing and making them. Might do some limited runs of not forever Trinkies, also called NFTs. And we might have, you know, hey, there's only 200 of these. And it's like some weird like Sony scroll wheel that was inside cameras and we got a lot of 200 of them and they're limited edition, not forever Trinkies. So we might do something like that. Okay. All right. Well, it's been a long one hour show. So we got lots of content. Thanks everybody for coming by. I think we, I think we blasted them with Trinkies with bundle flies. Go try the bundle fly. Yeah. All right. See you next week. Slurp, slurp.