 And welcome to DeskLadyAida. Hey everybody, and welcome to my desk. It's me, Lady Aida, Senua Desk, with me, Mr. Lady Aida. Also known as Senior Aida. We've got an exciting half hour-ish, 40 minutes for you here at my desk. The best unscripted live DeskLadyAida, DeskLadyAida show on the internet. The longest running live from a desk engineering show on the internet. Well, let's look at a couple of things. We actually don't have as much hardware this week, but we have some cool documentation tools that I've been working on. Sometimes we've got the hardware itch, and sometimes I have the firmware itch, and the driver itch, but this week I kind of had like a documentation itch, which I always feel like I should go, you know, wherever the flow leads me, because usually there's a good reason for it. Like I, you know, it was in my gut a little bit. Yeah. Okay, any news or updates that you want to give people, Mr. Lady Aida? I think we're shipping Aida boxes in like a week. Aida boxes are going to be shipping soon. So sign up if you didn't get a chance, because you may get a chance after we... Check your address. Check your address. It's a big deal. Credit cards and addresses always, they add delays. We're going to take another week to ship because we have to check in with you if you have to update it. And full speed ahead, but look at the message on our site. We have a bunch of orders. So we're managing expectations. It might take us a little bit longer because the world is turning back on, but we're also hiring people in our teams first time in a year. And so we want to give our teams time to train each other up. So most of the time orders will still go out really fast, but just to manage expectation and we have to still operate in a very safe way. So it just gives us a little time. So with that being said, back to you, Lady Aida. What do you want to show this week? Well, oh wait, do you hear that? That buzzing sound? I wonder what it is. Oh, it's our friend, the Bundle Fly. Hi, Bundle Fly. Welcome to the show. I wanted to show off, we did make a little update to the Bundle Fly thanks to Justin Catty who worked on it and been debugging it. Please folks, try out the Bundle Fly feature that we have on Learn. I'll show you how to do it right now. It should make it a lot easier to do circuit Python projects because you get help from Bundle Fly. So let's go to the computer. And let's look actually at a project that just came out. So, oh, don't forget, we have this new cool random, this dice, you roll the dice and you get a random guide, which is super fun. But I want a particular guide. Let's look at the Lemon Keypad. So the Lemon Keypad is a project that uses circuit Python and an RP2040 QT Pi to put six mechanical keypads in this cute 3D printed lemon. So we have a page that says how to load circuit Python onto your RP2040, which is cool. And then in the code, what we're doing now is we're putting code, like usually we have kind of like the code explanation and the code itself, like the full listing at the bottom. But now we have the code at the top and we're highlighting the word download project bundle. So when you click it, you'll automatically get a zip file and the zip file is the name of the project and we now include a read me. And the read me, the cat and you wrote this up and this is, it's kind of template it a little bit. The beginning is kind of explanation of what to do with it. And then it also includes the date and the URL that generated this, this is Xemax, so I can't zoom in. But if you can kind of look carefully, you can see the URL and the date. So that's new. What we're gonna do is we're gonna go and we also have this new thing that we're going to add. I'll show you as a preview. So in addition, because some people don't realize, like, you know, you actually have to have like the files in like in the root directory and people sometimes don't realize that. So we wanted to include an image of what the file system looks like. So we have an issue for an auto screenshot maker and this is from FOMI guy who's been working on this. And this is really neat. This is something that it's written in Python and what it does is it looks at the code. Hold on, let me see. Oh, I think this went into, I think it was removed, which is cool. The generated image, okay, sorry, it was deleted. But the goal is that it will be able to create the, automatically create the screenshot images that we have in our guides. I was tricked because it was, I think it was deleted. But if you look here, we have like this image that shows like the Mac file system, like with the folders opened, like the little, you know, whatever triangle opener. And we wanna auto generate these, which we can do because if we're making the bundle, we know all the imports, we know the library and the files and the zip. So let's make a screenshot that automatically generates because in Windows it's actually kind of hard to make these nice screenshots. Like Mac Finder does a very good job of showing you directories and subdirectories, but Windows like kind of doesn't have that ability. And so we're gonna add the auto screenshot maker as well so people can see a screenshot of like, here's your CircuitPy drive and here's the files that go into it. So it should make CircuitPy not even easier. Like I think it's really improved by having the bundler because especially for projects with the Fun House, we've done a couple of projects with like the Fun House and the Mac tag. There's like easily 10, 15 libraries and it's like a real pain to dig them all out. If you use the project bundle, you'll always get the latest code, which is super cool. So that's the latest from Bundlefly, our project bundler helper. Thanks, little dude. Notice he's got the little pie files, he's holding together. All right, what's next? Okay, speaking of keyboards, I thought I'd show off this keypad that I worked on. I now have a folder in my work area called Keybes. And this is this macro pad that I'm working on. So I've been doing a lot of keyboard stuff. You know, we're doing coders and you've seen me have done like, you know, see something, some seesaw boards, which should be coming to the store soon once I feel like doing hardware again. But this is a macro pad and you can kind of see here, we've got three by four kale sockets, so like hot, soft, old mechanical sockets. So it's not like a full numpad, which is four by five. It's kind of like the math and it's kind of, it's a little too big. It's not meant to be a number pad. It's meant to be like a macro pad. So you get three by four keys with a neopixel underneath and then at the top here, let me show the back because it'll easier and then we flip it. So here we've got a rotary encoder at the top and then this is a 128 by 64 OLED that kind of folds over the side. So this is like a monochrome OLED. I was also thinking of doing a TFT, but frankly like TFTs are really hard to get right now and they're kind of expensive. So I think I might just go with an OLED because the price they've gone up for OLEDs but not like three, four times as much as they have been for the TFT. So the rotary encoder, it's got a button and the button is also the USB boot button which like with the little diode trick that we've added is a GPIO pin, but it can also, if you hold it down during boot, it'll put the keypad into UF2 mode because it's an RP2040. And what's really neat about the RP2040 is there's so many pins that like each switch has its own IO. So it's like, I don't have to worry about a key matrix or diodes or anything. It's just like one key per pin. And I got a little speaker also, like I put a little buzzer in here and all the analog pins I brought out to like a header. I don't know if I'm gonna do anything with them but like, you know, you can solder to them if you want and add more stuff and that's got the Q-Spy memory and OLED and I've got a level shifter for the NeoPixels, USB-C reset button and this is like the key matrix here. You can see the key matrix and the switches. So, and this will be fun because it's gonna be RP2040 which in circuit Python has HID support. We've been working on, then how we're working on some updates to circuit Python to allow customizable USB configuration. So right now when you have a circuit Python board you get the REPL, which is a UART serial. You get mass storage, which is the circuit pi disk drive. You get HID, which is a keyboard and mouse. You'll also get MIDI automatically if it's built into like, which is for most boards are not very tiny. And that's it. Sorry, so those four are the built-in USB implementations but there's a macro pad you might not want to just show up as a disk drive. Like maybe you only want to show up in the disk drive like if you like flip a switch or hold down a key or something. Like when you want to reprogram and do something. Yeah, the only one, because you don't want to show up as a disk that can confuse your computer maybe. So with the customizable USB descriptors by putting some special text into boot.py you'll be able to turn on and off different elements. So you can turn off the MIDI if you don't need it and you can turn off the mass storage if you don't need it. So it's only there when you want to reprogram the macro pad. So I think this will be a good demo for it. Some requests. Yeah. E-Ink maybe. Folks do like OLED. Yeah, I do like E-Ink but I think people want faster updates and also E-Inks they don't come in that small adorable size. This is a very specific like one inch diagonal one 1.3 inch diagonal size. So there's a TFT that I use that's about that size that's 240 by 135. And then of course the 128 by 64 OLEDs which are kind of popular. I think OLEDs look really good. So maybe we'll try the OLED. All right. Someone says they feel like an old person using Arduino and not knowing Circuit Python. So here's what I have to say about that. It's never too late or too early to try all these different programming languages. And my suggestion is get a board when you make your next purchase that can run Arduino or make code. Almost all our boards can do both. Yeah. So 340 can do both. 721 can do both. And one thing that's really helpful 721 can do both is find an easy project for you that you know well in say Arduino land. And it's like, okay, I just want to do like this pulsing light thing and then do the same exact project with another programming language. This case maybe Circuit Python. And do a comparison on the two because it's definitely different. Some people really, really like the REPL with Python and you can do lots of iterations. And there's no IDE. You can just use the text file. Shows up as USB drive. But then some folks are like, not like I'm set up for like C and like Arduino world. And they have different types of projects but try it out and get a board. Like Circuit Playground Express is probably like one of the- Yeah, that's a great one. It's one of the easiest ones. Circuit Playground Express. But also, yeah, ESP32 S2 can run both. You can run also MicroPython, try it out. You probably have an ESP32 or AT66 that can run MicroPython. Here's another spin. I made like a spin of this board. You know, I had the OLED but I was like, what if I've used a 1.3 inch TFT because I do have some of those still. And I saw like a really cute like Ducky Pad which used a 1.3 inch square TFT. So you can see this is, this has a TFT instead of an OLED but it's kind of bigger. I don't know if it's like too big. So I don't know. And for the folks, so there's folks in our chat that are working on a keyboard. 11 keys OLED, they're gonna use Circuit Python. And they're looking forward to that feature where it doesn't show up as a drive. When do you think that's gonna be out in the world? I mean, there's, you can watch the progress. You can watch the progress. I don't know. I just ordered those first PCBs. So we'll see. Check out the Weekly Community Discord at 2 p.m. Eastern time on Mondays and the Circuit Python teams in there and they'll be able to tell you Well, I think it's, there's a PR, you can subscribe to the PR and then it's the very latest. I will say the very latest Circuit Python is in a lot of flux right now because we're also doing a fast forward merge of all the MicroPython updates from the last few years, which is gonna give us a lot of cool features that have been added to upstream MicroPython but just means that there's a lot of instabilities but it also means like if you test it, you know, that's great help to us because if you test the latest builds you find bugs and people are finding bugs and you tell us we can fix them as quickly as possible. Yeah, that's our thing. Like some folks don't like change but a lot of folks do like new features and the hardware that you have just does more every time there's a Circuit Python update. So check out the updates and help us test. Okay, all right. So next up, so like the meat of the matter is I was gonna talk about what I did do this weekend which is I went outside a little bit but I also worked on diagrams. So we, you know, four years ago there was this guy in the maker community who made these really beautiful diagrams and we actually contracted him to make some diagrams for us. So if we scroll down we can even see them. So like this Feather 32U4 Proto and these are these, you know, really beautiful diagrams that are, they are PNGs but they're like really high resolution PNGs and they have like all these pins and they're really cool and they have everything labeled very nicely and they're color coding and they're really gorgeous, these graphical data sheets and the person kind of have like a disastrous crowdfunding experience and some disappeared from the internet. So while we had paid him to do a bunch of boards while he was also doing the crowdfunding project he kind of like left the internet and one of the issues is that it's really hard to edit these and so there were a couple typos and each time there's a typo it's like, oh my God we have to like open this like, you have to edit the PNG if we have a PDF somewhere but let me don't have the original and it's like it's kind of a mess and also like new boards, how are we gonna make them? So Bill Binko did a video which I think you have a screenshot of real fast of how you can take a template and you can make these beautiful data sheets and it's a lot of work but you can do it and I think if you're only making like one or two boards go for it, but like I make boards like every day and so I really like this but I also, I don't feel comfortable assigning someone on the team to make these because it's like so much work and there's like you have to look up all these things in the data sheet and it's like the timer pen and like the ADC offset like there's just like so many things and like there's so many boards and I feel like it's just a little bit too much. So I started looking, well I was actually looking at this other board this Elite C and I was like, oh look at this adorable diagram. I was like, you know this diagram is like kind of simpler than the really beautiful Pig Hicks ones or Piggy XXX, I don't know if I pronounced it and I really liked this simplified style and I was like, you know, I should really look into like what would it take to auto generate these diagrams because that's what I really need. Just sort of like what we did with the fritzing generator. So people used to hand make other fritzing objects and like I couldn't, like that's where we have like no fritzing objects a few years ago and then Philby spent a lot of time writing this code that we have a guide for which lets you take Eagle CAD files the board and schematic files like turn them into really beautiful fritzing objects and you have to have a human go in and do a little bit of like cleanup just to like attach the pins and maybe like remove them or name or whatever but it's like 20 minutes worth of work it's not hours worth of work you have to do all the drawing you just have to do like the connecting part the part where you say like, oh this pin is this pad right you just click through and connect them. So the fact that we have that fritzing generator has been really great because now every new product that we make at Adafruit has a fritzing diagram and people in the community use them to make diagrams but we love using them because they're great for documentation because they're really clear it's very hard to take photos of boards they all kind of the same like it's like it shatters it's like whatever so we really like all of our fritzing diagrams even if you look at this like lemon project you can see like the diagram is done in fritzing because we have fritzing objects of all these items like somebody made a fritzing of a Cherry MX key and then we've got the fritzing of the cutie pie and it's really easy to attach all the pads and wire it together and it's much easier to see than somebody taking a photo like this if you took a photo this would look like spaghetti but because you can have like individual colors and it's schematic-y, diagram-y it's kind of cool so I like these but yeah, I can't, this is not too much so I looked at, yeah, so I showed you there's 18 makers did this and there's a building as a template and then SparkFun has the graphical data sheets which was actually like really close so this is like almost exactly what I want it's like it's automatically generating all these labels labels and it's doing it as an SVG and so it's like you can scale it you can turn SVG into a PDF really easily like I don't want something that's pixelated because it's like you can't zoom in and you can't resize it easily it's got all the labels and then they make this but they have a little helper to make this part right, this is the annoying part the like A2 is also known as PC2 also PC in 10, this is also LED like that's the annoying thing so this, the way this works which I'm into is it creates this SVG that has all the pins in like it's just the pins and then you copy and paste it over into like this like this part which is like a kind of a template you put the image of the product in the middle and then you copy and paste them and you just paste them in a big chunk which is way easier than like making each little box and you just get, you just grab the whole group the only thing that was like I wasn't into so the thing that I was like, uh because this is like pretty cool this is like a really nice PDF, right? I kind of like this PDF but the thing I didn't dig was that you have to create a CSV file and the CSV file has all of the pins and ports defined and this is the thing again I totally don't want to do I do not want to make this spreadsheet I don't want to do any entry I hate data entry because you're in that eight entry world the thing that's killing me is the typos, right? Like people, like there's so many pins that are like swapped or like whatever you know it's off by one and it's very easy to make a typo and so I want to avoid the typos and how can you avoid typos? Like well you can avoid typos by having single sources of truth so I kind of took like all of these different ideas and was like well what if I had a Python script that used the fritzing object which is like generate from the eagle file, right? So I know exactly which pins are which and also the order they're in, right? I can sort them by X and Y coordinates and then I get the pad name and then I can use the Arduino or circuit Python pinout file to correlate that with the low level IO name, right? Because like D2 could be like IO 16, right? There's this pin mapping thing going on and then I could have one CSV for every chip not every board but every chip that tells me for that chip every IO pin what are the capabilities and then I can auto generate that list of pads in the correct order and still do that copy paste thing but like not have to do the CSV data entry because I just don't wanna do that, I'm very lazy. All right so turns out like the nifty thing about fritzing files, so I have a fritzing file here a fritzing file is actually a zip. I don't know people don't know that but that it's actually a zip file and if you open the zip file you actually get SVGs inside of it and you also get this thing called an FPZ file, so. I always assume every file is a zip. I'm pretty much nearly everything is a zip, seriously. If you grew up in the world of Macs where you had like ResEdit and like every resource had something inside of it. That's always a zip. There's always something inside of it that you can explore. Yeah, so it's very similar. You just have to rename it to .zip. Yeah, so this is the fritzing file and it's like a mess but it's basically XML and you have this thing where each connector has a pin and an ID. It has the SVG ID and then you can use that SVG ID to look into the SVG. So for example, let's look for like D2. So, D24 has SVG ID connector 113 pin and then if you open the SVG which is also an XML file. Everything is XMLs and zips. If you look for connector 113, if you look for connector 113 you can see it's a circle with that ID number and it tells you the X and Y coordinate and so now you know where it is on the sheet. Again, that lets you sort everything in order because you want those pins to be listed in the order that they appear on the board itself. So like you do less work. And then you can use that this XML to find the pin name and then if you look at, let's see, this is a Feather RP2040. If you look at the Feather RP2040 pins.c you can also correlate the D24 to GPIO24 or like in this case, it's RX to GPIO1, right? So each pin has the pin and the underlying like GPIO like the pretty name and then the real name. So I kind of wrote this big parser to do all this stuff and you give it the fritzing file and you give it, which would then unzips and extract the SVG and the XML file. It makes a list of every connector. So it looks for the connector like I showed you in the XML and then it gets the SVG ID for the pad and then it opens up the SVG also as an XML and it finds all like any circle with an attribute for with that same name. It also does the same for ellipses. Ellipses are weird though for, because for complicated reasons basically the ellipses are sub objects, not pins because they use them for semi-QT connectors and so like we have to treat them all differently and whatever. And then for the circuit Python file, it opens up the file and it does like a regular expressions match and just looks for the Qster and finds the true name. Like if I call it D2 or D24, what is the true name of it? And then finally I have, I do have one CSV file and the CSV file is, I generate it but it's not too bad because I actually kind of copy and paste it from the datasheet. So this is the datasheet for the RP2040 and has every, sorry, where is the, I want to find a 24, this is so annoying. It's under pin descriptions. Here it is, okay. So there's a pin table and so the pin table tells me for every GPIO, what are the things it can do? Like they can be your RX, it can be I squared C0, SCL, it can be PWM0B, whatever, all those capabilities. And I put them into one spreadsheet and this is every board that I have now that uses the RP2040 will use the spreadsheet as the pin MUX determinator. So then it kind of puts everything together and then uses this tool called SVG right to draw the label. And there's like, I have a little theme coloring and it makes the boxes the right width for the tech. I don't have any characters and then it's a motor space and it makes the box or whatever. So it makes a new SVG and it creates, it finds all the pins at the top row, all the pins at the bottom row, all the pins on the right row, pins on the left row, because you want the pins to be ordered in the right way so that when you put them in, they come apart. I'll show you what I mean. It's like, you have to, you just kind of have to find out where it is on the breadboard, so it's on the breakout board. And then it draws each one. Some of them, if it's, if they're special pins, it's like, okay, this is a power pin. If it's a debug or enable pin, it's like a control pin. I have a special case for STEMIQT so that it shows up blue and yellow, like the wires. And then it prints out all the different MUX labels, one after the other, and then it increments the box X to draw them all and it saves it. So I'll show you what it looks like. So this is me and the command line. So let's run it on the feather, so you can kind of see the command line here. So I'm running the parser on the feather, fzpz, I also get the feather pins.c, although I might change this to just go online and use the micropath, circuit python port definition. And then that csv file, which has all the IO pins, and if I run this, it'll do all this work and you can actually even see, it kind of prints out all the pins, this d24, it says this is the svgid, cx and cy are the x and y coordinates of the circle. It has alias names and it has locations like where is it on the board? And then what I get out is this thing called pin labels svg. Sorry, this is the template. This is not what I get, this is what I get. So this is what I get out. So I've got like chunks, like this is one chunk and this chunk is the top of the board. So this is all the pins in a row and it has the name and all those, the SEL and the UR and each one is color coded. And then this is the right side and you can see one travels right or one travels left because then if I take the svg that is the image from fritzing and I paste it here and then I rotate it and then like, I did like a little bit of size increasing on this one. There you go, like that, not small. So this is like the only part I have to eventually maybe automate. Then I can take this chunk and I put it here. It's not too bad, right? Let me just squeeze sizes to content. Okay, it's not perfect, but it's pretty close. These two, it gets confused because of the fact that these are, again, they're not pins. They're like these connectors on the batteries. So I have to move those. And it gets confused by the STEMI QT connector too. So they're not in order. But look, it's not too bad. Yeah, doing this live is faster than if you were to try to do this in Illustrator or Illustrator. Yeah, look, I just want to do an Illustrator, right? So this is pretty close. Like it doesn't have, it's not everything, but what's really nice is that, again, there's only like one, you know, like this doesn't include the Arduino pins yet, which I have to add. So I'll have to parse like the Arduino pins file or I don't know what I'm gonna do. Like it's not too bad that I get regular expressions like it's kind of always the same format. But for like all the RP2040 boards I'm gonna make, I mean, like it only takes like a minute. And then if there's ever any typos or mistakes, I mean, like there's, I don't think there are because there's only, again, there's only one like CSV file that I'll make and I make it against like the data sheet. And so I know it's got everything. So then I can also run. And this also probably helps some people too as they start to design boards and they want to do something like this. I can just use our script saving. Yeah. So then I can also, so like I did the feather. So then if I do the itsy bitsy, which is a little bit more complicated because it has more pins, but it doesn't have a static UT. So in this case, if I revert this, it's now the itsy bitsy. So again, I take this, you know, the most annoying part is I have to do the, you're using Inkscape, right? I'm using Inkscape, yeah. So resizing this is kind of the most annoying thing. Okay, so I've resized it and then I think about Inkscape is it like sometimes freaks out and like resizes text. I gotta figure out why. You know, this is over here and then for this stuff, you know, I can group it and rotate it and then I can go like that. So, so that's the pinouts. Okay, I'm gonna ask a couple of questions and then we're gonna bounce to- Yeah, yeah, yeah, we gotta go to the great search. Folks like it, they made some suggestions about what other file formats are zip files like docx, xlx, pptx, pptx, those are all things that are- Zip, zip, zip, zip, zip, zip in there. Yeah. And then folks like it. Yeah. Brent here, Brent likes it. Yep, it's Inkscape. And then how difficult is also generating the diagrams 180 degrees and flipped over. Often I've had to hold a diagram and read it upside down due to how I haven't sitting on my project. Yeah, I mean like there's definitely like this human element that has to be done. Like I actually looked into like what would it take to have it like put this in the right location and have all the pins. They actually turned out it was like, it was so hard because SVG does all this like weird stuff with scaling and like and sizing and offsets. I was like, this is actually isn't worth it because it only takes a minute for a human to, you see like take those and then just align it to all the locations. Especially when you're dealing with stuff like a semiconductor or a battery connector or like pins. Sometimes there's pins on the inside, you know, or there's gonna be like neopixel or whatever like other things that need to be labeled. So I think a human has to do this final step. But it's SVG so you can always like open it and then flip it around however you want. All right. Can it also show PWM capable pins? I know that's usually marked on the PCB but also in the diagram possibly even what pins are interrupt. Yeah. In this case they're actually aren't like, so the thing, one of the things that we have to do is like the CSV is the what, the CSV is to determine whatever's here is whatever gets shown. So for the RP2040 it doesn't have the concept of like interrupts because each pin is an interrupt. It does have the concept of like PWM. So I do have those labeled here in green. So these greens, they say the PWM pins. So whatever we put in for the board is what gets put in, you know what I mean? Like I wouldn't have I squared C or like you doesn't make some of these things like like this, this chip the way it works is like there's I squared C pins available only like, you know, alternating kind of it looks like every, every pin has I squared C, but it's like I squared C clock data one, two. And then on something like a 70, 21 or 51 it uses circums. So I'd have to label the circums instead because it doesn't make sense to label I squared C pins because it's like you don't, that's not how it's done. So like each, each family is gonna have that, that CSV file is gonna have to be kind of custom made for that chip to show what's useful for that chip because for 70, 21, 51, every pin is an interrupt, but you want the interrupt number. Yes, we can show that. I would have that in the CSV file. So it just, it just means the CSV file has to be customized for that use. Okay. Someone brought up something I was about to say. So we do a data fruit AR app. Trev heads up our iOS development. I'm gonna ask Lady Aida and Trevor if this would be helpful to streamline getting more of our boards into age fruit AR. So we have an AR app. You can search for age fruit in the Apple app store. And we do have some ARs where when you hold up the board it shows pins and stuff like that, but it was a manual process. This might help out with that. Yeah. So yeah, we're just experimenting here. And there's a couple of things like I said, there's a couple of things that have to be added that are not included here like internal LEDs. Like there's a neopixel. We have to somehow put that pin out somewhere and the built in LED. So I'm not done here, but I'm getting, this is just kind of what I messed with last night and today. And I think so far it's, it's looking good. It's looking a lot better than what we had before, which was nothing or these really old diagrams that were unmaintainable. All right. So now let's go to a bundle fly question then we'll do the great thing. Okay. Because we were in that section. So bundle flies back. And the question is, is it possible for me to add a bundle fly link to the read me for my mag tech project on GitHub or at least a link for just the mag tech libraries? Yeah, right now. And then we also had this one, which was project specific bundles and also board specific bundles. Board specific bundles basically is the, we'll just have one very simple project. We don't have the ability for people to use this yet to make their own bundles. Like we're right now, we're locking it only to the Adafruit GitHub and like it's only within learn that's doing it. But we have this JavaScript thing that you might be able to. However, yeah, if you look at the, the library bundler, the library bundle that we have, there's a JSON file in there that has all of the dependencies for every library. So you can use find imports, which is a Python tool that will like search through your project and find the imports for it. And then you can use that with the JSON file for the circuit Python library bundle to make a list of all those libraries and then extract them from the bundle. Like we just do a lot of like caching automation. Like we, I think- And we batches it every night. Yeah, Melissa made a tool that does it in JavaScript but it's not going to do everything, everything for you. So it's a little bit more work just because like we had to do it, it's in Rails, it's not actually in Python. Like it doesn't make sense to release that code. It's like embedded into learn. All right. All right, let's- Okay. All right. So let's dive right into the great search, right? Okay. Okay. Where? The great search by DigiKey and Age of Fruit. Thank you so much, DigiKey. Every single legal editor user powers for good to help you find things on the DigiKey site. And that's happening a lot because people are starting to notice there's no chips. That's right. We have a chip shortage going on. So here's two tweets. Here's your tweets from some synth folks who are talking about how there are shortages of chips and it's true, the SAMD 21, there's delays on it. But also I noticed two people were chatting about how the TLO 74 was not available. And I was like, wow, that's pretty amazing. TLO 74 is a classic chip. And I'm used a lot by synthesizer folks and that's actually kind of wondering why. So I checked in with guest who was the co-designer of the Zoxox synthesizer that we worked on. And I said like, you know op-amps and synthesizers. What's so great about the TLO 74? And I do want to say it because it's actually kind of neat and it will also help us in the great search what we're gonna look at. So guest says the O74 is pretty much the Toyota Coral of op-amps. It's not the best at anything in particular, but pretty good at everything. It's the second cheapest op-amp out there, comes in dip in SOIC. It has relatively low current consumption, low distortion and reasonable bandwidth and slew rate. The noise is okay, it's low, but the thing that really makes it all out performer is the low bias current, J-Fit inputs. J-Fit inputs. It's down in the Pico amp range, which means you can use it for sample and holds or VCOs, VCFs that require range of currents down to the nano amp ears. A lot of people use the LM358 because it is the cheapest op-amp, but it has high bias current. The O74 can also handle high voltage rails which helps with the signal noise ratio. It was designed for audio use and was one of the first real mass market op-amps back in the late 70s, if I recall correctly. The 741 was the first. Still people use the 741, a popular op-amp. And this was meant as an improvement over that. The O74 and the O84 were made at the same time in the O74s or selected for lower noise, better distortion and lower offset voltage and then marketed at the audio market, the O84 was sold to everyone else. So, this is a good hint. Again, you know, the op-amps are very, very peculiar. You know, once you find the specs for one, it's hard to say like, this is an absolute alternative, right? There's no, it's not easy to say like, this is, other than the exact part number, each one has slightly different specifications and there's so many specifications. So I will say that I don't guarantee that this is gonna be a drop in replacement for the TL-074, but for synthesizer uses, it sounds like the JFET inputs in the low bias input current and pretty good slew rate and pretty good voltage range. So you may be more than five volts. Like they, you know, plus or minus 12 volts. It's pretty common for many synthesizers. So let's go to Digikey and let's actually look up the TL-074. I will say the TL-074 is, there are some in stock. Like you're not totally out of luck if you want some. It may not be available in every, you know, particular flavor and package size, but there are some in stock. So it's not, it's not the end of the world. You can get some. But let's look at some of the specifications that guest mentioned. So the slew rate is 13 volts per microsecond, three megahertz gain band with product, input bias current 64, Pico Ampere's input offset, three millivolts, about a milliamp and a half per channel of supply. And then yeah, plus or minus five volts or 10 volts to 30 volts. That is something interesting. So you do need to have a fairly high voltage. It looks like you can't really, looks like there might be versions like here. The TL-074 HIDR, there are some that can run as low as 4.5 volts single supply, but it looks like 10 volts is pretty common. So that said, let's take a look at similar op amps that's got the JFET input. That's what kind of defines the low input bias. Let's look for another quad low input bias op amp that could be an alternative to the TL-074. So let's go back to buffer amps and let's look for active and let's look for in stock because we're not specking up a new board here. What we're doing is trying to find an alternative to a part that we know and love. On a related note, so I guess for whatever reason, like 100 plus people showed up in Twitch. Okay, hi. And so they thought it wasn't live and now they're being taught how to search and use electronics. Yes. I don't think that was their intention. Who doesn't love synthesizer? I think this is some type of raid or something, but you're just gonna learn stuff. You're gonna learn about mechanical keyboards and how to specify op amps for your own synthesizer. You know, statistically, 3% of them make synthesizers or do music. You wonder, like, how are these? Come back every Sunday and learn some electronics, folks. Okay, welcome. Okay, there's no, we're not doing any hot tubs here though. Okay, so we want a quad op amp because we're gonna want a 074, that four stands for quad. 072 is dual, but we want quad. So let's apply. Okay, next step, I don't really care about the current per channel, but again, I do care about the input bias in this case, I'm gonna use this Minmax box. Whoa, hold on. Okay, we're gonna use the Minmax box. There's actually a little bit of different styling, by the way. I think they updated the search styling, the CSS updated. So let's look at, remember the L74 was 65 pico amp ears? Let's put in like, I don't know, like 80, right? Up to from zero to 80 pico amps. Okay, great. So we've got a whole bunch of those. And let's look at slew rate. So we want to pre-get slew rate. And some of these are like pretty slow, like, you know, less than a volt per microsecond. I think, what was the L75? It was like 13 or something. Let's find something that's at least five, oh, five volts from millisecond. We want per microsecond. So let's do five volts or greater per microsecond. And watch out, because it looks like the milliseconds are mixed in with the microseconds. Okay, great. So looking good, got about 400 options. Okay. Next, let's look at the, we want surface mount. So let's pick that and that'll cut us down to 300 pieces. Okay, so what else do we want to do? So the input offset, let me look again at what the input offset was for the TL070, oops, 73. One thing that's nice, by the way, about op-amps is that op-amps do have almost all op-amps have the exact same pinout, like, thankfully. So if you have a quad op-amp that's in a 14 TSOP, it's going to be the same as every other op-amp in a 14 TSOP. So you don't have to worry about, like, you know, it's like, it's like what we talked about in some previous tutorials about, you know, this reset actuator uses, like, a slightly different pinout depending on the package. It doesn't, that doesn't apply here. Okay, so the TL74, so we're looking at the slew rate, 13 volts for microsecond. Game bed with project with three megahertz is really good. Input offset about three millivolts. So let's do three millivolts or less. This is in microvolts. So it looks like, you know, there's actually, like, the input offset isn't too bad. There's only, like, one that's like half a volt, ridiculous. Okay, so let's take a look at what's available. So one thing about the TL74 is, of course, it's really cheap. So let's sort by price. Let's put in price at 1,000 and sort by price. Okay, so not surprisingly, the TL84 comes up first. So, you know, like guest mentioned, if you're looking for a quick replacement for the O74, the O84 is gonna be really, really, really close. It's a little bit noisier, it's got a little bit more distortion, but it's really close. So comparing, you know, this is an O84 and O74. If we compare them, you know, the input bias is a little bit lower on this O84. The voltage offset's the same. The voltage supply is the same. You know, you can look in detail in the specs, but it's pretty much the same thing. So if we, well, let's say we're like, okay, you can't get O84s or O74s, like more completely, whatever. So the first chip that's not from that family, another thing that's interesting is you notice both TI and ST both make TL, O708Xs. So, you know, you do have two source suppliers, which is really nice. But the next non-TL, whatever series that's available is the LF347, which was like not available in TESOP, but had a pretty good specs. It has a slightly better slew rate. It has a much better input bias, 20 pico amperes. It's got 40 milliamps output per channel, which is kind of nice. A little bit better gain bandwidth products. That basically means like, you know, as you increase your gain, the amount of bandwidth of frequencies you can pass reduced. If you're dealing with audio, you're probably dealing with more than like 44 kilohertz or whatever. So, keep that in mind depending on how much game you want, if you're doing microphones or whatever. It looks like the supply can be plus or minus 22 volts. Let's look in detail, maybe at the datasheet to look at the supply. All right, so high slew rate, JFET input. Again, get that standard quad package. Pretty simple design here. Let's look at if it has a minimum power supply. Gotta like hunt for it. Where's the, maybe they don't have it in the datasheet. That's kind of weird. Plus or minus 12 volts, maybe output voltage swing. I mean, I guess you could try running it at like plus or minus six volts. I don't think you need to. The absolute value is 18. They don't seem to really have the VCC here. Probably like six volts or so. It's probably the same as the 084. Okay, cool. So, your options are basically find an 074 that might have not the exact same specs you want, but it's close enough because there's a lot of them in different families. If you don't mind re-spinning your boards, re-spin the board to use SOIC if that's available instead of SOP. And then there are a couple other chips that are in a similar price range like the LF347. If we go much farther in the pricing, there are more chips, but they start getting more expensive. Like, you're basically paying like 40 cents per chip instead of 20 cents. There's like the BU784 from Rome. So there's a couple options. I think you're not totally out of luck, but like I said, you're gonna have trouble finding something that's as cheap and as all-around good. So you might have to give up one thing, whether it's price or noise or distortion or slew or input bias or whatever, but it's probably gonna be priced because like they mentioned, it is like one of the cheapest op-amps you can get. So, there's a lot of options available. So, if you're making synthesizers, do not despair. There are options available for you. Other O74s, O84s, or the LF347. That's a great search. Yes. Where in the world is that? All right, so I'm gonna do a couple of questions. I'm also gonna do some other stuff. So, for the folks that are new to this, who just came in from Twitch, this last segment was kind of like a video game where you're on a quest and you have to find crystals. The part shortage is mostly because of their economies restarting and demand increasing that was kind of unscheduled because everyone was in a holding pattern. That's why you're hearing like it's hard to get some computer products and cars are delayed. Companies don't hold on the inventory. And so they're like, oh, by the way, we're back. So, like, can we have everything now? And they're like, oh, it's gonna be, you know, eight weeks. Okay, next up, this is back to Bundlefly. How about using SIRCUP, which is already how to find BundleLibs to make a project bundle. Can you do that? I don't think it does. So you'll have to maybe submit a PR to add the capability, but a lot of that code came from and is based off of SIRCUP. The thing about SIRCUP was that people were just not running it from the command line. They really just wanted to download. You know, it's like, oh, now you can sell another thing. We really wanted something that was from the learning guide that's where people are starting with projects. They would download a zip and be ready to go. Yeah. So, and again, just for folks who might be the first time you're watching our shows. So we have a show on Tuesday called JP's Workshop, and that's where you can build electronics and more. And then we have... Mid Custom Keyboards. Yeah, sorry. It's a JP's product pick of the week. Pick of the week. Which is a lot of... Sensors and Arduino's and Raspberry Pi. If you ever want to learn to code to, this is a way to get into it with physical computing. And then Tuesday, we have a 3D printing show at 11 a.m. Eastern. Yeah. And then 730, we have Show and Tell. People show stuff. Can buy all your projects. And then 8 o'clock, we have Ask an Engineer. It's kind of like this show. But you can ask me. But we have a similar... We have... More news. More news, and we have similar segments each week. Thursday, JP's Workshop. And then Friday, we have Deep Dive with Scott. So if you're interested in electronics at all, tune into any of these. Come on by. You're welcome. Yeah. And... Love to have you. And a lot of folks that do gaming for sure, and if you're watching from Twitch, you're probably familiar with that. A lot of people who build custom keyboards or they'll do like cool lighting, they use our stuff. So check out our shows and more. Yeah, you'll make cosplay projects. We've got tons of those. Yeah. Decking out your PC with cool LED colors. Yeah. So for the folks who came here with Learn with Leon, they did a... I guess they were doing a coding thing. Tell Leon to drop me a note, ptdatafruit.com. I'll send them out some electronics so you can show on the show. Okay, go on. Or maybe give them out to some of y'all. Sounds great. I don't know, Leon. Yay. Send them my info. Okay, cool. Okay. All right, thanks everybody. That's the show for tonight. We'll see everybody next week. That was Descalade Data. Bye.