1 00:00:02,419 --> 00:00:04,340 Welcome to the Bootloader, I'm Tod Kurt. 2 00:00:04,710 --> 00:00:05,560 And I'm Paul Cutler. 3 00:00:05,920 --> 00:00:08,300 We're happy to welcome special guest John Park to the show. 4 00:00:08,460 --> 00:00:09,980 But first, two housekeeping items. 5 00:00:10,380 --> 00:00:14,480 Last episode, I incorrectly said that Andrew Clark was the creator of Supriya, the Python 6 00:00:14,700 --> 00:00:15,740 API for SuperCollider. 7 00:00:16,250 --> 00:00:21,160 I received a kind note and link to Joséphine Wolf Oberholtzer and her GitHub profile. 8 00:00:21,760 --> 00:00:24,380 She has been developing Supriya solo since 2014. 9 00:00:25,060 --> 00:00:26,540 I apologize and regret the error. 10 00:00:27,200 --> 00:00:31,700 Second, Tod and I will be hosting a special live edition of the bootloader for CircuitPython 11 00:00:31,780 --> 00:00:33,980 Day on Friday, August 15th. 12 00:00:34,440 --> 00:00:37,820 We'll be chatting about and sharing some of our favorite CircuitPython projects and 13 00:00:37,900 --> 00:00:39,040 features from the last year. 14 00:00:39,660 --> 00:00:43,100 Check out the Adafruit blog and socials for more details, and we hope to see you there. 15 00:00:43,860 --> 00:00:45,620 With that out of the way, John, welcome to the show. 16 00:00:46,440 --> 00:00:47,700 Thank you so much for having me. 17 00:00:47,780 --> 00:00:49,720 I'm a big fan of the show and it's exciting to be here. 18 00:00:50,340 --> 00:00:50,860 Oh, thanks. 19 00:00:52,360 --> 00:00:54,020 And what did you bring for us to share this episode? 20 00:00:54,540 --> 00:00:54,740 All right. 21 00:00:54,900 --> 00:00:55,920 I have a couple of things. 22 00:00:56,140 --> 00:01:02,600 start with this first one, which is floppy disk MIDI boom boxes. I became 23 00:01:02,740 --> 00:01:07,460 aware of these, I think, through a more modern DIY version, which I'll talk about 24 00:01:07,460 --> 00:01:10,320 in a second, but that led me to do a little bit of research and looking 25 00:01:10,460 --> 00:01:16,600 around, and it turns out in the 90s, a couple of companies, notably Roland and 26 00:01:16,940 --> 00:01:21,739 Yamaha, and to some degree Casio, but the big ones being Roland and Yamaha, created 27 00:01:21,740 --> 00:01:25,820 these music players that used floppy disks 28 00:01:26,120 --> 00:01:29,300 and had MIDI files on disks that you could buy 29 00:01:29,400 --> 00:01:31,220 and then later you could kind of put together 30 00:01:31,220 --> 00:01:32,000 your own floppies. 31 00:01:32,370 --> 00:01:36,140 And so they would have these pretty small MIDI files 32 00:01:36,170 --> 00:01:39,220 which contain all the information for playing a song 33 00:01:39,400 --> 00:01:41,500 on multiple channels of audio. 34 00:01:42,010 --> 00:01:45,260 And then inside of the Roland one, for example, 35 00:01:45,480 --> 00:01:49,040 they had a synthesizer, a little PCM synthesizer, 36 00:01:49,140 --> 00:01:50,140 similar to some of their, 37 00:01:50,740 --> 00:01:51,940 kind of based on some of the principles 38 00:01:52,060 --> 00:01:53,920 of some of their bigger synths, like the D-50, 39 00:01:54,540 --> 00:01:56,240 which was then sort of reduced down 40 00:01:56,360 --> 00:01:58,840 into a little desktop synth called the MT-32. 41 00:01:59,500 --> 00:02:01,900 And then they said, okay, let's take this idea 42 00:02:01,900 --> 00:02:04,620 of being able to play MIDI on a little synth 43 00:02:04,900 --> 00:02:07,700 inside of a box and feed it from a floppy disk. 44 00:02:08,360 --> 00:02:11,080 Initially, I think the idea being for music students 45 00:02:11,160 --> 00:02:14,760 and music teachers to be able to play a little arrangement 46 00:02:14,880 --> 00:02:17,980 of a song, change the tempo, transpose the key, 47 00:02:18,700 --> 00:02:24,520 remove or bring in different instruments. If you were practicing piano, you could drop 48 00:02:24,520 --> 00:02:28,320 out the piano track on the original and just have the drums and the bass or whatever. So 49 00:02:28,610 --> 00:02:33,800 they were kind of a little slightly cheesy because they're these, you know, somewhat 50 00:02:33,950 --> 00:02:40,180 of the era synthesizers that who knows what the quality of the MIDI track you have going 51 00:02:40,320 --> 00:02:47,460 into it is going to do. But then at some point in the more modern era, people realized, well, 52 00:02:47,780 --> 00:02:55,660 We love listening to songs, particularly video game soundtracks, using sound fonts, 53 00:02:56,160 --> 00:03:00,160 which I know Tod has talked about on the show before, which are these sort of pre-compiled 54 00:03:00,860 --> 00:03:05,620 blobs of a whole bunch of instruments sampled. So you have a couple of different drum kits, 55 00:03:05,760 --> 00:03:10,180 maybe, and eight different choices of bass to play, or maybe just one of these things, 56 00:03:10,280 --> 00:03:14,320 maybe a grand piano that's been sampled, or maybe synths that have been sampled, 57 00:03:14,320 --> 00:03:16,080 or other weird processed stuff. 58 00:03:16,710 --> 00:03:19,240 The idea of being able to pop in a floppy disk 59 00:03:19,420 --> 00:03:22,680 with a MIDI soundtrack from a video game 60 00:03:22,890 --> 00:03:27,160 and then play it back on maybe an accurate rip 61 00:03:27,430 --> 00:03:30,660 of a game console's sound font, or maybe not, 62 00:03:30,720 --> 00:03:32,840 maybe it's some weird thing 63 00:03:32,840 --> 00:03:34,120 that it shouldn't have been played on, 64 00:03:34,160 --> 00:03:35,420 is just super, super fun. 65 00:03:35,540 --> 00:03:38,320 So I became aware of, like I said initially, 66 00:03:38,350 --> 00:03:39,920 this project called the MIDI Blaster, 67 00:03:40,350 --> 00:03:42,500 which was made by someone who goes by the name 68 00:03:42,440 --> 00:03:45,840 Luke the Maker. And there's going to be I think links in the 69 00:03:45,840 --> 00:03:48,620 show notes, but I saw it first on Instagram, they've put 70 00:03:48,780 --> 00:03:52,000 together a Patreon where you can go download all the files 71 00:03:52,200 --> 00:03:57,620 necessary to build this sort of modern recreation of that type 72 00:03:57,620 --> 00:04:02,360 of old MIDI player that uses a Raspberry Pi, it uses fluid 73 00:04:02,560 --> 00:04:06,600 synth to be sort of the the MIDI player that can access all these 74 00:04:06,660 --> 00:04:10,840 different sound fonts. And Luke the Maker has put together an 75 00:04:10,800 --> 00:04:16,880 image that you can put on an SD card to play on your or to run on your Raspberry Pi that contains 76 00:04:17,060 --> 00:04:21,820 a whole slew of great sound fonts. And I think there are some maybe some sample songs, but he's 77 00:04:21,820 --> 00:04:26,320 also put together floppy disks that you can download the files, make your own floppies. 78 00:04:26,900 --> 00:04:30,160 And so I've got a collection of them I've been putting together here, including 79 00:04:30,620 --> 00:04:40,780 the four disc set of Final Fantasy VII soundtrack. I've got, in fact, I probably can't play these in 80 00:04:40,780 --> 00:04:44,800 set up to play those. I have okay computer the full album by 81 00:04:44,980 --> 00:04:49,200 Radiohead, which is just really fun to play back using like the 82 00:04:49,260 --> 00:04:54,140 Glover 64 sound font, which is just goofy and weird or pick 83 00:04:54,180 --> 00:04:57,960 some, you know, old synth, a Casio VL one that someone has 84 00:04:58,140 --> 00:05:01,920 has put together a sound font for that actually, I think Luke 85 00:05:01,960 --> 00:05:04,540 also offers some for sale if you don't want to build one, but I 86 00:05:04,560 --> 00:05:07,400 built one including all the three printing files are 87 00:05:07,300 --> 00:05:13,680 included and a nice bomb of the parts that you'll get for a little audio amp and a little 88 00:05:13,940 --> 00:05:14,680 matrix display. 89 00:05:15,560 --> 00:05:19,860 I have resisted the urge to go and buy an old vintage MT-80. 90 00:05:20,040 --> 00:05:24,720 I came close on one that looked rusty and busted, and I threw a lowball offer there 91 00:05:24,720 --> 00:05:25,520 that didn't work out. 92 00:05:25,640 --> 00:05:31,380 But those actually didn't have the conveniences of picking different sound fonts, because 93 00:05:31,380 --> 00:05:33,580 it was just kind of one synth engine built into the box. 94 00:05:34,260 --> 00:05:36,600 They didn't have these nice displays 95 00:05:36,780 --> 00:05:38,800 with the name of the song 96 00:05:38,860 --> 00:05:40,900 and the name of the sound font or synth settings. 97 00:05:41,080 --> 00:05:45,160 So I think kind of the modern one actually does one better 98 00:05:45,280 --> 00:05:47,560 than the old ones as cool as those might be. 99 00:05:48,520 --> 00:05:50,620 So that's the thing I've been playing around with 100 00:05:50,660 --> 00:05:51,620 and really enjoying. 101 00:05:51,980 --> 00:05:54,080 It runs with a little USB floppy. 102 00:05:54,160 --> 00:05:55,120 So I bought, I don't know, 103 00:05:55,140 --> 00:05:59,220 a $17 USB floppy drive on Amazon to shove in the thing. 104 00:05:59,220 --> 00:06:01,900 And it's worked out surprisingly well. 105 00:06:02,700 --> 00:06:04,300 I love that it uses real floppy disk. 106 00:06:04,400 --> 00:06:05,400 That's so cool. 107 00:06:05,880 --> 00:06:09,800 >> It is. I think I love 108 00:06:10,020 --> 00:06:11,840 nostalgic old stuff that doesn't work. 109 00:06:12,300 --> 00:06:14,720 This does work well, but you've got that moment when you pop 110 00:06:14,720 --> 00:06:17,800 the disk in and it clicks and whirs and you wonder, 111 00:06:17,940 --> 00:06:20,480 is it going to, right now it says no MIDI files on my display. 112 00:06:20,800 --> 00:06:22,680 It's spinning up, it's searching the thing, 113 00:06:22,740 --> 00:06:24,520 it takes 10 seconds, 114 00:06:24,580 --> 00:06:25,900 15 seconds to see, 115 00:06:26,000 --> 00:06:27,220 and I'm like, "Oh my gosh, it found a song." 116 00:06:27,220 --> 00:06:29,300 Then I can go hit play and now I'll start 117 00:06:29,420 --> 00:06:31,540 up with whatever sound font I've got picked. 118 00:06:31,640 --> 00:06:32,800 floppy experience. 119 00:06:33,140 --> 00:06:37,560 It is a real floppy experience. And I know that they've, Luke 120 00:06:37,560 --> 00:06:40,660 the Maker has got some updates coming. Some other people have 121 00:06:40,720 --> 00:06:43,360 reached out to help with some coding so that you'll be able 122 00:06:43,480 --> 00:06:46,140 to right now it just plays one song, and then it's done and 123 00:06:46,140 --> 00:06:49,100 then you forward to the next song. So they're going to add a 124 00:06:49,260 --> 00:06:51,300 you know, be able to play through the full album, which 125 00:06:51,340 --> 00:06:53,700 will be a really nice convenience, and some other 126 00:06:53,780 --> 00:06:55,800 things with with an upcoming version on their Patreon. 127 00:06:56,400 --> 00:06:58,780 I did watch the video that you shared. It's about 10 minutes 128 00:06:59,020 --> 00:07:01,620 long. I think it's on the Roland. And I thought it did a 129 00:07:01,620 --> 00:07:05,220 of explaining why you might want one, because I didn't quite get it at first from a tutoring 130 00:07:05,520 --> 00:07:07,260 perspective, even though it's called the music tutor. 131 00:07:07,700 --> 00:07:07,820 Yeah. 132 00:07:07,940 --> 00:07:14,100 But the one thing that grabbed me was speaking of discs, he showed or demoed a bunch of 90s 133 00:07:14,220 --> 00:07:18,580 pop music in MIDI format that you could buy on MIDI discs during the 90s. 134 00:07:18,580 --> 00:07:19,080 Isn't that wild? 135 00:07:19,280 --> 00:07:20,460 Yeah, it was crazy. 136 00:07:20,560 --> 00:07:24,940 And I needed, I should have paused it to actually wrote down some of the album names and some 137 00:07:24,980 --> 00:07:27,000 of the songs, but I was like, that was on MIDI? 138 00:07:27,260 --> 00:07:28,180 I was just laughing. 139 00:07:28,340 --> 00:07:29,040 So strange. 140 00:07:29,220 --> 00:07:29,400 Yeah. 141 00:07:30,220 --> 00:07:32,200 I've looked around on eBay just a little bit, 142 00:07:32,320 --> 00:07:36,240 and they just might not be that prolific. 143 00:07:36,500 --> 00:07:38,980 So it's up to you, make your own. 144 00:07:39,020 --> 00:07:41,620 And you, of course, can print your own labels. 145 00:07:41,920 --> 00:07:45,960 And Luke, the maker, puts out nicely designed labels 146 00:07:46,100 --> 00:07:50,240 that mimic the album art, even though a floppy of it 147 00:07:50,300 --> 00:07:51,360 may have never existed. 148 00:07:51,780 --> 00:07:52,420 - Very cool. 149 00:07:52,960 --> 00:07:54,860 - This Roland MT-80 is amazing. 150 00:07:54,900 --> 00:07:56,820 It looks kind of like a boom box, 151 00:07:56,940 --> 00:07:59,519 but it's got a floppy drive instead of like a cassette 152 00:07:59,520 --> 00:08:00,200 or a CD hole. 153 00:08:02,020 --> 00:08:04,000 And I'm a big fan of the MT-32, 154 00:08:04,370 --> 00:08:06,820 which is the MP-80 is like a boombox version of MT-32. 155 00:08:07,300 --> 00:08:10,060 MT-32 was my second synthesizer. 156 00:08:10,280 --> 00:08:10,980 And it was amazing 157 00:08:11,100 --> 00:08:13,720 'cause it could play multiple different sounds at once. 158 00:08:13,760 --> 00:08:16,980 And it had decent-ish drum sounds and piano sounds. 159 00:08:16,980 --> 00:08:21,200 And so, yeah, anything that's MT-32 descended 160 00:08:21,380 --> 00:08:23,120 is got a soft spot for me. 161 00:08:23,320 --> 00:08:24,880 'Cause it's like, "Oh, this little box, 162 00:08:24,880 --> 00:08:25,980 "it can do so much." 163 00:08:26,180 --> 00:08:26,860 - Oh, that's great. 164 00:08:27,260 --> 00:08:29,140 Yeah, and I was reading also that they, 165 00:08:29,440 --> 00:08:32,780 went one further and put a reduced set of it 166 00:08:32,979 --> 00:08:33,820 onto a sound card. 167 00:08:34,620 --> 00:08:36,719 So instead of like a Sound Blaster, 168 00:08:36,800 --> 00:08:39,740 you could get this Roland SC-55. 169 00:08:41,080 --> 00:08:43,820 And I believe there are some pretty popular, 170 00:08:43,900 --> 00:08:46,640 well-known video games of the era 171 00:08:46,840 --> 00:08:49,620 that were made with those sound cards 172 00:08:49,880 --> 00:08:51,860 and then recorded if it was CD audio. 173 00:08:51,960 --> 00:08:53,720 So you could be playing a game 174 00:08:54,180 --> 00:08:56,599 that had the audio going through this whole pipeline 175 00:08:56,600 --> 00:09:00,400 of this Roland MT-32 derived synth engine, 176 00:09:00,460 --> 00:09:01,240 which is interesting. 177 00:09:02,120 --> 00:09:02,480 - That's cool. 178 00:09:03,120 --> 00:09:03,840 - That's a great pick. 179 00:09:04,140 --> 00:09:05,840 Tod, what's your first one for us? 180 00:09:06,520 --> 00:09:09,560 - All right, so my new favorite live music genre 181 00:09:09,760 --> 00:09:10,800 is Algorave. 182 00:09:11,500 --> 00:09:13,900 Well, it's a term that's been around since at least 2011, 183 00:09:14,060 --> 00:09:14,860 according to Wikipedia. 184 00:09:15,400 --> 00:09:16,580 I just recently came across it. 185 00:09:17,100 --> 00:09:19,220 Basically, it's live coding dance music 186 00:09:19,580 --> 00:09:20,860 in a live club audience. 187 00:09:20,980 --> 00:09:24,440 But wait, you may think watching nerds twiddling on laptops 188 00:09:24,740 --> 00:09:25,900 isn't quite live music. 189 00:09:26,000 --> 00:09:26,640 I need to be right. 190 00:09:27,340 --> 00:09:28,880 In the mid 2000s, I went to a few clubs 191 00:09:28,880 --> 00:09:30,200 where people were playing on monomes, 192 00:09:30,760 --> 00:09:32,720 those light-up, gridded mini controllers 193 00:09:32,880 --> 00:09:34,060 that controlled sensor laptops. 194 00:09:34,840 --> 00:09:37,160 But they were on music stands angled towards the audience, 195 00:09:37,540 --> 00:09:39,160 so you could see the monome button lights 196 00:09:39,360 --> 00:09:40,760 change with the performer's actions. 197 00:09:41,520 --> 00:09:42,980 Made it much more engaging than just watching 198 00:09:43,060 --> 00:09:44,420 a laptop user bop on their head. 199 00:09:44,980 --> 00:09:47,100 Seeing computers unashamedly used 200 00:09:47,180 --> 00:09:49,840 as live musical instruments was new too for me. 201 00:09:50,440 --> 00:09:52,160 With the monome, you could see the performer playing, 202 00:09:52,580 --> 00:09:53,580 see the device respond. 203 00:09:53,740 --> 00:09:54,880 It brought the audience in, 204 00:09:55,000 --> 00:09:56,960 showing them a little bit how the performance worked. 205 00:09:58,000 --> 00:10:00,480 Later we got performances like Median's Pop Culture, 206 00:10:00,780 --> 00:10:02,080 Sean Wasabi's Marble Soda, 207 00:10:02,720 --> 00:10:05,000 on the Launchpad or Midi Fighter devices. 208 00:10:05,640 --> 00:10:08,360 These grid devices had become displays unto themselves, 209 00:10:08,980 --> 00:10:10,820 yet they were still distance with the audience. 210 00:10:10,820 --> 00:10:12,320 You couldn't see what these button presses 211 00:10:12,440 --> 00:10:13,080 were really triggering. 212 00:10:13,280 --> 00:10:15,360 There's a laptop maybe off screen 213 00:10:15,580 --> 00:10:16,840 or kind of hidden from view, 214 00:10:17,320 --> 00:10:19,120 and you couldn't even see what programs they were playing. 215 00:10:20,240 --> 00:10:22,320 Then there's live coding in Algorave. 216 00:10:22,660 --> 00:10:24,000 Instead of hiding the laptop screen, 217 00:10:24,040 --> 00:10:29,220 brought to the front. Live algorave performers project their laptop screens on club walls. 218 00:10:29,440 --> 00:10:32,980 And it's not boring. These live coding apps look more like something out of a Hollywood 219 00:10:33,200 --> 00:10:36,980 executive's idea of hacking rather than standard GUIs we're all familiar with. 220 00:10:38,020 --> 00:10:42,960 Picture a screen of text. Seemingly random sections of it flash in time with the beat. 221 00:10:43,440 --> 00:10:48,000 You see the performer's cursor move and position over some text. It changes. The screen flashes. 222 00:10:48,060 --> 00:10:53,520 The beat drops. Under and above the text are visual representations of notes, the drums, 223 00:10:53,520 --> 00:10:55,220 the audio waveforms being played, 224 00:10:55,640 --> 00:10:58,080 making it difficult sometimes to make out the text. 225 00:10:58,820 --> 00:11:01,120 This code that is somehow also music performance. 226 00:11:01,820 --> 00:11:04,060 And then it scrolls again, changes, and the beat goes on. 227 00:11:04,360 --> 00:11:05,380 It's really hypnotic. 228 00:11:06,500 --> 00:11:08,800 Now you can see both the performer and instrument 229 00:11:08,880 --> 00:11:10,520 they're playing, but the instrument is code. 230 00:11:11,180 --> 00:11:13,820 That's Algorave and live coding more generally. 231 00:11:14,580 --> 00:11:15,740 If you'd like to try out live coding 232 00:11:16,260 --> 00:11:18,780 in your hand at Algorave, there are many apps to try. 233 00:11:19,020 --> 00:11:20,620 I'll include links in the show notes. 234 00:11:21,140 --> 00:11:22,180 Most are free and open source. 235 00:11:22,460 --> 00:11:26,880 Several I mentioned back in bootloader episode 2 back in October 2022 236 00:11:27,880 --> 00:11:31,340 The one I've been using a lot these last several weeks is called strudel 237 00:11:31,900 --> 00:11:36,980 It runs in the browser and that's a lot of fun any any time you ever you have access to a browser 238 00:11:37,000 --> 00:11:43,140 You can do a little live coding session an artist who's working primarily in strudel now goes by the handle DJ Dave 239 00:11:44,060 --> 00:11:49,399 And I think I've posted both links links to both both Paul and John Park bugging them about DJ Dave 240 00:11:49,380 --> 00:11:54,080 I remember DJ Dave using Sonic Pi a few years ago, another live coding environment, but 241 00:11:54,140 --> 00:11:54,980 now she's all Strudel. 242 00:11:55,840 --> 00:12:00,280 Her Strudel live sets project the Strudel live coding ruffle screen on multiple walls, 243 00:12:00,900 --> 00:12:02,080 embedding you in the music code. 244 00:12:02,740 --> 00:12:06,780 She's mostly active on Instagram, and you can learn some cool Strudel tricks from watching 245 00:12:06,820 --> 00:12:07,560 her Instagram reels. 246 00:12:07,880 --> 00:12:09,720 So I've included some links in the show that's about that. 247 00:12:10,340 --> 00:12:13,480 So go ahead and check out some Strudel videos on Instagram or YouTube. 248 00:12:14,080 --> 00:12:19,100 You can see the musical composition, the music compositional thinking happen in real time 249 00:12:19,100 --> 00:12:21,980 as the person writes their strudel code. 250 00:12:22,040 --> 00:12:22,560 It's a lot of fun. 251 00:12:23,340 --> 00:12:27,600 I'm so impressed by the people that know coding and have enough knowledge of music theory 252 00:12:27,600 --> 00:12:29,880 and music composition to do both at the same time. 253 00:12:30,080 --> 00:12:30,340 It's crazy. 254 00:12:30,340 --> 00:12:30,920 Under pressure. 255 00:12:31,660 --> 00:12:32,140 Exactly. 256 00:12:34,200 --> 00:12:35,080 Yeah, it's so cool. 257 00:12:35,780 --> 00:12:42,079 You were sending, you sent me a link to it, not only performances by DJ Dave, but also 258 00:12:42,080 --> 00:12:43,800 a little web snippet that you texted me. 259 00:12:44,280 --> 00:12:46,220 And one of the things I really love about it 260 00:12:46,600 --> 00:12:50,520 is the sort of active highlighting of elements of the code 261 00:12:50,640 --> 00:12:52,400 that are currently doing something. 262 00:12:52,780 --> 00:12:54,280 At least that's my understanding of it, 263 00:12:54,280 --> 00:12:56,420 is you can more than just seeing a block of code 264 00:12:56,420 --> 00:12:58,340 and listening, you're a little more active 265 00:12:58,440 --> 00:13:01,080 in following what thing in the code 266 00:13:01,080 --> 00:13:03,320 is doing a step at that moment. 267 00:13:04,280 --> 00:13:06,820 - Yeah, it's a great debugging tool for both you, 268 00:13:07,600 --> 00:13:10,740 it's a debugging tool for you, the writer of the stuff, 269 00:13:10,800 --> 00:13:15,140 but also it helps the viewer kind of see what the song is doing. 270 00:13:15,660 --> 00:13:16,099 Mm-hmm. 271 00:13:17,020 --> 00:13:24,100 Yeah, I wonder if you can rent out the Madison Square Garden Sphere in Vegas to do a live coding conversion. 272 00:13:25,040 --> 00:13:27,320 You know, I think she might be performing in Vegas soon. 273 00:13:27,440 --> 00:13:28,180 Oh my gosh. 274 00:13:30,260 --> 00:13:35,360 We could sneak into the one they have here in Burbank, the little trial space that they built. 275 00:13:35,380 --> 00:13:36,100 Oh, yeah, totally. 276 00:13:37,380 --> 00:13:39,920 Perfect their acts and try to do some strudel. 277 00:13:41,380 --> 00:13:42,520 Why is it called that? 278 00:13:43,410 --> 00:13:44,500 Any idea where the name came from? 279 00:13:45,480 --> 00:13:46,260 I have no idea. 280 00:13:46,680 --> 00:13:49,260 I think it's part of the Tidal project, 281 00:13:49,470 --> 00:13:51,180 which is another live coding thing that's been around. 282 00:13:51,320 --> 00:13:54,100 So I think it might just be like S to T. 283 00:13:55,320 --> 00:13:57,480 Yeah, it's kind of like Tidal, but with an S. 284 00:13:57,620 --> 00:13:57,940 I don't know. 285 00:13:59,240 --> 00:13:59,720 Makes me hungry. 286 00:14:00,540 --> 00:14:02,140 All right, Paul, what's your first one for this week? 287 00:14:02,700 --> 00:14:04,760 Every year there's a joke in the Linux community 288 00:14:04,920 --> 00:14:07,080 that this year will be the year of Linux on the desktop. 289 00:14:07,720 --> 00:14:08,720 And it never happens. 290 00:14:10,000 --> 00:14:14,920 But I think 2025 might be something different, the year of the microcontroller as a mini-computer. 291 00:14:15,700 --> 00:14:20,800 This is because when Raspberry Pi released the 2350 chip, they released a 2350B version 292 00:14:21,400 --> 00:14:26,600 which contains 48 GPIO instead of the normal 30, allowing for a lot more peripherals to 293 00:14:26,720 --> 00:14:27,800 connect to the microcontroller. 294 00:14:28,860 --> 00:14:32,100 Adafruit's been teasing us for months about their mini-computer, the Fruit Jam, which 295 00:14:32,180 --> 00:14:35,180 they've been developing in the open and even have a product page up for it. 296 00:14:35,840 --> 00:14:42,180 It features the RP-2350B, 16 megs of flash plus 8 megs of PSRAM, with the PSRAM helping 297 00:14:42,280 --> 00:14:48,920 for emulation, a microSD card, DVI output, headphone output, 2-port USB-A host for keyboards, 298 00:14:49,080 --> 00:14:52,160 mice or gamepads, 3 switches, and even more. 299 00:14:52,840 --> 00:14:56,140 And if you've been following their development, they're up to a Rev-D version that I think 300 00:14:56,200 --> 00:15:00,200 features a Wi-Fi coprocessor, though I don't see that on the product page yet. 301 00:15:01,240 --> 00:15:05,079 But now a company named Olimex has beat them to the punch with a product and description 302 00:15:05,080 --> 00:15:06,820 that doesn't leave a lot to the imagination, 303 00:15:07,520 --> 00:15:09,700 calling it the RP2350 PC. 304 00:15:10,700 --> 00:15:13,860 It too features the 2350B, 16 megs of flash 305 00:15:13,900 --> 00:15:15,020 and eight megs of PS RAM, 306 00:15:15,480 --> 00:15:17,840 but has four USB-A ports for USB host, 307 00:15:18,440 --> 00:15:22,680 DVI and HDMI output, micro SD card, stereo out and in. 308 00:15:23,280 --> 00:15:26,220 It's only 25 euros, which seems really reasonable. 309 00:15:26,920 --> 00:15:28,220 It comes with a custom UF2 310 00:15:28,300 --> 00:15:29,860 that looks to be running MicroPython, 311 00:15:30,300 --> 00:15:31,920 and they market the Reload emulator 312 00:15:31,980 --> 00:15:34,340 to run Apple II games and software on it as well. 313 00:15:35,000 --> 00:15:38,500 There's a short manual that mentions their uext connector of which they've 314 00:15:38,620 --> 00:15:42,280 developed some plug and play modules that use this universal extension connector. 315 00:15:42,920 --> 00:15:45,940 They've also made the schematic and KiCad files available on 316 00:15:46,140 --> 00:15:47,360 GitHub, which is a nice touch. 317 00:15:48,080 --> 00:15:51,040 I looked at picking one up, but it was 23 euro to ship it. 318 00:15:51,380 --> 00:15:52,540 And that's before any tariff. 319 00:15:52,560 --> 00:15:53,840 So almost double the price. 320 00:15:54,800 --> 00:15:56,060 I'm really excited for these. 321 00:15:56,060 --> 00:15:59,340 If you can't tell, it takes me back to being a kid and plugging a computer 322 00:15:59,460 --> 00:16:03,859 into a TV and programming basic, except this time it could be circuit 323 00:16:03,860 --> 00:16:09,180 Python or micro Python like I mean I think one of the reasons why the all of X 1 is is much cuz gonna be much 324 00:16:09,340 --> 00:16:12,340 Cheaper than the Adafruit one is because it doesn't have Wi-Fi 325 00:16:13,180 --> 00:16:18,220 Right, I think that's that's I think I think more as as they were developing the fruit jam 326 00:16:18,710 --> 00:16:21,060 I mean like JP might be able to speak to more of this 327 00:16:21,200 --> 00:16:25,840 But it seemed like it's like well if we're designing something sort of a game console slash tiny computer 328 00:16:26,660 --> 00:16:27,620 Shouldn't it also be on the internet? 329 00:16:28,520 --> 00:16:30,040 So it's like how do you make it be on the internet? 330 00:16:30,140 --> 00:16:34,780 you have to add the Wi-Fi. And I don't mean to put John on the spot and share any trade secrets. 331 00:16:35,100 --> 00:16:37,420 I'm just excited about these. No, not at all. I don't think there are any secrets. But yeah, 332 00:16:37,540 --> 00:16:43,840 so I have the Rev-A is the only one that I have here at my workshop, which did not have 333 00:16:44,580 --> 00:16:48,760 the Wi-Fi and otherwise it's very similar other than some spacing of some things. 334 00:16:49,260 --> 00:16:57,259 And I agree with you, it's exciting in a 1983 Apple IIe in JP's basement kind of way, because 335 00:16:57,260 --> 00:16:58,240 It's so direct. 336 00:16:59,620 --> 00:17:03,780 The project that I've started working on along with Tim, 337 00:17:03,920 --> 00:17:05,620 Foamy Guy at Eddiefruit right now 338 00:17:05,720 --> 00:17:09,120 is a little sort of video text generator 339 00:17:09,400 --> 00:17:12,600 to just composite on top of other stuff. 340 00:17:13,000 --> 00:17:16,220 And so I wouldn't do that with a Raspberry Pi 341 00:17:16,420 --> 00:17:17,620 because it would be so cumbersome, 342 00:17:17,860 --> 00:17:20,459 but this having no OS to speak of 343 00:17:20,459 --> 00:17:21,520 and just booting instantly 344 00:17:22,000 --> 00:17:23,939 and allowing me to do display IO things 345 00:17:23,939 --> 00:17:25,439 to pop text in front of something 346 00:17:25,500 --> 00:17:26,900 with a green screen background, 347 00:17:27,120 --> 00:17:30,200 it's got the HDMI out and it's got a keyboard and mouse in. 348 00:17:30,640 --> 00:17:36,300 So it does feel like an instant on super simple computer. 349 00:17:36,520 --> 00:17:38,800 So I'm excited about it too for those reasons. 350 00:17:39,360 --> 00:17:41,180 And the idea of it in general, 351 00:17:41,190 --> 00:17:43,320 I think not just this Adafruit one, 352 00:17:43,380 --> 00:17:45,180 but the OLIMX one looks really interesting. 353 00:17:45,380 --> 00:17:49,360 And just that general idea of we are hitting a spot 354 00:17:49,440 --> 00:17:52,900 where it's not quite as pulling teeth 355 00:17:53,040 --> 00:17:54,580 to do computer like things 356 00:17:54,740 --> 00:17:56,120 on a little microcontroller board. 357 00:17:56,460 --> 00:18:00,580 Right. Yeah, and these and these things have the great like both both the fruit jam and the 358 00:18:01,380 --> 00:18:06,000 This all the next thing and anything else that is like a micro controller based thing has the really nice 359 00:18:06,320 --> 00:18:08,240 Feature of it just like old computers 360 00:18:08,540 --> 00:18:14,660 They turn on instantly like nowadays we have to wait 30 seconds or whatever it is to take for computer to boot and that's cool 361 00:18:14,920 --> 00:18:18,940 You know when you're learning about computers, but but it it definitely is the oh 362 00:18:18,940 --> 00:18:23,600 I just want to goof around for a little bit like that with the buddies used to always do with my little Apple 2 was 363 00:18:23,600 --> 00:18:26,260 I'd turn it on I type a few lines of basic and 364 00:18:27,050 --> 00:18:30,320 Make something goofy appear on the screen and that would be like my 10 minutes of 365 00:18:31,220 --> 00:18:36,280 Playing with the computer for that afternoon and now these these things had that we just turn them on and they're running 366 00:18:37,620 --> 00:18:42,360 All right, John. What's your next one for us? All right, so my next one is a 367 00:18:43,440 --> 00:18:43,880 Modular 368 00:18:44,980 --> 00:18:45,860 RC toy 369 00:18:46,800 --> 00:18:50,840 microcontroller sort of combination product called cyber brick and 370 00:18:51,480 --> 00:18:55,100 And this comes from the Bamboo Lab people 371 00:18:55,150 --> 00:18:56,360 who make the 3D printers. 372 00:18:56,930 --> 00:18:58,940 And I have one of their 3D printers and love it. 373 00:18:59,040 --> 00:19:00,720 I think it's really well done. 374 00:19:00,840 --> 00:19:03,760 And the ecosystem around it is excellent 375 00:19:03,760 --> 00:19:05,260 as far as support and documentation 376 00:19:05,480 --> 00:19:06,260 and updates and things. 377 00:19:06,790 --> 00:19:11,380 So I was excited to find out in their little maker supply area 378 00:19:11,520 --> 00:19:14,140 of their store where they sell LEDs and things 379 00:19:14,200 --> 00:19:15,440 that they encourage you to couple 380 00:19:15,580 --> 00:19:17,320 with some of their pre-made 3D models. 381 00:19:17,720 --> 00:19:18,880 I'd missed the launch of this, 382 00:19:19,000 --> 00:19:22,760 that they have launched essentially a modern version 383 00:19:22,760 --> 00:19:24,760 of a Lego Mindstorm type of idea, 384 00:19:24,830 --> 00:19:29,520 which is modular electronics that are fairly plug and play 385 00:19:29,800 --> 00:19:32,640 with some motors and some servos and some LEDs 386 00:19:32,900 --> 00:19:35,740 and some buttons that communicate with each other 387 00:19:36,220 --> 00:19:38,880 and communicate with your phone or your computer 388 00:19:39,260 --> 00:19:42,620 to code them in a graphical environment. 389 00:19:43,360 --> 00:19:44,920 Digging a little deeper, what these are, 390 00:19:45,040 --> 00:19:48,340 I ended up getting a set of some of just the basic bricks, 391 00:19:48,480 --> 00:19:51,680 But what they're really targeting and some of their kits 392 00:19:51,760 --> 00:19:53,060 that you can get right out the gate 393 00:19:53,580 --> 00:19:57,940 are meant for printing little RC cars and trucks 394 00:19:57,980 --> 00:19:59,780 and forklifts and things that they've 395 00:19:59,800 --> 00:20:03,000 got available for free up on their maker world, 396 00:20:03,140 --> 00:20:03,740 I think it's called. 397 00:20:04,880 --> 00:20:07,820 Get their models, 3D print them, and then couple them 398 00:20:08,000 --> 00:20:11,420 with these modular electronics and motors and things. 399 00:20:11,500 --> 00:20:12,840 And now you can build little toys 400 00:20:12,900 --> 00:20:14,960 that you can control, which is pretty interesting. 401 00:20:15,480 --> 00:20:17,180 I haven't printed any of those cars and things. 402 00:20:17,280 --> 00:20:19,260 I just wanted to get the microcontrollers 403 00:20:19,280 --> 00:20:21,380 and their little peripherals and start playing with them. 404 00:20:21,540 --> 00:20:25,260 So what it looks like is a little ESP32, 405 00:20:25,800 --> 00:20:31,520 I think C3 on these sort of general purpose controller 406 00:20:31,720 --> 00:20:36,880 boards that you can code over USB-C and MicroPython 407 00:20:36,880 --> 00:20:41,380 if you want, or just using their Bluetooth firmware, 408 00:20:41,520 --> 00:20:43,620 you can code with this graphical environment. 409 00:20:44,160 --> 00:20:47,420 And then they have a little carrier board or a shield 410 00:20:47,450 --> 00:20:51,300 they plug into, which they call a transmitter and a receiver 411 00:20:51,460 --> 00:20:51,780 shield. 412 00:20:52,250 --> 00:20:54,580 As far as I can tell, they are not transmitters or receivers. 413 00:20:54,780 --> 00:20:56,060 The shields, I think that's all handled 414 00:20:56,120 --> 00:20:58,660 on the little controllers, which I believe are using ESP-NOW. 415 00:20:59,480 --> 00:21:01,820 So they're a really smart use of ESP-NOW 416 00:21:01,910 --> 00:21:05,740 to do this kind of remote control to gizmo. 417 00:21:06,260 --> 00:21:08,300 The little carrier boards deal with things 418 00:21:08,360 --> 00:21:12,500 like power boosting and motor driver and servo control. 419 00:21:12,760 --> 00:21:14,540 and they have a bunch of little JST, 420 00:21:15,040 --> 00:21:18,460 different sizes of JST connectors for hooking up NeoPixels, 421 00:21:18,560 --> 00:21:20,700 hooking up motors, hooking up buttons and switches. 422 00:21:22,360 --> 00:21:23,580 So really interesting. 423 00:21:23,740 --> 00:21:26,680 It kind of straddles a line between straight up DIY, 424 00:21:27,060 --> 00:21:29,560 hey, I wanna go to SparkFun or Adafruit or buy an Arduino, 425 00:21:30,360 --> 00:21:33,780 versus a more closed system like Mindstorm, 426 00:21:34,000 --> 00:21:35,580 which Lego is never sure 427 00:21:35,580 --> 00:21:36,760 if they wanna be selling that or not. 428 00:21:36,820 --> 00:21:39,160 So I think they're currently in a dark age of Mindstorm 429 00:21:39,180 --> 00:21:39,780 as far as I can tell. 430 00:21:40,720 --> 00:21:42,040 But this thing is really interesting. 431 00:21:42,260 --> 00:21:44,940 I think it's Tod and I, in fact, 432 00:21:44,940 --> 00:21:46,360 we're talking about maybe trying to get 433 00:21:46,600 --> 00:21:47,980 CircuitPython onto it. 434 00:21:48,030 --> 00:21:49,620 It seems like it could be a neat 435 00:21:49,980 --> 00:21:52,220 just bit of hardware to hack around with. 436 00:21:52,490 --> 00:21:54,340 I don't think they're entirely open source. 437 00:21:54,780 --> 00:21:56,820 It's a little unclear which parts of what they're doing 438 00:21:56,900 --> 00:21:58,220 are open versus closed. 439 00:21:59,000 --> 00:21:59,860 But I think it's exciting. 440 00:22:00,280 --> 00:22:01,680 They have a pretty big audience 441 00:22:01,740 --> 00:22:05,540 and I think it puts some neat microcontroller DIY stuff 442 00:22:05,800 --> 00:22:08,420 out into the world for people to play around with. 443 00:22:08,760 --> 00:22:11,619 - And you're becoming an expert in ESP now 444 00:22:11,620 --> 00:22:13,740 on CircuitPython too, so you can maybe 445 00:22:14,360 --> 00:22:16,260 learn some of what it's doing underneath. 446 00:22:16,500 --> 00:22:17,780 - I'm hoping to become good at it. 447 00:22:17,840 --> 00:22:18,960 I would not use the word expert. 448 00:22:20,140 --> 00:22:22,720 I'm very at the beginning of my using ESP-NOW, 449 00:22:22,860 --> 00:22:23,960 but I'm digging it. 450 00:22:24,660 --> 00:22:26,180 If you're not, by the way, for people who aren't familiar, 451 00:22:26,240 --> 00:22:30,280 ESP-NOW is a really neat little peer-to-peer protocol 452 00:22:30,400 --> 00:22:34,140 that uses the radio that's built onto these ESP32 chips, 453 00:22:34,540 --> 00:22:37,560 but does not use the whole cumbersome Wi-Fi stack. 454 00:22:37,930 --> 00:22:40,600 It instead can do either one-to-many, many-to-many, 455 00:22:40,680 --> 00:22:44,100 one-to-one communications that are meant to be simple, small, 456 00:22:44,160 --> 00:22:47,160 I think 250 bytes is the package size, 457 00:22:47,720 --> 00:22:48,880 communication among things. 458 00:22:49,040 --> 00:22:52,200 So a nice, simple alternative to try and do things 459 00:22:52,260 --> 00:22:56,640 with like BLE or IR or other radios. 460 00:22:56,920 --> 00:23:00,340 So that seems to be in a lot of light bulbs 461 00:23:00,440 --> 00:23:02,200 and home automation products. 462 00:23:02,200 --> 00:23:03,760 And now I'm becoming more aware of it 463 00:23:03,760 --> 00:23:06,720 as something that we can program in CircuitPython 464 00:23:06,840 --> 00:23:08,560 or Arduino on our little microcontrollers. 465 00:23:08,940 --> 00:23:10,720 - I'm so glad you brought the Cyber Bricks to share. 466 00:23:11,020 --> 00:23:13,060 I too missed the launch on this. 467 00:23:13,160 --> 00:23:15,000 I remember seeing a year, year and a half ago 468 00:23:15,620 --> 00:23:17,640 that Maker World had a kit you could buy 469 00:23:17,640 --> 00:23:18,800 to make a little turntable. 470 00:23:18,870 --> 00:23:21,240 And of course me being a big into records, 471 00:23:21,960 --> 00:23:24,560 I looked at it and it wasn't the cheapest thing, 472 00:23:24,700 --> 00:23:27,240 but they had the little servo or the motor 473 00:23:27,300 --> 00:23:29,380 that would turn the record and then you 3D print it apart. 474 00:23:29,480 --> 00:23:31,080 So it looks like they've really taken that idea 475 00:23:31,200 --> 00:23:32,880 and run with it at a hundred miles per hour. 476 00:23:32,980 --> 00:23:33,680 - Yeah, yeah. 477 00:23:33,820 --> 00:23:35,120 You know, I should also mention one other, 478 00:23:35,360 --> 00:23:37,359 since what you just mentioned is outside 479 00:23:37,360 --> 00:23:40,520 of the RC car thing, another one that they have available 480 00:23:40,520 --> 00:23:42,240 as a kit, I think it's not available right now 481 00:23:42,340 --> 00:23:43,380 just 'cause they've probably sold through, 482 00:23:43,840 --> 00:23:46,860 is a time-lapse camera module. 483 00:23:47,080 --> 00:23:48,860 And it meant for probably your printer, 484 00:23:49,960 --> 00:23:51,100 which a lot of printers have that built in. 485 00:23:51,200 --> 00:23:53,200 But so they at least are aware, 486 00:23:53,640 --> 00:23:56,320 this could be extended out to way more stuff 487 00:23:56,420 --> 00:24:00,440 than just RC cars and trains and cranes and things. 488 00:24:00,780 --> 00:24:04,899 And if you go, actually, if you go to the Maker World 489 00:24:04,900 --> 00:24:07,740 or Bamboo Studio and look for search for models, 490 00:24:08,180 --> 00:24:10,160 you will see a lot of stuff that users are making too, 491 00:24:10,320 --> 00:24:13,200 including of course, there's an R2D2 kit on there, 492 00:24:13,400 --> 00:24:15,720 there's a robot arm kit, bumper cars. 493 00:24:15,800 --> 00:24:18,720 So people are making their own models 494 00:24:18,820 --> 00:24:20,820 and then presumably their own profiles 495 00:24:21,040 --> 00:24:23,280 to upload to the firmware on the board 496 00:24:23,380 --> 00:24:24,380 so they do what you want to do. 497 00:24:25,160 --> 00:24:25,940 - Well, that was a great pick. 498 00:24:26,080 --> 00:24:27,340 Tod, what's your next one for us? 499 00:24:28,300 --> 00:24:31,060 - All right, so did you know that you can use KiCad 500 00:24:31,160 --> 00:24:32,020 from the command line? 501 00:24:33,300 --> 00:24:34,960 Until recently, like the last 20 years, 502 00:24:35,270 --> 00:24:37,100 I used Eagle to design circuit boards. 503 00:24:37,390 --> 00:24:38,080 It was pretty great. 504 00:24:38,080 --> 00:24:40,060 It was made better back in 2011 505 00:24:40,260 --> 00:24:42,940 when the community, including Adafruit's Limor and PT, 506 00:24:43,580 --> 00:24:45,180 convinced them to change their proprietary 507 00:24:45,560 --> 00:24:47,440 binary file format to a text-based one. 508 00:24:48,070 --> 00:24:50,600 This made integration with version control systems 509 00:24:50,660 --> 00:24:52,640 like Git much easier and a stable of tools 510 00:24:52,700 --> 00:24:55,580 to process Eagle files blossomed, making our lives easier. 511 00:24:56,260 --> 00:24:57,700 When I moved to KiCad last year, 512 00:24:57,860 --> 00:24:59,240 I was pleased to see it also had 513 00:24:59,240 --> 00:25:01,000 a well-defined text-based file format, 514 00:25:01,520 --> 00:25:03,760 script-based processing of KiCad designs, 515 00:25:03,940 --> 00:25:06,160 both in the app and outside with standard practice. 516 00:25:06,820 --> 00:25:08,340 This has enabled wonderful tools 517 00:25:08,480 --> 00:25:10,500 like various image importers and exporters, 518 00:25:11,179 --> 00:25:14,400 Stargirl's web-based KiCad viewer for the web, 519 00:25:14,800 --> 00:25:16,760 organic round trace generators, 520 00:25:16,820 --> 00:25:19,260 you can have those cool curvy traces from the '60s, 521 00:25:19,840 --> 00:25:22,920 a manufacturer part number to KiCad footprint generators, 522 00:25:22,940 --> 00:25:25,080 you can just put in a part number 523 00:25:25,080 --> 00:25:27,680 and it'll generate a whole KiCad schematic symbol 524 00:25:27,860 --> 00:25:29,200 and footprint for you, 525 00:25:29,680 --> 00:25:32,460 and exporters for popular PCB fabs. 526 00:25:32,480 --> 00:25:34,160 So it's really easy to get your board made. 527 00:25:35,400 --> 00:25:37,600 But editing these KiCad files can be tricky, 528 00:25:37,820 --> 00:25:40,320 especially if they're currently open by KiCad the program. 529 00:25:40,810 --> 00:25:43,540 So I was really intrigued to learn about KiCad CLI, 530 00:25:44,000 --> 00:25:46,060 a command line tool that ships with KiCad. 531 00:25:46,540 --> 00:25:48,040 Using this tool, you can do the obvious things 532 00:25:48,100 --> 00:25:51,060 like export Gerber files and drill files for PCB production. 533 00:25:51,670 --> 00:25:53,420 You can also use it to import and export 534 00:25:53,600 --> 00:25:55,140 schematic symbols and PCB footprints, 535 00:25:55,950 --> 00:25:57,980 but you can also have it run ERC, 536 00:25:58,200 --> 00:26:01,420 electrical rules check and DRC design rules check 537 00:26:02,580 --> 00:26:04,820 on your schematic and PCB from the command line. 538 00:26:05,680 --> 00:26:07,860 This is like a syntax and linter for your code, 539 00:26:07,980 --> 00:26:08,980 but for circuit design, 540 00:26:09,580 --> 00:26:11,660 it means you could add these to a GitHub action 541 00:26:11,940 --> 00:26:13,860 to ensure you never check in a bad schematic. 542 00:26:14,540 --> 00:26:15,140 This is pretty cool. 543 00:26:15,680 --> 00:26:18,000 It's because as someone who has checked in a bad schematic 544 00:26:18,300 --> 00:26:21,560 and then built a board from that and then realized, 545 00:26:21,720 --> 00:26:24,520 "Oh, I ran the DRC, but I forgot to run the DRC 546 00:26:25,020 --> 00:26:25,899 after I made the edit." 547 00:26:26,200 --> 00:26:29,120 And this would have helped me in a couple of places. 548 00:26:30,240 --> 00:26:33,840 The reason why I started looking at this whole KiCad CLI 549 00:26:34,440 --> 00:26:38,720 is I wanted to do a visual Git diff of a PCB design. 550 00:26:39,320 --> 00:26:40,760 The normal Git diff will show you 551 00:26:40,820 --> 00:26:42,580 how your text is changed for code. 552 00:26:43,220 --> 00:26:45,200 But for a vector art design like a PCB, 553 00:26:45,360 --> 00:26:45,980 it's not really helpful. 554 00:26:46,820 --> 00:26:48,060 And the tools that I found to do this 555 00:26:48,140 --> 00:26:51,260 were either some part of a for-pay monthly service, 556 00:26:51,740 --> 00:26:53,480 or I had huge dependencies and written 557 00:26:53,840 --> 00:26:55,100 for old versions of KiCads. 558 00:26:55,100 --> 00:26:55,860 I wasn't sure they'd work. 559 00:26:55,900 --> 00:27:00,700 I kind of want to invest in a whole node type script install 560 00:27:00,860 --> 00:27:02,380 or a whole Rust-- 561 00:27:02,560 --> 00:27:04,580 get Rust installed to make this one program work. 562 00:27:04,980 --> 00:27:07,040 So using some tips from a KiCad forum post, 563 00:27:07,060 --> 00:27:09,660 I made a very simple visual diff shell script 564 00:27:10,200 --> 00:27:12,000 that only depends on having KiCad 565 00:27:12,000 --> 00:27:13,280 and having a working web browser. 566 00:27:13,720 --> 00:27:15,780 It works by calling KiCad CLI twice 567 00:27:15,920 --> 00:27:18,960 to render two different versions of the PCB to SVG images, 568 00:27:19,440 --> 00:27:21,380 and then some quick HTML CSS magic 569 00:27:21,420 --> 00:27:23,460 to animate a crossfade between those images. 570 00:27:24,260 --> 00:27:25,560 It's about 90% of what I want. 571 00:27:27,520 --> 00:27:29,380 And with some changes to my Git config, 572 00:27:29,590 --> 00:27:32,440 I can now do a Git diff for PCBs visually. 573 00:27:33,440 --> 00:27:34,680 It's not a tool I'm gonna use every day, 574 00:27:34,760 --> 00:27:36,220 but when I do need it, it's really handy. 575 00:27:38,040 --> 00:27:39,100 - Yeah, Tod, that sounds really cool. 576 00:27:39,200 --> 00:27:41,220 It's interesting, you showed that to me 577 00:27:41,380 --> 00:27:45,380 and the ability to do a little cross wipe, 578 00:27:45,520 --> 00:27:47,960 cross fade between them is a great reminder 579 00:27:48,320 --> 00:27:50,140 of you can have all the tools in the world 580 00:27:50,220 --> 00:27:51,360 trying to find differences, 581 00:27:51,580 --> 00:27:52,819 but just you looking at it 582 00:27:52,820 --> 00:27:56,380 and seeing a thing move or a trace not be correct 583 00:27:56,420 --> 00:27:57,860 is really powerful. 584 00:27:57,910 --> 00:28:01,060 In fact, it reminds me of when I worked in animation 585 00:28:01,630 --> 00:28:05,080 at Disney, there were some similar scripts up at Pixar 586 00:28:05,270 --> 00:28:06,000 in the rigging-- 587 00:28:06,000 --> 00:28:07,340 I worked in character rigging-- 588 00:28:07,340 --> 00:28:07,880 in the rigging group. 589 00:28:08,020 --> 00:28:12,000 Just every night, automatically, all of the character rigs 590 00:28:12,120 --> 00:28:16,820 would be animated through a little set of standardized walk 591 00:28:16,900 --> 00:28:17,720 cycles and things. 592 00:28:18,280 --> 00:28:20,340 A script would just diff them visually. 593 00:28:21,060 --> 00:28:24,020 So if you just diff two animations on top of each other, 594 00:28:24,130 --> 00:28:26,040 you can notice like, wow, I think, you know, 595 00:28:26,050 --> 00:28:28,460 the elbow deformer or something changed in the code 596 00:28:28,560 --> 00:28:30,280 somewhere in this huge pipeline, 597 00:28:30,620 --> 00:28:32,840 because there were some pixels that showed up. 598 00:28:32,870 --> 00:28:33,800 Like if you diff two images, 599 00:28:34,000 --> 00:28:35,520 they should just be black, one on top of the other. 600 00:28:35,600 --> 00:28:38,240 So they had a really clever way of saying, 601 00:28:38,250 --> 00:28:41,140 hey, just flag me if you notice anything visually different 602 00:28:41,180 --> 00:28:43,340 between these without, it's not computer vision or anything. 603 00:28:43,460 --> 00:28:45,600 It's just literally, is there a pixel that isn't just black 604 00:28:45,640 --> 00:28:47,240 on these two sandwiched images. 605 00:28:47,740 --> 00:28:48,100 - Totally. 606 00:28:48,320 --> 00:28:49,480 - So that reminds me of that, 607 00:28:49,580 --> 00:28:52,520 being able to just swipe between your two PCBs, 608 00:28:52,580 --> 00:28:53,360 you're gonna catch stuff. 609 00:28:54,060 --> 00:28:54,180 - Yep. 610 00:28:54,670 --> 00:28:56,360 All right, Paul, what's your second one for this time? 611 00:28:57,040 --> 00:28:58,460 - Growing up as an '80s kid, 612 00:28:58,460 --> 00:29:00,140 it seemed to me that there were two camps of those 613 00:29:00,180 --> 00:29:01,180 who had an early computer. 614 00:29:01,880 --> 00:29:04,280 You either had an Apple II, like John mentioned earlier, 615 00:29:04,780 --> 00:29:05,940 or you had a Commodore 64. 616 00:29:07,080 --> 00:29:09,200 Personally, I was lucky enough to have an Apple IIc, 617 00:29:09,820 --> 00:29:11,580 but a number of my friends had the C64, 618 00:29:12,270 --> 00:29:14,160 and now the Commodore 64 is back. 619 00:29:15,020 --> 00:29:16,140 YouTuber Perry Fractic, 620 00:29:16,340 --> 00:29:18,760 who runs an all things retro YouTube channel, 621 00:29:19,180 --> 00:29:20,720 has announced via a video on his channel 622 00:29:20,820 --> 00:29:22,580 that after seven months of negotiations, 623 00:29:23,180 --> 00:29:25,760 he has a deal in place to buy the Commodore 64 brand 624 00:29:25,840 --> 00:29:26,740 for seven figures. 625 00:29:27,480 --> 00:29:30,360 He's created a public benefit corporation for Commodore 64, 626 00:29:30,960 --> 00:29:32,480 which means that while it's not a non-profit, 627 00:29:32,700 --> 00:29:35,640 it has been founded to preserve and promote retrocomputing. 628 00:29:36,160 --> 00:29:37,780 And with that comes news that they're selling 629 00:29:37,840 --> 00:29:40,860 a Commodore 64 Ultimate that you can pre-order now 630 00:29:41,300 --> 00:29:43,040 and is supposed to ship before the end of the year, 631 00:29:43,160 --> 00:29:43,940 starting at $300. 632 00:29:44,980 --> 00:29:47,440 They claim it's the first new Commodore in over 30 years, 633 00:29:47,620 --> 00:29:49,700 And that's because it's not doing software emulation. 634 00:29:50,340 --> 00:29:52,320 They're using an FPGA to recreate 635 00:29:52,370 --> 00:29:53,860 the actual Commodore hardware. 636 00:29:54,400 --> 00:29:55,840 There's three models to choose from, 637 00:29:55,920 --> 00:29:58,220 the basic beige edition, a starlight edition 638 00:29:58,300 --> 00:30:00,600 that adds a translucent case with sound reactive LEDs, 639 00:30:01,230 --> 00:30:03,100 and the ultimate founders edition, 640 00:30:03,690 --> 00:30:06,260 of which there are only 6,400 made for $500 641 00:30:07,030 --> 00:30:10,500 and comes with gold plated badges, gold keys, and more. 642 00:30:12,920 --> 00:30:14,060 - Lasers, does it have lasers? 643 00:30:16,220 --> 00:30:18,220 Each model does have an HDMI port, 644 00:30:18,500 --> 00:30:21,100 built-in Wi-Fi and USB to bring it into the modern era. 645 00:30:21,700 --> 00:30:23,280 They're able to play any of the original 646 00:30:23,520 --> 00:30:25,180 Commodore 64 games and applications, 647 00:30:25,540 --> 00:30:27,180 and the description even claims 648 00:30:27,600 --> 00:30:29,500 that you'll be able to plug in old cartridges, 649 00:30:30,080 --> 00:30:32,360 CRT TVs, or even disc drives. 650 00:30:33,440 --> 00:30:34,600 I hope they pull it off. 651 00:30:34,680 --> 00:30:37,100 That's a lot of $300 retro computers to sell 652 00:30:37,100 --> 00:30:39,480 to get a return on investment on that seven figures. 653 00:30:39,740 --> 00:30:39,960 - Wow. 654 00:30:41,780 --> 00:30:42,720 - This is really cool, though. 655 00:30:44,020 --> 00:30:47,300 I'm always amazed at how, what you can get an FPGA to do. 656 00:30:49,220 --> 00:30:49,880 - Yeah, it's interesting. 657 00:30:49,960 --> 00:30:51,300 When you look at the actual back of it, 658 00:30:51,320 --> 00:30:53,400 it's got the original ports that it had. 659 00:30:53,860 --> 00:30:56,860 So on the far right side of the computer 660 00:30:56,980 --> 00:30:59,640 is where they've added the USB and some of the newer stuff. 661 00:30:59,680 --> 00:31:03,920 And then the back, where the FPGA is, motherboard is, 662 00:31:04,100 --> 00:31:07,200 it's set up to be just like the original Commodore 64. 663 00:31:07,420 --> 00:31:08,020 It's pretty interesting. 664 00:31:08,540 --> 00:31:08,700 - Wow. 665 00:31:09,040 --> 00:31:11,339 Do you think it's time to finally take that trip 666 00:31:11,340 --> 00:31:15,080 into Commodore 64 land as a former Apple guy? 667 00:31:15,740 --> 00:31:17,480 - You know, I went through a phase 668 00:31:17,580 --> 00:31:19,780 where I bought my first two computers. 669 00:31:20,060 --> 00:31:22,640 My father actually gave me my first Timex Sinclair 670 00:31:22,780 --> 00:31:23,600 that we had as a kid, 671 00:31:23,720 --> 00:31:25,320 and then I went out and bought an Apple IIc. 672 00:31:26,360 --> 00:31:28,360 During the pandemic, I ended up putting them both up 673 00:31:28,420 --> 00:31:28,720 on eBay. 674 00:31:28,800 --> 00:31:30,400 I tried the retro computing thing, 675 00:31:30,740 --> 00:31:31,900 and it's just not for me. 676 00:31:32,760 --> 00:31:35,200 The first time I heard the Apple IIc boot up 677 00:31:35,260 --> 00:31:37,280 with that classic sound, 678 00:31:37,760 --> 00:31:39,520 I was instantly a 10 year old again. 679 00:31:39,520 --> 00:31:41,080 It was amazing how it took me back. 680 00:31:41,200 --> 00:31:43,400 - And then bored five minutes later, right? 681 00:31:43,800 --> 00:31:45,640 - Kind of, yeah, to be honest with you. 682 00:31:45,880 --> 00:31:46,760 - That's how a lot of these go. 683 00:31:48,560 --> 00:31:49,320 - Well, that's our show. 684 00:31:49,540 --> 00:31:50,880 Thanks to John Park for joining us 685 00:31:50,880 --> 00:31:52,040 and check out his weekly show, 686 00:31:52,180 --> 00:31:54,540 John Park's Workshop on the Adafruit YouTube channel. 687 00:31:55,120 --> 00:31:56,860 And don't forget that on August 15th, 688 00:31:57,000 --> 00:31:59,320 Tod and I will be hosting a live edition of the Bootloader. 689 00:31:59,900 --> 00:32:02,060 Check the Adafruit blog and socials for the time 690 00:32:02,100 --> 00:32:03,180 and we hope to see you there. 691 00:32:03,860 --> 00:32:05,600 Until next time, stay positive. 692 00:32:06,120 --> 00:32:06,940 (gentle music)