1 00:00:00,001 --> 00:00:08,600 Welcome to The Bootloader. I'm Paul Cutler. And I'm Tod Kurt. We have a special episode 2 00:00:08,600 --> 00:00:13,000 today as we welcome guest Kevin Cappuccio, creator of the Jumperless breadboard. Kevin, 3 00:00:13,000 --> 00:00:17,480 welcome to the show. Nice to be here. Thanks for having me on. We each have brought two 4 00:00:17,480 --> 00:00:20,440 things to share. We'll chat about each one for a couple of minutes, but no more than 5 00:00:20,440 --> 00:00:25,480 five. If you want to learn more, visit the detailed show notes and transcripts at thebootloader.net. 6 00:00:25,480 --> 00:00:30,560 Kevin, before we start, let's talk a little bit about this Jumperless V5 that the crowdfunding 7 00:00:30,560 --> 00:00:37,440 campaign is going on for. I made the original Jumperless about almost exactly a year ago. 8 00:00:37,440 --> 00:00:43,880 And I hacked in this probe thing. So what makes the Jumperless V5 so much cooler is 9 00:00:43,880 --> 00:00:49,160 I added a probe that lets you just poke out connections. And it was like, once I did that, 10 00:00:49,160 --> 00:00:53,800 I was like, oh my God, this is the way to use this thing. It's so much nicer. So I just 11 00:00:53,800 --> 00:00:58,440 started over, you know, like used all the cross point switching matrix to make all the 12 00:00:58,440 --> 00:01:04,840 breadboard connections in the back, kept that. And then, yeah, so V5 is just making it really 13 00:01:04,840 --> 00:01:11,920 like intuitive, a nice UI to do whatever. It looks so cool. Like, especially with all 14 00:01:11,920 --> 00:01:17,880 the LEDs behind each breadboard point. So like as you touch the probe, they light up. 15 00:01:17,880 --> 00:01:25,040 It's just, that's great. Did you use these 446, I lost the chip now, the analog crossbar 16 00:01:25,040 --> 00:01:29,440 switch that's like 128 switches in this little chip. Did you use that on the previous Jumperless 17 00:01:29,440 --> 00:01:30,440 as well? 18 00:01:30,440 --> 00:01:40,520 Yeah. So like early prototypes, I was using an old Mitel 8816, MT8816. And so it turns 19 00:01:40,520 --> 00:01:46,600 out, but they're like big PLCC packages. They're like huge, like ceramic heavy chips. So I 20 00:01:46,600 --> 00:01:53,440 couldn't fit more. And so I went looking, turns out the CH446Q is kind of a clone, but 21 00:01:53,440 --> 00:01:59,000 they like made it a lot better. Like it's kind of cool to see companies doing that where 22 00:01:59,000 --> 00:02:03,200 they're like, they take the same thing and then they're like, we need a serial addressing 23 00:02:03,200 --> 00:02:07,200 mode. So like you don't have to send a bunch of parallel data and run a bunch of wires. 24 00:02:07,200 --> 00:02:12,640 You can just, so yeah. So I use those. They're great. I use them way on spec too. 25 00:02:12,640 --> 00:02:17,720 Yeah. I'm a big fan of these analog multiplexer chips to like basically let you turn one analog 26 00:02:17,720 --> 00:02:23,840 input into eight or something. And to see this cool, it's got 16 lines on this side 27 00:02:23,840 --> 00:02:28,640 and eight lines on this side. And you just connect any one to any of them and even have 28 00:02:28,640 --> 00:02:31,720 multiple ones connected. It's just, it's kind of blew my mind. It's like, ah, why don't 29 00:02:31,720 --> 00:02:33,640 play with this chip for something? I don't know what yet. 30 00:02:33,640 --> 00:02:39,360 Yeah, they're great. They also make a five by 24 version, like if you want to like really 31 00:02:39,360 --> 00:02:44,880 fan out, I don't know if I'll be used for them, but I want to. 32 00:02:44,880 --> 00:02:50,080 So the other, the other difference in the jumperless V5 is it's got the new RP 2350 33 00:02:50,080 --> 00:02:53,720 chip. Have you liked that chip? Cause this is one of the first designs I've seen actually 34 00:02:53,720 --> 00:02:54,720 use it. 35 00:02:54,720 --> 00:03:00,800 Yeah. So they make it in a bigger package so you can get that extra GPIO was so clutch. 36 00:03:00,800 --> 00:03:06,520 Like it, I had a GPIO expander on there. It was like driving the chips and it's like, 37 00:03:06,520 --> 00:03:10,400 it's so nice to be able to take that out and just, you know, instead of sending an I squared 38 00:03:10,400 --> 00:03:12,880 C message to it or something like you can. 39 00:03:12,880 --> 00:03:16,040 It was a lot simpler. 40 00:03:16,040 --> 00:03:21,320 The, the beta test units that are out right now, like those were handed to me as samples 41 00:03:21,320 --> 00:03:26,520 at Defcon, like cause they launched it at Defcon. I was like, no way I have to do this. 42 00:03:26,520 --> 00:03:32,760 And like, yeah, just spent all of Defcon reading the data sheet like a couple of times over. 43 00:03:32,760 --> 00:03:36,920 Yeah. I was wondering where you got the 2350 because no one else has them. And I was so 44 00:03:36,920 --> 00:03:39,280 shocked to see a new product with them. 45 00:03:39,280 --> 00:03:48,240 Yeah. I, I was one short for them and I bought a Pimoroni like a board with it on and just 46 00:03:48,240 --> 00:03:50,320 de-soldered it and put it on there. Yeah. 47 00:03:50,320 --> 00:03:54,260 Yeah. Cause I think, I think Pimoroni is the only place you can get those, the bigger version 48 00:03:54,260 --> 00:03:56,480 of the RP 2350 I think. Yeah. 49 00:03:56,480 --> 00:04:01,400 Yeah. It adds some like it's, there's like, you know, more pins, more ADCs and stuff, 50 00:04:01,400 --> 00:04:05,960 but like really it's just cool. Like I just did it cause I was like, ah, this is going 51 00:04:05,960 --> 00:04:08,640 to be awesome to have the newest, newest chip on there. 52 00:04:08,640 --> 00:04:12,280 Totally. Well, I mean it's, it's a good marketing move, you know, even if you don't need the 53 00:04:12,280 --> 00:04:16,240 extra CPU power and stuff, it's just to say, Hey, I'm using this new shiny new chip that 54 00:04:16,240 --> 00:04:17,560 everyone's all agog about. 55 00:04:17,560 --> 00:04:22,840 Yeah. I mean, and it just gives us, eventually we'll probably need that room cause keep getting 56 00:04:22,840 --> 00:04:28,680 all these app ideas in the discord. Like we should have a Python REPL on it. Like, sure, 57 00:04:28,680 --> 00:04:32,760 why not throw that in there? Like we got so much room. 58 00:04:32,760 --> 00:04:34,640 Do protocol decoding or something. 59 00:04:34,640 --> 00:04:38,600 We do that. That was actually this entire week we were doing protocol. 60 00:04:38,600 --> 00:04:39,600 Oh really? 61 00:04:39,600 --> 00:04:44,360 Serial pass throughs. So now I can like, there was an update that just got sent out on CrowdSupply, 62 00:04:44,360 --> 00:04:50,440 but yeah, we were like screwing with it for like this last week straight of getting serial 63 00:04:50,440 --> 00:04:56,200 pass through so you can route UART lines or any like, or I squared C or something. And 64 00:04:56,200 --> 00:05:02,120 then anything that comes in through the second USB endpoint, we'll just get like bi-directionally 65 00:05:02,120 --> 00:05:06,120 pass straight through. So you can put like an AT tiny on there and you can just flash 66 00:05:06,120 --> 00:05:09,320 it as if it was plugged in by itself. It's kind of cool. 67 00:05:09,320 --> 00:05:12,360 Oh man, that's cool. Yeah. Cause normally you got to pay like a bunch of extra money 68 00:05:12,360 --> 00:05:16,080 on your, on your scope to get protocol debugging. And if this is like, this is part of your 69 00:05:16,080 --> 00:05:18,800 breadboard. 70 00:05:18,800 --> 00:05:26,180 It's not as good as a scope. Very set expectations right there. It does a lot of things. It does 71 00:05:26,180 --> 00:05:31,840 not do any one thing really, really super duper well. 72 00:05:31,840 --> 00:05:35,160 Once the, the, the probe thing came out and you're touching stuff and lighten things up, 73 00:05:35,160 --> 00:05:39,920 I'm like, okay, this has got to be a synthesizer or a synthesizer interface device or something. 74 00:05:39,920 --> 00:05:46,840 Cause it looks like something out of a sci-fi 1970s rack mount synthesizer thing. 75 00:05:46,840 --> 00:05:51,760 I was going to sell a second synthesizer version, which is exactly the same thing, but twice 76 00:05:51,760 --> 00:05:52,760 the cost. 77 00:05:52,760 --> 00:06:02,140 Hey, now for those at home that might be curious, how much is the jumper list? V five? 78 00:06:02,140 --> 00:06:08,660 It's 350 bucks while crowdfunding is going. And then as soon as that's over, which by 79 00:06:08,660 --> 00:06:14,220 the time you hear this, it will be, then there'll be three 79. Okay. Well, I'll make sure that 80 00:06:14,220 --> 00:06:17,820 we'd link to that in the show notes too. So people can check that out. Totally. Yeah, 81 00:06:17,820 --> 00:06:19,780 this is very cool. 82 00:06:19,780 --> 00:06:22,240 What's the first thing you brought us this week, Kevin? 83 00:06:22,240 --> 00:06:30,180 So I brought the Uno plus plus looks kind of like a regular Arduino Uno, but every pin 84 00:06:30,180 --> 00:06:35,320 has an led on it and it tells you the state of each of those pins. So like if it's, you 85 00:06:35,320 --> 00:06:41,380 know, pins high, that actual row is lit up and how he does it with the actual like plastic 86 00:06:41,380 --> 00:06:48,020 header is it's a clear plastic bit and it acts as a light pipe. So like it's not just 87 00:06:48,020 --> 00:06:52,400 an led next to the header that's lighting up. It's the whole part of the header lights 88 00:06:52,400 --> 00:06:53,400 up. 89 00:06:53,400 --> 00:06:54,400 That's pretty cool. 90 00:06:54,400 --> 00:06:59,280 Yeah. Something like this. Okay. If I had just seen it and I didn't see the schematic, 91 00:06:59,280 --> 00:07:05,140 I would not trust it in a million years. Like the easy way to do this would be put another 92 00:07:05,140 --> 00:07:11,280 microcontroller on it and then just read all those inputs and then send it to some addressable 93 00:07:11,280 --> 00:07:20,400 LEDs. But John talked to him, he can't program. So he instead did it the cool way and did 94 00:07:20,400 --> 00:07:27,160 it with comparators. And so it's a ton of, you know, quad LM three, three, nine comparators. 95 00:07:27,160 --> 00:07:33,160 They've been around forever. And so like that, I would trust, like if I see if that's on, 96 00:07:33,160 --> 00:07:36,720 there's really not much that could go wrong. That would tell me the wrong state. 97 00:07:36,720 --> 00:07:40,640 Yeah. And it buffers it. So it doesn't impact your use of the GPI. 98 00:07:40,640 --> 00:07:47,160 Yeah, exactly. And he even like set the comparators, right. So like with the hysteresis, like, 99 00:07:47,160 --> 00:07:52,160 you know, they won't go over 1.8 volts what they're supposed to. Yeah. It's cool. 100 00:07:52,160 --> 00:07:55,760 That's awesome. Did he get like custom headers made instead of the black plastic, they're 101 00:07:55,760 --> 00:07:58,120 clear light pipes or? 102 00:07:58,120 --> 00:08:05,120 Yeah. So I was, I was just talking to him and what he was doing was doing a clear 3d 103 00:08:05,120 --> 00:08:11,120 printed, transparent, like resin, and then having a second 3d print that slots into it, 104 00:08:11,120 --> 00:08:17,840 like really thin little blades that keep the light separated from one to the next. So it's 105 00:08:17,840 --> 00:08:24,520 got a really tiny channel, but JLC now, I was just, just looking on JLC the other day 106 00:08:24,520 --> 00:08:31,900 and they do like full color resin, like clear resin, and then you can put color inside it. 107 00:08:31,900 --> 00:08:34,640 So now it can be one part. Yeah. 108 00:08:34,640 --> 00:08:35,640 That's pretty neat. 109 00:08:35,640 --> 00:08:36,640 Yeah. 110 00:08:36,640 --> 00:08:42,960 Wow. So is this a thing you can buy or like, is it, does he, does he have also a crowdfunding 111 00:08:42,960 --> 00:08:43,960 campaign going? 112 00:08:43,960 --> 00:08:46,560 No. So he's, he's close. He's getting there. 113 00:08:46,560 --> 00:08:47,720 Ah, cool. 114 00:08:47,720 --> 00:08:51,640 I don't even think the Hackaday IO project that I linked, I don't think that has all 115 00:08:51,640 --> 00:08:58,160 the newest things. I think he's now using full color PCB, but no, it's, it's coming 116 00:08:58,160 --> 00:09:01,120 up soon and it's, it's going to be rad. 117 00:09:01,120 --> 00:09:02,120 That's awesome. 118 00:09:02,120 --> 00:09:07,560 Hopefully I can convince them to make a Arduino Nano version. That's going to be so much harder. 119 00:09:07,560 --> 00:09:11,240 Oh, because then that will plug into the jumperless board. 120 00:09:11,240 --> 00:09:16,960 Yeah, yeah, exactly. I mean, like it sounds like a little beginner learning tool, but 121 00:09:16,960 --> 00:09:23,800 like, you know, like 99% of my debugging is, is this pin actually doing the thing I want 122 00:09:23,800 --> 00:09:29,960 it to like, is it the, is it the pin or is it the code or something, you know? 123 00:09:29,960 --> 00:09:34,800 Like 90% of the times when I'm helping people with coding projects, I just tell them, put 124 00:09:34,800 --> 00:09:38,920 print statements like in between every line so you can see what's going on. And they're 125 00:09:38,920 --> 00:09:43,840 like, Oh, and it, but like, you can't do that because it'll slow down your code or, or it's 126 00:09:43,840 --> 00:09:49,280 just like unfeasible having LEDs, like physical representation of what's your, what your circuit's 127 00:09:49,280 --> 00:09:51,720 doing is like so much more clear. 128 00:09:51,720 --> 00:09:57,520 Yeah. It's funny walking people through debugging stuff and you're like, no, no, check again, 129 00:09:57,520 --> 00:10:01,840 check, check that that's up. You know, like, no, the code says digital, right? Hi. And 130 00:10:01,840 --> 00:10:05,160 you're like, no, dude. 131 00:10:05,160 --> 00:10:12,520 Not really. You didn't set the pin to an output or something. Very cool. I can't wait to see 132 00:10:12,520 --> 00:10:18,760 more of this. Uno plus plus and it's spelled P L U S plus sign. Yeah. It's hard to search 133 00:10:18,760 --> 00:10:21,160 for if you don't know that. 134 00:10:21,160 --> 00:10:26,440 I actually genuinely thought I was going to lose the Hackaday prize last year to that. 135 00:10:26,440 --> 00:10:30,560 Like that was the project I was like, that's cooler than jump for this. Like I would, I 136 00:10:30,560 --> 00:10:32,160 would vote for that over my own. 137 00:10:32,160 --> 00:10:37,200 I don't know. They're pretty, they're both pretty cool. All right, Paul, what's your 138 00:10:37,200 --> 00:10:42,480 one for this week? Mine is the Manyfold app by James Smith. Manyfold is an app that's 139 00:10:42,480 --> 00:10:47,640 been around since 2021, but it's been in the news recently because it just added activity 140 00:10:47,640 --> 00:10:52,920 pub integration, which I'll come back to in just a minute. It's a self-hosted app built 141 00:10:52,920 --> 00:10:58,440 to manage and organize your files related to 3d printing. It's open source released 142 00:10:58,440 --> 00:11:03,520 under the permissive MIT license and written in Ruby on rails. 143 00:11:03,520 --> 00:11:09,560 Imagine printables or thingiverse, but self-hosted. You're not locked into another walled garden 144 00:11:09,560 --> 00:11:14,760 and it has some really, really neat features. You can run it as single user or multi-user. 145 00:11:14,760 --> 00:11:18,040 So if you're running it in single user, you're just keeping a track of all the files that 146 00:11:18,040 --> 00:11:23,200 you have multi-user. You can invite other folks to join your server, almost like pixel 147 00:11:23,200 --> 00:11:28,600 fed does for sharing photos. I mentioned earlier that it's integrated with activity pub. That 148 00:11:28,600 --> 00:11:33,640 means it's on the Fediverse. Imagine being able to follow a creator or a model directly 149 00:11:33,640 --> 00:11:37,360 from your mastodon account, which I think is really, really cool. So every time that 150 00:11:37,360 --> 00:11:43,120 that model is updated, you'll get a notification. I believe I need to double check that. 151 00:11:43,120 --> 00:11:46,680 And then one of the other cool things about it is it doesn't just handle the 3d printing 152 00:11:46,680 --> 00:11:52,840 file formats like you would expect, such as step files, STL files, and 3mf files. It handles 153 00:11:52,840 --> 00:11:57,800 everything related to 3d printing. Every image format is supported from JPEGs to pings to 154 00:11:57,800 --> 00:12:04,360 GIFs to SVGs. Video files are supported if you want to show a render of the 3d printing 155 00:12:04,360 --> 00:12:09,600 model that's going to be printed. And it can keep track of all the text files that go with 156 00:12:09,600 --> 00:12:13,680 it. So if you have installation instructions, for example, it'll have all of that built 157 00:12:13,680 --> 00:12:17,200 in like you would expect it to. If you want to learn more about it, I've linked to an 158 00:12:17,200 --> 00:12:22,680 interview with James and the Floss Weekly crew on their podcast. You can check it out 159 00:12:22,680 --> 00:12:29,440 at manyfold.app and there's a demo server at try.manyfold.app to see it in action. It's 160 00:12:29,440 --> 00:12:32,320 really, really neat. I highly recommend it. 161 00:12:32,320 --> 00:12:36,600 That's cool. I love seeing more things that we think have to be monoliths being added 162 00:12:36,600 --> 00:12:40,240 to the Fediverse in some way. Because like, why not? Especially for something like Thingiverse 163 00:12:40,240 --> 00:12:47,400 and printables, you know, fundamentally it's not that hard. It could be an FTP server. 164 00:12:47,400 --> 00:12:50,800 It could be. But, you know, if you're running one of the servers, one of the things you 165 00:12:50,800 --> 00:12:57,400 might need to think about is copyright violations, right? What if you have a file that's copyrighted? 166 00:12:57,400 --> 00:13:03,220 Or I think James mentioned in his podcast that he buys or subscribes to Patreon creators 167 00:13:03,220 --> 00:13:06,480 who if you subscribe to them will give you files. Well, you're going to want to make 168 00:13:06,480 --> 00:13:09,360 those private, for example. You don't want to make those public because those were for 169 00:13:09,360 --> 00:13:13,480 sale and all that functionality is built right into Manyfold. 170 00:13:13,480 --> 00:13:18,400 And just seeing updates. Like, you know, sometimes you get a file that someone made and then 171 00:13:18,400 --> 00:13:22,600 you forget that like maybe they tweaked it, made it better. I don't know. 172 00:13:22,600 --> 00:13:25,800 Exactly. I think that's one of the coolest things about it being on the Fediverse like 173 00:13:25,800 --> 00:13:26,800 that. 174 00:13:26,800 --> 00:13:30,520 Yeah. And back in the heyday of Thingiverse, one of the things I really liked about some 175 00:13:30,520 --> 00:13:35,600 of the models is the discussion that was going on on a model. People were like, oh, you know, 176 00:13:35,600 --> 00:13:38,680 what's the right way to print this? And there'd be like discussions on like, you know, different 177 00:13:38,680 --> 00:13:41,280 filaments or different orientations of the part or whatever. 178 00:13:41,280 --> 00:13:46,040 And like if it's kind of part of your Macedon experience, that that conversation can happen 179 00:13:46,040 --> 00:13:47,040 pretty seamlessly, I would imagine. 180 00:13:47,040 --> 00:13:50,320 Yeah, I don't know if that's enabled, but it's definitely something to check out. 181 00:13:50,320 --> 00:13:51,320 Yeah. 182 00:13:51,320 --> 00:13:53,680 All right, Tod, what's your first one for us this episode? 183 00:13:53,680 --> 00:13:58,000 All right. So some of you might have already seen this, but to me, it was just like kind 184 00:13:58,000 --> 00:14:04,440 of a little bit mind blowing. Like we've all seen the Doom game ported to insert tiny electronics 185 00:14:04,440 --> 00:14:09,200 like the watch or the little Arduino or something, but... 186 00:14:09,200 --> 00:14:10,200 Or the jump. 187 00:14:10,200 --> 00:14:15,680 Yeah. Oh, is it going to have Doom? 188 00:14:15,680 --> 00:14:19,560 And that's great. You know, it's like a really complicated game engine compared to like things 189 00:14:19,560 --> 00:14:24,200 like Pong, but it's not true 3D. It's more like a 2.5D where the enemies are just sprites 190 00:14:24,200 --> 00:14:29,760 and the level geometry is just perturbations on a 2D plane. But the game Quake, which is 191 00:14:29,760 --> 00:14:34,520 the game that came after from id, was full 3D, fully polygonal monsters and objects in 192 00:14:34,520 --> 00:14:40,800 the world, fully polygonal game world. And I figured Quake would never be part of these 193 00:14:40,800 --> 00:14:47,160 little tiny embedded things. But I saw a couple of days ago that people at nexthack.com got 194 00:14:47,160 --> 00:14:53,000 Quake running on a SparkFun Thing Plus Matterboard, which is a feather format board, you know, 195 00:14:53,000 --> 00:14:59,840 9 inches by 2 inches. And it's only got... It's a 39 megahertz little board that's got 196 00:14:59,840 --> 00:15:08,920 256K of RAM and 1.5 megs of flash. And this is the same specs as the RP2350 pretty much. 197 00:15:08,920 --> 00:15:14,440 So, you know, are we going to see Quake on the jumper list or on an Adafruit feather 198 00:15:14,440 --> 00:15:21,000 soon? So first they started with a SparkFun board and made a little sort of prototype 199 00:15:21,000 --> 00:15:24,940 that you can build yourself. They've included all the source. But then they created their 200 00:15:24,940 --> 00:15:31,520 own gamepad PCB that houses an Arduino Nano matter. Like this uses the same chip, this 201 00:15:31,520 --> 00:15:42,720 MGM240 module that has a Silicon Labs EFR32MG24. And it's some Bluetooth matter chip that's 202 00:15:42,720 --> 00:15:49,720 pretty cool. And they got this whole complete package that has a screen, has the Arduino 203 00:15:49,720 --> 00:15:57,000 Nano on it, buttons, sound output, and it runs at 35 frames per second at 320 by 240. 204 00:15:57,000 --> 00:16:03,080 Oh, and also you can do BLE based multiplayer with someone else with the same board. 205 00:16:03,080 --> 00:16:04,880 Oh, that's amazing. 206 00:16:04,880 --> 00:16:10,960 Yeah. And so like, like as someone, as someone who sort of, sort of got into PC gaming by 207 00:16:10,960 --> 00:16:17,320 buying the 486 with the 4 megs of RAM minimum and like having that be such a stretch back 208 00:16:17,320 --> 00:16:24,440 in whenever it was. And now to see that, oh wait, they could have done it in 256K of RAM. 209 00:16:24,440 --> 00:16:28,980 It's pretty amazing. In the show notes, we'll have links to their multiple posts they have 210 00:16:28,980 --> 00:16:34,160 on this, a write up from the Silicon Labs tech blogs. They really liked it. Links to 211 00:16:34,160 --> 00:16:39,380 the design files if you want to build your own of these boards. It seems pretty doable. 212 00:16:39,380 --> 00:16:43,720 I love this project. Quake always has a special place in my heart. I was a big gamer in the 213 00:16:43,720 --> 00:16:48,640 mid nineties or starting in the mid nineties. And I had a 3DFX Voodoo card. And I, one of 214 00:16:48,640 --> 00:16:53,080 the top five gaming memories I still have is the first time I had that card in my machine. 215 00:16:53,080 --> 00:16:56,420 And then Quake, you walk up to the puddle and you see a reflection of the character 216 00:16:56,420 --> 00:17:03,120 in the puddle in full 3D. Something else still never forget, because it was just mind blowing. 217 00:17:03,120 --> 00:17:08,640 We didn't have graphics like that until that card and that game came out. So it's, it's 218 00:17:08,640 --> 00:17:11,880 pretty neat to see how far that's come in the last almost 30 years. 219 00:17:11,880 --> 00:17:16,840 Yeah, yeah. For me, one of my one of my memories that comes back unbidden to me is being able 220 00:17:16,840 --> 00:17:22,200 to bounce the Quake grenade gun grenades around the corner to kill monsters and the noises 221 00:17:22,200 --> 00:17:25,680 that it make of the "dunk, dunk, dunk" because it bounced around. It's just like, it's like, 222 00:17:25,680 --> 00:17:30,480 oh, you can like kind of think strategically in this first person shooter game. 223 00:17:30,480 --> 00:17:35,480 Like what if someone came back in time and told you that like that chip is a smart light 224 00:17:35,480 --> 00:17:41,840 bulb or something. Yeah, it's easier to just put that whole thing, something more powerful. 225 00:17:41,840 --> 00:17:46,040 Yeah, yeah. It's like, it's like I saw seed just came out with a Xiao format, like a cutie 226 00:17:46,040 --> 00:17:52,080 pie format board with the same chip for like $7. And, you know, like you're not going to 227 00:17:52,080 --> 00:17:57,840 be driving a really like high res screen with that, but, but hey, maybe it could run Quake. 228 00:17:57,840 --> 00:18:02,400 All right, Kevin, what's your number two for this week? 229 00:18:02,400 --> 00:18:09,360 Yeah. So this one's not really, it's not a project. Like I'm, I'm bending your rules 230 00:18:09,360 --> 00:18:16,960 a bit, I think. But it's, it's a field. So like the field of evolvable hardware, it's 231 00:18:16,960 --> 00:18:22,480 literally as old as I am. So the first project with evolvable hardware was University of 232 00:18:22,480 --> 00:18:30,920 Sussex, Adrian Thompson. What he was doing was, oh, in 1990. So, so what he was doing 233 00:18:30,920 --> 00:18:40,360 was like getting an FPGA. So I think he was using a Xilinx XC6200 and basically giving 234 00:18:40,360 --> 00:18:45,960 it a fitness function. So I think the first, the like the seminal thing that he did was 235 00:18:45,960 --> 00:18:51,800 a tone discriminator. So being able to tell the difference between one kilohertz and 10 236 00:18:51,800 --> 00:18:58,120 kilohertz on, I think there's a hundred gates, it's like a 10 by 10 FPGA. And yeah, and so 237 00:18:58,120 --> 00:19:02,440 he would just say, is it okay at that? And then it would give it a random bit stream, 238 00:19:02,440 --> 00:19:08,040 just random arrangement of a bunch of logic gates. And then, you know, at first it's probably 239 00:19:08,040 --> 00:19:12,720 just kind of up in the air of none of them are doing the right thing, you know, but then 240 00:19:12,720 --> 00:19:18,000 over time, you know, he's doing like an evolutionary thing where he's like the two most fit ways 241 00:19:18,000 --> 00:19:24,400 of getting, you know, making this pin go high at 10 kilohertz and low at one kilohertz. 242 00:19:24,400 --> 00:19:30,040 Do that again, you know, and then put some randomness in it. And he ran it for a while 243 00:19:30,040 --> 00:19:37,880 and it worked. Like it just found, and it's like, if you look at the, you know, the arrangement 244 00:19:37,880 --> 00:19:44,400 of gates, it's complete nonsense. Like there's parts that are not even connected to anything, 245 00:19:44,400 --> 00:19:49,480 but are necessary for it to work. Like it's using kind of just like the weirdness of like 246 00:19:49,480 --> 00:19:53,640 signals going, like, you know, there's no constraints. We don't have to like, you don't 247 00:19:53,640 --> 00:19:59,040 have to abstract anything. So it's just like, yeah, it's using, and it probably wouldn't 248 00:19:59,040 --> 00:20:03,320 work on another one. Like if you put that exact same setup, it wouldn't work on a different 249 00:20:03,320 --> 00:20:09,080 chip because it's just, but yeah. And so running circuits like that would be, I don't know, 250 00:20:09,080 --> 00:20:13,480 I just think it's the coolest thing ever. But yeah. So what happened though, was why 251 00:20:13,480 --> 00:20:20,280 I feel like it's kind of relevant now is they stopped using it. Like they discontinued the 252 00:20:20,280 --> 00:20:28,720 Xilinx XC6200 and now all the FPGA bit streams are like encrypted. They're like all, you 253 00:20:28,720 --> 00:20:33,800 know, they're very proprietary and what you need to get this to work is kind of just a, 254 00:20:33,800 --> 00:20:43,520 I know one-to-one of, if I say top left corner logic gate, be that, it'll be that. But what's 255 00:20:43,520 --> 00:20:49,800 cool now is I hope that there's a resurgence in this because the, have you heard of a project 256 00:20:49,800 --> 00:20:55,600 Ice Storm? I have not. They're kind of, they're like, they're reverse engineering the bit 257 00:20:55,600 --> 00:21:04,120 stream of a lattice FPGA, like a modern one. Okay. And so like we had 30 something years 258 00:21:04,120 --> 00:21:09,360 of like, basically this whole field is kind of dead. Like there's just wasn't like hardware 259 00:21:09,360 --> 00:21:16,060 for it. And then, and only now, like we can pick up again and people can screw around 260 00:21:16,060 --> 00:21:22,600 with trying to get, you know, is it the best way to do something? I don't know. Well, I 261 00:21:22,600 --> 00:21:27,120 have to imagine too, it's a lot cheaper now to do it than it was back in 1990. Oh yeah. 262 00:21:27,120 --> 00:21:32,400 Yeah. Yeah. There's a little, there's a little ice 40 FPGAs are pretty cheap. I see them 263 00:21:32,400 --> 00:21:38,080 pop up on various Arduino looking boards and stuff. So, and if, and if it's just, you know, 264 00:21:38,080 --> 00:21:44,200 set it up and let it run and call me, call me when you figure it out. That's pretty great. 265 00:21:44,200 --> 00:21:50,940 Yeah. I think there was some, there was some interest from like space stuff. Cause if you 266 00:21:50,940 --> 00:21:56,340 broke your FPGA, like physically broke it in half, you might be able to get one that 267 00:21:56,340 --> 00:22:02,540 runs on just the rest of it. You know, that's yeah. Yeah. It's like, how do you make, how 268 00:22:02,540 --> 00:22:07,340 do you make resilient circuits? Like right now we design things very sort of cathedral 269 00:22:07,340 --> 00:22:11,420 where like every bit has its own important part to play. And if one bit is missing, the 270 00:22:11,420 --> 00:22:16,140 whole thing doesn't work. But if we can make something that can recover, that'd be pretty 271 00:22:16,140 --> 00:22:23,100 great. And fun fact, uh, in the book, 2001, a space odyssey, that's how Hal was programmed 272 00:22:23,100 --> 00:22:31,420 was like, he described some process just like that, where they, Oh wow. So jumperless, like 273 00:22:31,420 --> 00:22:36,980 the first idea of it came after me going on this rabbit hole for like a really long time 274 00:22:36,980 --> 00:22:42,260 about evolvable hardware. And it's, it was kind of frustrating cause it does it like, 275 00:22:42,260 --> 00:22:46,780 you know, there's a lot of work on it and then it kind of just fizzles out, you know, 276 00:22:46,780 --> 00:22:50,420 cause they discontinued the chip and it was like other universities weren't able to screw 277 00:22:50,420 --> 00:22:55,460 around with it as much. And yeah. And so that was kind of part of my thinking of like something 278 00:22:55,460 --> 00:23:01,340 you could do with this whole analog cross point switch away array is you could like, 279 00:23:01,340 --> 00:23:04,220 it's not going to be a feature, like you would just be able to run it and it would try to 280 00:23:04,220 --> 00:23:09,820 fight a circuit, but as a thing to screw around with, it's that's pretty cool. Good for that. 281 00:23:09,820 --> 00:23:13,460 Plus on the jumper list, it could look cool because you could have the LEDs represent 282 00:23:13,460 --> 00:23:18,900 the connectivity that's, that's evolving over time or something. Yeah. All right. So, uh, 283 00:23:18,900 --> 00:23:23,420 Paul, what's your second one for this week? Uh, my next one is a current Kickstarter project 284 00:23:23,420 --> 00:23:29,660 that's going on for a few more weeks for the FlexiPi. It's a new Raspberry Pi Pico format 285 00:23:29,660 --> 00:23:36,360 board, but it's wafer thin and it's flexible. Hence the name FlexiPi. It's got a few upgrades 286 00:23:36,360 --> 00:23:42,140 from a normal Raspberry Pi Pico. It uses USB-C. It's got a Neo pixel built in. Otherwise 287 00:23:42,140 --> 00:23:47,140 the pinouts stay exactly the same. The Kickstarter campaign runs through November 24th and it 288 00:23:47,140 --> 00:23:51,900 includes three digital books that come with it. Getting started with the Raspberry Pi 289 00:23:51,900 --> 00:23:56,420 Pico, a micro Python book and a circuit Python book. They've already reached their funding 290 00:23:56,420 --> 00:24:01,380 goal that their goal was $500 and they're over $7,000 already. But if you do back it, 291 00:24:01,380 --> 00:24:05,380 remember it's a Kickstarter, so nothing's ever guaranteed, but it's really neat to see 292 00:24:05,380 --> 00:24:11,520 how flexible that really is. And I don't understand how they got it so thin, but it's something 293 00:24:11,520 --> 00:24:16,020 that I want to keep an eye on going forward. Yeah. Flex circuits are pretty cool. I it's 294 00:24:16,020 --> 00:24:19,820 like, this is, this is really impressive. I don't know exactly how I would use it. I 295 00:24:19,820 --> 00:24:23,420 mean, I don't really do much flex stuff, so wearables are the first thing that came to 296 00:24:23,420 --> 00:24:27,940 mind for me. Ah, yeah, definitely. Definitely that. Yeah. Yeah. Someone actually dropped 297 00:24:27,940 --> 00:24:32,660 that on my discord just a couple of days ago and it, yeah, it's funny cause I can't think 298 00:24:32,660 --> 00:24:37,780 of what to use it for, but it's really fun to think of situations that it would be useful. 299 00:24:37,780 --> 00:24:44,380 Yeah. There's so many, like what weird problem you're having really like, Oh, I need to just 300 00:24:44,380 --> 00:24:50,100 wish this Pico could bend. Exactly. And I should mention it's, it's $20. So it's, it's 301 00:24:50,100 --> 00:24:54,300 not cheap compared to a normal Pico, but that's what you get for having something that's that 302 00:24:54,300 --> 00:25:00,060 so thin and flexible. Yeah. Yeah. And just having a little bit of give on something that 303 00:25:00,060 --> 00:25:03,020 you wear could be all the difference. Like it doesn't have to bend much, but maybe just 304 00:25:03,020 --> 00:25:07,500 a couple of degrees could make it not be like, Oh look, he's got a piece of technology embedded 305 00:25:07,500 --> 00:25:14,580 inside of his hat or something. Right. All right, Tod, wrap it up for us. All right. 306 00:25:14,580 --> 00:25:22,180 So my second thing is the EMMG MIDI synth and is created by a hacker in our sort of 307 00:25:22,180 --> 00:25:28,460 larger community. It's got a name Jonathan Bisson or B. John J. It's a board he created 308 00:25:28,460 --> 00:25:33,140 as a teaching tool for a workshop he gave on MIDI and music synthesis at the pumping 309 00:25:33,140 --> 00:25:39,300 station one hacker space in Chicago. In the show notes are links to the presentation and 310 00:25:39,300 --> 00:25:44,100 other, other aspects of the project. The, the workshop taught what MIDI is down from 311 00:25:44,100 --> 00:25:49,340 the signaling level to how it's used by performers. Each student of the workshop got, got one 312 00:25:49,340 --> 00:25:54,180 of these custom design boards. The board has eight pots, 12 cap touch pads and OLED display 313 00:25:54,180 --> 00:26:01,140 and stereo out all driven by a Pico clone. That's a USB-C 16 megabyte version. The workshop 314 00:26:01,140 --> 00:26:06,300 also talks about how the GPIOs work on the Pico, how CapSense works. It was like, it 315 00:26:06,300 --> 00:26:11,260 was pretty fun. And the board has a secret mode by default. It comes up as just a MIDI 316 00:26:11,260 --> 00:26:16,940 controller, but you powered up one of the switches held down. It also is a full synth 317 00:26:16,940 --> 00:26:22,780 using this interesting Prof32U synth engine for Pico that he found. And he was able to, 318 00:26:22,780 --> 00:26:26,780 it's like an, it's like an Arduino chunk of code. But it's really cool. It's got like 319 00:26:26,780 --> 00:26:31,700 four, it's like it's a paraphonic polyphonic four voices with built-in chorus and delay 320 00:26:31,700 --> 00:26:36,940 effects. Really, really cool filter. It sounds pretty good. Selfishly, one of the reasons 321 00:26:36,940 --> 00:26:42,060 why Bright bring this up is because I have one. He sent one to me. I was literally just 322 00:26:42,060 --> 00:26:50,080 about to ask you that. Yeah. He, he based the design of this board on a couple of my 323 00:26:50,080 --> 00:26:55,940 previous projects, most notably the Pico test synth, the Pico slider toy, and this sort 324 00:26:55,940 --> 00:27:01,540 of unreleased thing I have called 8x, which is a sort of eight pots to one analog pot, 325 00:27:01,540 --> 00:27:07,660 sort of expander board for, for microcontrollers. And his board, by having eight pots instead 326 00:27:07,660 --> 00:27:11,500 of two solves one of the biggest problems I've been struggling with, with my little 327 00:27:11,500 --> 00:27:16,300 Pico test synth as I try to write code for it for people. And that's having only two 328 00:27:16,300 --> 00:27:22,740 pots when you need to control a whole slew of values is a real pain in the butt because 329 00:27:22,740 --> 00:27:27,400 you have to keep saving the state of where the pots are currently when you switch which 330 00:27:27,400 --> 00:27:30,900 parameters you're changing. And so, and then you have to like deal with the fact that like 331 00:27:30,900 --> 00:27:35,860 when you come back to that parameter, the current location of the pot is not where the 332 00:27:35,860 --> 00:27:39,600 pot physically is. And so you have to like deal with like knob what's called knob pickup 333 00:27:39,600 --> 00:27:43,440 and stuff. It's just a real kind of pain in the butt. So with eight pots, you can like 334 00:27:43,440 --> 00:27:47,680 have immediate control, a bunch of parameters without having to do a bunch of page switching 335 00:27:47,680 --> 00:27:53,780 and stuff. I think if I were to redo the Pico test synth thing, I would have either more 336 00:27:53,780 --> 00:27:57,480 pots or use rotary encoders, which is why you see a lot of rotary encoders on things 337 00:27:57,480 --> 00:28:02,640 because they're incremental. You just show the state immediately and just any turn of 338 00:28:02,640 --> 00:28:08,280 the knob will just increment or decrement the state. All of the designs for the board 339 00:28:08,280 --> 00:28:12,920 and for the workshop notes and presentations are up on GitHub and I'll put links in the 340 00:28:12,920 --> 00:28:18,760 show notes. He also has a really great sort of blog post that describes his whole design 341 00:28:18,760 --> 00:28:24,580 process including like the DFM of like how do you make this thing actually buildable 342 00:28:24,580 --> 00:28:32,760 and also the open SCAD CAD files for the custom knobs he made for the board. It is pretty 343 00:28:32,760 --> 00:28:37,760 nice to get some sort of like free stuff back for all the random little circuit boards I've 344 00:28:37,760 --> 00:28:39,600 made over the years. 345 00:28:39,600 --> 00:28:41,600 That's pretty cool. And you said it runs Arduino? 346 00:28:41,600 --> 00:28:46,640 Yeah, his like the main code he has is Arduino. He also he's also got some experimental stuff 347 00:28:46,640 --> 00:28:51,440 for CircuitPython, but he started down CircuitPython route but wanted to have something that was 348 00:28:51,440 --> 00:28:55,720 like was easily able to switch between these two modes and he wanted this with the synth 349 00:28:55,720 --> 00:28:57,760 engine that was based on Arduino. 350 00:28:57,760 --> 00:29:04,960 I love the idea of making a board for a workshop. Like because now like the person giving the 351 00:29:04,960 --> 00:29:10,200 workshop knows exactly how that board was made. You'll never run into a question of 352 00:29:10,200 --> 00:29:13,320 like, oh, why is it like this? And they're like, I don't know. 353 00:29:13,320 --> 00:29:16,880 Yeah, I wish there was video for it because I kind of wanted to know like how did he have 354 00:29:16,880 --> 00:29:21,360 everyone hook up the boards like were they all controlling like a synthesizer in the 355 00:29:21,360 --> 00:29:27,720 room or something? I'll have this in the slides and I haven't asked him about it. 356 00:29:27,720 --> 00:29:30,520 Just probably like a loud mess in that room. 357 00:29:30,520 --> 00:29:31,520 I know. 358 00:29:31,520 --> 00:29:34,440 Each person doing their own. 359 00:29:34,440 --> 00:29:39,380 Well that's our show. Special thank you to Kevin for joining us this episode. 360 00:29:39,380 --> 00:29:42,200 Thank you so much for having me. That was fun. 361 00:29:42,200 --> 00:29:46,660 For detailed show notes, transcripts and to join our newsletter, visit thebootletter.net 362 00:29:46,660 --> 00:29:48,800 and until next time, stay positive.