 Shut up, listen to that little diddy there. Thanks for stopping by, it's me, John Park, and this is John Park's workshop here on Adafruit Industries video streaming television, not television, and I am glad you're here. We have people over in our YouTube chat, hello, and hey Johnny, hey Dave, nice to see you. We also have our Discord chat, if you're wondering, hey, that's not my Discord, that got weird, huh, well, let me fix that. I put the wrong thing in there, that's the jobs board. Hold on, off to a good start. Discord, where'd you go? There you are, yeah, there it is, there's the live broadcast chat, so if you're somewhere that does not seem to have an Adafruit chat going on, such as Twitch, we don't keep an eye on that one, you can head over to adafruit.it slash discord, to find the live broadcast chat channel, and that's where this conversation is going on, as well as conversations all day long on this and the other channels. So, let's see, what's happening already? DJ Devon says a snap, he's showing off Todd Bot's Pico step sequencer today, that's right, I am. I will be showing that off, as well as some related stuff. I'll show a little update on my split ortho keyboard, and what else? I've got a circuit python parsec, I've got a recap of the product pick of the week, I think there's some other things too. Implicit in one of these will be a bit of a gear report too, so. Let's see, first of all I'll mention, this caught me completely off guard. Today is the 250th episode of John Park's Workshop, and had I noticed sooner, I would have gotten a special banner graphic done by Bruce and posted about it on the blog and made a big party about it, but I will figure out a way to make that up to you. Maybe we'll do something special for the 256th or something, powers of two E like that. But what that means, yeah, 250 episodes of this show, what that means is I've got a coupon code for you and the coupon code is 250. If you type that word, T-W-O-F-I-F-T-Y, I hope I spelled it right, 250, type that into the coupon field in the Adafruit store on your way out, you'll get 10% off on anything you buy. That's anything real, physical, actual, we don't put that discount on gift certificate subscriptions and software. But that'll be good until midnight tonight, East Coast time, so use that sometime today and get yourself a nice little discount, a nice little 10% off your entire order of stuff. So I don't know what that works out to, 250 into 52 weeks, that's about five years worth, been doing this show, wow, if my math is right-ish. And so yeah, so there's your coupon, use that, coupon code 250, get a nice discount. And thanks, by the way, everyone for coming and watching the show, supporting this show and the other live streams that we do on Adafruit because it really is a lot of fun to be able to get to do this, to share with you and have the community sort of in the same virtual room together during these live streams and in our chats. And it's a big way for us to get info out there about the stuff that we do, the stuff that you do, the things we build, and it helps, of course, to get people to buy stuff, which keeps the lights on here. So thanks, everyone. Let's see, it sounds like I was wrapping up the show sorry, didn't I, I'm not. So next up, I'll mention our jobs board. If you wanna look for work or if you wanna hire someone, you could do worse than heading over to jobs.adafruit.com. Let's see if I got the right page up this time for it. I do, hey, so there's our jobs board and you can head on over there. All you need is an Adafruit login, otherwise it's free to use and we promise never to give out your info, sell it, spam you, none of that stuff. But as long as you get a login for Adafruit, you can head over here and look for jobs. You can submit your own resume, you can submit job openings that you have and that can be anything from freelance to full-time, to remote, to in-person, and anything in between. So head on over to jobsadafruit.com, check that out. Next up, I'll mention this right here. I've got my other show that I do each week. That's this one, the product pick of the week, JP's product pick of the week. On it, I like to pick something that we've got new out or an oldie but goodie and go through it, show you how it works, do some demos, give you a big, huge discount during the show that that discount does not have a coupon code, it's just good during the live stream itself. And then I do a little one minute recap. So that was the product pick this week, this very useful, I'm using it in a project right now as you probably know, the split ortho keyboard is using this. And here's a little one minute recap of the shows, check this out. It is the TCA 8418 keypad matrix driver and GPIO expander. Here's an example of using it with telephone style keypads. I decided to solder the board four columns and two of the row pins. And then the extra two I have running since they're on the other side of the board using wires there. But that gives you this sort of neat little keypad that you can use for different projects. I have it plugged in over I squared C into, this is our Trinkie and plug that into a USB hub so we can imagine that's the side of your laptop or some other computer that you wanna plug into. Now I have immediate access to this cute little keypad. So here I'm just gonna put in a comment there and then you can see I can get 123A456B789C star zero pound D. It is the TCA 8418 keypad matrix and GPIO breakout. That's right. I need to get some more of those actually. I keep using them in projects. I have some, I may be using them for the upcoming project that I'm gonna kick off here today actually. So let's see what else. Hey, this is a great time to do a little circuit python parsec. What do you say? A circuit python. Alrighty. For the circuit python parsec today, I wanted to show you how you can use alarm in circuit python to create a deep sleep state. This is really useful for when you have battery powered projects that you want to conserve energy on. So if your project needs to do something after a certain interval or after a pin has been pressed, you can have it wake up, do its thing, and then shut itself back down. There's a couple of states of sleep. There's a light sleep and a deep sleep. I'll show you a deep sleep here today. So if you take a look here, I have a ESP32 S2 TFT feather and I'm just gonna plug in a LiPo battery. And what you'll see is it's gonna start up. It's gonna print a couple things to the screen. Good morning and then time to go to sleep. And now it has shut itself into this deep sleep mode which conserves energy like crazy. Then after a few seconds, it's going to power back up, run that little bit of code and then power back down again. So the way this is done in code, I'm importing the alarm library. Then I'm doing whatever the things are I want it to do when it wakes up. And this could be doing something like a remote relay or gathering some information and sending it somewhere over wifi. You can get complex with this. In this case, it's just printing something. And then we create this variable, time alarm equals alarm.time time alarm. And that is the monotonic time is equal to time monotonic plus seven. So I have seven seconds of sleep essentially. So this is creating the little countdown timer that's happening while it's asleep. Then we call this alarm, exit and deep sleep until alarms and then whatever that value was here. So now it essentially shuts down goes into deep sleep and it's just barely awake enough to count off that time. And then it powers back up, runs the code again. And so that is how you can use alarm. Let me say that again. So that is how you can use the alarm library in circuit Python to go into deep sleep and wake back up. And that is your circuit Python parsec. And by the way, one thing I'll mention to you is this can be an interesting one to work with because while you're plugged in over USB, it doesn't really, it kind of simulates things but it doesn't really go to sleep per se. You won't see, for example, I think that the screen doesn't shut off when I have this plugged in and the battery out. It's gonna try to do it and you can develop for it but you'll also find that if you get it shutting itself down, the circuit Python drive will disappear off of your machine. So it can be a little tricky to use just the straight time alarm. And then there's a variation on this where instead of using time, you can use a pin wake up. So you can essentially have a button that takes you out of deep sleep. But that is my little intro to some of that cool stuff. If you're interested in finding out more, you know, that was a quick demonstration of that. You can head to the learn system and look for alarm. There's a guide by Dan Halber. Actually, it might be called deep sleep. Let's search for deep sleep. Got this cute little sleeping blinker in there, night cap and a little bedroom scene there. So this is the guide that you wanna check out if you wanna learn the different modes that you can use, light sleep, deep sleep, the different chips that they work on as well as the modes of alarm versus pin for waking up. Let's see. Yeah, and so someone said they may have just fixed the deep sleep on the S2. There are some, yeah, if you look in the guide and also release notes for different versions of Circuit Python, this has been under development so there are different modes and chips where things work or don't work. So your mileage will vary depending. All right, let's see. So next up, let me have a look at the Discord here. Any other questions, thoughts? People were asking about the pound key slash hash key on the keypad and wondering why it's called pound. Someone said because you wanna, it's the heaviest key on the keyboard or it's the key you wanna pound really hard. I don't know actually, it's got other names too, right? Forget, there's some other funny names for that key. All right, let's see, next up. Let's, okay, let's talk about this PicoStep sequencer. Before I demo it, I'm gonna jump over here. So we're gonna start off with, actually, let's go back. We'll jump back a little bit. Let me go to this page here. So you may remember, I did a guide. Well, I've run past it. Okay, what's this one called? Step sequencer. We have a lot of step sequencers. Let's see, I think this one's called PicoStep. PicoParty, I think. Pico's, there it is. So this little step switch party, so this is a project I built when we came out with these little step switches, little LED step switches, 808 style. And I just wanted to get them up and running, using them as a simple GPIO. So this had essentially a direct input and some lighted keys, sending MIDI out or you can do other modes, the USB mode, I think I had another one. And that's running on the Pico, pretty straightforward. Code doesn't do too much, but it gets you up and running. Fast forward a little bit and our good friend, Todd Kurt, Todd Bot, developed this and the circuit and software to go with it that I want to show off here today. It's called the PicoStep sequencer. So this takes the idea and really refines it. This is a really cool, really refined sequencer. What it does, it keeps good time. It allows you to pick the tempo and then it runs through those eight steps in time and allows you to say either a step is on and it's gonna play a note over MIDI or it's not. It lets you pick what the note is that it's gonna play. Even lets you pick the amount of time that note is pressed during its step or the gate of the note. It lets you store multiple sequences, has a little screen for display. Let's you change the notes on the fly, preview them, pause, play. So those are some of the major features of it. And so if you look at this guide here, and this is on github, github.com slash Todd Bot slash PicoStepSeq, SEQ. Maybe Todd can put that in the chat. The, let me find the page here for it again. It's also got a really nice usage of the rotary encoder and push encoder for doing some of that interface stuff and a really cool looking three printed case, snap fit case. On the site, there's some demos of it in use. I'm gonna do some live demos here today. Mention the features. One of the really interesting and impressive features of it is that it can load sequences and save sequences to a JSON file on the Pico. And those are saved and can be loaded new when you power it back on. And you can build one yourself. So it's got a bomb for it, a little build of materials and a link to go and get yourself a PCB made. So this is a project you can go out and make right now. And what I wanted to do is show you, put it through its paces a little bit, also show you a cool piece of gear that I'm gonna play with it, but it'll work with anything that'll accept MIDI pretty much. There is, by the way, the code I'm running on it is the circuit Python code. He's also written it for Arduino. And then I wanna talk about a project I wanna work on that'll be sort of an extension of this. So let's jump over to the workbench over here. And I'm just gonna bring up my discord on the phone so I can see if you have any problems hearing this. I just wanna get the volume right on it. And let's go to broadcast chat, there we go. I need to tell my phone not to fall asleep, but oh well. So here's the Pico step seek itself. Let me zoom in on this, focus in on it. So you can see I've got it powered up here and coded over USB, some micro USB, because this is the Pico that's plugged in there. In fact, should be able to pop that case off. Let's see right there, a little Pico just plugged into some headers. And then we've got a little OLED screen, rotary encoder, opto isolator for MIDI and these are the MIDI out and in over TRS, I think type B, which is the tip ring sleeve arrangement of a little 3.5 millimeter stereo cable. And then eight of these lovely little step switches. So they have in out and I think these are direct, I don't think that's a diode matrix. I think those are direct GPIO and then the PWM of the LEDs is also a pin per. So there's no multiplexer on here. So I'll leave it open actually, it's kind of cool looking. Power this up and I'm gonna plug a MIDI out cable. That's going through, or rather, that's going into this right here. So I'm kind of, I'm gonna double up here and call this both a project exploration and a gear review. So this is the Roland JX-03, this is a desktop synth. And actually I'll jump back to the screen in a second and show you one of the reasons this is so cool is this is a modern recreation of a roughly 1983 synthesizer that was a keyboard synth, which had a somewhat convoluted method of accessing any of these parameters that you see knobs on here. And then there was a little side piece of equipment you could get that was even smaller than this, that was the knobs to adjust those parameters if you didn't want to do it over MIDI. This is perfect for me because it gets rid of the keyboard. I don't like to use keyboards because I don't really know how to play it. And it puts all the controls right there. It does have a built-in sequencer, but this one is a little bit more fun to use because it's a little more direct. So it can play a wide range of polyphonic or para-phonic synth voices using the two oscillators in here, the filter, VCA and modulation. So enough talk, let's play something. So I'm gonna take a look at the screen here. We'll get back to the little Roland and some of its controls, but if you take a look at the screen here, and any flicker you see is just a video artifact. We don't have flicker in the real world here that I'm seeing. So here you can see when it starts up, it's got, grab something to point with, it's got these eight steps and it tells us what note it's playing. So C E C C C A sharp C C. Some of those are in different octaves. So you can see that all this first set of C's are in the third octave, but then we go down an octave to octave two. Each of those steps also has a little bar over it that shows how long it plays the note within that step. So some of them can be shorter. Tells me that this is one sequence, actually has eight sequences stored on it that we can switch among. Tells me it beats per minute, it's at a hundred right now. Transposition, so it is at what it says right now, so that first note of C is what it's gonna play. When we want to transpose it by semitones, we can, you'll see this little transpose up or down, so we just shift it. And then there's a little pause icon there showing me that we're paused. So I'll hit play, and let me know in the chat if you can hear that. And if you can still hear me, if that mix is decent enough, you can turn it down or up. What you'll see is right now, it only plays on the lit notes, right? So we have the full sequence in there, but we're playing different, we're only playing two of those eight steps. So what I'm gonna do is just change one of the output pitches or MIDI notes that it's sending. And so that's this fifth step here. And what I'll do is just hold that and then adjust. So I've gone up to semitones to a D. So that's one way to just change your sequence. And then we can bring other notes back in. Okay, now what I'm gonna do is just change sequences entirely. And to do that, I'm just gonna hold the encoder down and press the second one. Could be louder, okay. Can I get this louder? Pick another sequence, pause there. So that's almost, you can use that as a song mode. So if you keep them in a set of keys that work together or the same key, you can have eight sequences and maybe even just let the first one play four times, the second one twice, the third one, kind of step your way through a little song, which is kind of neat. As you're changing these, you can also store them. And I haven't played around with that, but I think it will, after five seconds of a change, if you pause and play, it will just automatically write. I think there's also another method of key combos to get it to play or sorry, to get it to save that JSON file that it stores. So let's see, it also sends out over USB. So I'm not, right now I'm just powering it over USB, but you can do USB MIDI. So this can be plugged right into your computer, your iPhone, your iPad or other MIDI host type of device. So you don't need any of these classic MIDI cable types of things and it will allow you to have a really cool little step sequencer with you, just plug it right into your phone and play on that. And maybe, oh, you know what, I don't have, yeah, I don't have the adapter to do that on my phone here or I'd show a demo of that. So let me get a basic sequence playing again and then I'll just show you a couple little features. I'll just noodle around on the JX-03 here. So that's good right there. So here I've got presets. So this completely changes the sound of it because these are some really nice patches that are preset stored on here. And I can do things like then adjust the value. This is the release. So how long it tails off a note after it's played it. So you can get overlapping notes if you turn this up. You can also do things like change the two oscillators so one of them can be lower. If you can hear that too well, go higher. And then we can detune the second one. If you mess it up too badly, you can punch that back in and go back to the same preset you had. And then of course nothing, no demo of any synth is complete without doing some filter stuff. So ended on that. Oh, sorry, you couldn't see the fun stuff I was punching in here. So I'll give this guy his little case back. Where'd you go? The little case top back on there. It's gotta be unplugged from USB to add that on there. Also really cool, Todd did a neat multi-material thing here, I think just pause the print and changed out the filament there so you get this cool contrast. So cool little gizmo. What I was thinking of doing, so let me actually jump back over to workstation for a second here. And let me go to, let me go to this page here. Actually I can go, go to that one. So this just came out, this is the little breakouts to make our step switches, these little guys here, a little friendlier to work with just because the pinout has some vertically oriented pins. They're in a column and they should not be tied together. They're meant to be separate pins. So this either needs to be on a PCB. I put that demo on a protoboard that does not have any of the pins tied like a breadboard, so that's easier to just sort of free wire stuff. But if you aren't making a custom PCB, these little breakouts are gonna make it a lot easier to design things you could leave it put together there and have a kind of spaced out little, what is it, six by six. I'm gonna snap them off of there and put them onto some perma-proto boards I think. And I might put one and a half of them side by side or something like that and make a 16 step sequencer. So my deal with that is actually just to start out with a similar code base as what Todd has on the Pico step seek, but have a 16 step thing and possibly some different hardware. And then see if I can make it modular enough to expand to multiple tracks, either with one row of 16 and multiple choices of which MIDI channel you're sending out to, for example, or which MIDI note in the case of a drum, often on channel 10, you can have MIDI drums based on the note that you're playing. Or maybe go multiple rows, which would be really cool, multiple physical rows of 16 and make a big humongous like 64, either single 64 step or 416 step tracks. So those are some ideas. This is gonna make it a lot easier, take those, put them on the perma-proto and then with that addition of 16 instead of eight, we kind of blow past the reasonable number of GPIO and PWM pins we have on something like the Pico or a feather. So I may do something like the KB2040, PWM16 of the pins and then use something like the TCA8418 to add the either a keyboard matrix or just straight GPIO to add the 16 button presses that I need. These things also you can sometimes get away with using the Grant Central. If you don't mind having something really big because the Grant Central has a ton of IO on it, but I think there's 16 analog ins on it, a bazillion PWMs, like 50 digital ins. So that one's another option. So that is my plan to take a whole bunch of these and make a nice variation on the sequencer. And hopefully that'll be something that you can put together. Todd's step sequencer right now, but this will be a variation. I'll be working with Todd on that and trying to lift as much of the code as possible. As someone mentioned in the chat, the code is not simple. It's actually quite impressive the fact that Todd's got the timing working really well in Circuit Python, even though he's redrawing to the screen, he had to do a lot of work to get just the smallest bits of the screen to redraw when necessary so that it wasn't slow over I squared C to refresh the OLED. So let's see. Oh yeah, Todd says in the chat, I've been working, let me bring up the chat here. I'm working on a 16 step version using a SPI display and the WS2811 LED driver to get an FIO kind of stalled on it. All right, let's try to possibly install this. So let's see. I think that covers it, so that's my plan. I'll be updating you as I go and showing off some work on that. I also might have a little mini hobby lighting project in the middle, I got a kind of a cool idea for doing some hobby lighting for painting and other small work. Yeah, somebody says, call me midi curious, the Pico step sequencer seems approachable. Somehow fear ends with me selling my card to afford synth patch cables. It doesn't have to, I promise. You can use this on any computer you have, just get a free helm, free midi capable synthesizer, or if you want to deal with patch cables, VCV rack is a good one. All right, good. All right, so thanks everyone for stopping by today. That, oh, I'm almost forgetting. I did have one more update I wanted to give. This is on a separate note. This is on the ortho split keyboard. So I got pretty much all of the hardware designed and worked out. So I showed my progress on that last week. Let me show you where it's at this week. Let me jump to this view again over here. And out of the way. So there's the completed. I have actually just one thing to do, which is recut this one without these extra holes that I accidentally put in it. Wasn't paying attention and those are holes that only need to exist on the bottom side to hold in the PCB for the key switches. So I still have some work to do on the lower and raise modes for switching out to different layers of the keys, but it does work with what you see here, including things like control keys, command keys, shift, all those things work. It's just lower and raise, aren't real. So I had to extend the top a little bit. If you look at the previous, this was the previous design here. It was shorter. Oh, sorry, that's, yeah, there you go. It was shorter. That ended up not being enough space to mount that QT pie in there nicely. And one of the challenges I had, I hadn't solved last week was, how do you mount the QT pie in there? QT pie does not have a mounting hole on it. It's so small. And so I borrowed a snap fit QT pie section from a 3D model that the Ruiz brothers made. And it's just a little carrier for the QT pie that I put a mounting hole on, rather than since I'm laser cutting the bottom here, but for the 3D printed version of this, you'll be able to just print it in place. So here you can see with the top removed. So this is my QT pie mounted upside down. And why did I do that? I don't even remember now. I think it was to get the USB-C port where I wanted it. I had that, yeah, that was too low. No, is that right? No, I wanted that lower. That might not matter anymore actually, since I changed some other stuff. But this snap fits just into this little piece here, which I have screwed into the case like that. Two mounting holes might be better, but so far it seems to be working well with one. So I can plug in USB from the side there. That one's too fat, I get a kind I was using. It's a little slimmer one. There we go. So you can see that that wiggles a little bit, but it's not terrible. Then I have the, you can see here, I've got kind of, it's about a perfect length of Stem-A-Q-T cable connecting it to the TC-8488 that's reading the matrix of this keyboard. And then the second one just has a TC-8488 and the cable runs through the hole into a little breakout. This is that little spark fun breakout. And then those are going to the other I squared C bus. So there's two I squared C buses on here. Since these share the same address and you can't change the address on them, that was my technique for getting both of these on here. Could with the new matrix, I squared C matrix sort of hub thing that we have coming out, you could do it all over one. That would be another option and that would allow you to also add even more of these depending on the scope of your project. So still have, I think I showed you these last week, three printed middle section with the little brass threaded inserts he said into there. And so that's how those six screws there hold this laser cut bottom onto it. And then there's a threaded insert from the top and the bottom. And so that's how the top plate mounts on there. The white was just what I had. It also makes it really easy to see the screws and things like that in the guide. So I may just leave it at that. That's not maybe my favorite color in the world for this, but it's, I think it works. And same with the middle there as black, that was just what filament I was using. I could probably find something a little cooler that would color match this look. But I do actually think it has kind of the intended feel of that severance on Apple TV kind of workstation dasher type of feel. And other options are to use some of our standoffs. I've just got rubber bumpers on here, but you could use our large aluminum keyboard standoffs to get a pretty nice angle on there, about like a four, five degree angle. If you put those on there, it'll raise that up a little bit, which you might like for ergonomics. Some people also like to do it like this. So you get a little angle going in here. So you have sort of a more natural wrist position pronation. So that is the hardware design. I will be, I've been shooting photos of that and writing up the guides so you can go and build your own split ortho keyboard if you like. One other thing I'm gonna adjust before the final is make this cut out a little bigger. Because you can see this key just clears it and on this side it doesn't, this still presses, but if I wanted to plunge it further, it's gonna catch on there. So I gotta make those a little bigger. Also means you could stack multiple acrylic tops or print a taller middle section and then get the keys to be a little more flush, which I like the look of. I don't like when they stand up proud like that. So I'll probably do a little bit of an adjustment and maybe do two layers of the three millimeter acrylic there. So there, that's the update on the keyboard there. If anyone out there is ambitious and interested, I'd love to know if someone who's familiar with QMK or any of the other popular keyboard software could figure out a way to have it work with that type of configuration, which is fairly out there having a pair of I squared C key matrix breakouts. It would be, I think, a bit of custom work to get it to work. If you could, then you'd be able to do all the fancy like layer building in web pages and uploading new configs and stuff like that. Let's see. Yeah, DJ Devon says, these are right with a marker on the white. You could do a little white dry erase, rather drill dry erase marker work on that. So that is an option with that keyboard. All right, I think that's gonna do for today. Yeah, I noticed in the chat someone talked about, said, hey, don't forget about your keyboard. Thank you. I was so close to forgetting about the keyboard, but there it is. That'll do it for today. Thanks everyone again for stopping by. Some of you maybe up to 250 times. This is the 250th episode of the show. And with this coupon code, 250, T-W-O-F-I-F-T-Y, you will get 10% off in the Adafruit store on anything that's real. Nothing that's imaginary, such as gift certificate subscriptions and software, but physically real things you'll get the 10% off on. So just use that before midnight, Eastern Standard or Eastern Daylight, whichever we're on Eastern Time, and you will get the discount. Thanks, Andy Callaway. Yeah, thanks everyone so much for stopping by. That's gonna do it for today. I'm John Park. This has been John Park's Workshop. See you next time.