1 00:00:00,001 --> 00:00:03,560 Welcome to the CircuitPython Show. I'm your host, Paul Cutler. 2 00:00:04,320 --> 00:00:08,060 This episode, I'm joined by Liz Clark and Noe Ruiz from Adafruit Industries 3 00:00:08,340 --> 00:00:10,540 to discuss how they collaborate on projects together. 4 00:00:12,620 --> 00:00:14,140 Noe and Liz, welcome to the show. 5 00:00:14,740 --> 00:00:15,980 Hi. Thanks for having us. 6 00:00:16,840 --> 00:00:20,040 I'm so glad you're here. I've got so many questions for you about all the projects 7 00:00:20,120 --> 00:00:24,080 that you've collaborated on. Let's start at the beginning. How do your projects 8 00:00:24,300 --> 00:00:27,760 start? Where do you get inspiration from and how do they influence your projects? 9 00:00:28,000 --> 00:00:32,480 It kind of depends on whose idea the project is, 10 00:00:33,040 --> 00:00:35,920 because we kind of have different specialties. 11 00:00:36,540 --> 00:00:39,180 Noe, of course, has the 3D printing and design background, 12 00:00:39,940 --> 00:00:43,780 whereas I have more of the CircuitPython coding background. 13 00:00:44,560 --> 00:00:47,420 So if it's a project idea that I have, 14 00:00:47,540 --> 00:00:49,920 then I'm kind of collaborating with him on 15 00:00:50,520 --> 00:00:53,120 how I want the enclosure to be and things like that, 16 00:00:53,440 --> 00:00:56,000 versus if it's his idea, then we're kind of more discussing 17 00:00:56,000 --> 00:00:58,140 like how we want the code to work. 18 00:00:58,600 --> 00:01:01,460 We have a lot of these conversations on walks. 19 00:01:02,220 --> 00:01:03,620 For those that don't know, we are married. 20 00:01:04,540 --> 00:01:07,000 So we live together, of course, 21 00:01:07,180 --> 00:01:09,620 and we take at least one walk a day. 22 00:01:09,940 --> 00:01:11,820 And when we're out walking, 23 00:01:11,920 --> 00:01:14,360 like we'll kind of discuss what we're working on. 24 00:01:14,560 --> 00:01:16,400 And if we're starting a new project, 25 00:01:16,540 --> 00:01:21,860 we'll kind of walk through what we're looking to accomplish. 26 00:01:23,260 --> 00:01:25,400 - So for me, it's a little different. 27 00:01:25,720 --> 00:01:29,020 - My inspiration comes from either from above, 28 00:01:29,140 --> 00:01:29,720 which is Limor. 29 00:01:30,120 --> 00:01:31,340 She'll give us an idea. 30 00:01:31,540 --> 00:01:34,200 She's like, "Hey, I saw this," or, "Hey, would this be cool?" 31 00:01:34,200 --> 00:01:35,000 And then we go from there. 32 00:01:35,160 --> 00:01:37,020 If it's something that I come up with, 33 00:01:37,060 --> 00:01:38,620 it's something I see on Instagram, 34 00:01:38,860 --> 00:01:40,160 it's someone else's project, 35 00:01:40,620 --> 00:01:43,460 or something that I see at Target or Ikea. 36 00:01:44,140 --> 00:01:45,280 And then from there, it's like, 37 00:01:45,440 --> 00:01:47,060 "Okay, we got these new parts. 38 00:01:47,580 --> 00:01:49,440 Maybe we can fit this thing into that." 39 00:01:49,440 --> 00:01:50,680 It's always coming back to like, 40 00:01:50,820 --> 00:01:53,740 what is a new thing that Limor is working on 41 00:01:53,760 --> 00:01:54,380 that would be cool? 42 00:01:54,640 --> 00:01:58,700 So for example, we got this new stepper motor and I'm just going crazy with let's make everything 43 00:01:58,880 --> 00:01:59,380 motorized. 44 00:01:59,480 --> 00:01:59,580 Yeah. 45 00:02:00,040 --> 00:02:03,500 Turntables, camera sliders, anything that spins. 46 00:02:03,780 --> 00:02:08,399 At the end of the year, we did LEDs that are spinning as a POV motorized thing. 47 00:02:08,520 --> 00:02:11,100 So I'm just all over the place with this stepper driver. 48 00:02:11,300 --> 00:02:13,060 So that's kind of where my inspiration comes from. 49 00:02:13,880 --> 00:02:14,400 A little more. 50 00:02:15,020 --> 00:02:15,240 Yes. 51 00:02:15,520 --> 00:02:17,640 Does she have an idea or she have a new product? 52 00:02:17,920 --> 00:02:18,860 And then I go from there. 53 00:02:19,540 --> 00:02:20,500 Or is it an Instagram? 54 00:02:20,780 --> 00:02:23,180 I see this cool prop that someone else is making. 55 00:02:23,220 --> 00:02:25,500 and I'm thinking, "Ooh, could I do something like that?" 56 00:02:25,500 --> 00:02:27,660 And a fact, a shape, a lot of the times it's like, 57 00:02:27,740 --> 00:02:28,860 "Oh, I just like this shape. 58 00:02:28,940 --> 00:02:30,200 I wanna do this shape." 59 00:02:30,200 --> 00:02:31,340 And then I go crazy with it. 60 00:02:31,620 --> 00:02:32,480 I think you're kind of similar. 61 00:02:32,880 --> 00:02:34,660 You see something that's a musical thing, 62 00:02:34,720 --> 00:02:37,200 and hey, I wanna make a motorized robot thing. 63 00:02:37,880 --> 00:02:40,360 - Yeah, often, you know, like now I'll be looking 64 00:02:40,680 --> 00:02:42,300 on Instagram or Pinterest, 65 00:02:42,560 --> 00:02:44,980 I might see something that looks unique and think, 66 00:02:45,100 --> 00:02:47,400 "Hmm, you know, could I recreate this with CircuitPython 67 00:02:47,520 --> 00:02:48,580 or stuff we have in the shop?" 68 00:02:48,720 --> 00:02:51,460 And then same thing too, when there's new things 69 00:02:51,460 --> 00:02:56,320 the shop, I tend to write most of the new product guides. So I kind of get a crash course 70 00:02:56,420 --> 00:03:02,440 in every new product. So I'll run the examples. And then as I'm running the examples for the 71 00:03:02,480 --> 00:03:06,820 guide and looking at all the pins, I'll kind of get my gears turning of like, how could 72 00:03:06,880 --> 00:03:11,300 we use this and something or, oh, you know, we've always talked about wanting to build 73 00:03:11,400 --> 00:03:16,160 this thing. This part really makes it possible. As Noy just said, there's a new stepper driver. 74 00:03:16,320 --> 00:03:20,320 So that's been on our minds. And you know, we've wanted to do a lot of stepper motor 75 00:03:20,320 --> 00:03:25,860 projects and the new drivers are kind of getting our gears turning and you know motor spinning. 76 00:03:26,780 --> 00:03:32,960 We watch a lot of TV and when it's a sci-fi show it's like okay you wanted to do this 77 00:03:33,380 --> 00:03:37,500 prop from Severance. It's coming back and you're like okay the timing is good here. 78 00:03:37,840 --> 00:03:44,120 Yeah so in Severance there's um these like weird terminals that the people work at and 79 00:03:44,160 --> 00:03:48,960 there are these like kind of floating letters on the screen and they're using a little ball mouse 80 00:03:48,960 --> 00:03:49,920 to scroll around. 81 00:03:50,020 --> 00:03:53,040 And so that's something I've wanted to try to recreate in CircuitPython for a while. 82 00:03:53,460 --> 00:03:58,160 And now we kind of can, hopefully, with the RP2350, 83 00:03:58,380 --> 00:04:01,260 because it has the HSTX peripheral for DVI output. 84 00:04:01,540 --> 00:04:04,380 And then that frees up the PIO for USB host. 85 00:04:04,720 --> 00:04:08,500 And in like two weeks from when we're recording right now, early January, 86 00:04:08,680 --> 00:04:09,980 the new Severance Season's coming out. 87 00:04:10,080 --> 00:04:13,160 So like that's all the pieces are kind of coming together. 88 00:04:13,440 --> 00:04:17,239 So hopefully I'll be able to work on that, use that as a project inspiration. 89 00:04:17,700 --> 00:04:18,260 Oh, that's great. 90 00:04:18,600 --> 00:04:22,520 So you've had inspiration, you've gone for a walk and you've kind of talked it through. 91 00:04:23,060 --> 00:04:24,380 You come back to the home office. 92 00:04:24,500 --> 00:04:25,160 What's next? 93 00:04:25,880 --> 00:04:27,140 That's when we'll kind of iterate. 94 00:04:27,680 --> 00:04:33,560 So often if we've discussed things, you know, we'll work on a Fritzing diagram for code. 95 00:04:33,680 --> 00:04:39,560 I'll do kind of a step by step thing where, um, if it's complicated code, I like to break it down into different parts. 96 00:04:39,680 --> 00:04:46,300 So if there's multiple things going on, then I'll kind of test everything and then put them together. 97 00:04:46,380 --> 00:04:51,200 So like if we have sound and lights, you know, I'll do the lights first sound and then bring them together 98 00:04:51,260 --> 00:04:52,740 Make sure it's gonna work as we expect 99 00:04:53,260 --> 00:04:57,180 Especially with props and you expect it to work a certain way for the end user 100 00:04:57,740 --> 00:05:01,579 you want to make sure there aren't gonna be any like blocking delays or anything that make it kind of weird and 101 00:05:03,080 --> 00:05:09,620 Then we just kind of chat back and forth. Yeah, I'll open a bunch of tabs on Google Chrome and look for 102 00:05:10,020 --> 00:05:16,360 Reference images if it's a physical thing, I'll go to Pinterest and see what's out there 103 00:05:16,360 --> 00:05:19,520 I'll just look at where has anyone made this before 104 00:05:19,640 --> 00:05:21,320 and see what people have done. 105 00:05:21,440 --> 00:05:22,800 If anything, if it's never been done, 106 00:05:22,900 --> 00:05:26,680 it gets a little hard, but there's always something out there that I can reference. 107 00:05:27,060 --> 00:05:28,900 Even like you're talking about the severance terminal, 108 00:05:29,020 --> 00:05:33,060 I can look at real things that were computer enclosures in the '70s, 109 00:05:33,480 --> 00:05:34,400 because it's the vibe. 110 00:05:35,600 --> 00:05:37,120 Then I'll just collect things. 111 00:05:37,360 --> 00:05:38,940 I don't have a particular app where I'll collect images, 112 00:05:39,120 --> 00:05:42,100 just save images to my folder. 113 00:05:42,560 --> 00:05:44,760 >> Yeah, I end up just with a million tabs. 114 00:05:44,920 --> 00:05:45,780 A million tabs, yeah. 115 00:05:46,220 --> 00:05:50,340 And also, I often will then also have a million tabs 116 00:05:50,400 --> 00:05:52,140 of different learn projects too, 117 00:05:52,340 --> 00:05:53,880 either ones I've written or other folks have written 118 00:05:54,080 --> 00:05:56,340 to be getting different code snippets and stuff. 119 00:05:56,400 --> 00:05:58,920 So I try to reuse as much code as I can 120 00:05:59,000 --> 00:06:00,700 without having to start from scratch. 121 00:06:01,100 --> 00:06:04,860 And that is good in that I know this code worked previously 122 00:06:05,040 --> 00:06:09,180 and then I'm not having to do too much new testing out 123 00:06:09,180 --> 00:06:09,500 and stuff. 124 00:06:09,960 --> 00:06:10,320 Sure. 125 00:06:10,940 --> 00:06:11,700 So working together, 126 00:06:12,160 --> 00:06:14,520 How does that improve the finished project? 127 00:06:15,200 --> 00:06:17,660 - I like that we can kind of immediately get feedback 128 00:06:17,840 --> 00:06:19,400 from one another, it's more of a conversation. 129 00:06:20,240 --> 00:06:24,640 Whereas like if we were not in the same space, 130 00:06:25,180 --> 00:06:26,160 it would be a little tricky 131 00:06:26,240 --> 00:06:28,140 'cause you have to wait for that response and everything. 132 00:06:28,940 --> 00:06:30,280 - Yeah, I don't have much of a background 133 00:06:30,500 --> 00:06:31,760 in code and development, 134 00:06:32,180 --> 00:06:35,540 so I would really not be able to do any of the things 135 00:06:35,580 --> 00:06:36,940 that you can do. 136 00:06:37,820 --> 00:06:40,780 So I think the marriage of our different skill sets 137 00:06:40,780 --> 00:06:42,080 really make the project possible. 138 00:06:42,180 --> 00:06:45,840 It's like two very experienced people in these two realms come together, 139 00:06:46,020 --> 00:06:49,240 and then you get this cool kind of thing that does a cool thing and looks really 140 00:06:49,440 --> 00:06:52,900 cool and can be built in a relatively easy way. 141 00:06:53,160 --> 00:06:53,300 Yeah. 142 00:06:53,500 --> 00:06:59,960 And you're able to do such cool design tricks and iterate so quickly in Fusion 143 00:07:00,080 --> 00:07:04,640 360, and you can easily tweak things with the way that you set up your projects. 144 00:07:04,700 --> 00:07:08,220 I will do a little bit of 3D modeling, but my timeline, I know, stresses 145 00:07:08,380 --> 00:07:09,360 him out when he looks at it. 146 00:07:09,460 --> 00:07:14,980 So he does it like the right way so that if we get to the assembly stage, it's like, 147 00:07:15,100 --> 00:07:18,480 "Oh, you know what? We need like two more millimeters here." 148 00:07:18,480 --> 00:07:24,040 He can easily just add that to the design and then it's perfect instead of having to redo it all over again. 149 00:07:24,540 --> 00:07:29,720 Likewise, I'll ask, "Hey, can we make it so that when this thing is shaken, 150 00:07:30,000 --> 00:07:32,960 can we have it do an extra animation?" 151 00:07:32,960 --> 00:07:36,480 And you can go in there and figure out how to make it happen. 152 00:07:36,660 --> 00:07:39,200 Yeah, because often, I know this is your experience too, 153 00:07:40,320 --> 00:07:42,840 sometimes you get the working prototype of the project 154 00:07:42,880 --> 00:07:43,780 and just with how we work, 155 00:07:44,080 --> 00:07:45,580 we're kind of documenting as we go, 156 00:07:46,040 --> 00:07:48,580 just 'cause we do try to publish at least once a week 157 00:07:49,120 --> 00:07:51,800 with Adafruit and sometimes it's not until 158 00:07:51,860 --> 00:07:53,700 you're documenting and really using it that you think, 159 00:07:53,800 --> 00:07:55,080 oh, you know what, I would love if it did 160 00:07:55,140 --> 00:07:57,260 this one extra thing or had this one extra feature. 161 00:07:57,440 --> 00:08:00,280 So it's nice to be able to quickly iterate like that. 162 00:08:01,640 --> 00:08:02,060 - That's great. 163 00:08:02,280 --> 00:08:04,340 Let's talk about some of your favorite projects. 164 00:08:04,940 --> 00:08:06,000 Noe, what's one of your favorites? 165 00:08:06,200 --> 00:08:06,780 start with you. 166 00:08:07,140 --> 00:08:11,780 - Yeah, one of my favorite projects is probably the Adabot RP2040 toy robot. 167 00:08:12,500 --> 00:08:14,500 Just because it ticks all the boxes of something. 168 00:08:15,300 --> 00:08:18,020 It's a fun, interactive little robot. 169 00:08:18,540 --> 00:08:20,480 It has a glowing mouth. 170 00:08:20,880 --> 00:08:26,040 It has sound effects, has built-in accelerometers so you can kind of turn it upside down and 171 00:08:26,220 --> 00:08:27,800 it kind of does this sleep mode. 172 00:08:28,380 --> 00:08:29,260 That's kind of my favorite. 173 00:08:29,400 --> 00:08:31,360 And it's just got like the mascot, right? 174 00:08:31,420 --> 00:08:33,460 Adabot is Adafruit's mascot. 175 00:08:33,940 --> 00:08:36,039 So it's got all the little pieces. 176 00:08:36,219 --> 00:08:37,520 It's so cute as well. 177 00:08:37,760 --> 00:08:40,780 Having something cute is a big factor for me 178 00:08:40,820 --> 00:08:41,500 when I'm making a project. 179 00:08:41,599 --> 00:08:42,260 How do I make it cute? 180 00:08:42,340 --> 00:08:43,840 And you can't get cuter than Adabot. 181 00:08:44,540 --> 00:08:45,200 That's one of my favorites. 182 00:08:45,780 --> 00:08:48,080 And from the code perspective, I believe 183 00:08:48,160 --> 00:08:52,000 when we made that, the RP2040 prop maker feather was new. 184 00:08:52,820 --> 00:08:57,080 So for the code, it was a really good project 185 00:08:57,140 --> 00:08:58,720 to be able to show off everything 186 00:08:58,900 --> 00:08:59,960 that the feather could do. 187 00:09:00,500 --> 00:09:01,500 Because it has the accelerometer, 188 00:09:01,640 --> 00:09:02,460 it has the onboard speaker. 189 00:09:02,780 --> 00:09:08,180 you know, everything. And so with that code, it was a nice way to show off, like, you can 190 00:09:08,460 --> 00:09:12,800 control all these different components with just one board. It makes the wiring really 191 00:09:12,880 --> 00:09:15,480 neat. And yeah, it's huge. Yeah. 192 00:09:16,760 --> 00:09:20,360 Yeah, I interviewed Aaron Penley a while back and the PropMaker Feather is his favorite 193 00:09:20,500 --> 00:09:24,580 board. I think for a lot of people, it just does so many different things so well. 194 00:09:25,060 --> 00:09:31,059 Yeah, yeah. It's great to especially I find for audio projects too, because the PropMaker 195 00:09:31,060 --> 00:09:33,240 name might make people think like, Oh, I'll use this for 196 00:09:33,460 --> 00:09:35,580 props. But actually, I think it's a great music board to 197 00:09:35,960 --> 00:09:38,720 just because it has the I2S amp on board and then terminal 198 00:09:38,840 --> 00:09:40,880 block to connect up a speaker. Really cool board. 199 00:09:41,760 --> 00:09:43,640 Is there a favorite project that comes to mind for you, Liz? 200 00:09:44,720 --> 00:09:48,520 Oh, there's so many. Um, one collab that we had a lot of fun 201 00:09:48,600 --> 00:09:53,420 with was the Pico MIDI fighter. And at that point, the Raspberry 202 00:09:53,520 --> 00:09:58,679 Pi Pico was kind of new. It was cool to have like all these GPIO 203 00:09:58,840 --> 00:10:06,180 available on it. So we were able to do this four by four grid of arcade buttons. We had the screen 204 00:10:06,520 --> 00:10:11,080 so you're able to assign different MIDI note numbers to each button and you could change them 205 00:10:11,180 --> 00:10:17,260 on the fly. And that was such a fun collaboration. Noe did this great case with a handle on it so 206 00:10:17,260 --> 00:10:22,860 it looks kind of like a lunchbox and which is kind of like teenage engineering kind of style. 207 00:10:23,480 --> 00:10:27,399 One design house that we both get a lot of inspiration from and folks in the community 208 00:10:27,400 --> 00:10:31,780 have also remixed it and changed up the code and stuff. 209 00:10:32,000 --> 00:10:37,120 So it's, I really like that project because I felt like it kind of laid a good foundation 210 00:10:37,460 --> 00:10:42,820 for RP2040 MIDI projects to reference for and also kind of show like what you could 211 00:10:42,880 --> 00:10:45,740 do with CircuitPython and you know, a lot of GPIO pins. 212 00:10:46,340 --> 00:10:47,100 I like that project. 213 00:10:47,180 --> 00:10:51,700 I mean, yeah, it's got 16 buttons, but I like the way that you showcase the Pi Pico in that 214 00:10:51,820 --> 00:10:53,240 see-through case. 215 00:10:53,880 --> 00:10:57,720 And then you mentioned the handle, which also doubles as a kickstand for it, which is just 216 00:10:57,820 --> 00:10:59,080 an ingenious design. 217 00:11:01,160 --> 00:11:03,940 Speaking of MIDI projects, tell me about the MX Guitar. 218 00:11:04,840 --> 00:11:08,340 Yeah, so there's two MX Guitars. 219 00:11:08,920 --> 00:11:16,280 The first one was a MIDI controller, and we released that kind of the week that COVID-19 220 00:11:16,740 --> 00:11:17,100 started the lockdown. 221 00:11:17,100 --> 00:11:19,920 Yeah, we shut down, everybody shut down. 222 00:11:20,000 --> 00:11:21,740 The week of Friday the 13th of March. 223 00:11:22,520 --> 00:11:29,280 But that was our first guitar project and we wanted to do a MIDI guitar and we thought 224 00:11:29,340 --> 00:11:33,680 of the Guitar Hero controllers because the Guitar Hero controllers have like the whammy 225 00:11:33,940 --> 00:11:35,740 bar and it has that really cool strum mechanism. 226 00:11:36,480 --> 00:11:41,860 At the time we did not live together so I took apart a Guitar Hero controller, I took 227 00:11:41,880 --> 00:11:45,040 like a bunch of photos and we're sending them to him so he can have it as like a design 228 00:11:45,120 --> 00:11:49,280 reference and it was really fun but a real bear to wire. 229 00:11:49,660 --> 00:11:50,160 Yeah, it was. 230 00:11:50,420 --> 00:11:53,840 Because each button was individually wired up. 231 00:11:53,880 --> 00:11:56,300 >> We ended up using the Grand Central because it has all the GPIO. 232 00:11:56,620 --> 00:12:00,720 For the shape, I got a crash course on all the different guitar bodies. 233 00:12:00,820 --> 00:12:02,600 I actually am not a guitarist, 234 00:12:02,760 --> 00:12:05,140 I'm more of a drummer, but you are a guitarist. 235 00:12:05,140 --> 00:12:07,240 So you know all the things about guitar anatomy. 236 00:12:07,540 --> 00:12:08,960 I'm like, what's the coolest guitar? 237 00:12:09,560 --> 00:12:11,560 I think we narrowed it down to the Flying V. 238 00:12:11,840 --> 00:12:14,340 >> Yes. We used the Flying V for that one. 239 00:12:14,400 --> 00:12:15,700 I remember that night that we were chatting, 240 00:12:15,960 --> 00:12:19,640 we were just going through all these different guitar shapes together and everything. 241 00:12:20,180 --> 00:12:24,780 and we used a real guitar whammy bar in the final design. 242 00:12:24,780 --> 00:12:26,980 >> That's right. It just screws into 243 00:12:27,360 --> 00:12:32,000 this 3D printed little adaptive thing that turns into a, 244 00:12:32,500 --> 00:12:34,200 what was it? Is it a potentiometer? 245 00:12:34,960 --> 00:12:36,560 >> Yes, it was a potentiometer. 246 00:12:36,880 --> 00:12:39,400 Because if you open up the Guitar Hero controllers, 247 00:12:39,500 --> 00:12:40,620 that's actually what it is. It's like 248 00:12:40,620 --> 00:12:43,360 this spring mechanism that's turning a potentiometer. 249 00:12:44,180 --> 00:12:46,060 That was our first MX guitar. 250 00:12:46,460 --> 00:12:50,160 We always feel a little bad because it was the week of 251 00:12:50,160 --> 00:12:54,540 pandemic, like truly. So I know for myself, too, I had other things to worry about. Like 252 00:12:54,620 --> 00:12:58,080 once I get once the guide went up, it got to the point where I was like, I got I got 253 00:12:58,160 --> 00:13:03,900 too much going on. So we always wanted to revisit it because we really liked the concept. 254 00:13:04,040 --> 00:13:08,980 So when synth.io was added to the core, we thought, you know, what a great opportunity 255 00:13:08,980 --> 00:13:13,959 to make another guitar, but instead of it being a MIDI controller, make it like an actual 256 00:13:13,960 --> 00:13:20,360 synthesizer, and especially we have two young nephews, so the idea that like, you know, 257 00:13:20,540 --> 00:13:23,960 someone could use it as a music making tool, but then, you know, kids could also use it 258 00:13:23,980 --> 00:13:25,220 as a toy. 259 00:13:25,800 --> 00:13:30,900 And with what we learned with the first MX Guitar, we wanted to try to simplify the wiring. 260 00:13:31,520 --> 00:13:36,620 So we were able to use two 1x4 Neokey Seesaw breakouts. 261 00:13:37,260 --> 00:13:41,260 So that's I squared C breakouts, so really simplifies the wiring. 262 00:13:41,360 --> 00:13:42,840 And you still get eight notes. 263 00:13:42,940 --> 00:13:45,460 And then that was also the prop maker feather. 264 00:13:45,860 --> 00:13:46,320 - Yeah, it was. 265 00:13:46,680 --> 00:13:50,000 Yeah, it made a lot of the wiring easy with StemmaQT. 266 00:13:50,200 --> 00:13:51,820 You could just kind of connect those two 267 00:13:51,980 --> 00:13:53,560 one by four keys together. 268 00:13:54,320 --> 00:13:56,160 And you still gotta wire, you know, some potentiometers. 269 00:13:56,580 --> 00:14:00,280 But yeah, I think it was a fun one 270 00:14:00,360 --> 00:14:01,500 'cause everything's self-contained. 271 00:14:01,680 --> 00:14:03,680 You got a built-in speaker in the head, 272 00:14:03,820 --> 00:14:04,760 which was completely different. 273 00:14:05,460 --> 00:14:07,960 We have built-in batteries that are AA 274 00:14:08,020 --> 00:14:09,180 that are easy to change out. 275 00:14:09,280 --> 00:14:10,140 So it's like kid-friendly. 276 00:14:10,320 --> 00:14:12,120 You don't have to worry about puncturing a battery 277 00:14:12,260 --> 00:14:14,540 'cause there are these nice AA batteries. 278 00:14:14,780 --> 00:14:14,960 - Yeah. 279 00:14:15,300 --> 00:14:16,320 - And the body's different. 280 00:14:16,520 --> 00:14:17,480 I kind of forgot the name of it, 281 00:14:17,600 --> 00:14:18,080 but do you know what it is? 282 00:14:18,240 --> 00:14:19,400 - It's like a Gibson SG, 283 00:14:19,660 --> 00:14:22,620 so it has those two horns kind of at the top. 284 00:14:22,780 --> 00:14:23,000 - Yeah. 285 00:14:23,760 --> 00:14:25,440 - You know, that's a great example of, you know, 286 00:14:25,800 --> 00:14:27,800 we did one project and then we were able 287 00:14:27,880 --> 00:14:29,960 to kind of revisit it, like, okay, what did we like? 288 00:14:30,320 --> 00:14:31,220 What didn't we like? 289 00:14:31,480 --> 00:14:32,880 And kind of remix it. 290 00:14:33,080 --> 00:14:33,260 - Yeah. 291 00:14:33,360 --> 00:14:34,960 - I like when we get the opportunity to do that. 292 00:14:35,620 --> 00:14:38,200 - And then I got to reuse the same mechanism. 293 00:14:39,100 --> 00:14:41,740 We didn't need a whammy bar because we have the built-in accelerometers. 294 00:14:41,900 --> 00:14:42,880 We could just move the guitar. 295 00:14:43,020 --> 00:14:43,300 Yes. 296 00:14:43,680 --> 00:14:44,680 So that was different. 297 00:14:45,240 --> 00:14:47,340 But yeah, we had a lot of fun playing around with 298 00:14:47,440 --> 00:14:50,380 all the different modulation things that you can do with Synth.io. 299 00:14:50,800 --> 00:14:52,120 And are they rotary encoders? 300 00:14:52,460 --> 00:14:53,080 Those are rotary encoders. 301 00:14:53,220 --> 00:14:56,620 Yeah, they're again, the Stemma QT rotary encoders. 302 00:14:56,660 --> 00:14:57,780 There's three of them. 303 00:14:57,900 --> 00:14:58,240 Yeah. 304 00:14:58,560 --> 00:14:59,820 We're looking at it on our wall right now. 305 00:14:59,840 --> 00:14:59,960 Yeah. 306 00:15:00,420 --> 00:15:01,260 We're like, what is this thing? 307 00:15:01,400 --> 00:15:02,080 Oh, yeah, that's great. 308 00:15:02,260 --> 00:15:02,380 Yeah. 309 00:15:02,860 --> 00:15:05,840 Well, I'll make sure I link to all of these learn guides in the show notes as well, 310 00:15:05,900 --> 00:15:08,020 if people want to dig in and see the guides. 311 00:15:08,380 --> 00:15:08,860 Thank you. 312 00:15:09,580 --> 00:15:11,040 Yeah, I'd love to see more people build it. 313 00:15:11,300 --> 00:15:11,500 Yeah. 314 00:15:12,620 --> 00:15:17,140 The next project is another remix or something you visited from the past, but it's a little 315 00:15:17,280 --> 00:15:18,200 more utilitarian. 316 00:15:18,860 --> 00:15:20,380 What is the CircuitPython Slider? 317 00:15:21,120 --> 00:15:22,100 Oh, yeah. 318 00:15:22,700 --> 00:15:29,680 Yeah, the CircuitPython Slider is a remake of a motorized slider that we did with Arduino 319 00:15:30,020 --> 00:15:31,420 and a BLE module. 320 00:15:32,300 --> 00:15:39,480 So we both love doing videos and cinematography and getting these nice sliding shots is something 321 00:15:39,540 --> 00:15:40,180 we always wanted to do. 322 00:15:40,280 --> 00:15:43,160 They're pretty pricey, motorized sliders. 323 00:15:44,220 --> 00:15:49,800 I thought it'd be cool to redo that Arduino project with a feather, a motor feather wing, 324 00:15:49,900 --> 00:15:54,580 and this time in CircuitPython with an onboard screen so you can control it all without having 325 00:15:54,600 --> 00:15:58,280 to like futz around with your phone and remembering like, what does this number do? 326 00:15:58,440 --> 00:16:00,480 Or what does the keypads do? 327 00:16:01,100 --> 00:16:03,520 So that was the idea behind that one. 328 00:16:04,000 --> 00:16:07,220 And we are actually hoping to make a third version 329 00:16:07,500 --> 00:16:10,460 this time with the silent stepper motor driver. 330 00:16:10,980 --> 00:16:12,460 But yeah, that was a lot of fun to do. 331 00:16:12,600 --> 00:16:15,760 - And I would love to redo that code. 332 00:16:15,940 --> 00:16:17,860 That was probably the biggest CircuitPython project 333 00:16:17,880 --> 00:16:20,740 I had done at that point, and that's back in November 2019. 334 00:16:21,320 --> 00:16:24,200 And I was not working full time with Adafruit yet. 335 00:16:24,280 --> 00:16:26,260 I was still just kind of in the community. 336 00:16:26,500 --> 00:16:29,639 And that was a huge level up for me 337 00:16:29,640 --> 00:16:32,760 as far as the coding went and also working with stepper motors 338 00:16:33,060 --> 00:16:35,360 and there's a whole menu system and everything. 339 00:16:35,980 --> 00:16:38,800 And I've looked at the code every once in a while since then, 340 00:16:39,080 --> 00:16:41,760 and I know there's definitely a way it could be condensed 341 00:16:41,880 --> 00:16:43,020 and be a little bit more streamlined. 342 00:16:43,740 --> 00:16:45,920 So I would love to be able to go back 343 00:16:46,000 --> 00:16:47,800 and kind of have a full circle moment with that. 344 00:16:48,060 --> 00:16:48,720 - Hopefully this year. 345 00:16:48,880 --> 00:16:49,720 - Hopefully this year, yeah. 346 00:16:50,200 --> 00:16:51,340 - Well, that's true of any project. 347 00:16:51,500 --> 00:16:53,160 You get done, you look back at it and you go, 348 00:16:53,220 --> 00:16:54,300 oh, I could do this differently 349 00:16:54,520 --> 00:16:56,400 or I could simplify the code here. 350 00:16:57,040 --> 00:16:58,180 - And parts are just better. 351 00:16:58,400 --> 00:16:59,700 Like it's so loud. 352 00:16:59,860 --> 00:17:00,980 It's like, eh, eh, eh, eh, 353 00:17:01,220 --> 00:17:03,180 'cause it's like an eight bit chip or something, 354 00:17:03,560 --> 00:17:06,640 you know, it's very loud, you know, stepper driver. 355 00:17:07,079 --> 00:17:09,220 - Yeah, yeah, so it'd be good to have a silent one. 356 00:17:09,400 --> 00:17:09,579 - Yeah. 357 00:17:10,339 --> 00:17:13,000 - Let's talk about some of your more recent projects. 358 00:17:13,860 --> 00:17:15,140 Let's start with the prop maker, 359 00:17:15,439 --> 00:17:17,079 Jack-O-Lantern from this past Halloween. 360 00:17:17,740 --> 00:17:18,339 - Yeah. - Yeah. 361 00:17:19,079 --> 00:17:23,480 - That one was actually inspired by, I guess, you, Liz. 362 00:17:23,660 --> 00:17:26,219 You got an email 'cause you're subscribed 363 00:17:26,220 --> 00:17:33,580 to the IKEA newsletter and you saw that there's this new pumpkin that they started selling. 364 00:17:33,960 --> 00:17:38,900 Yeah, in August, IKEA, which we also love and get a lot of inspiration from, and also 365 00:17:39,080 --> 00:17:41,140 the breakfast at IKEA is excellent. 366 00:17:41,940 --> 00:17:42,500 They're on target. 367 00:17:42,800 --> 00:17:43,020 I know. 368 00:17:43,960 --> 00:17:50,800 But IKEA this year had this pumpkin light and I said to Noe, I was like, "Oh, you know, 369 00:17:51,180 --> 00:17:54,099 that could be a cool Halloween prop maybe." 370 00:17:54,100 --> 00:17:58,420 And then you kind of ran with it and you totally made this unique thing. 371 00:17:58,420 --> 00:18:00,280 At first I was like, I don't know what I'm going to do with this. 372 00:18:00,560 --> 00:18:01,660 Yeah, at first you weren't into it. 373 00:18:01,980 --> 00:18:02,220 Yeah. 374 00:18:02,300 --> 00:18:02,560 At all. 375 00:18:02,780 --> 00:18:07,240 I forget how, but at some point I thought it'd be cool to make the head turn. 376 00:18:07,860 --> 00:18:09,400 And in order to do that, I need a base. 377 00:18:09,540 --> 00:18:13,420 So then I went down this route of like, what's a cool base that the pumpkin could sit on? 378 00:18:13,860 --> 00:18:18,739 And then I kind of ran with that and figuring out how do I take out the guts of it, just 379 00:18:18,740 --> 00:18:22,080 like a little lamp and then like fit it into a new base, 380 00:18:22,360 --> 00:18:24,100 add a gear, add a motor. 381 00:18:24,800 --> 00:18:26,480 And then were you the one who was like, 382 00:18:26,560 --> 00:18:27,540 let's make it interactive. 383 00:18:27,800 --> 00:18:29,820 We can use a time of flight sensors 384 00:18:30,060 --> 00:18:34,080 so that as you approach it, it has different sound effects. 385 00:18:34,640 --> 00:18:35,580 - I think that was Lamore. 386 00:18:35,860 --> 00:18:36,560 - That was Lamore, okay. 387 00:18:36,580 --> 00:18:38,740 - Yeah, so again, like what's great is like, 388 00:18:38,820 --> 00:18:40,200 we might have kind of a base idea 389 00:18:40,440 --> 00:18:43,060 and then when we pitch it to Lamore Ladyada 390 00:18:43,560 --> 00:18:46,420 in our meetings or, you know, internal communications, 391 00:18:46,820 --> 00:18:49,840 she'll often have ways to use other components 392 00:18:50,140 --> 00:18:51,800 or just really flush out the project 393 00:18:51,880 --> 00:18:53,840 to make it like a better, basically. 394 00:18:54,360 --> 00:18:54,780 - Yeah. - Yeah. 395 00:18:55,700 --> 00:18:58,220 What was great too, when we filmed the project video, 396 00:18:58,820 --> 00:19:01,100 friend of mine recently bought a house, 397 00:19:01,180 --> 00:19:03,240 so they had like a nice stoop we were able to use 398 00:19:03,340 --> 00:19:04,680 'cause we're still in an apartment 399 00:19:05,100 --> 00:19:06,500 and they have a little kid, 400 00:19:06,820 --> 00:19:09,640 so a little kid was able to see the pumpkin and everything. 401 00:19:09,680 --> 00:19:12,440 And then we manned their door for trick or treat 402 00:19:12,500 --> 00:19:14,840 and Noe was able to set it up on the stoop, 403 00:19:14,920 --> 00:19:16,600 so all the trick or treaters were seeing it and everything. 404 00:19:16,800 --> 00:19:22,220 So it was a really cool project to be able to then use to on Halloween. 405 00:19:22,800 --> 00:19:23,360 Oh, that's great. 406 00:19:24,200 --> 00:19:28,300 Longtime listeners know that I'm a big fan of physical media, whether it's, 407 00:19:28,520 --> 00:19:30,720 you know, my vinyl music collection or collecting movies. 408 00:19:31,140 --> 00:19:32,760 So I love these next two projects. 409 00:19:33,540 --> 00:19:38,920 The NFC Raspberry Pi media player uses Blinka for CircuitPython. 410 00:19:39,700 --> 00:19:40,760 How did that project come about? 411 00:19:41,500 --> 00:19:45,820 - So I believe that L'amour saw on a blog 412 00:19:46,000 --> 00:19:49,160 someone else had done kind of a similar concept, 413 00:19:49,360 --> 00:19:52,700 which is basically you have an NFC card 414 00:19:53,220 --> 00:19:55,620 and you scan it on the NFC reader 415 00:19:56,280 --> 00:20:00,500 and then it triggers a movie or TV show to play. 416 00:20:00,740 --> 00:20:02,420 And we're like, you know, we could do this 417 00:20:02,480 --> 00:20:04,420 with just a Raspberry Pi and Blinka. 418 00:20:04,840 --> 00:20:08,920 And so we have the NFC breakout in the shop. 419 00:20:09,520 --> 00:20:10,960 So we use that over Spy. 420 00:20:11,200 --> 00:20:16,360 and then the Raspberry Pi 5 has the SSD hat, 421 00:20:16,900 --> 00:20:19,220 which lets you have a lot of storage on there. 422 00:20:20,260 --> 00:20:23,120 So it was a full Raspberry Pi project. 423 00:20:23,440 --> 00:20:26,480 The hat was kind of new to, I think for Adafruit, 424 00:20:26,560 --> 00:20:28,280 we hadn't really done a project that used it yet. 425 00:20:28,460 --> 00:20:29,580 - Is it the M.2? 426 00:20:29,640 --> 00:20:30,500 - M.2 hat, yeah. 427 00:20:31,520 --> 00:20:34,000 - So basically the way it works is you've got the NFC card, 428 00:20:34,160 --> 00:20:36,860 you scan it, and then the movie starts playing 429 00:20:37,140 --> 00:20:39,340 on the monitor connected to the Raspberry Pi. 430 00:20:39,680 --> 00:20:40,340 - Yes, yes. 431 00:20:41,000 --> 00:20:43,500 That sounds very simple in theory, 432 00:20:43,720 --> 00:20:46,040 but then in practice, it was a little tricky 433 00:20:46,520 --> 00:20:47,580 on the software end of things. 434 00:20:48,020 --> 00:20:49,060 Not the Blinka part. 435 00:20:49,160 --> 00:20:51,540 The Blinka part just worked 'cause the NFC 436 00:20:51,940 --> 00:20:54,260 and you can play the video file in VLC. 437 00:20:54,780 --> 00:20:58,200 But it got more into almost a Linux project really 438 00:20:58,320 --> 00:21:01,320 because you had to, well, I had to in the Python script 439 00:21:01,400 --> 00:21:04,959 figure out, okay, how do I have kind of a graphical 440 00:21:04,960 --> 00:21:10,080 interface, how do I get the movie to read properly from the 441 00:21:10,440 --> 00:21:14,600 disk? How and how do I get to mount it boots and all that. So 442 00:21:14,680 --> 00:21:18,760 that was, it was tricky. But I'm glad that now it's documented 443 00:21:19,360 --> 00:21:23,380 for folks if they want to do that with the m.2 hat, or you 444 00:21:23,380 --> 00:21:25,060 know, anything like that, because 445 00:21:25,560 --> 00:21:28,100 there's like a dedicated page on setting up your your Python 446 00:21:28,180 --> 00:21:32,880 environment. Yes, five is like, Okay, here's a whole new way to 447 00:21:33,180 --> 00:21:33,640 do Python. 448 00:21:33,760 --> 00:21:37,240 Yes, the Pi 5, the new version of Raspberry Pi OS, 449 00:21:37,320 --> 00:21:38,800 you have to have the virtual Python environment 450 00:21:38,980 --> 00:21:40,420 and yada, yada, yada. 451 00:21:41,040 --> 00:21:43,140 So that was very tricky. 452 00:21:43,620 --> 00:21:46,940 So that was definitely some frustration moments 453 00:21:47,300 --> 00:21:49,920 because also when we were documenting the project 454 00:21:50,000 --> 00:21:51,980 and we'd go to test it, sometimes we'd find that, 455 00:21:52,120 --> 00:21:55,200 oh, actually this part still isn't quite configured right. 456 00:21:55,600 --> 00:21:57,440 But that's good because then, 457 00:21:57,940 --> 00:21:59,400 in the guide we have it totally right 458 00:21:59,500 --> 00:22:02,320 and hopefully folks won't have to go to the forums 459 00:22:02,320 --> 00:22:04,300 to be like, "Hey, this isn't actually working." 460 00:22:04,300 --> 00:22:05,660 - From the enclosure standpoint, 461 00:22:08,100 --> 00:22:09,400 the Pi 5 gets hot. 462 00:22:09,680 --> 00:22:11,720 And it turns out it can melt PLA. 463 00:22:12,460 --> 00:22:14,860 So I had to go back and redesign the case 464 00:22:14,940 --> 00:22:17,860 to allow some room for the active cooling fans. 465 00:22:18,000 --> 00:22:19,960 Like any Pi project that we do now, 466 00:22:20,160 --> 00:22:21,560 you've gotta have the active cooling fan. 467 00:22:21,600 --> 00:22:22,480 It just gets too hot. 468 00:22:22,860 --> 00:22:24,740 - Yeah, which we hadn't run into before 469 00:22:24,920 --> 00:22:27,060 when we've done other Raspberry Pi projects. 470 00:22:27,120 --> 00:22:29,860 - I can still smell the burning PLA turning back 471 00:22:29,900 --> 00:22:31,400 and be like, "Is it the case? 472 00:22:31,640 --> 00:22:32,500 Oh my God, it is. 473 00:22:33,160 --> 00:22:34,740 And it was all warped and stuff. 474 00:22:35,520 --> 00:22:37,040 So it's good to test your project long-term, 475 00:22:37,100 --> 00:22:39,380 not just for five minutes, play a whole movie. 476 00:22:39,580 --> 00:22:41,360 And you know, find out, is this thing working? 477 00:22:41,460 --> 00:22:43,380 Not just from the code, but is my enclosure melting? 478 00:22:43,700 --> 00:22:46,440 - But much like you, Paul, I love physical media 479 00:22:46,700 --> 00:22:48,680 and I have a really big movie collection. 480 00:22:49,120 --> 00:22:52,200 So, and I've always been trying to find like ways to, 481 00:22:52,760 --> 00:22:54,920 you know, digitize it or, you know, 482 00:22:55,080 --> 00:22:58,180 make it so that it's like streaming, but still using it. 483 00:22:58,280 --> 00:23:02,340 So I really liked the opportunity to kind of test that out. 484 00:23:02,500 --> 00:23:05,580 And then you also had a really fun design thing 485 00:23:05,660 --> 00:23:06,420 with the cards. 486 00:23:06,940 --> 00:23:09,040 - Yeah, we could have always just put like a sticker 487 00:23:09,560 --> 00:23:11,480 on the NFC card, but I thought it'd be cool 488 00:23:11,580 --> 00:23:16,320 to turn the card into a little mini VHS themed enclosure. 489 00:23:16,680 --> 00:23:19,380 So I created this little case that the card would fit into. 490 00:23:19,900 --> 00:23:23,880 And that was fun to kind of throw back to VHS 491 00:23:24,020 --> 00:23:25,340 'cause that's kind of what we grew up on 492 00:23:25,420 --> 00:23:26,680 in the 90s with VHS. 493 00:23:28,160 --> 00:23:31,360 and then you got to use all those kind of throwaway 494 00:23:31,760 --> 00:23:33,040 NFC cards that you collected. 495 00:23:33,180 --> 00:23:34,700 And you're like, one day I'm gonna use these cards. 496 00:23:34,820 --> 00:23:35,720 What kind of cards are they? 497 00:23:35,820 --> 00:23:36,920 - They were MBTA, 498 00:23:37,180 --> 00:23:39,620 which is Massachusetts Bay Transit Authority, 499 00:23:40,440 --> 00:23:42,640 cards for taking the train in Massachusetts. 500 00:23:42,980 --> 00:23:45,660 I used to have a new train pass every month 501 00:23:45,860 --> 00:23:47,360 and I never got rid of them 502 00:23:47,460 --> 00:23:48,420 'cause it felt kind of wasteful 503 00:23:48,460 --> 00:23:49,580 'cause I knew there were electronics in it. 504 00:23:49,680 --> 00:23:52,160 And turns out they use the same protocol 505 00:23:52,440 --> 00:23:56,680 that the NFC cards that we sell in the Adafruit shop uses. 506 00:23:57,420 --> 00:23:58,580 stack of these cards. 507 00:23:58,880 --> 00:24:01,360 Yeah, so we have a bunch if we want to extend. 508 00:24:02,940 --> 00:24:07,280 The last project I want to ask about is this is how I started in CircuitPython was doing 509 00:24:07,440 --> 00:24:08,500 audio reactive projects. 510 00:24:09,140 --> 00:24:13,320 You created the audio reactive video synth with the new RP-2350. 511 00:24:14,160 --> 00:24:19,280 Yeah, so that was my third video synth that I've done for Adafruit. 512 00:24:19,580 --> 00:24:22,740 And for me, it felt like this really kind of fun full circle thing. 513 00:24:22,820 --> 00:24:25,580 I'd always wanted to do an audio reactive one, 514 00:24:26,220 --> 00:24:29,480 but for whatever reason, it was either too resource intensive 515 00:24:29,820 --> 00:24:31,580 or whatever programming language I was using 516 00:24:32,100 --> 00:24:32,680 didn't quite work out. 517 00:24:32,740 --> 00:24:34,240 And this was the first time I was able to do it 518 00:24:34,320 --> 00:24:35,260 in CircuitPython. 519 00:24:35,840 --> 00:24:40,220 And the Feather RP2350 with the HSTX made that possible. 520 00:24:40,600 --> 00:24:42,240 So that was really awesome. 521 00:24:42,340 --> 00:24:44,940 I was really excited that everything I wanted to do 522 00:24:45,000 --> 00:24:47,100 in CircuitPython was able to be accomplished 523 00:24:47,560 --> 00:24:49,960 and it was working exactly how I wanted it to. 524 00:24:50,260 --> 00:24:52,900 And then I kind of turned to you for the enclosure. 525 00:24:53,780 --> 00:24:55,000 And you had a good start. 526 00:24:55,220 --> 00:24:57,820 I like when you make an enclosure has like angled faces. 527 00:24:58,360 --> 00:24:59,180 And that's really cool. 528 00:24:59,680 --> 00:25:02,780 Yeah. But when we when I started to remake it, 529 00:25:03,540 --> 00:25:07,240 I found it difficult to mount the mic just because the mounting holes 530 00:25:07,340 --> 00:25:09,680 are in this weird spot and they're a little close together. 531 00:25:10,280 --> 00:25:13,080 So it's very cool to put the mic in its own enclosure 532 00:25:13,420 --> 00:25:16,220 and then fit that on top of the main base of the enclosure. 533 00:25:16,920 --> 00:25:18,600 And that way you can have kind of fun. 534 00:25:18,620 --> 00:25:22,120 And I went with like this kind of like mics from the 50s, 535 00:25:22,200 --> 00:25:24,880 like they have like the kind of the steel enclosure. 536 00:25:25,280 --> 00:25:28,260 So it was fun to kind of break that out and make it its own thing, 537 00:25:28,340 --> 00:25:32,700 because that's kind of kind of calling attention to this is where the audio goes into. 538 00:25:33,120 --> 00:25:34,180 Right. So it's kind of cool. 539 00:25:34,240 --> 00:25:35,420 And then we could use different colors. 540 00:25:35,880 --> 00:25:39,500 We always come up with these fun kind of Fisher Price colors. 541 00:25:39,800 --> 00:25:42,560 Yeah, I always want a bunch of colors. 542 00:25:42,680 --> 00:25:45,760 Yeah. And the enclosure is also kind of inspired by Love Holton, 543 00:25:45,780 --> 00:25:48,300 who's another designer we like a lot. 544 00:25:48,400 --> 00:25:50,880 And for those who don't know, he takes these, you know, 545 00:25:51,040 --> 00:25:55,120 off the shelf synths or guitar pedals, and he makes these completely new 546 00:25:55,680 --> 00:25:59,320 housings that look a lot like, you know, postmodern kind of stuff. 547 00:25:59,820 --> 00:26:01,960 Yeah, kind of 70s vibe. Yeah. Yeah. 548 00:26:02,700 --> 00:26:06,340 So in the enclosure, there's built three or four pots 549 00:26:07,000 --> 00:26:08,160 and you can change modes. 550 00:26:08,440 --> 00:26:10,420 What are the different modes in the video synth? 551 00:26:10,860 --> 00:26:13,880 Yeah. So I used a rotary encoder for mode changing. 552 00:26:13,900 --> 00:26:19,420 And so the first one is kind of audio reactive bars, like your classic audio EQ. 553 00:26:20,140 --> 00:26:23,660 And that was kind of cribbed by Phil B had done some code using 554 00:26:24,080 --> 00:26:26,300 our, one of the matrix breakouts. 555 00:26:26,680 --> 00:26:29,440 And that was kind of my test to see like, okay, will the audio reactive 556 00:26:29,560 --> 00:26:35,540 stuff work with the DVI output from the RP 2350, or am I going to like 557 00:26:35,600 --> 00:26:36,920 run into memory errors because. 558 00:26:37,340 --> 00:26:40,819 Yeah, you're asking the board to do a lot when you're, you know, displaying 559 00:26:40,820 --> 00:26:44,780 out DBI and you're using audio reactive, which is FFT, but it 560 00:26:44,800 --> 00:26:49,020 did it. And so then I went from there and I made a kind of 561 00:26:49,120 --> 00:26:53,400 bouncing circles, one that had the circles change shape, 562 00:26:53,600 --> 00:26:56,320 depending on the audio spectrum, those coming in, and they're 563 00:26:56,380 --> 00:27:01,040 bouncing around the screen. And then the third animation is a 564 00:27:01,040 --> 00:27:05,300 party parrot. So you have the party parrot in the back and the 565 00:27:05,480 --> 00:27:08,439 he's kind of bopping around to the lower frequency. So if you 566 00:27:08,440 --> 00:27:12,700 had a bass drum beat going, then he would move his head for every beat. 567 00:27:12,940 --> 00:27:15,660 So you kind of get this syncopated vibe from him. 568 00:27:15,840 --> 00:27:20,780 And then there are these two circles on either side of him that are going to the overall 569 00:27:20,840 --> 00:27:21,180 amplitude. 570 00:27:21,640 --> 00:27:24,940 So depending on how loud the music is, that affects their size. 571 00:27:25,580 --> 00:27:30,860 And then I had three potentiometers that were changing color for different shapes or how 572 00:27:31,020 --> 00:27:31,880 reactive it was. 573 00:27:32,080 --> 00:27:36,939 Because the thing with the audio reactive stuff is with the music, like your music will 574 00:27:36,940 --> 00:27:41,740 be different levels, obviously. So I wanted to be able to control like how sensitive things were, 575 00:27:41,840 --> 00:27:46,880 so you wouldn't have to have the music blasting. And yeah, it was just really fun to be able to 576 00:27:47,720 --> 00:27:52,720 have it all come together in CircuitPython. I'd done one in Arduino before, but 577 00:27:53,780 --> 00:27:58,120 waiting to compile everything for testing was always really tricky. So to be able to 578 00:27:58,500 --> 00:28:03,280 test those three animations quickly, the CircuitPython also made it really enjoyable. 579 00:28:03,340 --> 00:28:06,760 Do you have any advice for people when collaborating? 580 00:28:08,500 --> 00:28:15,820 I think just based on not great collabs I've had and then versus really good collabs, because 581 00:28:15,860 --> 00:28:21,340 I've been in bands too where you're working together with people, is always be open to 582 00:28:21,780 --> 00:28:31,299 other folks' point of view and always be willing to kind of step back and let other folks work 583 00:28:31,300 --> 00:28:33,580 on different aspects that maybe aren't your strongest suit. 584 00:28:33,920 --> 00:28:37,000 So sometimes, like, for example, with the video synth, 585 00:28:37,580 --> 00:28:41,680 I was thinking it was going to be a project I just worked on by myself. 586 00:28:41,760 --> 00:28:43,880 So I had sketched up the enclosure. 587 00:28:44,700 --> 00:28:47,940 But I knew almost immediately that the enclosure wasn't that great. 588 00:28:48,020 --> 00:28:49,620 I knew, no, I could do a better job. 589 00:28:49,660 --> 00:28:52,920 So I was like, hey, let's actually collab on this and have him come in. 590 00:28:53,340 --> 00:28:56,680 And he makes this beautiful enclosure that is just fantastic 591 00:28:57,020 --> 00:28:59,360 and greater than anything I could have done on my own. 592 00:28:59,400 --> 00:29:01,280 And also he did it faster than I could have as well. 593 00:29:01,800 --> 00:29:04,580 Resisting the urge to stay in your silo 594 00:29:04,700 --> 00:29:06,360 and just power through and get stuff done, 595 00:29:06,600 --> 00:29:09,260 kind of open things up and yeah, 596 00:29:09,420 --> 00:29:11,300 just be open to other folks. 597 00:29:12,100 --> 00:29:13,040 - Liz, that's a great answer. 598 00:29:13,600 --> 00:29:15,660 Noe and Liz, thanks so much for coming on the show. 599 00:29:16,120 --> 00:29:17,260 - Thanks so much for having us. 600 00:29:17,340 --> 00:29:17,760 - Thank you. 601 00:29:20,320 --> 00:29:21,680 - Thank you to Liz and Noe for sharing 602 00:29:21,800 --> 00:29:23,980 how they work together and collaborate on their projects 603 00:29:24,200 --> 00:29:25,980 and discussing some of their awesome collabs. 604 00:29:26,540 --> 00:29:30,860 For show notes and transcripts, visit www.circuitpythonshow.com. 605 00:29:31,480 --> 00:29:33,100 Until next time, stay positive.