1 00:00:02,319 --> 00:00:03,600 - Hi, welcome to The Bootloader. 2 00:00:03,840 --> 00:00:04,320 I'm Tod Kurt. 3 00:00:04,700 --> 00:00:05,440 - And I'm Paul Cutler. 4 00:00:05,800 --> 00:00:06,820 The show works like this. 5 00:00:07,100 --> 00:00:10,840 Tod and I have each brought three things to share, which we'll discuss for about five 6 00:00:10,880 --> 00:00:11,380 minutes each. 7 00:00:11,910 --> 00:00:14,380 If you're enjoying the show, do me a favor and write a review. 8 00:00:14,590 --> 00:00:15,400 It really helps. 9 00:00:15,920 --> 00:00:20,020 And check the show notes to follow us on Mastodon or Blue Sky and to order a couple stickers 10 00:00:20,080 --> 00:00:20,680 if you want to. 11 00:00:21,160 --> 00:00:21,700 - We have stickers. 12 00:00:22,500 --> 00:00:22,960 - That's right. 13 00:00:24,060 --> 00:00:28,300 Tod, just days after we recorded our last episode, you attended Supercon, which we've 14 00:00:28,200 --> 00:00:31,380 talked about on the show for the last few years. How was this year's conference? 15 00:00:32,220 --> 00:00:36,920 Every year, Hackaday Supercon is amazing. There's lots of people that I consider my 16 00:00:37,000 --> 00:00:43,440 friends, but I only really see them once a year at Supercon. You know, we interact on 17 00:00:43,440 --> 00:00:47,860 the various internet-y ways, like social media or Discord or whatever, but actually seeing 18 00:00:47,920 --> 00:00:53,280 people face-to-face is always really nice. This year, it was interesting because it was 19 00:00:53,160 --> 00:00:59,220 a lot smaller in some ways. I think the current war on fun that the US regime is having makes 20 00:00:59,260 --> 00:01:04,140 it so that people from out of the country don't really want to come to the US. And so 21 00:01:04,239 --> 00:01:08,940 there was a noticeable, I'd say, contraction of people at the conference this year. It 22 00:01:08,960 --> 00:01:13,720 wasn't as, like normally it's really crowded. And this year it was only just kind of crowded. 23 00:01:14,960 --> 00:01:18,440 - That's sad to hear. And it's just not safe for some people to come, which is really, 24 00:01:19,320 --> 00:01:21,000 it's just scary the times we're living in. 25 00:01:21,000 --> 00:01:22,700 Yeah, no, it's really sad. 26 00:01:22,760 --> 00:01:28,800 And I think all tech conferences have a real problem with trying to be not just a white 27 00:01:28,880 --> 00:01:29,400 guy fest. 28 00:01:29,680 --> 00:01:34,920 And Hackaday's had this problem forever and they try hard, but I think that is also wearing 29 00:01:34,980 --> 00:01:37,700 on non-white gay people and some white gay people. 30 00:01:38,220 --> 00:01:40,580 That it's like, "Oh, more of the same." 31 00:01:40,580 --> 00:01:42,820 It's like, "We've got enough of this, more of the same." 32 00:01:42,820 --> 00:01:45,580 So overall, it's amazing. 33 00:01:46,200 --> 00:01:52,640 Thankfully Hackaday streams and records the live stream on YouTube for the main stage. 34 00:01:52,700 --> 00:01:56,900 And so if you right now want to get a sense of what all the talks were about, you can 35 00:01:56,960 --> 00:02:00,980 go right now and watch a bunch of YouTube videos and get a pretty good sense. 36 00:02:00,980 --> 00:02:05,620 And there were some really fun talks this year, so you can experience some of those. 37 00:02:06,660 --> 00:02:09,979 So speaking of fun talks, what was your first one for us this episode? 38 00:02:10,820 --> 00:02:13,960 Oh, well actually, I have a couple of fun talks. 39 00:02:14,200 --> 00:02:16,100 if you wanna go look at 'em, go watch 'em. 40 00:02:16,620 --> 00:02:20,180 One of the ones that I liked real quick 41 00:02:20,620 --> 00:02:25,640 was transmitting multiple protocols over a single wire. 42 00:02:26,760 --> 00:02:29,040 So it turns out there's, like for every protocol, 43 00:02:29,180 --> 00:02:31,680 there's usually some parts of the protocol 44 00:02:31,860 --> 00:02:33,800 where the signal doesn't matter. 45 00:02:34,480 --> 00:02:38,960 Like in the case of like a two-wire protocol like I2C, 46 00:02:39,560 --> 00:02:44,700 there are times where the data signal isn't listened to 47 00:02:44,780 --> 00:02:46,800 because the clock signal isn't at the right state. 48 00:02:47,290 --> 00:02:50,320 And so one of the talks was how you could essentially 49 00:02:50,820 --> 00:02:54,520 hide other protocols in these kind of like dead areas. 50 00:02:54,960 --> 00:02:56,940 And so his theoretical, 51 00:02:57,100 --> 00:02:58,380 I don't think he's implemented this yet, 52 00:02:58,570 --> 00:03:01,380 but his theoretical one was you could make a single set 53 00:03:01,420 --> 00:03:05,640 of cables or a single wire basically transmit NeoPixel RGB 54 00:03:05,800 --> 00:03:09,080 data and RS232 and I2C. 55 00:03:09,300 --> 00:03:09,880 (laughs) 56 00:03:10,320 --> 00:03:10,880 - That's crazy. 57 00:03:12,500 --> 00:03:14,460 - And it's all just 'cause the timings kinda work out, 58 00:03:14,460 --> 00:03:17,560 and if you stretch this one timing out a little bit, 59 00:03:17,560 --> 00:03:19,340 it matches the timing of this other thing, 60 00:03:19,700 --> 00:03:22,980 so you can, in the blank spot of a NeoPixel refresh, 61 00:03:23,040 --> 00:03:25,360 you can put an RS-232 frame or something. 62 00:03:25,400 --> 00:03:27,820 It was really fun. (laughs) 63 00:03:28,760 --> 00:03:30,740 Not something you wanna do in production. (laughs) 64 00:03:31,380 --> 00:03:33,880 But one of the other things that the Supercon has 65 00:03:33,880 --> 00:03:35,060 is a series of workshops, 66 00:03:35,800 --> 00:03:38,139 and these are things, sort of optional things you can buy 67 00:03:38,140 --> 00:03:39,300 that will teach you a thing. 68 00:03:39,340 --> 00:03:40,860 And some of the cool workshops were 69 00:03:42,270 --> 00:03:44,360 like how to learn Rust, like embedded Rust, 70 00:03:45,040 --> 00:03:46,240 like Sean Hymel taught that. 71 00:03:46,900 --> 00:03:49,100 There's by Stefani and Bob Pickman, 72 00:03:49,300 --> 00:03:51,720 they did a thing on how to do generative art 73 00:03:51,860 --> 00:03:54,400 on an LED matrix for like, you know, 74 00:03:54,500 --> 00:03:56,280 blinging up your costumes or whatever. 75 00:03:56,800 --> 00:03:57,540 And so there's all these cool things. 76 00:03:57,840 --> 00:04:00,280 One of the ones I did, like the only one I did, 77 00:04:00,700 --> 00:04:02,720 was about the Arduino UNO Q, 78 00:04:03,210 --> 00:04:06,380 the new Arduino board that Arduino came out with. 79 00:04:07,060 --> 00:04:09,500 And, oh boy, there's been a lot of talk 80 00:04:09,600 --> 00:04:10,320 about Arduino lately. 81 00:04:10,800 --> 00:04:12,380 Have you seen any of that? 82 00:04:12,680 --> 00:04:14,940 Aside of that, I was interested in the Arduino Q 83 00:04:17,239 --> 00:04:19,440 because it's a weird little thing. 84 00:04:19,440 --> 00:04:20,859 It looks like an Arduino Uno, 85 00:04:21,480 --> 00:04:22,940 but it's also a Linux computer. 86 00:04:23,500 --> 00:04:26,320 So I wanted to see how this weird merging 87 00:04:26,520 --> 00:04:28,280 of a Linux computer and microcontroller work. 88 00:04:28,840 --> 00:04:31,540 Over a decade ago, I developed a project 89 00:04:31,540 --> 00:04:35,060 that used several hundred of the Arduino UUN boards, 90 00:04:35,140 --> 00:04:36,740 which was the same idea pretty much. 91 00:04:37,020 --> 00:04:40,360 This was back when the embedded Linuxes were much simpler. 92 00:04:41,740 --> 00:04:41,840 (laughs) 93 00:04:41,840 --> 00:04:43,600 But it was pretty much the only way you could get 94 00:04:43,700 --> 00:04:46,660 a reliable microcontroller Wi-Fi connection. 95 00:04:46,980 --> 00:04:50,380 If you want to be a player on the internet, 96 00:04:50,440 --> 00:04:54,060 you have to do SSL, TLS, security, 97 00:04:54,160 --> 00:04:55,560 which means you have to do regular updates 98 00:04:55,660 --> 00:04:57,400 of the security certificates, 99 00:04:57,680 --> 00:05:00,720 'cause otherwise your thing can just not be 100 00:05:01,340 --> 00:05:02,840 considered a valid participant on the internet 101 00:05:02,980 --> 00:05:04,200 where you have to have HTTPS connections. 102 00:05:05,000 --> 00:05:09,400 So the Uno Q is sort of a revisit of that idea. 103 00:05:10,180 --> 00:05:12,420 I really wish they wouldn't have called it Uno Q. 104 00:05:12,980 --> 00:05:16,340 But inside it's essentially a Raspberry Pi 3 105 00:05:17,080 --> 00:05:18,460 level single board computer 106 00:05:19,060 --> 00:05:23,140 with a fairly beefy STM32 running Zephyr real-time OS 107 00:05:23,590 --> 00:05:24,900 to do the microcontroller stuff. 108 00:05:25,500 --> 00:05:28,460 Whereas the Yun was like a really low end 109 00:05:28,730 --> 00:05:32,700 sort of portable router level Linux box with an 18 mega. 110 00:05:32,980 --> 00:05:34,940 This is sort of like leveled up on both sides. 111 00:05:34,980 --> 00:05:38,200 It's like, it's not the fastest single-ware computer. 112 00:05:38,460 --> 00:05:40,360 It's not like a Raspberry Pi 5, it's like a Raspberry 3. 113 00:05:41,040 --> 00:05:42,740 And instead of the array of ports 114 00:05:42,770 --> 00:05:45,560 you would normally have on a Raspberry Pi, 115 00:05:45,870 --> 00:05:48,320 you just have a USB-C cable, a USB-C port 116 00:05:48,400 --> 00:05:50,800 that you plug in USB-C cable in to power it. 117 00:05:51,320 --> 00:05:53,960 But you can also then break out, because it's USB-C, 118 00:05:54,400 --> 00:05:56,400 break that out into ethernet, video, keyboard, 119 00:05:57,240 --> 00:05:58,860 mouse, et cetera, cameras. 120 00:05:59,220 --> 00:06:01,980 You know, you can pretty much hook anything USB up to it. 121 00:06:02,460 --> 00:06:03,640 And it does run a version of Debian 122 00:06:04,340 --> 00:06:05,380 with a full desktop GUI. 123 00:06:05,940 --> 00:06:07,900 So you could use it as a little computer if you wanted to, 124 00:06:08,460 --> 00:06:09,700 but you'd have to have all that extra, 125 00:06:10,160 --> 00:06:12,220 have a USB hub that has all those extra ports on it. 126 00:06:13,360 --> 00:06:15,840 That's not really how they intend you to use it. 127 00:06:16,080 --> 00:06:17,940 It also works headless as you'd expect. 128 00:06:18,020 --> 00:06:19,720 So you can just SSH into it 129 00:06:19,720 --> 00:06:20,980 and do everything via terminal if you want. 130 00:06:21,700 --> 00:06:22,800 That's how I've been playing with it mostly. 131 00:06:23,360 --> 00:06:24,720 But Arduino would prefer 132 00:06:25,400 --> 00:06:27,480 that you use their new Arduino App Lab. 133 00:06:28,240 --> 00:06:28,920 It's a new IDE. 134 00:06:29,140 --> 00:06:31,180 It's different than the normal Arduino IDE, 135 00:06:31,500 --> 00:06:35,960 totally separate, and it lets you program the two aspects of the Uno Q kind of as a single 136 00:06:36,080 --> 00:06:36,300 thing. 137 00:06:36,960 --> 00:06:41,360 And strangely, even though it's a download from their website, it's really a web app 138 00:06:41,440 --> 00:06:42,680 that runs on the Uno Q. 139 00:06:44,960 --> 00:06:50,080 And so it brings up sort of a standard looking little editor, but you've got like in one 140 00:06:50,140 --> 00:06:54,780 window you've got what looks like a regular Arduino sketch that you'd program with a setup 141 00:06:54,940 --> 00:06:57,940 and loop functions, and that part runs on the STM32. 142 00:06:58,580 --> 00:07:01,740 In another window, you have an Arduino-like Python script 143 00:07:02,160 --> 00:07:04,720 that runs on the Linux part of the Uno Q. 144 00:07:05,560 --> 00:07:07,500 And then Arduino provides these libraries, 145 00:07:07,640 --> 00:07:09,300 lets you easily share information 146 00:07:09,480 --> 00:07:11,540 between those two kind of worlds 147 00:07:11,820 --> 00:07:13,840 that are running simultaneously on the board. 148 00:07:14,960 --> 00:07:16,280 And then when you click the Run button, 149 00:07:17,120 --> 00:07:17,680 from what I can tell, 150 00:07:17,680 --> 00:07:19,780 it doesn't compile anything on your computer. 151 00:07:20,180 --> 00:07:22,280 It instead, because it's a web app running the Uno Q, 152 00:07:22,800 --> 00:07:25,400 it essentially ships that source off to the Uno Q 153 00:07:25,680 --> 00:07:27,579 where your code gets compiled 154 00:07:27,580 --> 00:07:29,840 and then turned into a custom Docker image, 155 00:07:30,380 --> 00:07:31,920 and then that Docker image is run. 156 00:07:33,580 --> 00:07:36,820 - How slow is that on a Raspberry Pi 3 type 157 00:07:36,960 --> 00:07:37,820 single board computer? 158 00:07:38,420 --> 00:07:39,980 - As you might expect, it takes a long time. 159 00:07:40,000 --> 00:07:42,500 Expect to wait 30 seconds from pressing run 160 00:07:42,640 --> 00:07:43,920 to like having your code run, 161 00:07:44,320 --> 00:07:45,860 and it's then seeing your LED blink, 162 00:07:46,260 --> 00:07:47,800 which if you're thinking of this 163 00:07:47,800 --> 00:07:49,160 as sort of a replacement for your Uno, 164 00:07:50,160 --> 00:07:52,180 think again, you know, this is a much more complicated thing 165 00:07:52,240 --> 00:07:56,280 and Arduino is looking to attack larger, 166 00:07:56,500 --> 00:07:57,840 more complicated projects. 167 00:07:58,480 --> 00:08:02,740 They're really big in their IDE about their concept of bricks, 168 00:08:03,280 --> 00:08:05,180 the bricks coding blocks they have. 169 00:08:05,620 --> 00:08:09,180 They're paired combinations of an Arduino, C++ sketch, 170 00:08:09,260 --> 00:08:10,540 and Python code that work together 171 00:08:10,600 --> 00:08:11,820 to accomplish a single task. 172 00:08:12,500 --> 00:08:13,940 You can imagine how this might be useful. 173 00:08:13,940 --> 00:08:17,240 You might have some complicated processing on the Linux side, 174 00:08:17,380 --> 00:08:20,020 and then the thing that deals with the GPIO or the sensor 175 00:08:20,100 --> 00:08:21,920 or whatever on the microcontroller side. 176 00:08:22,320 --> 00:08:24,040 And they don't have many examples of the bricks yet, 177 00:08:24,100 --> 00:08:30,420 They do have ones like Web UI to GPIO, which is kind of cool, or AI motion detection, where 178 00:08:30,490 --> 00:08:36,800 if you hook up an I2C accelerometer, it can tell how the accelerometer is being moved 179 00:08:36,919 --> 00:08:40,979 around, like if it's a waving motion or a double tap motion or something. 180 00:08:41,800 --> 00:08:46,200 Also on the subject of waiting to get your project going, if you get one of these and 181 00:08:46,200 --> 00:08:51,299 expect to spend about 30 minutes or more just installing software, even though the App Lab 182 00:08:51,300 --> 00:08:56,420 runs on the UNO Q it seems, the App Lab download for your computer is almost a gig in size. 183 00:08:57,260 --> 00:09:00,280 I think it's like an Electron app or something, I don't know what, but it's got a bunch of stuff in 184 00:09:00,320 --> 00:09:05,760 it you have to download. And once you run it, it'll want to update itself, so that's more updating, 185 00:09:05,860 --> 00:09:10,140 that's more time. When you first connect your UNO Q, you'll have to update the bootloader, 186 00:09:11,110 --> 00:09:14,760 which is another gig download, because I think it's a whole new Linux install. 187 00:09:15,820 --> 00:09:19,619 After that, when you connect the UNO Q to the App Lab, the App Lab will want to update the UNO Q 188 00:09:19,620 --> 00:09:21,860 again and it's unclear to me what it's doing here. 189 00:09:22,360 --> 00:09:23,240 It might be doing the same thing, 190 00:09:23,240 --> 00:09:24,980 but it's like a gate you have to get through. 191 00:09:26,040 --> 00:09:27,020 That's another gig download. 192 00:09:27,440 --> 00:09:29,360 Then finally, once it's all running, 193 00:09:29,640 --> 00:09:31,200 it'll then say, "Oh, there's updates for 194 00:09:31,240 --> 00:09:35,100 the App Lab program on the Uno queue." 195 00:09:36,520 --> 00:09:38,460 All these steps, reflashing bootloader, 196 00:09:38,860 --> 00:09:41,120 reflashing Linux distro, reflashing App Lab, 197 00:09:41,640 --> 00:09:43,040 all these can fail in 198 00:09:43,260 --> 00:09:45,240 weird ways that you have no real feedback for. 199 00:09:46,140 --> 00:09:48,199 During our workshop, there are some folks who just barely 200 00:09:48,200 --> 00:09:52,960 got to a "Hello World" blink sketch in the two hours we had for the workshop. 201 00:09:53,600 --> 00:09:59,320 You can imagine, we had I think maybe 15 people, and everybody's trying to download several 202 00:09:59,420 --> 00:10:00,020 gigs of data. 203 00:10:00,860 --> 00:10:06,320 The Hackaday supply frame Wi-Fi is really good, but that's a lot of bits to get on everybody's 204 00:10:06,640 --> 00:10:06,760 things. 205 00:10:07,459 --> 00:10:08,860 You'd think it would be really... 206 00:10:09,040 --> 00:10:13,880 Arduino's normally made for educational environments, but this current way of doing things is not 207 00:10:13,960 --> 00:10:16,280 very education setup friendly. 208 00:10:17,120 --> 00:10:17,860 It's just not good. 209 00:10:18,210 --> 00:10:22,640 And so if you're an instructor hoping to just swap out your Uno cue boards for your normal 210 00:10:22,720 --> 00:10:24,180 Uno boards, I would not recommend it. 211 00:10:24,820 --> 00:10:25,500 They're entirely different. 212 00:10:25,850 --> 00:10:29,000 They just happen to look like the Uno, but they're much more complicated. 213 00:10:29,230 --> 00:10:35,780 I think it's a shame that they diluted the Uno name for this otherwise interesting product 214 00:10:36,020 --> 00:10:37,860 because there's real promise here. 215 00:10:38,420 --> 00:10:46,039 Having a smart, full internet participant that runs Linux that works on the Wi-Fi side 216 00:10:46,040 --> 00:10:48,440 or internet side, and then having a microcontroller 217 00:10:48,620 --> 00:10:49,780 handle the real-time tasks, 218 00:10:49,860 --> 00:10:51,380 that's a really, and then having to meld it together, 219 00:10:51,420 --> 00:10:52,560 that's a really powerful combo. 220 00:10:52,660 --> 00:10:55,700 Like I've so many times plugged a Arduino Pro Micro 221 00:10:55,820 --> 00:10:57,880 into a Raspberry Pi to solve similar problems. 222 00:10:58,040 --> 00:10:59,900 And so having it be a single thing is really cool. 223 00:11:00,620 --> 00:11:02,540 Sean Heimell just posted a blog post 224 00:11:02,640 --> 00:11:07,340 about how to use the Arduino app CLI command line tool 225 00:11:07,900 --> 00:11:11,900 to do a lot of the stuff that the Arduino App Lab GUI does, 226 00:11:12,000 --> 00:11:14,000 but you can do it all via SSH on the command line. 227 00:11:14,080 --> 00:11:17,260 So that's like, I think, an easier way to interact with it. 228 00:11:17,260 --> 00:11:19,020 You just SSH into it and you, you know, 229 00:11:19,540 --> 00:11:23,020 essentially build and run your project on the command line. 230 00:11:23,100 --> 00:11:23,920 I think that's easier. 231 00:11:24,300 --> 00:11:25,800 If you want something more powerful, 232 00:11:26,880 --> 00:11:29,420 there's this single board computer called the RADSA X4. 233 00:11:30,259 --> 00:11:31,820 And it's been around for a while. 234 00:11:31,920 --> 00:11:36,600 It has like an Intel X86, like an N100 class CPU on it 235 00:11:36,920 --> 00:11:38,240 that has an RP2040 built in. 236 00:11:38,240 --> 00:11:39,760 So like a Raspberry Pi Pico. 237 00:11:40,320 --> 00:11:42,320 And it comes in a Raspberry Pi form factor. 238 00:11:42,840 --> 00:11:45,840 And so that's what some people have been using up to now 239 00:11:46,040 --> 00:11:47,140 if you want this sort of combo 240 00:11:47,260 --> 00:11:48,740 of Linux plus microcontroller. 241 00:11:49,680 --> 00:11:51,300 It's pretty great 'cause it controls 242 00:11:51,980 --> 00:11:53,280 all the pins on the 40-pin header 243 00:11:53,380 --> 00:11:54,740 that would normally be on a Raspberry Pi. 244 00:11:55,670 --> 00:11:56,240 So that's kinda cool. 245 00:11:56,900 --> 00:11:59,780 - Who do you think the target market for the Uno Q is? 246 00:12:00,300 --> 00:12:02,240 Is it still enthusiasts and makers 247 00:12:02,420 --> 00:12:04,400 or is it really more of a commercial product 248 00:12:04,460 --> 00:12:05,640 now that lives on the edge? 249 00:12:06,120 --> 00:12:07,400 - Yeah, that's a good question. 250 00:12:08,280 --> 00:12:09,240 I think it's a bit misguided. 251 00:12:09,380 --> 00:12:11,880 So Arduino has, for the last, jeez, 252 00:12:11,920 --> 00:12:13,780 like maybe almost 10 years now, 253 00:12:13,860 --> 00:12:15,940 had a pretty strong industrial offering, 254 00:12:16,560 --> 00:12:18,680 which is odd, 'cause a lot of us think of Arduino 255 00:12:18,800 --> 00:12:20,280 as mostly an educational platform, 256 00:12:20,840 --> 00:12:22,340 but they've got a bunch of IoT, 257 00:12:23,020 --> 00:12:25,120 like industrial IoT boards that you can get, 258 00:12:25,660 --> 00:12:27,960 and those are like hardened and stuff, 259 00:12:28,200 --> 00:12:30,380 but they still use the Arduino IDE to program them, 260 00:12:30,960 --> 00:12:33,740 and so I suspect this almost feels like, 261 00:12:34,020 --> 00:12:37,119 oh, this is the educational version 262 00:12:37,120 --> 00:12:42,180 of a future larger, more robust IoT product. 263 00:12:42,860 --> 00:12:44,900 Having this position for the educational market, 264 00:12:45,000 --> 00:12:49,040 it's just not really good right now for education. 265 00:12:49,200 --> 00:12:52,020 Just in how I've seen how educators use 266 00:12:52,080 --> 00:12:54,280 these little microcontroller boards, just getting going, 267 00:12:54,780 --> 00:12:59,020 it's a real motivation and inertia buster 268 00:12:59,180 --> 00:13:00,680 when you have to download so much stuff 269 00:13:00,680 --> 00:13:02,120 and have it fail in these really weird ways. 270 00:13:02,120 --> 00:13:04,020 That was really one of the powers of the original Arduino, 271 00:13:04,620 --> 00:13:07,220 You could just go from nothing to blink in a few minutes 272 00:13:08,240 --> 00:13:11,540 Not anymore. Not anymore. Yeah, everything's more complicated 273 00:13:13,560 --> 00:13:17,600 So anyway, um, so yeah did you I know you didn't go to Supercon 274 00:13:17,680 --> 00:13:20,940 But was there anything in the Supercon videos that you saw that was interesting? 275 00:13:21,540 --> 00:13:21,600 Yeah 276 00:13:21,620 --> 00:13:27,420 The one that jumped out at me was if you're like me and ever wanted to learn more about mesh tastic and how it works 277 00:13:28,040 --> 00:13:29,839 There was a talk by Daryll Strauss called 278 00:13:30,380 --> 00:13:35,320 "Covert Regional Communication with Meshtastic" which was the last talk of the day at Supercon. 279 00:13:36,080 --> 00:13:39,600 I fall into the camp of wanting to learn more about Meshtastic, I keep hearing of it and 280 00:13:39,780 --> 00:13:43,020 seeing people getting into it, but all I know is that it uses a LoRa radio. 281 00:13:43,520 --> 00:13:49,080 Daryll covers what Meshtastic is, his motivations for using it, and how to make a covert communication 282 00:13:49,340 --> 00:13:54,620 system using Meshtastic. If you haven't heard of it, Meshtastic uses LoRa Radio's peer-to-peer. 283 00:13:54,980 --> 00:13:59,520 It's open source and designed around exchanging text messages and data in off-grid environments, 284 00:13:59,900 --> 00:14:01,900 also commonly used for IOT hardware. 285 00:14:02,340 --> 00:14:05,000 The hardware is cheap, as low as 20 bucks for some boards. 286 00:14:05,540 --> 00:14:08,880 Pick a board, flash it with the Meshtastic firmware, configure it, 287 00:14:09,360 --> 00:14:10,760 connect it, and you're up and running. 288 00:14:11,280 --> 00:14:15,140 The Meshtastic website at meshtastic.org has some excellent documentation. 289 00:14:15,200 --> 00:14:17,860 If you want to learn more, see the list of supported boards. 290 00:14:19,000 --> 00:14:20,820 Daryll's next goal was to make it covert. 291 00:14:21,180 --> 00:14:24,200 His goal in making it covert was to support his local communities 292 00:14:24,380 --> 00:14:28,660 during these troubling times, and some of his goals were no eavesdropping, 293 00:14:28,960 --> 00:14:33,760 It's limited geographic area, difficult to locate the transmissions, and pseudonymous. 294 00:14:34,620 --> 00:14:38,680 He then walked through some of the steps you take to configure a Meshtastic node as a covert 295 00:14:38,900 --> 00:14:41,260 node and how it differs from a default install. 296 00:14:41,780 --> 00:14:43,680 I'm really glad I made the time to watch the video. 297 00:14:43,780 --> 00:14:47,160 It's something I've wanted to learn more about, and next time I make an Adafruit order, I 298 00:14:47,160 --> 00:14:49,940 might just throw a feather in the cart that has the LoRa radio on it. 299 00:14:51,620 --> 00:14:51,700 Totally. 300 00:14:52,120 --> 00:14:56,780 Yeah, the LoRa stuff, it's been around for so long, and everyone has sold a little board, 301 00:14:56,800 --> 00:14:59,940 like SparkFun, Adafruit, of all those little boards with Laura on them. 302 00:15:00,490 --> 00:15:04,160 And I've not gotten into it until the last couple of months because of MeshTastic. 303 00:15:04,210 --> 00:15:09,220 And I knew that it was going to be a topic at Supercon. 304 00:15:09,940 --> 00:15:15,700 And it's really cool because one of the things that Daryll covers is right now, all of our 305 00:15:15,720 --> 00:15:18,060 communications are fairly centralized. 306 00:15:19,540 --> 00:15:25,800 Even though we're all on these cellular phones, the cells are pretty large in terms of area, 307 00:15:25,940 --> 00:15:29,060 the footprint they cover, and they're all connected together, and they don't really 308 00:15:29,120 --> 00:15:30,760 work just by themselves. 309 00:15:31,540 --> 00:15:36,320 If there's a disaster, like we're in California, there's lots of disasters that are waiting 310 00:15:36,320 --> 00:15:36,720 to happen. 311 00:15:37,640 --> 00:15:41,260 There could be no landlines available because power and phone lines could be cut. 312 00:15:41,440 --> 00:15:48,040 There could be no cell towers because power went out or the cell towers fell over or whatever. 313 00:15:49,020 --> 00:15:54,140 Having something that is mesh-networky, where there isn't a central thing that can fail, 314 00:15:54,380 --> 00:15:56,500 It's just a bunch of people, a bunch of nodes. 315 00:15:56,910 --> 00:16:00,480 And having something that is really low power, like one of the really cool things about LoRa, 316 00:16:00,920 --> 00:16:04,780 is that it can run for months on just a really small battery. 317 00:16:05,380 --> 00:16:11,480 And so one of the philosophies of some of these Meshtastic communities, like there's 318 00:16:11,520 --> 00:16:16,840 one called SoCal Mesh down here in Southern California, is they're like, "Hey, let's install 319 00:16:17,160 --> 00:16:18,480 these little Meshtastic nodes. 320 00:16:18,660 --> 00:16:23,020 We'll just put it in a weatherproof box with a solar panel and just stick it to the side 321 00:16:22,980 --> 00:16:27,020 of a parking structure in some place random in my downtown in my city. 322 00:16:27,580 --> 00:16:28,540 And we'll do that a couple times. 323 00:16:28,920 --> 00:16:30,600 And these things will last forever. 324 00:16:30,840 --> 00:16:34,760 And no one cares because it's just this little box that looks like a little utility box. 325 00:16:35,900 --> 00:16:39,560 And so now if something goes wrong, we'll at least be able to hop through it to get 326 00:16:39,640 --> 00:16:41,360 to people we want to talk to. 327 00:16:41,800 --> 00:16:46,500 And if you want to, if you're a mesh-tastic, if you've got a mesh-tastic gizmo on your 328 00:16:46,580 --> 00:16:52,280 person, you can turn on GPS tracking for it if you want to let people know where you are 329 00:16:52,180 --> 00:16:55,620 or where this node is, so that if you want to use it 330 00:16:55,720 --> 00:16:57,920 to help someone find you, you can have that as well. 331 00:16:58,220 --> 00:17:00,000 But by default, that's turned off, I think. 332 00:17:00,820 --> 00:17:02,360 And so it's really great that, like, 333 00:17:02,360 --> 00:17:03,620 oh, it gives us choice, you know, 334 00:17:03,660 --> 00:17:06,560 it gives us the ability to communicate with each other 335 00:17:06,780 --> 00:17:08,180 without having to have a central authority. 336 00:17:08,640 --> 00:17:11,540 It lets us choose how much information we want to disclose. 337 00:17:12,040 --> 00:17:14,900 And it's all purposefully really low power and low data. 338 00:17:15,000 --> 00:17:16,199 We're not sending YouTube videos, 339 00:17:16,199 --> 00:17:17,300 we're sending text messages. 340 00:17:18,620 --> 00:17:20,579 - So one of the things I wanted to ask you about 341 00:17:20,579 --> 00:17:25,040 that Supercon is known for is the badge. Was there a LoRa radio built into the badge this 342 00:17:25,100 --> 00:17:25,220 year? 343 00:17:25,480 --> 00:17:28,100 Yes. It was not running Meshtasic, but it's 344 00:17:28,100 --> 00:17:33,560 running a LoRa radio that had been sufficiently muted, because it was going to be upwards 345 00:17:33,560 --> 00:17:39,960 of 500 people in a single room, potentially. One of the things with radio is that if everyone 346 00:17:40,040 --> 00:17:50,560 starts to shout, it just turns into a wall of noise, and no one can hear anything. The 347 00:17:50,560 --> 00:17:55,760 open the badge up and solder one thing, and that'll take the attenuation off. 348 00:17:56,320 --> 00:18:01,220 And it's also not running MeshTastic, because MeshTastic is made for a little bit more diffuse 349 00:18:01,560 --> 00:18:02,420 of a set of nodes. 350 00:18:02,430 --> 00:18:05,580 It's not meant for having 500 nodes in one square block area. 351 00:18:09,000 --> 00:18:14,440 But the thing is that people have been working, and they got some initial builds of MeshTastic 352 00:18:14,900 --> 00:18:16,700 for the badge. 353 00:18:16,780 --> 00:18:19,480 The badge, it looks kind of like an old computer. 354 00:18:19,640 --> 00:18:25,380 It's got a little QWERTY keyboard, a cool little rectangular display, and a little antenna 355 00:18:25,380 --> 00:18:25,900 off the top. 356 00:18:26,090 --> 00:18:27,180 And it's got a battery inside. 357 00:18:27,440 --> 00:18:33,960 Internally, it runs an ESP32-S3 and the standard LoRa board that everyone uses. 358 00:18:34,400 --> 00:18:39,300 And so it's very similar to some existing Meshtastic compatible boards that are out 359 00:18:39,340 --> 00:18:43,060 there from like LilyGo or Waveshare or something. 360 00:18:43,190 --> 00:18:45,160 I forget who, but it's... 361 00:18:45,160 --> 00:18:50,980 there are some of these Chinese sort of maker vendors that have boards that are very similar. 362 00:18:51,180 --> 00:18:57,940 And so the conversion from that to getting MeshTastic to work on the Hackaday badge was 363 00:18:58,000 --> 00:18:58,500 really easy. 364 00:18:59,360 --> 00:19:04,880 And the cool thing is this badge is so useful because it's a ESP32 with a QWERTY keyboard 365 00:19:05,040 --> 00:19:05,820 and a display. 366 00:19:06,800 --> 00:19:11,100 Just installing a BASIC on it and using it as a little BASIC computer from the 1980s 367 00:19:11,140 --> 00:19:12,040 is really possible. 368 00:19:12,360 --> 00:19:18,380 And I guess the the keyboard is brand new from solder party. Yeah, the keyboard is so nice 369 00:19:18,440 --> 00:19:22,100 it's it's pretty much the same technology from keyboards of 370 00:19:23,160 --> 00:19:26,160 like the late 80s and early 90s of the little like 371 00:19:26,900 --> 00:19:29,480 Silicone rubber thing a little like snap dome 372 00:19:30,280 --> 00:19:33,540 Metal bit above the PCB so it makes a nice little click when you press 373 00:19:34,050 --> 00:19:38,500 But it's really simple and and solder party just released on if you saw a little 374 00:19:38,960 --> 00:19:44,220 USB keyboard using the same same technique for like eight euros or something. It's really cool 375 00:19:44,220 --> 00:19:47,000 I wanted to get some but the shipping was really expensive from from Sweden 376 00:19:49,580 --> 00:19:51,920 But but yeah, yeah, he helped out or I mean 377 00:19:52,540 --> 00:19:58,100 Soder party helped out with the keyboard for the the badge. This badge is one of the few badges. I'm gonna actually use 378 00:19:58,880 --> 00:20:04,360 After the conference, I hope that they offer it on tindy or something. It's really cool. So that's the badge 379 00:20:04,540 --> 00:20:06,780 What is your second item for us this episode? 380 00:20:07,400 --> 00:20:13,340 Okay, so to continue the wireless trend I've recently been looking into ultra wideband chips and 381 00:20:14,640 --> 00:20:19,980 So I love Apple's air tags these little coin sized what looked like Bluetooth beacons 382 00:20:20,250 --> 00:20:22,680 I put them on everything my keys my wallet my suitcase 383 00:20:23,250 --> 00:20:25,900 Maybe even my cat I got kind of a small cat 384 00:20:25,900 --> 00:20:33,439 So, I don't know if it'll it'll fit on him really but unlike other little Bluetooth trackers air tags also do ultra wideband or UWB 385 00:20:33,960 --> 00:20:41,560 This kind of newest technology allows among other things devices like air tags to be tracked to a few centimeters 386 00:20:42,620 --> 00:20:48,060 Which is amazing like with normal Bluetooth your tracking resolution is about a few meters with Wi-Fi 387 00:20:48,320 --> 00:20:49,480 It's like maybe like, you know 388 00:20:50,280 --> 00:20:57,420 five meters or something and there's a couple of new dev boards that have the have a UWB chip and ESP 32 Wi-Fi in 389 00:20:57,420 --> 00:21:02,240 A single board and I just ordered some maker fab the the maker fab 390 00:21:02,400 --> 00:21:09,080 ESP UWB board they're 40 bucks and they look kind of like your standard ESP 32 Wi-Fi board with a little weird module 391 00:21:09,720 --> 00:21:12,820 That is this a Corvo DMW 392 00:21:13,220 --> 00:21:19,440 1000 the Corvo's QoR vo they're apparently the main company that's making these ultra wideband chips 393 00:21:19,890 --> 00:21:22,900 that that board itself goes for about 20 bucks on digikey Mouser and 394 00:21:24,240 --> 00:21:29,619 The their chip is supposedly compatible with air tags. So I'm hoping I can build like a little tracker tracker 395 00:21:30,700 --> 00:21:34,820 Base station so I can track the trackers have like a little display or something that kind of shows 396 00:21:35,340 --> 00:21:39,640 I mean, you know cuz you can do this do all this with your phone with find my on on iPhone 397 00:21:40,220 --> 00:21:42,140 But I think it'd be kind of cool to have a standalone thing 398 00:21:42,240 --> 00:21:47,060 That would just kind of say is you know, if I have one on the cat is the cat nearby 399 00:21:48,580 --> 00:21:49,420 That would be cool 400 00:21:50,620 --> 00:21:52,540 You know, I don't know. I don't you know how cats are 401 00:21:52,550 --> 00:21:55,500 They can kind of like somehow disappear like, you know, they're in the house 402 00:21:55,510 --> 00:22:00,380 But like where the heck are they in the house the next thing, you know, they're sneaking up on you. Yeah 403 00:22:00,380 --> 00:22:03,720 So this UWB technology is really cool. 404 00:22:04,250 --> 00:22:06,580 Instead of transmitting at a particular frequency 405 00:22:07,420 --> 00:22:09,040 with a particular like sort of width of channel, 406 00:22:09,180 --> 00:22:11,420 like with WiFi it's like five gigahertz 407 00:22:11,430 --> 00:22:13,060 and the width is like 20 megahertz. 408 00:22:13,700 --> 00:22:16,400 And with Bluetooth, the frequency is 2.4 gigahertz 409 00:22:16,540 --> 00:22:19,400 and the width of the transmission is like one megahertz. 410 00:22:20,600 --> 00:22:23,860 UWB is this five megahertz or more channel 411 00:22:24,040 --> 00:22:25,060 at six gigahertz. 412 00:22:25,620 --> 00:22:28,020 And instead of transmitting at like a central frequency, 413 00:22:29,180 --> 00:22:32,560 the UWB protocol sprays pulses, 414 00:22:33,320 --> 00:22:35,420 a little radio pulses at various frequencies, 415 00:22:35,910 --> 00:22:37,660 at various amplitudes and polarity 416 00:22:38,060 --> 00:22:39,900 across that 500 megahertz spectrum. 417 00:22:40,510 --> 00:22:42,880 So if you could hear it, it'd be sound more like noise 418 00:22:43,540 --> 00:22:45,620 compared to the sort of pure chords 419 00:22:46,280 --> 00:22:48,240 or arpeggios of Wi-Fi or Bluetooth. 420 00:22:49,140 --> 00:22:50,760 And so being able to distinguish and decode 421 00:22:50,900 --> 00:22:53,720 the sprayed pulses gives you the benefit 422 00:22:54,060 --> 00:22:56,580 of being able to localize where that noise is coming from. 423 00:22:57,140 --> 00:23:00,320 these chips can do both time of flight recording 424 00:23:01,080 --> 00:23:05,140 of the radio signal, and also there's two other really fast, 425 00:23:05,280 --> 00:23:07,360 busy, basically they're able to measure 426 00:23:07,360 --> 00:23:08,380 the speed of light effectively. 427 00:23:09,300 --> 00:23:09,920 It's kind of crazy. 428 00:23:10,210 --> 00:23:12,380 But also because they've got this really wide bandwidth, 429 00:23:12,970 --> 00:23:15,320 you can also transmit enormous amounts of data, 430 00:23:15,760 --> 00:23:18,220 like upwards of 675 megabits per second 431 00:23:18,520 --> 00:23:20,500 if both sides are fully powered and stuff. 432 00:23:21,340 --> 00:23:24,120 The downside is you have to be able to hear all that noise. 433 00:23:24,760 --> 00:23:26,660 UWB doesn't work well through walls. 434 00:23:26,840 --> 00:23:29,160 If you've ever gone outside of a room 435 00:23:29,220 --> 00:23:30,860 that where a stereo is playing and it gets all muddy, 436 00:23:30,960 --> 00:23:31,720 it's kind of that problem. 437 00:23:31,720 --> 00:23:33,240 You start to lose the fidelity. 438 00:23:33,910 --> 00:23:35,860 So it's more of an in a room technology. 439 00:23:36,720 --> 00:23:37,680 But it's really interesting. 440 00:23:38,520 --> 00:23:41,580 I can't wait to get my hands on some of these ESP32 boards 441 00:23:42,000 --> 00:23:43,800 'cause then I'll be able to do Bluetooth positioning, 442 00:23:44,110 --> 00:23:46,580 Wi-Fi positioning, and now this ultra wideband positioning. 443 00:23:47,080 --> 00:23:49,020 - What will you code those boards in? 444 00:23:49,040 --> 00:23:51,500 Is this a C or an Arduino project? 445 00:23:52,300 --> 00:23:53,720 - In the show notes, I've got some links 446 00:23:53,900 --> 00:23:56,820 to a couple of essentially blog posts 447 00:23:56,820 --> 00:23:58,080 doing this, yeah, with Arduino. 448 00:23:58,540 --> 00:24:03,660 And the Arduino libraries that exist for this Corvo DMW-1000 449 00:24:03,840 --> 00:24:07,640 or whatever have a API where you can just say get range. 450 00:24:08,360 --> 00:24:12,640 And so you can find a particular other device 451 00:24:12,700 --> 00:24:14,080 and then say how far away that thing is. 452 00:24:14,420 --> 00:24:15,960 And then if you have multiple devices, 453 00:24:16,120 --> 00:24:17,720 you can then get multiple ranges. 454 00:24:17,830 --> 00:24:19,220 And then you can triangulate yourself. 455 00:24:20,160 --> 00:24:21,940 You'll have to come back in a future episode 456 00:24:21,950 --> 00:24:24,200 and give us an update on your tracking the tracker project. 457 00:24:24,700 --> 00:24:25,100 Yeah, totally. 458 00:24:25,760 --> 00:24:26,580 Got my tracker tracker. 459 00:24:27,720 --> 00:24:29,920 All right, Paul, what's your what's your next one for this time? 460 00:24:30,900 --> 00:24:33,580 In October 2023, Microsoft spent a cool 461 00:24:33,860 --> 00:24:36,780 $75 billion to purchase Activision Blizzard. 462 00:24:37,760 --> 00:24:40,780 Now, two years later, we get a bonus from Microsoft as they announced 463 00:24:40,840 --> 00:24:45,220 on November 20th that they have open sourced the Zork one through three games, 464 00:24:45,740 --> 00:24:49,780 which they acquired from Activision Blizzard, who I believe own the Infocom IP. 465 00:24:50,900 --> 00:24:53,320 If you're not familiar with Zork, it was a text adventure game 466 00:24:53,320 --> 00:24:57,720 first released in 1977 to run on a mainframe and was developed at MIT. 467 00:24:58,740 --> 00:25:03,660 The player explores the ruins of the great underground empire, and you use the text commands 468 00:25:03,720 --> 00:25:06,620 to travel to different locations, solve puzzles, and collect treasure. 469 00:25:07,480 --> 00:25:12,020 When it was released commercially, it was split into three games, Zork 1-3, to save 470 00:25:12,120 --> 00:25:12,420 memory. 471 00:25:13,040 --> 00:25:16,540 He also had the Z-Machine, the game engine that ran the games. 472 00:25:17,120 --> 00:25:21,440 I've linked to a nice blog post by Andrew Plotkin that has more details on the release. 473 00:25:22,140 --> 00:25:26,580 Over two years ago, he publicly wrote on his blog asking Microsoft to do exactly what they've 474 00:25:26,660 --> 00:25:26,920 done. 475 00:25:27,360 --> 00:25:29,000 He has a few more details worth reading. 476 00:25:29,740 --> 00:25:31,540 I've also linked to Microsoft's announcement. 477 00:25:31,840 --> 00:25:35,560 I especially liked how they stated that their goal in releasing the game's source code 478 00:25:36,110 --> 00:25:40,040 "to place historically important code in the hands of students, teachers, and developers 479 00:25:40,680 --> 00:25:45,500 so they can study it, learn from it, and perhaps even more importantly, play it." 480 00:25:45,500 --> 00:25:48,740 The announcement links to the GitHub repo where you can download the source code. 481 00:25:49,640 --> 00:25:51,140 And the timing couldn't be better for me. 482 00:25:51,820 --> 00:25:56,100 On the next episode of the CircuitPython show coming December 8th, I interviewed Dan Cogliano. 483 00:25:56,920 --> 00:26:02,680 Dan ported the ZMachine game engine to Arduino a few years ago and just ported it to CircuitPython 484 00:26:02,760 --> 00:26:03,020 now. 485 00:26:03,580 --> 00:26:07,180 So if you have a fruit jam and you want to play the classic Zork games, it's now super 486 00:26:07,280 --> 00:26:12,660 easy to do that right in CircuitPython using Dan ZMachine with the open source Zork 1-3 487 00:26:12,880 --> 00:26:13,260 games. 488 00:26:14,060 --> 00:26:14,500 That's so cool. 489 00:26:14,580 --> 00:26:18,560 I really loved trying to play Zork on my whatever the heck it was, Apple II. 490 00:26:19,100 --> 00:26:25,000 I was terrible at it, but just the whole "Go North, take rock." 491 00:26:25,660 --> 00:26:32,600 Having the concept of being able to type English to a computer was so fantastic back then. 492 00:26:32,600 --> 00:26:37,440 Of course now, with LLMs and conversational interfaces, it's so de rigueur. 493 00:26:37,880 --> 00:26:41,020 But man, back then, it's like trying to figure out, "Well, what verbs does it know? 494 00:26:41,420 --> 00:26:42,420 Does it know 'fight'? 495 00:26:42,520 --> 00:26:43,440 Does it know 'run'?" 496 00:26:43,980 --> 00:26:44,580 "Gotta run away." 497 00:26:44,440 --> 00:26:44,740 away. 498 00:26:46,350 --> 00:26:48,260 And I never could seem to get the commands right. 499 00:26:48,560 --> 00:26:50,880 And I was never any good at Zork. 500 00:26:51,620 --> 00:26:52,160 Same, same. 501 00:26:52,300 --> 00:26:52,400 Yeah. 502 00:26:52,500 --> 00:26:56,320 And there was for a while there was like Infocom was making all these ones like they made 503 00:26:56,360 --> 00:26:57,400 one called Star. 504 00:26:58,660 --> 00:27:00,180 But it was like it was basically Zork in space. 505 00:27:00,550 --> 00:27:04,240 And that one I that one I played more because I'm you know, I was more into space stuff 506 00:27:04,340 --> 00:27:05,220 than fantasy stuff. 507 00:27:05,360 --> 00:27:06,480 But yeah, yeah. 508 00:27:06,480 --> 00:27:08,140 Infocom seemed to make all these games. 509 00:27:08,220 --> 00:27:12,360 I think they were all just different data files for this Z machine. 510 00:27:12,800 --> 00:27:15,040 Now that we have Z machine for CircuitPython, incredible. 511 00:27:15,620 --> 00:27:16,380 - Yep, exactly. 512 00:27:17,140 --> 00:27:18,200 What's your next one for us? 513 00:27:18,860 --> 00:27:20,680 - So I love a well-designed dev board. 514 00:27:21,380 --> 00:27:23,060 The Raspberry Pi Pico is pretty good, 515 00:27:23,360 --> 00:27:25,760 but what if you wanna make your own or make modifications? 516 00:27:26,480 --> 00:27:28,200 Maybe like different layout, different connectors. 517 00:27:28,880 --> 00:27:31,440 There's a new blog post by Kai Pereira 518 00:27:31,720 --> 00:27:34,360 called "Let's Design an RP2040 Dev Board" 519 00:27:35,380 --> 00:27:36,840 that teaches you exactly how to do that. 520 00:27:37,180 --> 00:27:42,260 In his post, Kai shows the entire KiCAD design process 521 00:27:42,300 --> 00:27:44,800 and ending with soldering up an actual physical board. 522 00:27:45,260 --> 00:27:46,420 Starting with drawing the schematic, 523 00:27:46,520 --> 00:27:48,100 he shows how to pick schematic symbols 524 00:27:48,380 --> 00:27:50,740 and highlight good schematic practices to make it readable. 525 00:27:51,400 --> 00:27:53,720 So many schematics I see nowadays have little conception 526 00:27:53,840 --> 00:27:55,080 of what makes a good schematic. 527 00:27:55,900 --> 00:27:57,760 It's the primary way of getting across to others 528 00:27:57,880 --> 00:27:59,260 what the circuit actually does. 529 00:27:59,920 --> 00:28:01,440 So just like writing a good essay, 530 00:28:01,500 --> 00:28:03,400 drawing a good schematic requires some knowledge 531 00:28:03,440 --> 00:28:06,320 of style and structure, and Kai gives you some tips on that. 532 00:28:06,900 --> 00:28:08,460 When I'm saying his name, it's K-A-I. 533 00:28:08,680 --> 00:28:09,800 I assume that's pronounced Kai. 534 00:28:10,440 --> 00:28:11,500 - It usually is. 535 00:28:12,180 --> 00:28:15,260 Yeah, it's like, plus it's complicated for me 536 00:28:15,400 --> 00:28:17,840 because like, oh wait, it's not pronounced Ki-CAD, 537 00:28:17,880 --> 00:28:18,860 it's pronounced Ki-CAD. 538 00:28:19,300 --> 00:28:21,660 So it's Kai talking about Ki-CAD, all right. 539 00:28:25,200 --> 00:28:27,740 So Kai then goes on to show you how to take that schematic 540 00:28:27,900 --> 00:28:29,700 and turn it into a dimensionally accurate PCB. 541 00:28:30,440 --> 00:28:33,300 He shows some of the power routing for the ARCB2040, 542 00:28:33,620 --> 00:28:36,460 can be tricky, but he shows you how to handle those 543 00:28:36,820 --> 00:28:38,780 and other critical bits like the oscillator placement, 544 00:28:39,460 --> 00:28:41,080 USB and flash placement and ground fills. 545 00:28:41,980 --> 00:28:46,940 He goes and talks about how to choose the right symbols, 546 00:28:47,180 --> 00:28:50,100 both in the schematic and then how to match those up 547 00:28:50,260 --> 00:28:52,500 with the footprints in the PCB. 548 00:28:52,620 --> 00:28:54,380 This is actually kind of a tricky thing to do 549 00:28:54,560 --> 00:28:55,760 in all schematic programs. 550 00:28:56,140 --> 00:28:58,460 Again, KiCad is a little bit weird to me in how to do it, 551 00:28:58,820 --> 00:29:01,520 so showing how to do that is really, really nice. 552 00:29:02,380 --> 00:29:03,380 I know how to do all this stuff, 553 00:29:03,480 --> 00:29:06,580 but you can do things in KiCad in many different ways, 554 00:29:06,580 --> 00:29:09,040 and so it's cool to see someone else show a way 555 00:29:09,120 --> 00:29:10,980 that's almost the same but a little bit different 556 00:29:10,980 --> 00:29:15,560 what I do helps me kind of understand how Key Cadward thinks, you know. And then he 557 00:29:17,100 --> 00:29:19,940 takes all that and actually like doesn't order through PCB, 558 00:29:20,580 --> 00:29:22,860 gets the actual PCBs and shows how to solder them up. 559 00:29:23,380 --> 00:29:28,380 And so some of these things are described in terms of the schematic and stuff are described in the RP2040 560 00:29:28,840 --> 00:29:32,440 manuals, but it's really nice to see a single blog post and not a video 561 00:29:33,240 --> 00:29:37,360 that delineates everything in a step-by-step process describing the reasoning behind it. 562 00:29:37,420 --> 00:29:44,300 So even if you know circuit design and RP2040 layout, this post is a great refresher that might teach you some things. Thanks, Guy. 563 00:29:44,800 --> 00:29:49,760 Yeah, there's a time and a place for videos and then there's a time and a place for an actual blog post that details the 564 00:29:50,060 --> 00:29:51,900 process. So it's pretty cool to see someone actually 565 00:29:52,420 --> 00:29:58,280 take the time to write that out and still have a personal blog in this day and age. So, you know, kudos to them. 566 00:29:58,820 --> 00:30:02,420 Yes. So, yeah, what's our last one for today? 567 00:30:03,360 --> 00:30:06,340 Tod, you and I are both of an age that we were around at the start of 568 00:30:06,780 --> 00:30:08,160 microcomputers in the early eighties. 569 00:30:08,320 --> 00:30:09,160 Yes, we're old. 570 00:30:10,230 --> 00:30:14,080 Back then you could go into a Babbage's or a Waldenbooks and buy magazines with 571 00:30:14,360 --> 00:30:17,620 basic code or even assembly that you would then program by hand at home, 572 00:30:17,780 --> 00:30:19,340 copying direct from the magazine. 573 00:30:20,520 --> 00:30:23,420 Well, someone's trying to bring that back, but this time for HTML. 574 00:30:24,250 --> 00:30:28,640 The website vol WTF has launched the Doctype magazine. 575 00:30:29,160 --> 00:30:33,240 For 10 bucks, you get a glossy cover magazine with 10 web apps inside with 576 00:30:33,260 --> 00:30:35,200 illustrations and additional information. 577 00:30:36,120 --> 00:30:39,300 They're frequently asked questions on the homepage sums it up pretty well. 578 00:30:39,820 --> 00:30:40,660 I don't understand. 579 00:30:40,740 --> 00:30:42,880 It's a magazine of HTML source code. 580 00:30:43,980 --> 00:30:47,800 Yes, you type it in and then you get to play the games and run the apps. 581 00:30:48,520 --> 00:30:49,260 Type it all in. 582 00:30:49,440 --> 00:30:49,740 Why? 583 00:30:50,260 --> 00:30:52,660 Because it's a lost form of software distribution. 584 00:30:53,160 --> 00:30:56,520 It was intriguing and rewarding back then, and maybe it still is now. 585 00:30:58,240 --> 00:30:58,980 And they're right. 586 00:30:58,980 --> 00:31:01,420 It is a lost form. It takes me back to being a kid. 587 00:31:02,100 --> 00:31:03,980 And don't worry, you don't need a web server. 588 00:31:03,980 --> 00:31:07,120 You can run the web apps locally in your browser with instructions included. 589 00:31:07,880 --> 00:31:10,080 I actually recognize one or two of the authors, 590 00:31:10,200 --> 00:31:14,440 but I haven't spent the 10 bucks yet to try it out myself with the holidays here. 591 00:31:14,640 --> 00:31:17,500 It might make an interesting gift for someone younger, 592 00:31:17,660 --> 00:31:20,960 just getting into computers or someone our age that takes us back 593 00:31:20,960 --> 00:31:22,480 to that time when we were kids. 594 00:31:23,400 --> 00:31:27,660 My wife, Carlyn, she just got me the physical copy of this, which is hilarious. 595 00:31:28,080 --> 00:31:31,460 So in that fact, they also have one of their questions, 596 00:31:31,960 --> 00:31:33,600 can I cheat and get a PDF instead? 597 00:31:34,260 --> 00:31:34,840 And the answer is no. 598 00:31:35,740 --> 00:31:36,020 (laughs) 599 00:31:36,120 --> 00:31:39,480 It's like, you purely have to get the physical paper 600 00:31:39,640 --> 00:31:42,580 and do that transcription yourself 601 00:31:42,740 --> 00:31:45,940 of going from paper to a screen yourself. 602 00:31:46,440 --> 00:31:48,220 So Carlyn, my wife, she got me this. 603 00:31:48,720 --> 00:31:51,040 She's like, oh, I wanted to give you this for Christmas, 604 00:31:51,180 --> 00:31:52,480 but I can't wait, I wanna give it to you now. 605 00:31:52,540 --> 00:31:53,380 I don't know if you'll like it. 606 00:31:53,400 --> 00:31:54,380 I'm like, oh, this is amazing. 607 00:31:55,000 --> 00:31:55,280 (laughs) 608 00:31:56,080 --> 00:32:00,240 Yeah, I picked this out not knowing that you had it already, so it's quite the coincidence. 609 00:32:01,440 --> 00:32:02,120 Oh, it's so good. 610 00:32:02,540 --> 00:32:07,400 Yeah, so I distinctly remember getting, I think the magazine was called Nibble. 611 00:32:08,240 --> 00:32:12,400 It was geared towards Apple II, and it had code everywhere. 612 00:32:12,660 --> 00:32:17,180 Not only did it have what Doctype has, which is, here's a little program you can type in, 613 00:32:17,740 --> 00:32:23,480 and it was just printed text of the source code that you would type in, but it also would 614 00:32:23,360 --> 00:32:29,160 have these articles about a software technique. Like, "Oh, here's how to do high-res graphics 615 00:32:29,310 --> 00:32:34,320 on the Apple II," or something. But then also, there'd be these little ads. Beagle Bros was 616 00:32:34,400 --> 00:32:38,080 this company that would make these little tips and tricks and tools for your Apple II, 617 00:32:38,500 --> 00:32:43,880 and their little quarter-page ad would often have a little one or two or five-line program 618 00:32:43,880 --> 00:32:48,500 you could type in to do something fun. It's like, "Oh man, imagine if ads were like that 619 00:32:52,900 --> 00:32:53,340 nowadays." 620 00:32:54,520 --> 00:32:57,360 But yeah, so I'm really loving Doctype. 621 00:32:57,660 --> 00:33:01,160 I hope I... Currently, it is just the actual programs. 622 00:33:01,160 --> 00:33:04,700 I don't think there's much editorial content, but I would love it if they extended it out 623 00:33:04,780 --> 00:33:12,400 to having little articles about certain cool HTML techniques, because man, HTML is huge. 624 00:33:12,460 --> 00:33:13,860 There's lots of really cool things you can do with it. 625 00:33:14,040 --> 00:33:16,840 It is kind of the language to know on the internet now. 626 00:33:18,080 --> 00:33:18,940 Well, that's our show. 627 00:33:19,460 --> 00:33:20,360 Thank you for listening. 628 00:33:20,780 --> 00:33:25,920 We're recording this over the Thanksgiving holiday weekend in the US and we are thankful for every one of you listening. 629 00:33:26,760 --> 00:33:31,820 For detailed show notes and transcripts or to order a free sticker, visit thebootloader.net. 630 00:33:32,560 --> 00:33:34,480 Until next time, stay positive.