 And welcome to School Lady Aida. Everybody, and welcome to my desk. It's me, Lady Aida, with the confidential data sheets. Doing some hacking at my desk, Lil Rainey. So I did get a little bit of hard work done this weekend. Mr. Lady Aida, do any news or updates for people? Yeah, you're gonna show the cool project we did for KIDDO later. And the normal shows this week, we have a lot of designs we've published across all the social media channels. We have a high thread count, as they say in the sheet biz. Okay, well, actually, let's go show the toy thing first, because it's on my desk. Let's go to my desk. Oh, wait, we wanna show the video first. You wanna show that? So as you saw, Mr. Lady Aida, he's actually going through and creating all the things he's always ever wanted. So he always wanted a bear that could quote from Shawshank Redemption. He always wanted a purple Prince music player. I think Emile Dash would probably dig this too. But it's a spray-painted baby Einstein toy, and he printed out this symbol that Prince used in his career. And then you can see here, it's using a non-toxic paint that we found. And inside is our board that runs Circuit Python, and the files are on the SD card. Now, because it's a baby toy, of course, it's all screwed closed, so it's not easy for me to open it up. But let's go to the computer and I'll show, we actually have the PCB in the shop for sign-ups if people want. So I'm gonna do another revision of this board. So this board, I think I demoed it a couple weeks ago or a week ago, it does work. The power supply has been fixed up. Everything's kind of in the same location, but basically now I boost from the two AA's to 3.8 volts and then it goes through regulator. Not super ideal, but definitely works fine and is an expensive and uses parts that I already stock, which is kind of the most important thing. So a couple of things I wanna fix up is, the switch is used to detect, sorry, the switch is used to change the volume and right now that volume input goes straight into the amplifier. Like there's literally connected to the gain pin. But turns out that this chip I think only samples the gain pin, like either the beginning of boot or something, it doesn't, it's not dynamic. So I'm gonna reroute this pin to go to the microcontroller pin and then when the microcontroller detects that the switch is at the low speaker or high speaker, it'll change the mixer gain. So like it'll do software gain rather than trying to do like hardware gain. And what's the other thing I wanted to fix? I might try to move this. I know it's like would be a huge route, but like unfortunately there's a little bit of plastic that bumps up right up against the metal tin here. Like it turns out that the outline of the PCB is correct, but the height isn't matching. The original board was very, very flat. So the tin is bumping into the plastic and I got to decide like, you know, can I move it? And if not, I'll just tell people, okay, you have to just clip or file away a little bit of plastic so that the case can close. So my little hacker board is working great. SD card stuff works, internal storage works, semi-QT programming, amplifier boosting. I also have to do a little bit of low power testing and make sure that that's good. Otherwise we're getting very close. I think there's one more revision and of course we'll do some fun silkscreen stuff. Okay, so that's my little hacker board. So proof of existence. Next up, okay, let's go to the overhead again. So I've got this USB hub breakout board that I designed using the SL 2.1A and it's a very simple hub. You know, you have USB C to A here and then these four ports. To do testing, I'm using these cables that we stock that they're just USB to the red, black, white, green, data plus, data minus. Like there's no USB serial converter, there's no adapter, there's nothing. It's just like straight up wires. This is very handy if you just like, hey, I wanna verify that this port works. So the hub works and then the next step is, you know, how do I write the tester code? So it does turn out that a teeny USB, which is what we use as a core for the RP2040 host support that we've added a couple of months ago. It does support hubs, although right now the demo only shows one device. And if I plug in the hub and I plug in four things, it's like, it only sees the first item you plugged in. So I chatted with TAC, asked him, hey, can you like verify? Cause it should work. I've seen people using Tini USB through a hub and that'll let me test the functionality really easily cause I'll just have like four devices plugged in via Pogo Pans. And if they anymore, then I know it's good to go. So that's happening, but I'm not quite done yet. And did I get some flex PCBs? So JLCPCB has the ability to create flex boards for like fairly inexpensive pricing. So I got this design, it's an open published design from Makers Making Change. And this is kind of an interesting idea. It's called a battery interrupter. So it's a flex PCB and then there's, you know, a contact on this side and a contact on the other side. And this would go between two batteries, right? So if you have, you know, usually the back of a toy has like multiple batteries in a row, you would slip this in between. And then these two contacts aren't connected through together. Instead, one goes on the top and one goes on the bottom and then they connect to this jack switch. So if you have accessibility technology buttons, AT buttons, they usually have a 3.5 millimeter like audio mono jack and that's what they use. So this is a jack and then the AT switch would plug in. And then instead of trying to modify the toy, which is usually kind of like you have to open it and like there's screws and you're soldering and there's epoxy, maybe you would just keep the toy on at all times and then you'd use, you know, and you maybe tape the button down or something. So it's like always like activated. And then you'd use this with the AT switch. So there's like a no solder solution or no toy opening solution. So I thought this was really cool, you know, I might contact them and say like, hey, you know, can we can we stock these? This can be useful for other things where you want to automate them. You have a device and you want to IOTify it, especially if you're running off of batteries, it's can like be very annoying to try to automate it like and control it with a relay, but maybe you could use something like this and then you use, you know, you could use a MOSFET switch or a small relay, but at least you're not opening up the device and soldering wires into it. So that those kind of needs, this is from Makers Making Change and it's called the Flex Battery Interrupter and they have two versions and I just picked up some of these and they were only a couple of bucks a piece. So that was kind of cool. Next up, I have a design that actually designed like a couple of months ago and it was for my own internal usage, but I thought it would be useful for other people as well because I was trying to like do a lot of testing with SPI displays on Raspberry Pi. So this is, you know, we're calling it a high beret, like a raspberry beret because we were listening to prints. So it has, it's, you know, a very slim board that plugs in via the two by 20 header and it's got two buttons, five and six GPIO and then GPIO 13 has a slide switch and then this is an ISPY connector. So this has SPI, I squared C and a bunch of GPIO on it as well. And you can connect it to small screens directly. And then this is, of course, STEMI QT going to the I squared C port and then there's pull-ups on all this stuff. And the reason I did pull-ups is because I wanted this to work. One thing I noticed is that Blinka, which is our circuit Python library API compatibility library for Python, when you're running our boards, sorry, our libraries on an example sketches on boards that are not the Raspberry Pi, they don't have a built-in pull-up resistor capability because they're using the kernel GPIO, I can't move the name of it, the GPIO kernel module. It doesn't have support for pull-ups even, why? I don't know. So for people writing code for hardware, they didn't think to add support for pull-ups. And so you can turn the pen to an input or an output and set the level, but you can't have an input with a pull-up. So you want to have external pull-ups. So these buttons and switches and the chip selects and all that stuff that are in here have a 10K pull-ups on them, so that's the packs over here. And then there's the backlight for the display connected to GPIO 18, because that's the one pin on the Raspberry Pi that can do PWM. So yeah, this is a prototype, but I cleaned up the silk screen and I ordered this. I think it might be useful for people who want to just like, okay, plug and play and I can connect iSpy for ink or TFTs, some buttons, switches and sensors. So you can do like some IoT projects probably without any wiring. And not using a shim board, like it actually plugs in. So that's coming soon. And then the last thing we're working on, I just got these prototypes like Friday morning. This is like a 2020 project. It's a ICN 6211, which is a chip that can do a DSI. This is a 15-pin DSI, which may look familiar. It's the same DSI port that's on Raspberry Pi computers, but it's now on like a lot of single board computers. So this is DSI Mipi, two-lane, and it goes into this chip and then this chip will convert that into 40-pin parallel. And the reason you're like, oh, well, well, Raspberry Pi do parallel on its own. Yes, it can. It can do 16-bit color parallel. This is 24-bit, but it can do 16-bit, but it uses like all the GPIO. And it's annoying and wouldn't it be great if you had the GPIO available still so you could have IRQs and interrupts and SPI and STEMIQT and buttons? But the display goes through the DSI port. And there are, I think, DFRobot and WaveShare have made displays that use this chip, but everything is like closed source blobs and they don't document how it works. I wanted to make a dev board that allows anyone to connect, like there's a lot of different screens and like square and circle. And this is a kind of a standard 4.3 inch, but there's 5-inch, 7-inch TTL displays. And then maybe we can document how to write the I-square-C commands to this chip to get it set up and then you have a device tree overlay that would let this appear as the console. So that way you have all the GPIO still left over. And if you go to computer, one thing that has changed thankfully is there's now Linux support for this chip. It was written in 2020. So it's ironically around the same time I was designing the board probably, originally this kernel module got added, but then I couldn't get chips for a while and I kind of like this sort of fell by the back burner. So what you have to do with this chip is you have to tell it what the display is and how to communicate with the TTL display because maybe it's a bi-directional communication protocol, but TTL displays don't have any data coming back. Like you blast out the pixels and you're like, I hope that there's something on the other side and I hope I got the configuration correct. So you do have to set it up, you have to set up how wide it is, how tall it is and pixels of course. And then stuff like the clock rate and the front porch and the back porch and how many H-sync lines you need to, whatever, blah, blah, blah. There's all these settings that you have to tweak and sometimes the H-sync has to be low and sometimes it has to be high and I've kind of seen everything. So it looks like there's a, oh cool, there's a good debug mode. So I found this confidential, but not really, just Google around and I found this data sheet, but it's not really a data sheet. It's like, there seems like there's 15 different like half data sheets, but sorry, it looks like there's four lane, four lane plus clock. Although maybe this is, I don't know, I'm clear, maybe it's only one lane. Emerges the lanes and then you can get a 24 bit color output H-sync, V-sync, data enable and P-clock and then it's I squared C. So I did design this, this is the board. So let me quickly show some of the design decisions I made. Turns out I made like a lot of mistakes on this board, but that's okay. So this is the ICN 6211 here and you can see it has a lot of, I didn't put little D, usually you put like 22 or 33 ohm resistors just to kind of reduce the ringing. I didn't do that because I was kind of in a rush. So I just routed these through. There's a backlight control over here and then I'll show maybe, sorry, where's my lane? Oh, can you go to the overhead? So one thing to notice about TFTs is is each section is like separate. Like you might think of it as like, oh, it's a touch display, but it's actually like four different things. There's the TFT itself. There's the capacitive touch overlay, which is its own separate component that's glued on top and it has its own chip and own power data at I squared C. And then there's sometimes resistive touch that comes through over here. This is a capacitor resistive, so there's no resistive overlay. And then there's the backlight control, which again is handled separately. So this is the backlight converter and I'm using a TPS 61169, which is kind of a nice chip. We covered this in a previous great search I was looking for parts to replace, I think the fan 333 or fan 5331, I don't know which one it is, but there's a constant current backlight driver chip that got discontinued. And so this is a nice replacement. What's nice is one, you don't need to have this protection diode. It automatically, it won't overheat if you have the backlight disconnected, which the fan 533 did have a problem with. So that's not needed anymore. And then you can see, this is just showing junk. It's whatever it's in the memory, but just testing the backlight, if I short the 100 milliamp, this is the 50 milliamp, you can see it gets a little bit brighter. And then 25. So this way you can select the backlight. So that's like one section. And then can you go back to the computer and then this here. So again, this was back in 2020. So I stuck a, at SAMD21E18 on there, which is the chip I use for trinkets and for the trinket and QT-Pi. At the time, it was a good idea because you had no problem getting these chips, but then couldn't get them for a while. But I'm using this just like a basic controller driver because again, you have to send I-squared C signals to here. And also if you want to connect to the capacitive touch, again, it has a six pin connector, I could practice communicating with that as well. So there's like a lot of, and also there's an I-squared C port that comes to the DSI. So there's actually like a lot of I-squared C and there's PWM for the backlight, a lot of details to get working. Once I get it going though, I'm actually probably going to change this breakout to remove the microcontroller and just have breakout pans and then you can connect your own controller to it because I don't want to depend on having the SAMD21. And honestly, like, I think once I get it going, we're not going to need as many, like there's like three I-squared C ports and I think I can merge them all together, the DSI, the capacitive touch and the ICN-6221, but we'll see. And you also had connected to the analog touch panel, if necessary. So the only thing that I've done so far is I made a circuit Python build for this, which is smart because I actually swapped clock and data lines, which is a rarity. Usually I do URX and TX mixups. This time I swapped SCL and SDA. So the pains are actually not valid, but what's nice is that in circuit Python, I can use BitBang.io, so I BitBang the I-squared C and it's duct type, so it appears as a normal I-squared C peripheral. So I did get, you know, I-squared C data. At least it's like, and it's kind of weird, right? It's like responding to every address and like, I did see like someone tweet, like, yeah, this has a really weird chip and has a weird I-squared C peripheral. So it would be surprising if it like was weird and it had either like freaky clock stretching or got confused if you queried other addresses because it seems to apply to like everything, kind of odd. But not everything, everything, because this should go up to 7F. So it's like, it's not like a shorted pen. I actually think it really is responding to every address. Maybe, I don't know, kind of freaky. Okay, so that's this chip again. It's just started. Hopefully I'll get it working and then we'll document all the registers and then we'll have this dev board that people can connect to whatever, like bar display, round display, square display. As long as it uses that standard 40-pin TTL connector, you'll be able to use it to drive it from hopefully any single board in this computer. We'll see. So coming soon, that's on my desk. I like to show stuff that's not ready, not working yet. So let's go to the great search. The great search brought to you by DigiKey and it read every single weekly data user power of engineer and help you, yes, you, find the things you need on digikey.com. Lady data, what are you looking for this week? Okay, so this week, one of the projects that people really liked on the socials, on the threads and the blue skies is our Illumini USB hub. Let's go to the other one. It's called Skeet. Sorry, on the Skeets. So let's go to the overhead and I'll show off this design. So this is a really simple USB mini hub. So it's got USB-C here. That's the host to the host. And then here are four ports with power, data plus, data minus and ground. And this is just using an SL 2.1 chip, which is a very inexpensive, common USB hub chip that's like, all it does is the ports and it's not very smart. I hate to call things dumb, but it's not a very smart chip. It's a very basic chip. It doesn't do anything like overcurrent protection. It doesn't do anything like indicating when the port's active, you can't change the VID-PID or enumeration strings. It's very simple. And it's also a little big. Like it only really comes in this large SOIC. And one thing that I wanted to note is that while these USB hubs are of course good if you're like, oh, I have a lot of things on my desk or I want to integrate a product and I have a keyboard and mouse and want them to go through one port or maybe you're doing some like security hacking and you want it to look like a keyboard but really it's a disk drive or whatever. Having a USB hub in your embedded design could be really useful. Like for example, if you have a microcontroller that has native USB and you also have a debug port that's over USB to serial, now you have two USB ports and it can be like, it can be all clunky looking. It might not be expensive to just have a hub chip instead. And I've seen, I've definitely seen dev boards that have the native USB and then a debugger through like FT232H or whatever or a Simpsys DAP chip. They would use a little hub on the dev board and that allows you to have both USB ports connected without having to worry about like, which is the debug, which is the upload. Oh, there's like too many ports. So that can be handy. Note of course that if your native USB can be a host, this isn't gonna work for you because it's only for like client downstream, right? Just the data can't go, you can't have two hosts connected. But I still think it'd be interesting. So if you're having embedded Linux chips and they do come quite small, using the embedded Linux board, it has a USB host port or host pins and you wanna connect keyboard, mouse, type of controller, camera, whatever. And you want it to only go through one USB. You wanna have only one USB connection to the upstream host controller. These chips would do a good job. So let's check out what we can find on DigiKey. USB hub, so let's go to the computer and let's go find USB hub. Now, of course you're gonna have the hubs themselves, like desktop hubs, that's what most people think of. And of course you can use those too, but we wanna have the chips. So let's go to controllers because I think that's actually what it is. So this is an interface controller and yeah, now we're talking like hub controller, QFN. Now there's a couple of companies that kind of like dominate this as Infineon and TI and Microchip. So let's just look for active PC, sorry, USB. Let's look for stuff that's in stock and exclude marketplace. So we're just looking for what's available like right now. And for USB interfaces, all these look good. They can do a USB two or three. If you need three, of course, select that. A lot of these are stand-alones, but yeah, you'll see like Infineon, Microchip, Renaissance and TI are kind of like the big ones in this market. So the ones, they're all gonna work quite well. All of them are gonna obey like the USB specification. But one thing that kind of liked was there is this series that 25 one Xs from Microchip and these come in a very cute, like 28 QFN. This is really tiny. And this is a two-port hub again. Could be good for, I've seen this on dev boards where it's like one, there's a two-port hub to one USB C or Micro B and it connects with the debug and the device USB or the debug and the USB serial converter through one connection. And this is from SMC originally and then got purchased by Microchip. So very simple, like this 28 pin one is just like, it's just upstream, you put a crystal. Usually you do have to have a crystal on these because you have to give good timing and then downstream, fine, that's it. And then each one does have, there's the data pins. There's the detection pins. This is what you're gonna get for if you're going from like the SL 2.1 to something like this USB 2XX series, you're gonna get more pins that tell you what's going on. So you can do power enabling and disabling. You can do overcurrent sensing and you can do, you know, bootstrap. It's like, I guess you can make it so devices can't be removed. Filters, of course, the crystal reset pin, which is kind of nice. If you're using it in an embedded setup, I've noticed sometimes it's nice to be able to like reset the USB, especially when devices start acting finicky, they can take down the hub. And this one doesn't have any configuration that can be done over I squared C, but there is, I think this one, the 2512, let me find it. Yeah, this one, it actually has an interesting configuration setup. You can either connect like your standard 24LC04 eProm and the eProm has the register values that you want in it or you can control it from an I squared C controller and you can set up all sorts of specifications like, let me scroll down. Yeah, so you can set up the max power output, the USB enumeration, whether you want to have it be able to do battery charging so like no data lines are connected, but you're still providing power. And it looks like you can do some like port mapping and port swapping. Let's see what port mapping is. Port mapping, the downstream ports can be reordered or disabled in a sequence of four-monthful left unsigned. Oh, it looks like you can swap port one and two and three and four, which can be handy for your configuration. But particularly what I like is that you can set up the USB, VID and PID and that can be handy. So like when people plug it in, if you are using it to like combine two chips on one dev board, it's not gonna show up as the microchip, like people are gonna say, oh, I thought this was an Adafruit design, but when I plug it in, it says like microchip hub, instead, you can have it reuse your VID and PID, so it'll still say Adafruit ESP32 dev kit with built-in debugger. And it'll show up in the USB, the pop-up that comes up on macro windows. So this one, even though this has a little bit more pins, I actually really liked this one. I think, I did do a design for this, and let me see if I can find it. Development. No, I was under breakout. No, not the MCP. I did do a design again. I couldn't get chips for a while. In 2021, I did a quick layout of this family. Let me see. Eagle Canada wants to load up. So you can see it's similar to the breakout I showed earlier, except at the time I was using micro USB, I wanted to keep it nice and slim. It's got that cute QFN chip, and then I squared C you can configure over like the STEM at QT, or you have it broken out over here, but this is a two-port converter with USB host broken out and I squared C configurability. So I like this one. This is gonna be my pick, this one. And it's pretty inexpensive. It's, you can get ones that I think go down to like $1.50 depending on number of ports and whether it has the I squared C interface, but this one I like and it's plenty in stock. So check out the 25 USB 2XXX series. There's two-port, three-port and four-port versions, but I think if you're gonna integrate this into your own development board, this USB port gives you debugging serial or mouse and keyboard, and all you need one port, it's only a couple bucks. So check out this cool USB hub. It could be very handy for your next design. And that's our show for this evening. Thank you so much everybody for joining us. We very much appreciate your time. We'll see everybody during the week. We have Ask an Engineer Chantel, 3D Hangouts, JP's Workshop, Deep Dive. We also have a ton of other things going on. A lot with some surprises. And you're all, we're all the socials of people like are you on the yes? Yeah, we're on whatever's. The Thran Sky. Yeah, we're on the Skibbity path. Skibbity path, dash dash. We'll talk to everyone later. Thanks so much. Thanks everybody. Have a great night.