 and welcome to the show. It's me, John Park, and it's time for John Park's workshop. Thank you, everyone, for stopping by. I see we've got some people over in the chat in our YouTube chat. Hello, Theodoros Cosmedis from Greece. Thanks for stopping by. Also, Gary T. Maico. It was like this one I found at Bill Ferguson, Johnny Bergdahl, Devo Dessa. Hello. Thank you all for jumping in over there on the YouTube chat. Of course, thank you for the people in our Discord chat. That's a good place to come by if you're wondering, if you're over on Twitch or some other streaming, Facebook, for example, Periscope, LinkedIn Learning. If you're wondering where the chatters are, a lot of them are over here in our Discord. And you can get there by going to adafru.it-slash-discord. And that'll get you right into our Discord, and you'll want to look for the live broadcast chat channel. And that's this one here that you see right there. Hi, Dexter. Hey, C Grover, Mike P., Andy Calloway, Jim Hendrickson. Thank you for jumping in. Ronan Felin. Hey, from New Zealand. Wow. Thank you for stopping by. Excellent. Let's get this thing going, shall we? What's happening? One thing is I just took delivery of a part. It just arrived. And we're going to use this part in a little bit. I hope it's good. I haven't even opened it up from that little wrapped piece of newspaper. It's in there. I got it out of the box, but I wanted to wait to check it out until we're up and running. By the way, I was messing around with my mixer. And so I did want to check levels. Someone said that sounds good. I don't know if that was the microphone sound you were talking about. But let me know. See, Grover, if you can check, you're always good with the level checks. I appreciate it. And to answer the question, Michael asked, did I hear periscope? Does that still exist? No, I don't think periscope exists anymore. We used to broadcast to there. Also mixer, that was the one that Microsoft bought, but then decided to sunset. Nice word for kill, I got rid of it. Let's see, if I check my, yeah. So we're mostly Facebook, YouTube, and Twitch. I got set right now. These things change over time. All right. And someone says, arrived in news print, sounds dodgy. Yeah, it's from eBay. It came from eBay. OK, so I'm a little low. I can thank you for the level check. I can goose that up. And let me know if that goes too hot. I don't want to go over around minus 2 dB. But hopefully that's a little better. Let's see. Michael says they were a Meerkat adoptee, but it was gone even sooner. I don't remember Meerkat. Was that another streaming service? Hmm. OK. So moving on, some housekeeping things. First of all, we have a jobs board. It's over here at jobs.adafruit.com. And if you're looking for work, or if you're looking to hire someone, it's a good place to check out. It's entirely free to use. You don't have to pay anything to post a listing. If you're looking to hire someone, you don't have to pay to post your resume. If you're looking to get hired, just log in with your Adafruit email.login. I think that's all you need to do in order to post. And those are vetted by Lamore and Phil. So you know it's good stuff. Looks like analog devices is trying to hire a firmware engineer for battery management up in San Jose. How about that? Could that be the job for you? Yeah, go check it out, jobs.adafruit.com, right there. I have a show on Tuesdays that I do. Some of you stop by for those, and I appreciate it. It is the JP's product pick of the week show. It looks like that. And this week, the product pick was the LED Arcade Button 1 by 4. And during the show, we usually have a humongous discount. There's a 50% off discount this week on that item. You could buy a maximum of 10 of them. So if you have a big Arcade Button project, like our good friend here, the Arcade Synth Controller, that one uses four of those Arcade 1 by 4s in it. So they're handy for wiring up your LED lighted Arcade Button projects. And then I like to do a little recap. So here is the one minute version. Take it away from me from two days ago. It is the LED Arcade Button 1 by 4 board. Imagine hooking up Arcade Buttons before this. It was a lot of wiring. You have four wires per button with these lighted buttons because you've got the switch and you've got the LED. This drives the LEDs with PWM. This reads the switches. So the seesaw chip takes care of all the digital I.O. on this board. And then it just is receiving and sending messages back and forth to your microcontroller over Stem-A-Q-T. I have this here. This is a little button box. I've connected them up to another of these Arcade Button boards. And then I just have my little Stem-A-Q-T cable running there. When I press any of these buttons here, we get them to light up. And the first set, those are still working as well. It is the LED Arcade Button 1 by 4 Stem-A-Q-T-Based Seasaw Board that requires no soldering to hook up your lighted Arcade Buttons to your project. And also, by the way, if you head over to Adafruit Products page, Adafruit.com, and click on Products in the search bar, if you type in Arcade or just the beginning of the word Arcade, you will see we've got a lot of different buttons that you can use. These 30 millimeter buttons are sort of a standard size, Arcade size. And you can see the ones with a little animated gift. Those are the lighted ones. These ones that are just called translucent clear, those don't have the second set of contacts for LEDs. Then we've got a bunch of different sizes, three sizes of wiring harness for the buttons. And that's because as you scroll down, you start to get into these, these massive 100 millimeter big, big buttons. I actually built, you may remember a while ago, I built a button for use with the obstacle course, Ninja course timer for a Ninja training gym for their competitions. And that had one of those big 100 millimeter buttons on the top of it. Use some more moderate 60 millimeter ones. And then we also have some of these fun shaped ones. There are these triangular. Where'd they go? Maybe they're not called Arcade. Let's look up triangular. Let's type that properly. Tuh, rye, ang, there you go. LED illuminated triangle push buttons, aka 1960s sci-fi button. And we have those in a few colors as well. A lot of colors. So any of those would work with this. It's not limited to Arcade buttons. But that's certainly one thing it's good at. All right. So, moving on, this is probably a good time to jump into our Circuit Python Parsec, where I like to go over a little sort of simple, short technique, something you can do inside a Circuit Python that you may have wondered about. So, here we go. Right, let me get set up here. And I'm gonna talk about this before I demo it. So, this is, for this week's Circuit Python Parsec, I wanna show how you can use the Circuit Python audio mixer in order to crossfade between two audio files as they are playing. So, this was a helpful tip from Todd Kurt on his Todd Bot GitHub Circuit Python Tips and Tricks repo. Here you can see I am importing audio core as well as audio mixer. And then the audio IO, I'm getting audio out so that I can send audio over one of the pins on this board. Here I'm using a Metro M4 over the A0. You can also send over the A1. They both have a DAC. I'm setting up the number of voices here as two and then setting up the two channels of the board as a stereo output. And then my mixer has a, in this case, a two voice count. It sets the sample rate, the channel count, bits per sample. And then we set up the audio mixer and play that object. Then we're setting up two voices, voice zero and voice one and setting their levels. So, this is the kind of key to using the mixer. Voice zero level and I'm setting that at one. So, the first voice or first wave file will be at full volume. Voice one, that's the second one, that'll be off. So, here I have these two samples. One is a drum loop and one is a synthesizer loop. So, we start them playing and they're told to loop forever, but we're only gonna hear the first one because of the mixer. Then throughout the code, what we do is gradually fade one up while we fade the other one down and then reverse it. So, we'll hear those come in and out. So, what I'm gonna do is turn on a amplifier over here and set this to playing and you should hear and see in my serial output what's going on. Here's the synths, gonna play for a second at full volume and then the drums. And then it's just gonna repeat that forever so I can turn that, turn that down. So, you can see that's a really cool way to have some synced up loops that are playing and just bring in the ones you want without having to worry about resetting them or timing them to start at an exact moment. And that is how you can use the audio mixer inside of Circuit Python. That's your Circuit Python, parsec. And actually, one other thing I'll mention, you'll see this a lot with these audio projects. There's a little resistor capacitor circuit, a little RC circuit that I've set up here so that the audio output coming from the board is a little less noisy. This kinda smooths out and filters that output a bit using and I have, in this case, I've actually unplugged once. I'm only using one channel if this going into a mono amplifier and setting it up for one channel but this circuit has these two resistors and this capacitor going to ground that filters that noise a little bit, which is nice. All right, so thanks Todd for that excellent tip. That's super handy and I may end up using that in my project that I'm working on which is the dial a song. Might be useful to use some of that audio mixing instead of just the start and the stop. So in the chat here, there's an excellent question actually. Let me bring my Discord chat up here and the question is for Mike P, can that audio only be done on certain boards? So my favorite board to use for Circuit Python audio is an M4 based board because it has the audio is a digital analog converter so there's a proper analog out. There's actually two of them so you can do stereo on the Metro M4 Express. This is the Metro M4 Airlift I have here, the Feather M4, it's great for that. You can also use the M0, it's just M0 is a little underpowered for other stuff and most of our M0 boards don't have a lot of memory on them to store the songs. The RP2040 actually, you can play audio in Circuit Python using PWM. It doesn't have the DAC but you can use the PWM. However, there are some issues with the RP2040 and the PWM audio out sometimes that you encounter including some noise. So I was having a bunch of noise problems on the phone project. Actually when I was playing that last night, playing around with it last night, I started to add the touch tone sounds when we pressed the buttons and all of them were preceded by this kind of crunchy clicky noise. That went away when I moved the project off of the RP2040 and onto the M4 board so I know there are some bug issues that are in the repository for RP2040 Circuit Python about audio so you can go check those out. And we would love if this is your bag for people to go have a look at some of those bugs and maybe contributes to fixing those. So that would be lovely if people could take a look at that and we can get some of those issues worked out so that the PWM audio crunchy issues go away. Let's see. Oh and yeah, over in our chat by the way, you can see there Todd has posted the code from his tips and tricks page. And yeah, I did add some print statements to make life a little easier. So if you take a look at those, you'll see this right here, I'm proud of this because this is very nice and legible if you look at what my output looked like. I have drums, colon and then a value that's got two decimal places and since colon and a value that has two decimal places. And that's done using this printf trick here or method. Not really a trick. And so there I have in quotes the whole thing. I have text in the plane here, these strings and then inside the curly brackets, I have a variable or a value rather which is whatever my level is set to at that moment as it ticks up or ticks down. And then this here by putting a colon 1.2f, that means I'm gonna show a floating point value to two decimal places and that makes it nice and legible. So that's the addition I made on top of the code that Todd had there. But go check out his tip and trick page. You'll find all of that on there in fact. All right, what else is going on here? Let's dive into the project. So to catch you up, I have a couple of things going on with phones, with touch tone phones now, these DTMF phones. And I'll actually, let's go to this. I'm gonna go to my down shooter here. Let me unplug the Metro project from there. Set that to the side. So this one here, this is that phone, right? And I pulled the shell off. And last week on the show, I opened it up and much to my surprise, the keypad was not what I was expecting. So I'm gonna show you what's happening with that. Let me set my overhead camera, so you can see that a little better and bring that in here. So this one you can see here printed, this is the model number of this keypad. This is the 35Y3D. It's part of the 35 series of keypads. This one I think is from 1978. I think that's a date code on there. So March of 1978 was when this was made. And you'll find these into the 80s, into the early 80s I believe. This is the original dual tone multi-frequency keypad that Western Electric built, which is a subsidiary of Bell by the way. And if we peel off this little insulating molded or vacuum formed plastic, here's what we find about this keypad. It is basically two things in one. It is an input device, and it is the tuned oscillators that send the dual tone multi-frequency signal to the phone. The wiring here is largely about cutting in and out the audio and mic so you don't hear an echo of your dialing. It cuts those in and out. And it's about sending those frequencies down the line for dialing. So when you press something like the one, there are two frequencies playing that are a very specific pair of frequencies that have no harmonics, very clear. And so we have one frequency for all of these and then a second different frequency for all of these. So they're unique. And the way this works, when I press something like the one there, let me get you a little closer in fact, see how this focus looks. Okay, so you can see that pretty well. So as I press the one, there is what they call a, what do they call it? Not a clutch and not a cam crank. They call these the cranks. There's a horizontal crank. So horizontal to the row here that's closing this switch. And there's a vertical one that's on the bottom here, I think. And so that combination of those two cranks is unique to the one. If I press a two, I still get this one, but I get a different one, which is on the top here. And then same with the three get the same side, switch closed and this other opposite end. So it's a really cool little mechanism. There is a nice technical document, Bell telephone technical document on the design that has some exploded drawings. If you look, I think it's actually for one of the ITT, which was a later manufacturer. Their version has a nice exploded diagram of those. So the problem is I can't really use those as a switch because they're really integrated into this circuit, which is this pair of inductors. And actually each of these is four coils, I believe. So you are triggering two different of the tuned oscillators here to get those frequencies, which are something like 297 and 416 or something like that might be the two tones that are played with the one. So I tried a bunch of ways and maybe someone else has figured this out. I couldn't find anything online about it and just poking around with a meter and trying things. I'm not really able to use this as a switch. I could probably try to decode the dual tone multifunction. So send this thing the power it wants and play the actual tones and decode them. That would be pretty cool, but it's kind of not really what I wanted to do on this project. What I wanted to do is use a matrix keypad. And so if you look at more modern versions of that phone, you will find a keypad in them that's much, much more like this type of matrix keypad that just has usually a set of seven or eight pins so you can grab the matrix rows and columns. Doesn't even need to be a diode matrix, very easy to read from. So what I did in the short term is I opened up a more modern phone. So if you look at that phone right there, let's open that up and you can see, I'm gonna show you a demo at first what I have it doing. So to talk about what it's actually doing, you'll see the big set of ribbon cable coming up. That's, I soldered to a ribbon cable that's inside the phone that connects the phone pad to the rest of the phone's PCB. And excuse me, the matrix that I'm reading there, I'm just reading the four rows, three columns. I'm not worrying about the redial button and stuff like that just yet. And when I type in a number, I'm either recognizing the number and playing a particular song, or I don't recognize the number and I play a wave file of the, you've dialed a non-working number. So that's what I'll demo at first. And what you can see I've got going on there is the little RC circuit to get rid of noise is over there on that breadboard. And I've got power and audio coming from my feather wing or feather tripler into the little mono 2.5 amp or watt rather amplifier. So a little mono amplifier. And then that's going to the speaker right now. I'm gonna try hooking it up to the headset of the phone, but it's really hard for you to hear that because it's a pretty small speaker that's localized for putting right up to your ear. So I've got it hooked up to a bigger speaker right now. Ignore the switch coming off the top. I might add that that was actually from a previous project that's the switch hook. Since the switch hook was broken on this phone I just made it external to hang up or pick up the phone. So let's go check that out and then we'll dig into it a bit and then we'll see if we're able to move this all back into the real phone I want to use it in, which is the 2,500. So let's head over here and I'm gonna bring up my discord chat on my phone because I forgot my iPad today. I wanna see my discord in case anyone has questions or comments. There we go. I can just set this over here that should do. So here is what matters on this right now. And you can see I've got the little OLED display there, OLED feather wing. This currently has no numbers input. So the first cool thing that you'll notice is I finally have the touch tones happening when I play. Okay, so essentially the wave file that's being played I'm actually playing a whole bunch of wave files, these little short ones for the numbers being dialed. Then when that's recognized as seven digits it checks to see is that in a list of existing numbers and it'll play a song that's associated with that number or if it's not recognized then it plays that wave file we just heard. So I can play that, there we go. Go ahead and I won't, yeah, you know what? I'm gonna reset it because what I have happening right now on reset is a dial tone playing. So I'm gonna get my, unclip my mic and hold it up closer so you can hear that a little better. Okay, and I don't have Jenny playing so we avoid copyright strike but I do have just a little synth noise happening there so we'll end up putting something better in there. Probably some Bartleby songs is what I'll do so we can keep these online. And now dial another phone number that'll play a song that you might recognize. And sorry, I just realized you probably couldn't hear me too well while I was holding the mic down there. So that's a, that's that little song Street Chicken that I used to play those for Make Code Minute I think. And one thing you'll notice is that song is really mid and low range heavy and so it doesn't really sound very good coming out of this little speaker. And this one's actually bigger than what I'll be putting my audio through in the final project because we're gonna have a little handset that we listen to. So what I want to try next was just to see, I haven't tried this since I switched this project over to the M4 and got rid of some of those noises I was hearing with the PWM out on the RP2040. I want to try this speaker inside of here again. So let me zoom out just a little bit so you can see what's happening. So my amplifier board here, this little Class D amplifier board, that's got a ground, the audio differential ground, the audio input coming through the RC circuit and the power. And I'm actually using 3.3 volts. It seems okay. LaMore mentioned to me yesterday I might want to try five volts on that, which I can grab at least right now off of USB. And then it's got these terminal connectors to go out to the speaker. So what I'm gonna do is actually, I've got, this is a wall plate and it has our modular jack broken out from the phone. So it's an easy way for me to get to this speaker here. And so what I'll do is connect up to these two wires coming from that speaker and let's see if we hear that or not. Hey, that's pretty good. That sounds good. Okay, that's not bad. And I haven't taken this one apart to see what the speaker looks like, but I'm guessing it's not too different from one of these little Mylar kind of speakers. The handset for the original phone is quite a different speaker. And so it may be tricky to drive this using this amplifier in this circuit. This is, I think, expecting a higher voltage and is a pretty low impedance element. So that's the earpiece. Let's just see if we even hear anything off of it. I haven't tried it since I switched this circuit around. And it just may not be easy to drive that with these sort of simple off-the-shelf parts. So I may swap a different speaker into this handset eventually. Let's find out. I also found when I was trying to push this before I needed to really lower the gain. There's a little trimmer pot on here to lower the gain on that amplifier. So let's zoom in here and try that out. Oh, not bad. Hey, that drives up much better. Hey, that's great. Okay, so I think some of my issues may have been the noise. There was that burst of noise with the PWM that may have been overloading this guy. So this actually sounds pretty good. Let's hear our dial tone on there. That should be a good test of. So hopefully you can hear that and then some numbers. Yeah, it sounds pretty good in the ear. I could probably even turn the gain up a little bit. So I'm very happy. So that means, whoops, we just lost a ground plug. What that means is that I'll be able to do internal wiring to one of these RJ9 plugs. So these have two conductors for the microphone element and two conductors for the speaker. And then it's just a matter of figuring those out, looking inside of here. I think they keep the color coding consistent. So if you look here, there's the jack and then there's the white and the green wire leading up to the speaker. And this is red and black wire leading to the microphone element contacts there. So I'm glad I'm not trying to use the mic because that's a whole nother freaky thing with these carbon mics or whatever they are. Good, okay, so what I wanna do next then is take a look at what came in the mail, which is hopefully the replacement touch pad that'll allow me to use my 2500 keypad instead of this little con-air phone. So unboxing here, dun dun dun, or unwrapping and we get some little instructions. Set this down here on wiring, that's great. So that shows you what the wiring off of that touch pad into the 2500 should look like. Which is good, because I'd like to try to preserve that ability to use the phone actually as a phone. And again, like I've mentioned on the rotary phone project, the fact that this uses screw terminals and spade lugs for basically every connection inside the phone means that it's really easy to rewire stuff and to get it back to functional without doing any destructive stuff. So there's no need to cut wires, no need to use soldering, you can generally just connect things using these little terminal blocks like I did on the rotary phone. Also an interesting thing about these is I believe in the earlier days of getting your phone service part of, oh look, I just broke a little brittle piece of plastic. Little piece of trim just came off. In the earlier days of phone service, if you had a special request like you were paying to have a second line or some special service on your phone, a lot of the customization could be done by the installer by making some changes to wiring here. So there was sort of a reprogrammability of what the phone did by connecting to functions that lived in the phone already, they just weren't hooked up. So if you figured it out, which is what a lot of early phone hackers like to do, if you figured out those systems, you could get some new cool functions out of your phone that were basically in it there as long as you were getting the right service down the line. Okay, so I'm gonna put this over here and now we can see this is much more what I was expecting when I first opened this phone last week, which is a matrix, button matrix with solder points. Yay, so that means this one is, I think using an IC probably to generate the tones. That's probably the dual tone multifunction chip there. In fact, if I can read that out, maybe someone can look and see what one that is. Where's my flashlight? Put a bunch of light on this so I can try to see it. Yeah, HW9171, maybe zero APJ. I bet you that's a dual tone multifunction chip. And so we're actually not gonna need any of this part of the board. I will, so I just did all that talking about hooking up, well, anything coming off of here is gonna be dual tone multifunction tones that we're not using. Could for another project, but what I'll do is some light little tack soldering onto here so that it's a reversible hack, but that's what I will be feeding into this feather here instead of this set of ribbons on this phone. In fact, to show you what that looks like, let's take a look at this phone here. I'm gonna, I put a couple of screws in to hold it shut. I can't actually close it all the way because of those ribbon cable coming out of the side there. But this isn't much different than that updated keypad. And like I said, this was about, I think, $17 online from a phone parts company. So you can see, in this case, I didn't care about this phone much. I'm gonna cut that same kind of ribbon cable that connected the matrix keypad to everything else. So this has the IC for dual tone multi-frequency right inside of here somewhere. So none of that matters. That's just a paperweight. And this is the matrix I'm reading there. So I just used some ribbon cable soldered to that existing ribbon cable after stripping it a bit and then put down some capton tape to try to hold things in place. So that's exactly what we should be able to do for this one here. And let's see, a good way to test this is it'll require, what I'll do is I'll probably try, let's see how many are there? One, two, three, four, five, six, seven, eight. Okay, so this is, one of these is probably not used at all because of the type of matrix this is. And if you have a fourth row like an auto von phone, then probably I'm guessing some parts here were reused, which is why there'd be eight, but this is really three by four is what we're reading, but I think it's set up for four by four. And probably this chip can do those four extra tones because there's an extra column frequency in there. So let's see, to get that into shape for testing, what I'll do is I'm gonna disconnect the keypad from this phone here. And I've got a nice little DuPont connector there that's going into pin A1 as the first one I'm reading. So I should be able to remember that to plug that in later if I need to. So now this one here, you can test it out a bit by plugging it in and just getting a couple of jumper wires to poke around with. And I can zoom in. So right now I remember from before I had, I think my first column is in pin A1 and then my first row is I think in A5, it might be A4, so let's see. A1, two, three, four, let's do five. Okay, so this I think should be a one. Why is that? No, all right. Am I thinking absolutely wrong about this? No, that should work, right? There we go. Okay, I found a three. So that's on pin A2. Oh, yeah, that's right. I'm ignoring A1 because that phone had a first column of the redial buttons. Okay, so this is a three. This is a, I gotta wait for that to, we're waiting for the message to finish. So three, two, okay, and here's the one. Great. So what I should be able to do is the gymnastics of holding, I might clamp a button down, but let's see if we can do it like this. So I'll reset display there and let's try, yeah, you know what, I'll clamp the one down and then I'll touch some different contacts. Brake in anything there, okay. So the one is now held with a little clamp. Yeah, there's the one. Okay, so here's the two. Oh no, it's just sending ones on everything, all right. That's no good. So did I pick the wrong? All right, back to the drawing board. I may need to disconnect this from here. Same problem, right, this is in circuit so I may not be getting as nice a result as I want. So I may end up removing that little hot glue they have there and desoldering that ribbon cable so that I can get just to this, this is all we need. We don't need any of that circuit there. So let's see, I think that covers what I want to do today. So that's my next phase in this and then you'll see that if we unplug that. By the way, also another thing I need to look into is are those normally closed or normally open switches? I might have just been not actually encountering the one button there at all. So there's a bunch I can do to do that better. So this should be a same size and connection. If we get lucky, let's see. This should drop in here. So there's a couple screws there and a couple of bumps to key that in. Yes, that fits real nice in there. And then I don't think I'll be able to close the shell on this because of, I haven't removed the existing one there but you should be able to see that'll fit right on top of there, perfect drop in replacement except we'll have that lovely matrix that works a lot more like I expected to. So part of what I've done before with some of these is just use the multimeter to go through and hook it up. I'll scrape off some somewhere to hook to or use some tiny little grabbers so that I can go and basically decrypt the matrix a little bit. You can also do it hooked up to the microcontroller. So that's it. Very excited to, who sent me this? What's the company? It is Old Phone Shop. So if you're looking for stuff, Old Phone Shop, it's not an endorsement or anything. I'm not getting paid by them. I just happen to pick them. The other ones who stocked this, there's an eBay seller who has them too which is a different phone shop that's in Canada but this came pretty quickly and didn't cost much. So that's what you'll need if you are doing a phone project, you have a nice old Western Electric 2500 and you realize that this is too much of a beast to contend with. And again, I'll put it out there. If someone figures out how to read these switches, they just don't seem to have a common, every switch seems to be connected through because of these inductors. So I couldn't figure out a way but there are better engineers out there who may. So let me know what you find out but for me, this should do it right here. And like I said, I'll do some testing of these and maybe desolder that ribbon cable so that I can go directly to that matrix which is much more like what we were expecting. All right, so I think that's gonna do it. My remaining software challenges, once I get that matrix to be read correctly, I will be setting up the, I gotta make my dial tone loop a little better. The dial tone is a mix of like 370 and 440, I think. Hurts, it's also a dual tone. I have that and I wanna have a nicer loop of that. I just have it as a wave file. So I wanna get that looping when you're not pressing buttons and then it cuts that out which is what it's doing right now. I also wanna add the beep, beep, beep, beep, beep, beep, beep, when the line is bad after you've gotten the message that you've dialed a wrong number or if you just leave it off hook for too long, have to add the switch hook into the mix so it reads that just like it did on my rotary phone project and then add in some songs. So I think I will also be using a SD card reader on that Feather M4 so that I can have a whole bunch of songs on there. And Rich Sad says they just came on and heard that about wraps things up. Yeah, sorry, came in right as I'm finishing up. GarlGamp237DOOM over on YouTube said this would make a cool sampler right on. Michael says I have your watch right on. I'm actually excited. I got my little Casio F91W here. I have a couple of mods I wanna do to it. One is just my, there's like a plain face so you can pull off all the logos and just have a black face and then others Joey Castillo has a programmable drop-in brain replacement that's coming out. That'll be fun to drop in there. He uses the existing screen. All right, is that it? What else? I think that's it. Yeah. All right, I'm just scrolling through the comments here. Thanks everyone for stopping by. I will be back on Tuesday with a JP's product pick of the week. Please stop by. I'll either be showing a very straightforward thing or a highly ambitious thing depending on how things go for the demo for the product pick. So it's all puzzle pieces that need to fit together between now and then. I think that's gonna do it. Thanks everyone for stopping by for Adafruit Industries. I'm John Park. This has been John Park's workshop. Beep, beep, beep, beep, boop, boop, beep.