 Hey everybody and welcome to my desk. It's me Lady Aida at my desk doing some hardware Got two projects. I was working on this weekend. So I thought I'd show them off So maybe first up. Let's go to the overhead. I'll talk about how I'm working on this camera tester So I'm writing the tester for the memento camera It's kind of our all-in-one little camera board with the ESP32 S3 and TFT display and like buttons and there's a lot of hardware And you know one of the things we got to do before we ship it is I have to program it with codes, this is it with a preview screen. Hi I gotta have all the boards tested. Now to test the LED plate and the LED plate tester actually did already and it was really easy. I just used hold on Cables like totally Woven into everything else. Yeah, if you have cables are always hold the place Okay, so I'm pretty sure this is still programmed with the tester. Yes. So this is the Tester for the LED ring, which is a separate board like it's completely disconnected It all does is show red green blue and white if all the LEDs light up then, you know, it's working It's really easy to visual test and I just used a Pico for that I've kind of been changing all my testers to use Pico's Because they're pretty durable. They have a lot more memory then Arduino Uno and Another thing I really like about them is that, you know, the boot loader is built into the ROM so what I do is I make the first tester for every board and then There's people on the fabrication team and I say here's how you make the tester and here's the code And it's easier if I can give them a uf2 because you don't have to use like AVR dude to burn in a hex file I mean they can do it, but it's like I just think you have to use our way easier so This test was really easy only took me five minutes, but then the next tester I have to do is for the camera itself So the first thing is I use One of our Pico brains boards actually this was this board was originally here so Um to use a Pico brains board and I store the firmware in flash or on the SD card and then I program the board through this like adapter place You know this brain board is the same every time and this adapter changes You can see this one is like, you know, it's just my mental on it And the way this works is I've got these Test pads here for reset and this is the boot pin And that's how you get into the wrong bootloader on the ESP 32 s3 and then here hidden under the TFT our two RX TX pads and What's interesting is, you know, I was originally making these testers and I was bootloading them over USB To actually use the wrong bootloader with like USB serial and I would use that to program But actually is a little bit faster to do your RX TX even though like USB is Like, you know, 12 megabits per second, so it's like 1.5 One yeah 12 megabit and this would be You know Two megabits. I think it's kind of the fastest you can do maybe three megabits But ends up actually being a little bit faster probably because of like delays and encoding and packetization and stuff So and it's also just a little bit more I don't say durable but less flaky like sometimes USB uploads fail But I've never had a failure with the you are bootloader So, um, you know, you would you press this on to here and then the Pogo pins make contact with the You can kind of see they make contact with the the pads and That's how we do the programming So what I have to do is I have to write the test program and one thing that I've done recently that saved me a lot of Time and programming and like effort in you know, distributing factory test firmware Is the code that's used to test the board and the code that the test like the shipping demo is actually the same example And then I have like a flag I have a way of detecting whether it's being tested or you enter test mode And if you you're telling it enter test mode the factory code will like go into test mode and do the test and that way I'll have to burn one Code in I have to like burn one binary file in and that binary file You know, I said like I said, I send it like a york command to say hey, I'm going to put you in test mode I do the test and then when the customer gets it it boots up into the factory demo and they don't even Know about the test code and like everything we write is open source It's not like oh like I have to keep it a secret like if you really wanted to you could like Put it into test mode by sending it the hex code af. That's usually what I do the to signal. It's time to do test um But like and I don't It's not a secret and uh, it's all good. So, uh, I've been writing the test codes and go to the computer Um I'm writing the test code uh with platform i o and the reason I'm using platform i o is it's it's just very like lots of um revisions update, you know, I have to like I'm constantly like tweaking the tester and adjusting it and making it like Okay, what can I test first and how do I optimize it? It's there's a lot of recompilation and um Arduino IDE is just not as fast as platform i o um I will eventually have this compiled in arduino because I wanted to include the bootloader and platform i o doesn't and I Can't quite figure out why Um, it said it said there's good reason for me to make sure it compiles an arduino ID but to start um, I'm just testing it with um With platform i o Um, and so right now I just have a Boolean that tests whether it's testing and then just as I'm like done with the test You know like finish the test program Um, that's when I set this variable to false and then I'll have like some again something that reads the u r Or the usb and like oh if it's connected and it says something something put it to test mode um, so One one another trick I do when I do test mode, especially for testing Complicated boards is I have this repetitive loop that tests over and over again because sometimes Like a test will fail because of just some timing or you'll see like I have a microphone speaker test Or an accelerometer test and if somebody's holding it off, I don't want to just fail It should retry a couple times because it it's probably okay. Just you know something jittered it or um Like a pogo maybe didn't make contact first with second or like they had just placed it or whatever So, um, I have you know, I try to chunk off the test into sections of like You know, I'm testing this element at a time Um, for example, you know, I tested accelerometer. There's a couple tests I perform and then once it passes that test I set this global flag. It says test that part has been completely tested correctly I don't need to do it again and that way it just cleans up the output because that way I'm only I don't see all this like okay. This path this past. I just want to see what failed um, so if if we're testing, um I have the the display shows the test as well as the um Serial monitors if you go to the overhead real fast, I'll I'll just show the test program so this is uh You know the test program so for example um In this case the accelerometer spend the accelerometer just failed because it needs to be level and I'm holding it tilt right now And so, you know, if I tilt it forward um I'll turn it off. Um It it stops at the uh speaker microphone test One of the other things I try to do is if I can get like two things to test each other That's kind of handy So often I'll have like a neopixel that's tested by a light sensor Or in this case there's a speaker and over here there's a microphone And so I have the speaker make a loud sound and then the mic Picks up the sound. It's not I'm still tweaking the numbers a little bit. Um, because like each each board has a slightly different, uh You know speaker volume or a microphone response rate So I have to just like tweak the numbers to get them to run nicely. Um But you can see Maybe there you go. So now once it passes the, um Like speaker test you can see it's tested like the sd card Actually, I'll show if I remove the sd card It first verifies if the sd card is inserted Um, and that actually tests the io expander as well because that's that goes to the io expander and then You know, and then what's nice is that I can move the sd card and it's like it's already tested So it doesn't test it again And then the final test is it's like, okay, press the buttons. So in the back, there's the gpio buttons and so As you press each one They turn green to let you know And then the shutter button is last and then it will go into Camera mode although I think Let me try again. I think we're moving the sd card made it upset Okay, so pressing the buttons Yeah, and then it'll go into camera mode And then, you know, this is the final test because if you see yourself or whatever if you see something on the screen Any way of your hand uh in front and it shows up on the tft then, you know, the camera works Um, and the display fully works and now you're you know, the board has basically passed tests and everything You know for the camera to work all the power supplies have to be good All these gpio have to be good like the camera's not going to work if any one of the gpios isn't working because It does uh She's that true No, I think actually to do a color bar test also and then I'll I'll check that the all the colors appear Another thing I can do is have it send me a jpeg I don't think this is a jpeg but maybe it is if you send me a jpeg and it decodes that means that the full 8-bit interface is working And And then you know the buttons have been tested the microphone the piezo so That's it. I mean, that's kind of my my test procedure Um, and then this is also by the way this camera mirror thing is also the factory demo like when you get it um It says here I don't know if you can read it but says battery 6.6 volts and the reason it does that is actually I've I've messed with the uh camera game slash resolution. I have to like the adc Gain for the microphone after so we set that before I pop into camera mode. So a couple things remaining Um, but otherwise this is pretty good. I think it's a couple hours right the test Um, but I like it. Okay. So the next app Um, I'm still working on this, uh, icn um Or let me put this away I'm gonna turn this off so it doesn't beep So I've got this It's such a mess here. I've got this. Um icn board So we were working on this icn breakout for the icn 6211 and this is actually working great But now I actually am trying to kind of like Revive this project where I have these screens that I bought that are four inch 800 by 480 And I wanted to turn them into like a pi tft hat So this is an icn This is the dsi connector and then the this cable goes over here ever moved it just so you can see the wiring Um, but it's not working Just why it's in pieces And I'm not sure why and one of the things that is a little um tough is you know If you guys remember a couple weeks ago showing off like oh, you know, you can test You know, I've got this icn hooked up to this display And because these this round display uses the st7701s, which is like a really nice chip That I like and I'm friends with you can send All pixel on all pixel off command modes To that display and it will at least tell you the spi interface is working But this chip if you go to the computer is a er Uh er 6148 what is who freaking knows it's some guineasauce chip, which I've never used before And I'm sure it's wonderful, but it doesn't have that command if you see it says like Enter invert mode 21, but then it doesn't have 22 and 23, which is the all pixels on and so I was like, oh, well, maybe I'll Enter an exit invert mode and I'll see like the pixels change, but that actually wasn't working either Um, and then I you know, I had this other setup with Well, be careful, maybe I'll just remove the overhead rather than be bored Uh, okay, so can you go to the overhead and then? okay, it's a little Wash this out. So here I've got um Actually, no, this is not wired up to this. This is a hat and you can see it's working And um, this one has a Um, this is using dpi and it's got a samd Uh, so you go a samd 09 on it and so I was able to like, you know, we program And test the board with the samd 21 to just to send the initialization commands to here But the display doesn't turn it doesn't the invert mode only works if it's getting a valid vsync hsync Um dot clock Signal which is really annoying because that's the thing that's not working like if it was working I wouldn't need to test it But it's not working And I think that either it's like sensitive like maybe the hsync isn't good enough like maybe it's 40 hertz It should be 60 hertz exactly Or maybe something is config like I don't know maybe the icin is generating 800 by 480 instead of 4 e by 800 I don't know exactly what the deal is Or the dot clock isn't quite right And so i'm i'm i'm not like i'm i'm not stuck like I know what to do next Um, but it's challenging because I don't know On this board here. What is broken? Is it the? Um, at tiny sending the spi commands like I think it's working like I see this display flickering Or is it the icin not sending correct? Um data for the color bar test So, you know the one good thing about ttl displays is that they are um Like very basic um in that It doesn't matter what's being sent on the rgb and rgb lines like they could they don't there's no like Knowledge about those all that really matters is that The hsync vsync data enable and pixel clock are correct and so Um, I don't know if like you can see but really Close up How close it oh I can get pretty close Okay close up my autofocus and i'm gonna go Plus plus plus plus plus plus plus plus plus plus So what I did is I removed um here this had a um a 402 times four um With sister pack which is used to just reduce a little bit of ringing and um, I removed it and I'm soldering directly to it so I can pipe my own um vsync hsync data enable and pixel clock and then This data, you know, this is definitely there's like signal. It's twiddling, but If the chip is upset because the data isn't coming in in the exact right clock speed or the right synchronization or whatever um in theory if I pipe in This from that working display that I know works from the raspberry pi like the raspberry pi is generating correct um hsync vsync data enable and clock Um, it should work, but it's still not working. So I don't know. Um Hopefully by next week off. I mean it's one of those things like once it works They'll all come together, but it's like I don't know where the broken thing is but um, That leads me into the great search Where The great search brought to you by did you key and ate a fruit every single week lady to use your power of engineering? W s you find the things that you want and need on did you get calm thing? Did you key lady to what is the great search of the week? Okay? So if you go to the overhead back I was just talking about How I'm trying to debug this board and I'm having some failures with these signals They're the displays and recognizing these synchronization Signals is correct, and I don't know why and I'm in a I'm in a snit And so I removed one of these resistor packs in order to get directly through that data So I can pipe in known working data and at least then I can remove one pin at a time until like Magically works. I don't know And to do that I soldered um these wires on and I was like, oh, you know, I've never covered Wire wrap wire, which can be really really handy. Um, this is Kynar wire wrap wire Oh my god, this is so close and um, this 30 gauge solid solid core wire with the called like it's called kynar sometimes Coating I use it all the time for debugging and hot wire fixing boards Sometimes it's called blue wire because people tend to use the blue wire for wire wrap Hacks Very very common. Um, I definitely recommend if you're doing pcb designed to have some of these because Um, you can get into you can see quite small pads Um, you know, if you're using like eight eight or 10 10 mil wools, um, you could definitely use this wire So let's go to My computer go to digikey another option Um, because I want it because it's like we just have you in wire wrapping to digikey a little boring You can also use a magnetic wire. Um, and this is from elm chan who like somehow Um has written all code that everyone uses for electronics everywhere. Um, really cool person. I hope one day to meet them Uh, so they recognize they they've made some beautiful designs and they use magnet wire and magnet wire is also a very Thin wire. I'll say one thing that's nice about magnet wire is that um, the enamel on it you can see it's It the enamel is what makes it non-conductive. It's often used for coils For, you know, so it needs to be coiled up and then the enamel keeps it from conducting But it's very very thin. You can get it much thinner than wire wrap wire And you don't have that cover that might get in the way But on the other hand, there's the risk that if you nick it it will conduct. So it's like it's risky It's like more advanced because it's riskier. Um But it allows you to like really complicated boards like this one you see is a mix of syc Looks like, you know dfn and uh tqfp. So Pretty cool stuff. So let's go to Actually, let's go to wikipedia and I'll talk about wire wrap. So wire wrap wire was originally used um for Wire wrapping around these pins that were used to create pcbs And this was how you did point-to-point wiring before printed circuit boards were basically like two bucks a piece They used to be Virtually impossible for people to get very very expensive And so students would use or even engineers would use wire wrap wire and they would have these posts that they would Wrap using a wire wrapping tool. Oh, actually, sorry. This is not, uh, I don't know if they have the tool here Yeah Wire wrapping tool, uh, and so this with a wire would snake in and then you would you twist it and um, it would make this perfect tight Wrap and it would be like a cold weld. It would be a good soldering connection without soldering And you could undo it and you could with colored wires you could trace it around and you could of course make these complicated 3d shapes Uh, so wire wrap wire You know, which is why? Had his own category Uh, so let's look at what is available. So it's like 99 which doesn't seem like a lot, but it's like There's not a lot of variation in it. So let's look at active And only stopped it, uh in stock So just you just get rid of all the other ones. So the wire gauge 24 gauge seems really thick. I think that's what actually be used for like wire wrapping power connections. Um for PCB hacking 30 gauges plenty It's more than enough Next up, um, what color? Basically everyone goes with blue. I'll say that there's one interesting thing. So there's two Jackets available. There's pvdf Like, you know pvc and that's what I use and it's perfectly fine. You could also get Uh tetrafluor which like a thick teflon. I think is what's sometimes called And these are good at etf etfe is going to be more expensive Um, significantly like, you know, this is a hundred feet And it's like 40 bucks instead of, you know, 10 bucks um This doesn't have as much temperature. It's it's less, uh, it's more resistant to temperature variation And I believe that when you solder, you know, you solder the the tip of the wire the Jacking doesn't pull away because it's more resistant However, having worked with teflon wire. It's a total pain the ass to to strip with wire strippers So it's like you have to have it like really good quality wire strip But you can't just kind of oh like it's close enough and I'm just yanking it's not if you just you have to like really cut through and yank rather than just sort of pulling the jacking off so um You know, if you absolutely need the temperature resistance go for it um, and then you know You could go by price, uh, you know, we have A role you can get um Jonard has multiple different colors available kind of like these photos red yellow green Honestly, a lot of people do blue, but one thing I thought was interesting. Oh, it's interesting. You just get like little Strips, um, is that there was a version Because I was like looking at this and I was like, what do you mean with dispenser? so, um, if I had to do it first off there's this cool like Five wire color kit, which I recommend if you're like going to be doing a lot of wiring Uh and repair it's a little bit more. It's like 85 bucks can get a lot But this is definitely cool So one thing that is really annoying about wire wrap wire is you buy a spool of a couple hundred feet But you're never going to get to use it because it gets like knotted so quickly because it's it's like you're pulling in and it's It twists around itself and then it comes off and you rewrap it and then when you rewrap it it gets tangled You can get them with dispensers Which I did not know If I was going to start my life over again With all the knowledge I have She's like it's like a meme. I would get Wire up wire with the dispenser. So this is what I recommend not Just a spool get it in this casing. You'll actually get to use the whole thing It's just in my pick For the way that's a great church Where Righty, thank you so much everybody. Thanks everybody here in the background. We have a uh Little engineer here who wants to Be fed and then she wants my tattoo. Yeah, so thanks for joining us. Thank you We'll see everybody throughout the week but shows new products and more And thank you so much for spending your sunday night with us. We'll see you next week. Bye everybody