 And welcome to Discladina. Hey, everybody, and welcome to another wonderful Sunday. Weather was great here in New York. I hope you enjoyed it, wherever you are, whether you're working this August, or whether you're on vacation, as many people are. Whether, whether, whether, whether, whether you are. Whether you are, you are the weather. Wherever you are, whether you are. So, do you have any updates? I do. You want to tell people about Silicon again? Yeah, so here's a reminder, if you're in the San Jose area, we are helping get the word out for Adam Savage and team, a friend of Adafruit. We don't get compensated in any way, so go to Silicon SJ. You, yes, you, could join the Savage Makerverse. There's workshops and more. We're doing a bunch of posts across our social media platforms. Do check it out and help continue on the tradition of bringing makers together in workshops with tools, with people in the community. It is up to you. Go there. If you have a code, Adafruit, you get a discount. And again, we get nothing for this. We're just trying to help out. We always like to be transparent and do disclosures. Speaking of, I have nothing to do with Hackaday. I found a decide, but we are also helping them get the word out for the call for proposals for SuperCon 6. We had Magenta Strongheart stop by, our show and tell. And I'm happy to see Hackaday continuing on the tradition of the thing I started, which is bringing people together, showing and sharing things to SuperCon is happening. Do your proposal submission by August 18th. That's the end of this week. Also stuff that's going on, this Friday coming up is Circa Python Day. So watch everything on our website and more. We got a lot going on. We have a thing we're trying to do that will be really cool if it happens. So tune in on Friday. Yeah, we'll see. There's a lot of stuff going on. We'll work on that. So with that being said, Ladyita, what is on your desk this week? Okay, we got a couple things going on on my desk this week. First off, I'm trying to get back to some projects that were just delayed due to part shortages, et cetera. And one of those things is getting back to my camera board. I just started designs many months ago. So why don't we go to the overhead and I can show it off. So a lot has actually changed since I designed it. When I originally designed it, it used an ESP32 S2 module. But since then the S3 has come out and the S3 actually has more capabilities. It has a built in like AI module and dual core. So I might actually just swap out this module because it's pin compatible between the S2 and the S3. I get one more GPIO pin. This is the camera module. You got SD card, little speaker. I make it beep when you press the shutter button. There's an on off switch, a STEMI QT and STEMI ports. You know, there's probably gonna be a plate here to protect the camera module a little bit. And then of course the screen. Of course, what you're saying is a screen of a camera through a screen through a camera. So it doesn't look that great, but believe me, it's very, it's pretty bright and clear and this is very fast. And as I'm doing this, you know, a lot of it's like power supplies to be honest. Like these camera modules require like six power supplies and fast clocking. And one of the things that I wanted to do is we did have camera support in Circuit Python, but I wanted to also make sure it works in Arduino, especially with this like new ESP32 S3 module that Expressive has AI support. And so I wanted to get started with like using the ESP32 camera. Like I basically verified it worked before, but I really wanted to like really play with it. And one of the things I'm doing is, you know, I have a preview, maybe 240 by 240 RGB. And then like when you press the shutter, it would take an image as a JPEG and save it to the SD card. Like it'll be the little snapshot camera. So I was, you know, playing around with writing the code for this in Arduino, because that's what, you know, it's fine, it's the easiest way to interface with like the display and all the sensors and stuff. But for people who've like done big projects for the ESP32, you know, once you have like Wi-Fi plus a couple modules, like you start like, you know, these modules have four megabytes of flash and you can really start compiling a megabyte worth of binary code to upload to the chip. And one of the things that a few weeks ago, Brent, our developer who works on Whippersnapper, mentioned to me, oh, you know, I moved the CI and my internal development of Whippersnapper from using Arduino ID and CLI to using Platform.io because it's much, much faster to compile. The trade-off of like being much faster to compile is there's a lot of things that Platform.io does to like optimize that, which unfortunately can drive some people a little baddie. Like it does a lot of grepping of header files and to try to guess what you're using and it doesn't necessarily understand macros, which again can be confusing to people. It doesn't use proper, it doesn't use a proper C parser, kind of has its own thing. Do you do this on a two-layer design? This is a two-layer design and it's fine. I mean, it's a little bit warm, but other than that, there's no real reason why you would. Oh, okay, good, okay, okay, nice. Sorry, everyone wants to hang out. Okay, so I wanted to try Platform.io. We also were chatting with Platform.io and I'm trying to brainstorm with them with some ideas to get them more funding and support. And so I was like, oh, you know, I haven't used Platform.io in years, so I thought I would check it out. So I have it installed on my computer. I thought it took me a couple of hours to kind of get the hang of it, but one thing is like for big projects, now again, the compilation method makes it, it can be a little confusing because again, it does a lot of little shortcuts, but if you are an advanced user, there's some really nice things that it does that I thought was pretty cool. So let's go to the computer and I'll just show it off real fast. So additionally, I write my code in Xemax, Y, I don't know, there's like something wrong with me or something right with me, but this is Platform.io. And so you install it with VS code, which is a fine editor. I just don't use it that much. I just like, I'm not a huge fan of IDEs. I find that there's a lot of stuff going on. I really just want to like edit code. And again, I know that Emacs commands and tell my head, but so you set up a I and I file and this is a little bit different than Arduino. Like you have the lib dependencies and for some libraries, you know, the dependencies of the libraries it will auto install. Like it does figure out because, you know, all of Arduino libraries now have a dependency line, which is like really great because it means that when you install, for example, an OLED library, we will automatically install the graphics library that you need and the I squared C, you know, like all the stuff that it depends on. One thing that's interesting is you do versioning. So you tell it what version you want. This is kind of nice because we do, we do versions all the time updates of Arduino. So it's a bit of a trade-off. On one hand, you don't have to, you know, if you notice this collection of libraries all works, you're good to go. The bad news is that don't forget that libraries do get updated and sometimes they get updated with fixes. So it's a good idea to like make sure that you have the latest libraries. You know, it's you can define, for board your platform and set up. One thing I thought was neat that is like, it's just something I've actually asked Arduino to do many years ago. And I get that they're probably never gonna do it, but there is no way to add defines, like compile level defines. And it's very, especially when you're dealing with low memory devices, like pound defines can be a really good way of chunking out code, whether you include this or that, to minimize flash and RAM usage. And for example, in bus IO, our I squared C interface library, I have a pound define that's in the library that I use all the time, where if I set debug serial to serial, as shown here, it'll print out all the I squared T transactions and whether they succeeded. Really handy because you're like, you know, a lot of libraries, it's like you don't necessarily know your I squared T failed or it starts, it started failing, it does, it doesn't, it's clock stretching, whatever. So having this debug is handy. And so instead of going and editing that in the library header file, I just define it in the platform I nine, I rebuild and it like does the right thing. And it's like magical, which is cool. And then, you know, over here is the command collection. And I have a couple of like, I'm kind of learning how to add keystroke, like functions, like, you know, if I press F five, that builds everything over. And you can see like, it does a dependency graph and it like has everything in style and it compiles. And again, it compiles very, very quickly. I did a clean, so of course it's gonna be recompiling. But what's nice is that it's for, especially if you're making small changes and recompiling it's almost instant. And then you can upload and monitor and it has a built-in terminal and it knows about ESP tool. For expressive, especially like this is really excellent. I will say, you know, expressive gives money to platform IO and they're like a partnership. And you know, it's, oh, one thing is, is it's, you do have to make sure you have the right port and my port change. So hold on, I have to rerun it. For expressive, you know, ESP 32, especially it works well. Oh, here's actually something that is actually kind of funny. I use Dropbox and because Dropbox, you know, for my build directories, files appear and disappear. Like, I think this is related. I have issues sometimes where, if a compiler is a little bit too fast, it'll create or delete a file in Dropbox, like takes a hundred milliseconds extra to. Like, hey, let me save that. Hey, I'm trying to do something here. Yeah, yeah. So it's, it's, I do, you know, one thing when I, when I do work on big projects, I really do like having Dropbox as like my synchronizer and backup thing, but I do turn it off for the few hours while I'm like compiling so that Dropbox doesn't. Yeah. It does updating, you know, or like as long as Dropbox is off, it writes it up late so I can do like an iteration cycle in a minute. Now, it's not as fast as CircuitPython, of course, but again, there's some code that I have to write that is using stuff that isn't supported in CircuitPython, yet like this AI tool chain. And then, you know, you can go up and you can see the output of the terminal. And there's some configurations you can also do with this. So I'm, you know, liking it. I mean, it's not for beginners. It definitely is a little bit of like, you have to learn what it is. Also, I'm using a custom board. I'm not using a board that's in the Arduino IDE definition yet. So like I kind of had to learn how to make that. And it doesn't know about your Arduino sketch folder. So like either libraries have to live in this folder. It's like, it's a little bit different. It's really meant for you are working on one big project, not what I usually do, which is I have like six different small things going on. But for Expressif, I'd recommend it. Don't know if I would recommend it for other platforms, because again, this one is officially supported and the other ones are not. And so they can cause, you know, like people who try to use a different board packages in Platform.io that are not officially supported by the chip maker. It's not a good time because there's all these like weird things that Platform.io does and Arduino IDE does and like they may not be compatible. But Expressif, they worked really hard to make it a good experience. So I recommend it. Okay, what's next? Okay, so let me close this off. Next up, I'll just show some samples and stuff that I'm working on overhead and then we'll go into the great search. Yeah, I did want you to show the forums Oh, right, right, right. at some point. So a little bit of a Adafruit note. Big bomb, update. We updated our forum. So I'm going to go to that now. Yes. So we'll have, excuse the sawdust as they say. So as of right now, we wanted to have a bunch of updates. A lot of things are behind the scenes, but it's faster. There's more features. There's things that make it better for the moderators and more. And you'll just notice that it obviously has an upgraded PHPB back in. Yeah. So emojis. Yeah. There's actually a big deal, by the way. Some people posted what emoji they would like. It crashed their, not that crashed the forums, but they would not be able to post it. It'd be like, why did they post? Yeah. We understand the modern language involves emojis. So emojis can be used in the subject of a post and also in the post. And we'll have more about this in some tutorial videos as we make sure everything's set. But we've been working on this for a couple of years. It's that big of a deal. So anyways, that's what we're working on. Okay. Well, thanks everybody for your patience. It was dangerous today, but if you have bug reports, of course, send them in or post them, even better. But we're, of course, always trying to improve and update our software. Yeah. All the time. Okay. So let's go to the overhead. Yeah, let's go to the overhead real fast. I'll just show off something. Cool. I rented a bit for about that stuff. So I want to get going. But the board I'm working on this week is the TCA8418. I designed this like two years ago or something. But again, I couldn't get the chips, but now actually I did get a real. This is an interesting GPIO expander, but it's also a keypad multiplexer, which is kind of what it's used for most of the time. It also has Linux kernel support. So you could actually have a little keyboard. So like we had this designed for a little, like a display with a keypad. And what's nice is that the, you know, again, this has kernel support. So it like natively works as a keyboard. You don't have to like run a Python script. And you can like a key mapping and stuff. So it has, you know, I think eight column, no, sorry, 10 columns, eight rows, 80 keys total. It has like lock and unlock. It's I squared T, it's really simple with IRQ. So far I've got it, I've discussed in our circuit Python library I'm working on because I, again, I find it easier to write my libraries in circuit Python first than port them to Arduino because it's just like so much, I have this fast iteration and like I don't have to always, you know, hard faults or like, if I misunderstand, you know, if I can print out things really easily so I can get like the basic structure going and the basic understanding of the registers because they, you know, I'm learning a lot, like all the little things that you're like, oh wait, that's not what I expected. I at least I hit that in circuit Python instead of Arduino so it's faster. So I just, I hook it up to my FT232H and then, you know, I'm just, I probe it with my scope pro. Let me turn this off since it's not hot. I think I got a couple of fun samples. So the LTR-329, I don't exactly remember why I got the sample, I think, but I did look again, it's the cheapest I squared C light sensor available on DigiQ, which is why I think I picked it up because I was like, I think what I've been doing is I was working on making like a circuit playground expressed with the RP2040 and as people know about the RP2040, it only has four analog inputs. The SAMD21, which is on the original circuit playground express and even the NRF-52840 on the circuit playground blue fruit both have like 15 analog inputs. And so you can be like, woohoo, what analog input for light sensor, who cares? But if you are dealing with something like RP2040 where the analog ends are rare and hard to get, then something like the LTR-329 is tiny and I squared C and I think it's like 25 cents for the light sensor. So let's just look at it really fast. So, I usually get a strip of 10. Yeah, it's nice and tiny. Maybe I can zoom in and move out of the light on here, this one. Yeah, you can see this. Yeah, it's a little tiny little sensor. And then, let's see if I can peel off one and all. I'll show it real fast. So, and then it's gone for good. Okay, so this is it. So you can see it's got four little pads. So it's really quite simple, power ground, I squared C, clock and data and I'm just going to pop it into one of my cute pink bags, these anti-static bags are kind of what I used to hold my parts and proto PCBs and then what I, because these silver bags are great but they're kind of enormous. And then what I do is I cut the label. So I have the CID, the skew number and then I label the bag. So later on, once I approve the sample or if I'm like, what was this again? I have all the details. Like, if I look at this, I can tell when it was ordered and then I've got the official part number and then when this arrived in any revision code. So that makes it just easy for me to organize. I also got a PCF 8575. This is a 16 channel version of that really simple eight bit PCF I squared C GPIO expander that we put in the shop two or three weeks ago. I was like, oh, you know, there's a 16, some of you was like, oh, there's a 16 bit version. And I was like, I didn't realize that. I picked up 10, they're like a dollar a piece. And again, I'm always looking for alternatives to the MCP 23 or 17, which has just been a tragedy to get. Okay, so that's my, that's my samples of the week. So let's go do some desk lady. I mean, yeah. We're doing that right now. Hi. We are inside of desk of lady. I mean, the great search inside the desk of lady. Okay, do it. The great search brought to you by Digikey and Anderford. Thanks, Digikey. Lady Ada uses her power of engineering every single week to find the things you need to find on digikey.com. What is this week's great search, Lady Ada? Okay, so this week's great search is related to the board I just popped up on the screen. This is the board that I designed a few weeks ago. It's the PCA or TCA 9584A. This is a STEM and QT version, the plug and play version, a very popular eight channel multiplexer board that we have. So you have I squared C chips. As you know, they have addresses. The addresses can't conflict. If they do conflict, then either change the address or you can use a multiplexer and the multiplexer. It's like, you have to like tell it, you know, it's over I squared C. So you spent, send like one special command to the address to tell it which to connect to. And then it'll reroute the signals and it does it transparently and it does work pretty well. I think there's a couple of weirdo chips that don't like multiplexers. But for the most part, they're a great way of just like, hey, I need like that light sensor, the LTR 30, you know, 329. You're like, well, this is a really cheap light sensor, but I need to have eight of them in a grid. You would use something like this. So I was designing this, but as I was doing this, I thought it would be a good idea to not just have an eight channel version, but a four channel version. And so, cause some people are like, well, I don't need something that big. I want a little smaller board. But again, I don't need, or maybe I want like all the pads broken out, but I don't need eight channels. Four is plenty. And I agree, eight is a lot. Like most people don't need eight channels. So let's go to the computer and see how I did this. This was a little bit weird to find. And I'll show you why. This is the TCA 9548. And so what I usually do, and you know, people know that when I'm looking for, oh, this is by the way, that light sensor, the LTR, 329. As you know, I'll type it in. And then I'm like, cool. Let's find the chip itself and there's valve boards and there's valve boards, but then I want this multiplexer decoder. And I'm like, yeah, like this chip, this is the chip I'm buying instead of stock. I want like the four, one by four one. So I want like an active bus switch and I want to be surface mount. And then I'll just select when it comes up with the search thing, I'll select one, two, four by one. So, you know, I did that. And when I looked, like there were a couple options, but I kind of had this feeling of like, maybe there was something else. Also they were a little confusing. Like some of these, they weren't like I squared, well, some of them were I squared C, this one was. But I think like this first one, maybe it wasn't, I'm trying to remember what it was. Some of them were like, they weren't quite I squared C compatible. Yeah, like this was like a different kind of switch. And I was like, well, I don't know if this is, yeah, this is a bus switch and that's cool, but I wanted like an I squared C multiplexer switch in particular. And no, sorry, go back. So I was like a little bit confused because I was like, really this is all there is. Like that doesn't make any sense. And then I realized that there's actually, this chip is such a weirdo chip, it actually get categorized in a couple of different locations. And so I was like, oh, you know, I should show people that yes, you can always search by using the did you keep find similar, but there's also a lot of reason to go to the place where the chip fab, the maker of the chip and use their search because oftentimes they'll find, they'll have all the parts and you can have a slightly better search for their products. The only thing is of course, you won't find like competing products. So you have to kind of do this for every company that might make something similar. And then it's like, well, how do you know what companies might make something similar? And the answer is like, you don't really, maybe you just like do the best you can. Like think of, yeah, is this something that TI would make? Is it something that analog devices would make? Is this something that Maxim or like, you know, Renaissance would make? So in this case, the PCA, so the TCA 9548. And you can see here that this is the breakout board we make. It's actually, this one's made by TI. So you actually go to TI's site and then, you know, they have the, they're, look, did you have like a, you know, five bazillion literally different chips and companies. And it's hard to sometimes categorize them exactly. Whereas like TI has a lot of incentive to categorize all their products very well because this is their job. Like their job is to sell their products to make it easy. So for them, they have a whole category called I squared C multiplexers and switches. And then what's nice is that you can view all products. And we'll say because my monitor isn't that big that this works best in like 1080p and this is 720. So you'll see a long, you know, it's a little easier to navigate these massive tables. Okay, so that said, you can see here that they have a lot of options and of course they'll have the automotive and the catalog type. They'll give you the approximate price, you know, which is very optimistic. But let's see what we can do. So number of channels. And you can see they have a couple options here for, let's see, do they have a number of channels? I think, oh, it's not added to the search. So we have to click on it and now it's added. So number of channels. So basically how many I squared C to, you know, one to X and we use the standard of the TCA 9548A, which has eight channels, but we want something with four. So we can go down to here and say we want it to be no less than four, no greater than four. And this will give us six options. So then the other thing is you can look at the package group. You know, I do like QFNs the most. I mean, SOICs I find to be a little bit too big, but if you're a beginner, of course they're hand-solderable. T-Sops I find annoying. They're hard to rework and they're hard to pick in place. I'm not a huge fan of T-Sops. I like QFNs the most. I find them fairly easy to rework. You know, there's no pins to bend and they're also very small, but you know, everyone has their own favorites. So you can search by package group. There's nothing you can search by supply voltage. And one thing I noticed as I looked at this is actually there's six chips, but there's actually three chips, two variants of each. So there's the TCA9544 and the PCA9544. And the difference is one, the number of packages. Sorry, the number of packages available. So I don't want to click this because it will pop open. The TCA9544 has only T-SOP, whereas the PCA9544 has T-SOP, V-SOP, QFN. And that's because the voltage is a little bit higher supply voltage. So, you know, historically we used PCA, sorry, we used TCA, which goes down to 1.8 volt logic, but one thing you have to decide is, especially with a chip shortage is like maybe you're okay with something that has slightly less voltage restriction. So I was like, you know what? I only need it to be 2.3 volts minimum. I don't really need the 1.65, I'd rather have a smaller package. And then there's three options. And so then you can look at the difference. One is addresses, which is how many address pins you can set. And I do like having some address pins. And then there's the question of whether you have reset or interrupt or reset and interrupt. And you kind of trade off. If you want reset and interrupt, you lose the addresses. I like having the addresses. So then the question is, which one I wanted, the reset or the interrupt pin? The interrupt pin was interesting. You don't go into the details, but you can look at the data sheet. Basically, for each of the four channels, you can have an interrupt line and they will order them for you or, you know, whatever to get you one interrupt output, which I was sort of like, I was not as interested in because again, it's going to be like STEMI QT ports. So I kind of ended up deciding, okay, I want the reset pin with the addresses. This is the 95, 46A number. There's the TCA and the PCA version depending on, you know, whether you wanted the 2.3 or 1.65 voltage. And then I just went back here and I typed in that half Z. And there's some of the coders here, but what's interesting, it's kind of interesting. There was kind of like a mix and match. Like they appeared here, but they also appeared under interface specialized. And this is where the actual stock was. So there's actually a couple of pieces in stock. Another thing is NXP and TI both make the same almost exact part number. I don't know who made it first. So, you know, if it's NXP and TI made a version or the other way around, I don't know, but they seem to use the same part numbers. And they do have in stock the, well, let's go to the active ones just to make sure that we're only looking at what's available. They have the TSAP version, the SOIC version. And of course my favorite is the QFN. Looks like TI has a version in QFN and they're not in stock right now, but NXP also does. There's also a VQFN. I'm not as much in love with a VQFN, but I do like this one. So I'm into this part. So this is the part I'm gonna get samples of. Again, it's nice and small, but easy to rework. I love, you know, if it's as long as .5 millimeter pitch, I'm really into QFN. And then as a side note, just because I'll wrap this up, but this category interface specialized is super freaky, weird and cool. Like there's all the weird stuff that doesn't really fit anywhere else. And I just started like clicking around in some of these and they're all like really kind of cool. There's just like weird like display port to VGA converters from analog devices and like multiplexer things. And like, what is this? TDP, something, something. This is like an eight gigahertz linear redriver for display port. Like it's just like the weirdest stuff. So I do recommend checking out this zone. I sorted by what was available and I just found some really funky weird chips. A lot of them are on the marketplace. Like some stuff got released to the marketplace. There's some, you know, bunny had a post about how he thinks there's some cancellation of components, but yeah, do check this out. It's just weird, it's just weird chips. And I kind of love weird chips. Anyways, where was I? Right, the PCA 9546. This is my pick for this week's The Great Search. That's a great search. Okay, and that is the Discalated of this week. Thank you so much everybody. We have a bunch going on during the week. Make sure to tune in to all of our social media platforms and I'll thank you so much for joining us and spending some Sunday time with us. Bye everybody. Bye everybody.