1 00:00:02,460 --> 00:00:04,340 Welcome to the CircuitPython Show. 2 00:00:04,720 --> 00:00:05,760 I'm your host, Paul Cutler. 3 00:00:06,100 --> 00:00:07,580 This episode I welcome John Ellis. 4 00:00:08,380 --> 00:00:12,380 When John was six, his career ambition was to work part-time building robots and part-time 5 00:00:12,440 --> 00:00:13,440 working at McDonald's. 6 00:00:14,040 --> 00:00:18,300 Even in the 90s, he understood the practical duplicity of hacking as a passion while working 7 00:00:18,340 --> 00:00:21,120 a corporate job to get the drop on the latest Happy Meal toys. 8 00:00:21,460 --> 00:00:22,660 It guides him to this day. 9 00:00:23,480 --> 00:00:27,520 John started working on Apple IIe's in the only computer lab in his rural community, 10 00:00:28,140 --> 00:00:29,820 which luckily was run by his mother. 11 00:00:30,400 --> 00:00:35,260 He started by writing text adventures in BASIC and fixing floppy drives he had broken, sometimes 12 00:00:35,300 --> 00:00:37,960 using typewriter parts to get mechanical pieces to work. 13 00:00:38,560 --> 00:00:42,900 This grew into a career that required a mix of hardware and software hacking, even as 14 00:00:42,940 --> 00:00:44,360 the infrastructure moved to the cloud. 15 00:00:45,240 --> 00:00:50,480 Currently John is the CTO of the non-profit Indiana Tech for Progress, which finds ways 16 00:00:50,540 --> 00:00:54,260 to leverage technology in order to increase civic engagement on a local level. 17 00:00:55,220 --> 00:00:58,640 projects on his workbench include a Keurig that briefly caught fire, an 18 00:00:58,780 --> 00:01:03,660 intelligent but retro alarm clock for his kids, a continually broken SNES 19 00:01:03,820 --> 00:01:07,240 controller, and a Bluetooth controlled lamp made from a bottle of a since 20 00:01:07,500 --> 00:01:12,420 closed brewery. John, welcome to the show. Paul, thanks for having me and 21 00:01:12,600 --> 00:01:16,400 congratulations on the new season as well. Thanks. How did you first get 22 00:01:16,600 --> 00:01:21,400 started with computers and electronics? So my story, and it's a lot like your 23 00:01:21,340 --> 00:01:25,780 previous guests as well started back in the 80s but it really started with my 24 00:01:25,960 --> 00:01:30,500 mother being the inspiration. So we were, as a lot of your guests were too, in 25 00:01:30,780 --> 00:01:36,040 rural parts of the country. I was in rural Midwest. My mom wanted to find a 26 00:01:36,180 --> 00:01:41,520 job at a local optometrist office and they asked her if she knew computers. If 27 00:01:41,540 --> 00:01:44,880 she could work the fancy spreadsheet programs that they were trying to begin 28 00:01:44,960 --> 00:01:49,939 to use. She had no idea but one important lesson that she passed on to me was say 29 00:01:49,940 --> 00:01:57,520 yes and step outside of your comfort zone. So she said yes and learned how to navigate an Apple II. 30 00:01:58,260 --> 00:02:03,360 And then when she went back to teaching, they asked again, "Do you have any experience with 31 00:02:03,500 --> 00:02:07,620 computers?" She said, "Oh yeah, absolutely. I had to do some minor repairs and work on the Apple II." 32 00:02:08,320 --> 00:02:15,280 They were like, "Great! We have a grant from the state to start the first computer lab here in the 33 00:02:15,350 --> 00:02:19,320 southern part of the state and we need someone to run it. None of the teachers know how to." 34 00:02:19,860 --> 00:02:22,020 So she said, "Yeah, sure, I'll run it." 35 00:02:22,020 --> 00:02:27,120 And so she got an extra large classroom filled with, I believe, over a dozen 36 00:02:27,460 --> 00:02:30,440 Apple IIe's, and I even had Koala pads. 37 00:02:30,560 --> 00:02:32,720 I had multiple dot matrix printers. 38 00:02:33,330 --> 00:02:34,360 It was fantastic. 39 00:02:35,210 --> 00:02:39,240 And so that's where I would spend my afterschool, before school, and summers 40 00:02:39,680 --> 00:02:45,979 was in this completely geeked out mad scientist lab, which was her classroom 41 00:02:46,320 --> 00:02:51,540 and often breaking things and then I had to figure out how to repair it, often with typewriter supplies. 42 00:02:52,360 --> 00:02:57,900 I did that famously to several floppy disk drives that she had. But also she would get in new 43 00:02:58,220 --> 00:03:04,260 software, so Broderbund wanted her to try out this new thing called Oregon Trail. They wanted 44 00:03:04,830 --> 00:03:11,439 her to try out the koala pads for this lab. And so from there I started to kind of learn how to 45 00:03:11,440 --> 00:03:17,020 not only use and implement the software and fix things, but also how to write my own text adventures. 46 00:03:17,880 --> 00:03:21,180 And from there, it kind of evolved into 47 00:03:21,950 --> 00:03:25,200 I knew how to repair, I knew how to fix, I knew how to work on these things. 48 00:03:25,940 --> 00:03:28,120 And I was surprised that people would actually pay me 49 00:03:28,680 --> 00:03:32,180 as I got into middle school to fix their computers 50 00:03:32,400 --> 00:03:34,980 and for small businesses, and that became a thing. 51 00:03:35,800 --> 00:03:38,439 And then after all, I was like, this could actually become 52 00:03:38,800 --> 00:03:42,820 a living where I could code, where I could write my own stuff, but I never knew quite 53 00:03:43,020 --> 00:03:44,720 how to angle that. 54 00:03:45,580 --> 00:03:50,840 And so I got involved in the startup scene here in the Midwest. 55 00:03:51,530 --> 00:03:57,380 One of the first ones was a company called ChaCha, which was you could text any question 56 00:03:57,760 --> 00:04:00,680 to their SMS number and get an answer back. 57 00:04:01,250 --> 00:04:04,960 It was a lot of people trying to cheat on tests, but also was Chuck Norris jokes. 58 00:04:05,780 --> 00:04:12,220 So I wrote an early, kind of not really AI bot, but the best facsimile I could come up 59 00:04:12,300 --> 00:04:17,299 with is like, human people are receiving these questions and answer, could I auto answer 60 00:04:17,400 --> 00:04:18,320 them back somehow? 61 00:04:19,060 --> 00:04:23,940 And that kind of gave me the bug on modern software as well as software as a service 62 00:04:24,180 --> 00:04:27,820 and cloud platforms and how to continue to grow and build these platforms. 63 00:04:27,840 --> 00:04:30,300 And that's where it's gone ever since then. 64 00:04:30,480 --> 00:04:35,760 But my roots and kind of my heart has stayed in those smaller machines where you can hack 65 00:04:35,760 --> 00:04:38,240 on not just the software, but the electronics itself. 66 00:04:39,360 --> 00:04:40,400 - You mentioned the KoalaPad, 67 00:04:40,430 --> 00:04:42,820 and I totally forgot about that until you said that, 68 00:04:42,840 --> 00:04:45,080 and it took me right back to being a kid again, 69 00:04:45,300 --> 00:04:47,260 playing with Apple IIs in a classroom environment. 70 00:04:47,860 --> 00:04:51,000 - I mean, it was amazing what they could do with so little. 71 00:04:51,060 --> 00:04:53,340 And that's another thing that's still with me today, 72 00:04:53,440 --> 00:04:56,260 you know, when working on like Trinkets or the M0s 73 00:04:56,440 --> 00:04:57,940 or the ESP32s, right? 74 00:04:58,500 --> 00:05:01,160 The Apple II was, and the IIes, 75 00:05:01,720 --> 00:05:03,360 were fairly simplistic in what they could do, 76 00:05:03,420 --> 00:05:06,220 but they had touchpad interfaces. 77 00:05:06,480 --> 00:05:09,380 They had all the modern trappings that we enjoy today, 78 00:05:09,960 --> 00:05:11,840 and they were able to do it with much fewer resources 79 00:05:12,020 --> 00:05:12,940 than what we've got right now. 80 00:05:14,060 --> 00:05:16,040 - One of my favorite questions to ask guests is, 81 00:05:16,180 --> 00:05:18,040 how did you get your handle Decker Ego? 82 00:05:19,300 --> 00:05:26,800 - So Decker Ego came out of Doom the game and id Software. 83 00:05:27,540 --> 00:05:31,060 So I was a big fan of John Carmack 84 00:05:31,060 --> 00:05:34,420 because it was amazing what he could do with, 85 00:05:34,720 --> 00:05:37,220 what he would say is high school math 86 00:05:37,820 --> 00:05:41,620 and then build an entire immersive environment around that. 87 00:05:42,400 --> 00:05:45,160 When John Romero released things like DoomEd 88 00:05:45,200 --> 00:05:46,800 and all of the hacking tools around it, 89 00:05:47,400 --> 00:05:50,040 I got super into not just playing Doom, 90 00:05:50,040 --> 00:05:51,040 but how do you hack it? 91 00:05:51,120 --> 00:05:52,700 How do you build new things with it? 92 00:05:53,300 --> 00:05:56,420 And thinking about the name of their studio, 93 00:05:56,980 --> 00:05:57,820 of id Software, 94 00:05:58,460 --> 00:06:02,640 I knew that was a kind of spin on Freud's id, ego, 95 00:06:02,740 --> 00:06:03,440 and super ego. 96 00:06:04,170 --> 00:06:07,920 So then I tried to take what I knew from Shadowrun, 97 00:06:08,040 --> 00:06:12,180 the RPG where you've got a Decker that has neural implants 98 00:06:12,220 --> 00:06:14,840 that lets them hack into the matrix and do whatever. 99 00:06:15,380 --> 00:06:19,520 So the Decker side of that cyberpunk universe, 100 00:06:20,280 --> 00:06:24,100 plus the opposite side, the rationality of ego 101 00:06:24,300 --> 00:06:27,040 as the post to id became Decker ego together. 102 00:06:27,700 --> 00:06:28,200 I love it. 103 00:06:29,300 --> 00:06:30,540 You've created a few different projects 104 00:06:30,540 --> 00:06:31,840 for the Adafruit MacroPad. 105 00:06:32,110 --> 00:06:34,240 My favorite is the MacroPad Hotkeys 2. 106 00:06:34,640 --> 00:06:36,640 What was your inspiration in creating the project? 107 00:06:37,760 --> 00:06:42,600 - So in truth, I have very low willpower 108 00:06:42,800 --> 00:06:45,860 when it comes to not buying things on Adafruit. 109 00:06:45,980 --> 00:06:49,640 And when I saw that the back plane of it 110 00:06:49,700 --> 00:06:52,760 had like the Pioneer 10 golden plaque on it, 111 00:06:53,360 --> 00:06:56,620 as well as the image of the probe itself, 112 00:06:56,980 --> 00:06:59,580 and then it had that array of, you know, 113 00:06:59,700 --> 00:07:02,100 the 12 keys with the NeoPixels behind it 114 00:07:02,460 --> 00:07:03,480 and rotary encoder. 115 00:07:03,900 --> 00:07:04,900 It's like, I've got to have it. 116 00:07:05,000 --> 00:07:09,880 And I bought two of them with no real impulse in mind 117 00:07:09,920 --> 00:07:11,540 other than this was a cool piece of hardware. 118 00:07:12,460 --> 00:07:14,700 But it immediately, of course, brought to mind, 119 00:07:14,820 --> 00:07:17,200 like all of the keyboards that we have now 120 00:07:17,200 --> 00:07:18,160 are missing a numpad. 121 00:07:18,790 --> 00:07:21,220 And I was thinking to all of the games that I used to have 122 00:07:21,360 --> 00:07:22,800 or all of the software that I used to have 123 00:07:22,840 --> 00:07:24,240 that would rely on that numpad. 124 00:07:24,670 --> 00:07:26,960 It drove me a little nuts that it was on the right side 125 00:07:26,960 --> 00:07:27,900 as opposed to the left. 126 00:07:28,490 --> 00:07:34,320 And so this was, it seemed like to me, a perfect idea to use that as an extension of ye old 127 00:07:34,380 --> 00:07:36,220 numpad from former days. 128 00:07:36,840 --> 00:07:41,860 And they already had a Learn tutorial out there for how to do just that, which was really 129 00:07:41,960 --> 00:07:45,580 cool but the LEDs stayed on all day. 130 00:07:46,400 --> 00:07:52,120 I often wanted to switch between No Man's Sky or Audacity on the macros that I had. 131 00:07:52,660 --> 00:07:55,300 And so I wanted to keep extending that and building that out. 132 00:07:56,120 --> 00:08:00,440 And a part of that also is I wanted to keep the same readability that I had with the code 133 00:08:01,140 --> 00:08:06,580 so that it could still be extended and modified by other people, but it wanted some additional 134 00:08:06,680 --> 00:08:08,920 features that made it a little bit easier to use. 135 00:08:09,080 --> 00:08:11,860 And so that's the genesis of that idea. 136 00:08:12,760 --> 00:08:17,940 And then I created a second version later when I started to get into DaVinci Resolve 137 00:08:18,560 --> 00:08:19,180 and using that. 138 00:08:19,280 --> 00:08:22,440 That has multiple pages within a single app. 139 00:08:23,520 --> 00:08:26,500 definitely need to learn a lot of the shortcuts and the hot keys to navigate 140 00:08:26,720 --> 00:08:31,940 that and do your workflow quickly. And so it was around the idea of a lot like 141 00:08:31,960 --> 00:08:38,520 with Blender you have one hand on the keys, one hand on the mouse, and you're 142 00:08:38,580 --> 00:08:42,479 able to navigate the UI together. And so that was the inspiration behind that and 143 00:08:42,539 --> 00:08:47,780 knowing that I'm never going to be able to exhaustively code all of the 144 00:08:48,300 --> 00:08:52,080 shortcuts and macros that someone's going to need. How do I make it easily 145 00:08:52,080 --> 00:08:56,720 usable in a studio environment, even with people who have minimal experience and 146 00:08:56,780 --> 00:08:59,640 exposure to programming with CircuitPython. 147 00:08:59,970 --> 00:09:03,520 Yeah, the MacroPad is probably my favorite product that Adafruit sells. 148 00:09:04,040 --> 00:09:08,600 And I even wrote the awesome guide for it to share all the different stuff out 149 00:09:08,660 --> 00:09:11,880 there and I featured yours at the top because I love it so much. And one of the 150 00:09:11,960 --> 00:09:16,060 things that I love about it is I experienced burn-in on my OLED screen. 151 00:09:16,720 --> 00:09:20,020 You added a timeout so that doesn't happen. How are you able to do that? 152 00:09:20,760 --> 00:09:22,940 Yeah, so it goes into a tiny little sleep 153 00:09:23,080 --> 00:09:26,040 and I think about that probably more than I should, 154 00:09:26,100 --> 00:09:29,700 but I think about not only not exhausting the LEDs 155 00:09:29,940 --> 00:09:31,280 and the displays that are out there, 156 00:09:31,640 --> 00:09:34,040 but how do you reduce the power consumption also 157 00:09:34,720 --> 00:09:36,820 so that it's not constantly polling 158 00:09:36,960 --> 00:09:39,020 and it's constantly trying to wait for input. 159 00:09:39,300 --> 00:09:41,460 So you'll see a little bit of lag as well 160 00:09:42,380 --> 00:09:43,880 when you try to get it to wake back up 161 00:09:43,880 --> 00:09:45,320 where you'll notice that the rotary encoder 162 00:09:45,400 --> 00:09:46,960 doesn't necessarily do it every time. 163 00:09:47,640 --> 00:09:49,160 It's 'cause I'm trying to be cognizant 164 00:09:49,160 --> 00:09:54,840 both power with extended sleep operations as well as having it be responsive also. 165 00:09:55,980 --> 00:09:59,800 I've been this way since I was a kid that I don't want to I want things to last forever 166 00:10:00,220 --> 00:10:05,000 perpetually be there I want to create time capsules out of everything and so that was 167 00:10:05,680 --> 00:10:10,700 part it wasn't it wasn't a huge technical issue in order to make that work on the 168 00:10:10,880 --> 00:10:14,200 MacroPad but with all of my projects I tried to add that sleep functionality 169 00:10:14,920 --> 00:10:20,500 still maintain state so that it isn't forgetting where it was at or where you were in the process 170 00:10:21,060 --> 00:10:25,620 and can easily resume where you left off as well. So when you code first with that sleep 171 00:10:25,740 --> 00:10:28,900 implementation it definitely makes things a lot easier because then you have to think about 172 00:10:29,380 --> 00:10:35,180 state management bringing it back and it's not complex to do as long as you start with that idea 173 00:10:35,180 --> 00:10:43,160 in mind. Tell me about another MacroPad project the MacroPad 4-chord MIDI. I saw in a hackaday 174 00:10:43,800 --> 00:10:50,720 where someone had come up with a MIDI controller that would recreate 90% of the pop songs out 175 00:10:50,760 --> 00:10:57,660 there with just four chords. And this is someone who had done their own custom PCB to make it look 176 00:10:57,800 --> 00:11:03,280 like a teeny little piano and with just I think it was seven buttons total because one was like 177 00:11:03,280 --> 00:11:09,960 to arpeggiate one was to change the tempo. You could recreate faithfully so many pop songs were 178 00:11:09,800 --> 00:11:15,900 out there and it tickled the logic programmer side of my brain of like, "Oh, this seems like 179 00:11:16,960 --> 00:11:22,440 procedurally you can generate a lot of music. That's kind of interesting." And if you look at 180 00:11:22,600 --> 00:11:31,960 the Adafruit Macro Pad, it's got three columns to it, which for a chord you have three notes to a 181 00:11:32,120 --> 00:11:39,780 chord and then you have four rows. So that's perfect for a four chord progression and that's 182 00:11:39,780 --> 00:11:44,960 idea came from was like watching that and then also watching the Axis of Awesome 183 00:11:46,120 --> 00:11:50,360 perform their four chord song where they go through a phalanx of like, I don't know, 184 00:11:50,840 --> 00:11:55,100 30 pop songs with just four chords, which was the inspiration for the earlier project. 185 00:11:55,820 --> 00:12:00,600 And it's like, this could be something really fun. And so it was really out of my own bemusement 186 00:12:01,400 --> 00:12:06,220 to say, all right, it's this is Kismet. We've got three notes, we've got four chords, 187 00:12:06,220 --> 00:12:10,300 That's perfect to the layout of the macro pad. Now, how do we make this work? 188 00:12:10,610 --> 00:12:14,320 I still want to do some tricks to that because I'd also like to add some things like 189 00:12:15,040 --> 00:12:16,840 drum beats to it or drum progressions 190 00:12:17,320 --> 00:12:23,540 I've that kind of got me on the path of like learning how Bjork used like I think is the Qy 20 of 191 00:12:24,320 --> 00:12:29,980 Like using these older electronics, you know that were based heavily on analog circuitry or those of the TR 192 00:12:30,880 --> 00:12:32,620 808 those old drum machines 193 00:12:32,620 --> 00:12:39,280 So like it got me on this old bent of again the old ways these old machines 194 00:12:39,460 --> 00:12:44,920 How they able to do so much with so little and I'd like to see if I can continue to weave that into the macro pad 195 00:12:44,960 --> 00:12:46,820 As well, that's pretty awesome 196 00:12:47,860 --> 00:12:52,100 You have a project that integrates with OBS. What does tally circuit pie do? 197 00:12:53,120 --> 00:12:56,940 Yeah, so tally circuit pie was actually born out of the kovat era 198 00:12:57,540 --> 00:13:02,400 when everyone was moving things to an online presence, right? 199 00:13:02,960 --> 00:13:05,880 And so Easter services were online, 200 00:13:06,080 --> 00:13:08,000 meetings were online, classrooms were online, 201 00:13:08,020 --> 00:13:10,040 and I started to help people out with that. 202 00:13:10,100 --> 00:13:12,780 I came in heavily masked with sanitary wipes 203 00:13:12,900 --> 00:13:13,840 and stuff like that. 204 00:13:14,380 --> 00:13:16,100 And then I found that a lot of people 205 00:13:16,100 --> 00:13:17,560 were gravitating towards OBS, 206 00:13:17,720 --> 00:13:19,140 which I had never heard of before, 207 00:13:19,940 --> 00:13:21,840 but got into and it was amazing. 208 00:13:22,220 --> 00:13:23,800 I couldn't believe this is something 209 00:13:23,800 --> 00:13:25,520 that was supported by the open source community, 210 00:13:26,100 --> 00:13:27,500 but of course sponsored by NVIDIA 211 00:13:27,500 --> 00:13:29,020 and some of the heavyweights as well. 212 00:13:30,240 --> 00:13:33,880 So I started to help people get that set up. 213 00:13:34,460 --> 00:13:36,940 And then of course you need kind of a multi-camera setup 214 00:13:37,140 --> 00:13:40,900 when you start to do larger services or organizations 215 00:13:41,220 --> 00:13:42,380 or even like town halls, 216 00:13:42,380 --> 00:13:44,480 'cause you need like a bail camera 217 00:13:44,700 --> 00:13:46,500 and then your closeup camera as well. 218 00:13:47,620 --> 00:13:50,500 But one thing that was tough was I would have myself 219 00:13:50,540 --> 00:13:52,060 and then maybe a camera operator. 220 00:13:52,420 --> 00:13:55,019 We wouldn't know which camera was on 221 00:13:55,020 --> 00:14:01,100 where should people should look and of course this has been solved back in the 60s right with tally lights 222 00:14:01,430 --> 00:14:05,660 you see what camera is on by the light shining on top of the camera and 223 00:14:07,160 --> 00:14:09,780 There were some solutions out there for OBS 224 00:14:09,780 --> 00:14:16,600 But I wanted to create an open source one out of just readily available hardware because also supply chain issues 225 00:14:16,680 --> 00:14:22,860 Let's just use what we got. I found a few people on Tindie who had crafted these matrix LED boards 226 00:14:22,900 --> 00:14:29,340 But also I've used some Raspberry Pis as well. And so there is a Tali Circuit Pi 227 00:14:29,380 --> 00:14:35,100 There's a Tali Pi which runs on a Raspberry Pi and then there's the Tali OBS repos 228 00:14:35,880 --> 00:14:40,980 All of which help you to orchestrate these lights and it is as simple as when you take to a camera 229 00:14:41,600 --> 00:14:44,360 That light shines red when you take away from it 230 00:14:44,640 --> 00:14:47,740 It goes back to blue when you have it in preview mode 231 00:14:47,740 --> 00:14:54,720 it goes to yellow and it was something you could with a 3d printer and with some hardware that you probably already have lying around 232 00:14:55,230 --> 00:14:58,940 You can make a way to have tally lights that are easily orchestrated 233 00:15:00,240 --> 00:15:06,780 Inside of OBS and so it's one of those small things that has been very handy and it has lasted these five years 234 00:15:07,100 --> 00:15:12,600 Without need to replace to repair really and still works with OBS to this day 235 00:15:13,020 --> 00:15:19,820 One of the products that Tally CircuitPy uses is by Seth Kerr, also known as Oak DevTech, which is no longer available. 236 00:15:20,680 --> 00:15:24,420 With something like that or with all the part shortages like you mentioned over the last few years, 237 00:15:25,020 --> 00:15:28,380 what role do you think CircuitPython can play to save or recycle hardware? 238 00:15:29,500 --> 00:15:37,060 It's a huge contrast, I feel, between a lot of commercial outfitters who are making things, let's say smart remotes or 239 00:15:38,120 --> 00:15:41,680 other gear where it is great, it is inspirational, it seems to work, 240 00:15:42,120 --> 00:15:46,680 but then they end of life it or they in support or there's an acquisition and 241 00:15:46,760 --> 00:15:51,979 then it just kind of goes off into the wind and you lose the ability to work with that hardware and 242 00:15:52,690 --> 00:16:00,140 You mentioned oak devs tech they did a you know, he did a great job with the board itself. We had great conversations on 243 00:16:00,880 --> 00:16:06,280 Heat tolerances and how to position things so that they don't melt the surface mounted, you know pieces 244 00:16:07,340 --> 00:16:10,559 And even though those boards aren't manufactured anymore 245 00:16:11,160 --> 00:16:18,300 CircuitPython has been a stable and reliable platform that keeps archives that work across 246 00:16:18,620 --> 00:16:24,020 all of these older platforms so that it stays alive. This has been in reliable use for me for 247 00:16:24,100 --> 00:16:30,780 the past five years. I bought some spare boards just in case, but in truth this has had greater 248 00:16:31,060 --> 00:16:35,879 longevity than a lot of the commercial hardware that I've bought. And so I feel like CircuitPython 249 00:16:35,880 --> 00:16:41,040 with its portability of code, but also the robustness in which the platform was created 250 00:16:41,040 --> 00:16:48,520 and maintained, it allows you to reliably use and then reuse a lot of hardware that may not be 251 00:16:49,179 --> 00:16:55,300 officially supported anymore. And if you can find an analog, something that is close to that, 252 00:16:55,730 --> 00:17:00,100 you can pretty easily port things over, either with the out-of-print libraries that they have 253 00:17:00,040 --> 00:17:05,660 around, you know, NeoPixels are become a universal standard almost, and it's fairly easy to port 254 00:17:05,839 --> 00:17:13,060 across hardware, as long as you know how big your array is. So it's easy to not only keep in life 255 00:17:13,160 --> 00:17:18,980 the things that you've got, but easily adapt to close analogs so that things continue to run. 256 00:17:19,839 --> 00:17:24,040 Last two questions I ask each guest. If someone wants to learn more about you and your work, 257 00:17:24,040 --> 00:17:24,760 where should they go? 258 00:17:25,520 --> 00:17:28,360 Oh man, that's a great question. I'm terrible at self-promotion, 259 00:17:28,360 --> 00:17:34,960 So I do have deckerego.net, which has a lot of tiny squares, which highlights either photography 260 00:17:35,320 --> 00:17:38,200 or the open source projects or the things that I've done from there. 261 00:17:38,700 --> 00:17:42,540 I'm going to continue to try to put out videos that showcase how these things work and 262 00:17:42,870 --> 00:17:46,040 are put together, because I do believe that just making things accessible 263 00:17:46,920 --> 00:17:51,700 and usable is a big boon for CircuitPython. So I want to encourage people to tinker, 264 00:17:52,340 --> 00:17:58,240 to set small electrical fires, get the magic smoke out every so often, not be afraid, right? 265 00:17:58,240 --> 00:18:01,580 And so decker.net showcases a lot of that. 266 00:18:01,960 --> 00:18:04,680 You'll see me as DeckerEgo on GitHub as well. 267 00:18:05,260 --> 00:18:08,900 I try to keep an honest and open list of my repositories, 268 00:18:09,080 --> 00:18:11,480 as well as those things that are archived as well. 269 00:18:11,940 --> 00:18:13,580 And then a number of guests for things 270 00:18:13,580 --> 00:18:14,580 that I've found along the way. 271 00:18:15,300 --> 00:18:16,140 - And the last question, 272 00:18:16,500 --> 00:18:18,260 you're starting a new project or prototype. 273 00:18:18,660 --> 00:18:19,840 Which board do you reach for? 274 00:18:21,020 --> 00:18:24,560 - You know, I, again, I have very poor impulse control 275 00:18:24,620 --> 00:18:25,740 when it comes to Autofruit stuff. 276 00:18:25,820 --> 00:18:27,480 So the Trinket M0s, I love. 277 00:18:27,540 --> 00:18:30,700 They're like, and they show them photographed right next to a fingernail, right? 278 00:18:30,760 --> 00:18:31,340 It's great. 279 00:18:31,460 --> 00:18:33,480 So they fit inside of bottles. 280 00:18:33,500 --> 00:18:37,520 They fit inside of all these tiny like antique enclosures. 281 00:18:37,580 --> 00:18:41,280 You can make all sorts of cool led blinky things with them. 282 00:18:41,900 --> 00:18:45,680 And I don't need that many pins really for a lot of the projects that I've got. 283 00:18:45,680 --> 00:18:50,740 So I love the M zeros and the trinkets there, but my challenge and my resolution 284 00:18:51,000 --> 00:18:57,520 for 2026, and we will see if I hold to it is to actually use the stuff that I've 285 00:18:57,520 --> 00:19:05,540 in my drawer today. I have some really weird AT stamps that I've got and I don't know what they 286 00:19:05,680 --> 00:19:11,100 even do or even how to flash them at this point, but I am resolved to figure out how to do that 287 00:19:11,380 --> 00:19:17,340 once again. I've got a number of ESP32s that are in a drawer back when someone discovered them in 288 00:19:17,340 --> 00:19:21,060 a light bulb, right? And then they started to just buy the components themselves and everyone was 289 00:19:21,620 --> 00:19:25,000 building their own little chipsets out of them. I've got a few of those as well. 290 00:19:25,440 --> 00:19:29,700 I have an old cortex that I want to figure out how to finally use. 291 00:19:30,220 --> 00:19:31,820 Everything needs to find... 292 00:19:31,820 --> 00:19:34,720 It's like the island of misfit toys in my electronics drawer. 293 00:19:34,840 --> 00:19:39,600 So I want to find them all a happy home before I start to open up my wallet and buy new stuff. 294 00:19:40,160 --> 00:19:40,960 That's a good resolution. 295 00:19:41,100 --> 00:19:43,040 I think we could all probably take advantage of that. 296 00:19:44,160 --> 00:19:47,300 Yes, put it to happy use and then they'll become Christmas presents. 297 00:19:47,500 --> 00:19:48,540 Who knows, by the end of the year. 298 00:19:49,540 --> 00:19:50,900 John, thanks so much for coming on the show. 299 00:19:51,580 --> 00:19:51,940 Absolutely. 300 00:19:52,180 --> 00:19:53,000 Thanks so much for having me. 301 00:19:54,200 --> 00:19:56,000 Thank you for listening to the CircuitPython Show. 302 00:19:56,480 --> 00:20:00,660 For show notes and transcripts, visit www.circuitpythonshow.com. 303 00:20:01,280 --> 00:20:02,980 Until next time, stay positive!