1 00:00:06,060 --> 00:00:07,120 - Welcome to The Bootloader. 2 00:00:07,300 --> 00:00:08,020 I'm Paul Cutler. 3 00:00:08,680 --> 00:00:09,360 - And I'm Tod Kurt. 4 00:00:09,880 --> 00:00:10,760 The show works like this. 5 00:00:10,950 --> 00:00:12,820 In each episode, we bring about six things 6 00:00:12,940 --> 00:00:13,720 that we're excited to share, 7 00:00:14,260 --> 00:00:15,820 chatting about each for about five minutes. 8 00:00:16,340 --> 00:00:18,000 For detailed show notes and transcripts, 9 00:00:18,000 --> 00:00:19,320 visit thebootloader.net. 10 00:00:20,620 --> 00:00:21,480 - We now have stickers. 11 00:00:21,940 --> 00:00:23,520 If you're interested in getting a two inch 12 00:00:23,600 --> 00:00:26,020 by two inch sticker, visit thebootloader.net 13 00:00:26,240 --> 00:00:28,740 and click news and the link to the form is there. 14 00:00:29,280 --> 00:00:31,120 fill it out and I'll send you a free sticker. 15 00:00:32,119 --> 00:00:33,020 With that out of the way, 16 00:00:33,680 --> 00:00:35,820 Liz Clark has joined us today for a second time. 17 00:00:36,460 --> 00:00:38,640 Liz, there used to be a podcast I listened to 18 00:00:38,960 --> 00:00:40,320 and whenever a guest would come on 19 00:00:40,320 --> 00:00:41,560 for the second or third time, 20 00:00:41,640 --> 00:00:43,400 they officially become a friend of the show. 21 00:00:43,980 --> 00:00:46,200 So you're our first official friend of the show. 22 00:00:46,760 --> 00:00:48,380 - I'm honored, thank you so much. 23 00:00:48,440 --> 00:00:49,260 Thanks for having me again. 24 00:00:50,200 --> 00:00:50,660 - Thank you, Liz. 25 00:00:51,660 --> 00:00:53,280 - What's the first one that you brought for us? 26 00:00:53,980 --> 00:00:57,519 - So my first pick is something I've been using a lot lately 27 00:00:57,520 --> 00:01:00,640 from my work of Adafruit, and it's Raspberry Pi Connect. 28 00:01:01,040 --> 00:01:03,180 And what it is is it's a new service, 29 00:01:03,650 --> 00:01:04,800 or at least it was new to me, 30 00:01:04,940 --> 00:01:07,740 that comes with the new distributions of Raspberry Pi OS. 31 00:01:07,960 --> 00:01:10,700 So if you've been using the newest Trixie 32 00:01:10,840 --> 00:01:12,000 or even Bookworm before that, 33 00:01:12,270 --> 00:01:14,920 and you saw this little circle icon up at the top 34 00:01:15,040 --> 00:01:17,120 next to the status, that's what that is. 35 00:01:17,700 --> 00:01:20,340 And what it lets you do is when you log in, 36 00:01:20,480 --> 00:01:23,100 you're able to manage all of your Raspberry Pi devices. 37 00:01:23,560 --> 00:01:24,900 And it's not software dependent, 38 00:01:24,900 --> 00:01:25,980 it's actually hardware tied. 39 00:01:26,040 --> 00:01:30,940 So even if you do a new install of the OS, 40 00:01:31,990 --> 00:01:34,300 your devices still appear registered, which is nice. 41 00:01:34,980 --> 00:01:38,080 And what you can do then is, in a browser, 42 00:01:38,330 --> 00:01:40,760 you can log into your Raspberry Pi 43 00:01:40,970 --> 00:01:46,760 either with a remote shell session or a windowed session. 44 00:01:47,160 --> 00:01:50,400 So that means you can have it just powered on headless, 45 00:01:50,400 --> 00:01:55,400 but have a full browser view with your keyboard, your mouse, 46 00:01:55,560 --> 00:01:58,640 and you can use it right at your computer, which for me, 47 00:01:58,760 --> 00:02:00,420 I don't have a lot of space in my desk, so that just 48 00:02:00,800 --> 00:02:01,300 is wonderful. 49 00:02:01,380 --> 00:02:03,920 I don't have to have another keyboard and mouse. 50 00:02:03,970 --> 00:02:06,540 I don't have to capture it with my capture card. 51 00:02:06,710 --> 00:02:07,340 Don't do any of that. 52 00:02:08,039 --> 00:02:10,560 But the best part, I think, is you can also 53 00:02:10,880 --> 00:02:13,060 copy and paste to the Pi. 54 00:02:13,340 --> 00:02:15,420 So if you're doing development and you're 55 00:02:15,900 --> 00:02:19,800 trying to do, oh, I don't know, E Ink in its, for example, 56 00:02:20,540 --> 00:02:22,920 and you're trying to find different things on a data 57 00:02:22,960 --> 00:02:25,240 sheet, you can copy and paste really easily. 58 00:02:25,460 --> 00:02:26,940 and it makes it really nice. 59 00:02:27,020 --> 00:02:29,600 And then also it means I don't have to log into GitHub on a Pi. 60 00:02:29,720 --> 00:02:32,640 I can copy it out and do a PR on my home machine. 61 00:02:33,320 --> 00:02:35,580 That has been a lifesaver recently. 62 00:02:35,820 --> 00:02:38,940 And even recently, I did a project for Halloween 63 00:02:39,440 --> 00:02:41,360 for Adafruit, which used a Raspberry Pi. 64 00:02:42,080 --> 00:02:43,680 And it used a camera. 65 00:02:43,960 --> 00:02:47,380 And for the demo, I wanted to do a screen recording to show it 66 00:02:47,540 --> 00:02:48,460 happening in real time. 67 00:02:48,580 --> 00:02:50,640 And in the past, it would have been 68 00:02:50,720 --> 00:02:52,500 like a mess of cables all over my apartment 69 00:02:52,960 --> 00:02:54,960 trying to get the capture card and everything. 70 00:02:55,140 --> 00:02:57,020 But for this, I was able to just set up the Pi 71 00:02:57,180 --> 00:02:59,020 in my usual filming spot, film, 72 00:02:59,160 --> 00:03:01,360 and then I was just doing a regular screen grab 73 00:03:01,820 --> 00:03:03,800 of my computer of the Raspberry Pi Connect window, 74 00:03:04,120 --> 00:03:05,420 and it was just beautiful. 75 00:03:05,820 --> 00:03:07,420 So if you're doing a lot of Raspberry Pi stuff, 76 00:03:07,560 --> 00:03:10,000 highly recommend setting up Raspberry Pi Connect. 77 00:03:10,300 --> 00:03:12,800 Really easy, and it just makes the workflow a lot simpler. 78 00:03:13,660 --> 00:03:15,820 - How is performance, especially in a windowed mode, 79 00:03:15,900 --> 00:03:17,820 when you're connecting remotely? 80 00:03:17,900 --> 00:03:18,780 Is it jerky at all? 81 00:03:18,820 --> 00:03:19,320 Is it smooth? 82 00:03:19,900 --> 00:03:21,060 - No, it's super smooth. 83 00:03:21,320 --> 00:03:23,699 'Cause sometimes I've even forgotten 84 00:03:23,700 --> 00:03:25,460 that I'm in Raspberry Pi Connect 85 00:03:25,580 --> 00:03:27,460 if I maybe started with OBS 86 00:03:27,800 --> 00:03:29,240 and I grab the keyboard and mouse 87 00:03:29,300 --> 00:03:30,280 that's actually connected to it, 88 00:03:30,620 --> 00:03:33,140 and I'm using it in the browser window now, 89 00:03:33,220 --> 00:03:34,140 so then I remember, oh wait, 90 00:03:34,260 --> 00:03:36,160 I can just use my regular keyboard and mouse, 91 00:03:36,320 --> 00:03:38,120 I don't have to use the thing in my lab. 92 00:03:38,980 --> 00:03:40,900 So it's really smooth, which is surprising. 93 00:03:41,960 --> 00:03:43,540 - So for Raspberry Pi Connect, 94 00:03:43,980 --> 00:03:45,080 I've got some Raspberry Pi servers 95 00:03:45,180 --> 00:03:47,140 that I connect to via usually SSH, 96 00:03:47,220 --> 00:03:49,980 but sometimes VNC, but the VNC stuff's a little janky, 97 00:03:50,020 --> 00:03:50,920 and so this is kind of interesting, 98 00:03:51,060 --> 00:03:54,100 but does the Raspberry Pi Connect stuff work 99 00:03:55,360 --> 00:03:58,080 for non-GUI mode, do you know? 100 00:03:58,799 --> 00:04:00,620 It seems like it's a GUI mode thing. 101 00:04:00,660 --> 00:04:01,980 - That I haven't checked. 102 00:04:02,820 --> 00:04:03,960 It might be GUI only. 103 00:04:04,400 --> 00:04:05,220 I haven't checked that. 104 00:04:05,480 --> 00:04:05,680 - Yeah. 105 00:04:06,380 --> 00:04:07,340 - So that would be something I keep in mind. 106 00:04:07,340 --> 00:04:09,200 - Yeah, this is definitely cool if you don't have, 107 00:04:10,080 --> 00:04:12,220 like my servers are right over here, 108 00:04:12,280 --> 00:04:13,480 I can touch them with my hand, 109 00:04:13,580 --> 00:04:16,140 but if you're in a different state, perhaps, 110 00:04:16,560 --> 00:04:18,940 different country, you can still have access 111 00:04:19,079 --> 00:04:20,100 to your computers. 112 00:04:20,540 --> 00:04:20,980 That's pretty cool. 113 00:04:22,360 --> 00:04:23,680 So Paul, what's your first one this time? 114 00:04:25,000 --> 00:04:26,920 - My first one is the OpenBook Touch. 115 00:04:27,900 --> 00:04:29,960 Joey Castillo has announced the OpenBook Touch, 116 00:04:29,960 --> 00:04:33,080 an open source e-reader coming soon on CrowdSupply. 117 00:04:33,460 --> 00:04:35,600 I interviewed Joey back about three years ago 118 00:04:35,600 --> 00:04:37,780 in episode 22 of the CircuitPython show. 119 00:04:38,480 --> 00:04:40,120 Joey's the creator of the SensorWatch 120 00:04:40,300 --> 00:04:42,540 and the SensorWatch Pro among other things. 121 00:04:42,940 --> 00:04:45,200 And these were PCBs that allowed you to upgrade 122 00:04:45,320 --> 00:04:49,240 Casio's iconic F91W watch by swapping it out 123 00:04:49,220 --> 00:04:52,780 with a new PCB that adds an LED and infrared light sensor 124 00:04:52,830 --> 00:04:53,280 and more. 125 00:04:53,910 --> 00:04:56,420 He ran two successful crowd supply campaigns 126 00:04:56,420 --> 00:04:58,800 for the SensorWatch and the SensorWatch Pro. 127 00:04:59,230 --> 00:05:01,720 So I have a lot of confidence in his latest campaign 128 00:05:01,720 --> 00:05:02,840 for the OpenBook Touch. 129 00:05:03,780 --> 00:05:05,120 He's been working on it for a while 130 00:05:05,180 --> 00:05:07,480 and it's exciting to see it coming soon on crowd supply 131 00:05:07,660 --> 00:05:09,820 where it's described as a long standing effort 132 00:05:10,110 --> 00:05:12,540 to build an affordable, open source, hackable, 133 00:05:13,440 --> 00:05:14,800 DIYable ebook reader. 134 00:05:15,700 --> 00:05:18,159 It features everything you would expect in an e-reader 135 00:05:18,160 --> 00:05:20,280 And here's just a few of the stats. 136 00:05:20,780 --> 00:05:23,720 It's got an ESP32 S3 microcontroller 137 00:05:23,920 --> 00:05:25,340 with support for Wi-Fi and Bluetooth, 138 00:05:25,980 --> 00:05:28,660 a 60 megs of program memory, eight megs of RAM, 139 00:05:29,240 --> 00:05:32,960 a 4.26 inch 480 by 800 display 140 00:05:33,200 --> 00:05:35,080 with warm and cool front lights. 141 00:05:35,760 --> 00:05:39,720 The touchscreen is capacitive and it's got a micro SD card 142 00:05:39,720 --> 00:05:41,600 so you can store all your eBooks on it. 143 00:05:41,820 --> 00:05:45,440 And the battery, it's got a LiPo battery with 1800 milliamps 144 00:05:46,260 --> 00:05:48,140 with integrated charging and monitoring 145 00:05:48,140 --> 00:05:55,340 USB-C Type-C connection, all in about a package that's 77 by 118 by less than 10 millimeters thick 146 00:05:55,520 --> 00:06:01,320 and only weighs three ounces. Everything will be open source, including the software, documentation, 147 00:06:01,640 --> 00:06:08,100 KiCad schematics, board files, and the enclosure. By using the ESP32-S3 processor, it's got plenty 148 00:06:08,200 --> 00:06:14,240 of horsepower for EPUB documents, and with the S3's low-power RISC-V coprocessor, it should 149 00:06:14,140 --> 00:06:19,520 achieve days to weeks of reading time and months of standby time with its user-replaceable 150 00:06:19,840 --> 00:06:20,460 LiPo battery. 151 00:06:21,520 --> 00:06:26,400 Under the hood, it's using the ESP-IDF framework and FreeRTOS, so no more Arduino workflows 152 00:06:26,600 --> 00:06:31,400 like earlier prototypes had, though it has been tested with both Arduino and CircuitPython. 153 00:06:32,240 --> 00:06:36,120 The project is coming soon on crowd supply, and I'm excited to see an open-source e-reader 154 00:06:36,200 --> 00:06:39,240 that's not tied to an online bookstore full of DRO. 155 00:06:39,240 --> 00:06:46,620 Yeah, I was just looking at like I've been trying to get back into to reading more more frequently and e-readers are the obvious solution 156 00:06:47,080 --> 00:06:50,580 Doing it on the phone or the tablet seems very distracting. But like the big 157 00:06:51,460 --> 00:06:56,060 Behemoth out there is the Kindle which is amazing, but it's tied into the whole Amazon thing 158 00:06:56,920 --> 00:07:00,760 hasn't Joey been working on the open book project for like years like it seems like I've seen like 159 00:07:01,520 --> 00:07:06,060 Yes, every time I see like he posts on socials. There's like a new better version that's come out 160 00:07:06,120 --> 00:07:08,039 This looks like the best one but so far 161 00:07:08,699 --> 00:07:13,760 I love Joey's work. I'm sure I'd be curious to chat with him about it. I'm curious if he had 162 00:07:14,880 --> 00:07:18,840 situ issues with sourcing the actual E Ink display because often the 163 00:07:19,900 --> 00:07:25,880 Manufacturers like they'll stop with no warning with the chip set. So I'm curious if that's what's part of the delay, but 164 00:07:26,760 --> 00:07:33,340 It's really cool. That's a 800 by 480. Like those are really nice and I just his work is great. His documentation is great 165 00:07:33,460 --> 00:07:35,320 So really cool. See you come out 166 00:07:35,720 --> 00:07:40,540 Yeah, and he he knows low power design like all that work. He did on his watch 167 00:07:41,380 --> 00:07:47,300 Replacement where you saw him sweating the micro amps to get it down because it's a watch it has to last for a long time 168 00:07:47,310 --> 00:07:49,800 So I'm sure he's do been doing the same thing for this this e-reader 169 00:07:49,980 --> 00:07:52,640 Which you don't really think of as being the thing you have to plug in very often 170 00:07:54,140 --> 00:07:58,140 We're recording this on Thursday, October 30th and Tod. Are you going to? 171 00:07:59,100 --> 00:08:05,700 Supercon this weekend because if you are Joey, you'll be there and you might be able to see it in person. Oh 172 00:08:05,700 --> 00:08:08,860 And on Halloween and I'm going and it'd be wonderful if I see him 173 00:08:08,920 --> 00:08:12,880 He's he's always he's always very very pleasant whenever I run into him. So yeah, it'll be nice 174 00:08:14,060 --> 00:08:17,260 Check it out and give us a book report when it won't for the next episode 175 00:08:18,820 --> 00:08:19,640 book report 176 00:08:22,840 --> 00:08:29,940 I saw he also has simple add-ons. He's doing two that are like an homage to the open book. It's like these little mini illuminated 177 00:08:31,560 --> 00:08:35,680 That's cool. Yeah, did their screens with the book covers? So you might have some of those 178 00:08:35,680 --> 00:08:35,919 (laughing) 179 00:08:37,590 --> 00:08:39,159 - All right, Tod, what's your first one for us? 180 00:08:39,780 --> 00:08:42,219 - All right, so you can now design circuit boards 181 00:08:42,419 --> 00:08:44,340 with code, well, sort of. 182 00:08:45,440 --> 00:08:47,000 So let's say you want to design a circuit board. 183 00:08:47,060 --> 00:08:49,120 This is a little bit of a refresher 184 00:08:49,180 --> 00:08:50,500 on how circuit board design works. 185 00:08:50,660 --> 00:08:52,720 As you are both aware, but maybe not some in our audience, 186 00:08:53,160 --> 00:08:54,240 usually that begins with a schematic, 187 00:08:54,600 --> 00:08:56,520 a flowchart-like drawing that describes 188 00:08:56,600 --> 00:08:59,140 the logical connections between the parts of your circuit. 189 00:08:59,660 --> 00:09:01,960 From the schematic, you then create the PC board layout. 190 00:09:02,520 --> 00:09:04,600 This is the physical layout of exactly which components 191 00:09:04,600 --> 00:09:07,480 you'll be using and exactly where they'll be on the circuit board. 192 00:09:08,220 --> 00:09:10,840 In your schematic, you might just have noted a 500-ohm resistor, 193 00:09:11,420 --> 00:09:17,560 but it's during the PCB layout where you choose exactly which of the thousands of 500-ohm resistors that your circuit needs. 194 00:09:18,320 --> 00:09:20,520 At the end of this design process, you'll have two drawings, 195 00:09:20,820 --> 00:09:23,980 the schematic for logical design and the PCB for the physical layout. 196 00:09:24,700 --> 00:09:28,360 But what if instead of starting with the schematic drawing, you started with code, 197 00:09:28,680 --> 00:09:31,560 and that code then gets turned into the PCB layout? 198 00:09:31,600 --> 00:09:34,780 This is what the Atopile project is attempting to do. 199 00:09:35,140 --> 00:09:38,740 That's A-T-O-P-I-L-E. Atopile is a few things. 200 00:09:39,140 --> 00:09:41,940 First, it's a Python-inspired domain-specific language 201 00:09:42,340 --> 00:09:44,920 for specifying components and connectivity between them. 202 00:09:45,580 --> 00:09:47,180 Like the way you would assign variables 203 00:09:47,360 --> 00:09:49,100 and properties to variables and stuff, 204 00:09:49,100 --> 00:09:50,520 you do the same thing, but now you're assigning 205 00:09:51,080 --> 00:09:53,140 properties and connectivity to components. 206 00:09:54,320 --> 00:09:58,759 Like code, you design little sub chunks of functionality 207 00:09:58,760 --> 00:10:01,240 like LED status light, keyboard matrix, 208 00:10:01,480 --> 00:10:04,920 voltage regulator, or even RP2040 microcontroller. 209 00:10:05,620 --> 00:10:06,760 And each of these subcircuits 210 00:10:06,920 --> 00:10:09,300 then become a reusable function in AdaPile. 211 00:10:09,900 --> 00:10:12,940 And so AdaPile is also a package repository, 212 00:10:13,520 --> 00:10:15,500 sort of like NPMJS or PyPI, 213 00:10:16,000 --> 00:10:18,520 but the modules it knows about are these subcircuits. 214 00:10:19,080 --> 00:10:21,460 And like in other languages, you can install them 215 00:10:21,580 --> 00:10:23,460 and then import them into the top of your code 216 00:10:23,460 --> 00:10:25,520 and use them in your code, I mean, circuit. 217 00:10:27,480 --> 00:10:27,600 (laughs) 218 00:10:27,600 --> 00:10:29,880 More importantly, these Adapah modules 219 00:10:30,140 --> 00:10:32,700 contain KiCad PCB layout chunks. 220 00:10:33,480 --> 00:10:36,960 So when you import the RP2040 package, 221 00:10:37,260 --> 00:10:40,440 it contains the entire KiCad PCB layout 222 00:10:40,580 --> 00:10:42,580 for an RP2040 microcontroller circuit 223 00:10:42,640 --> 00:10:44,040 like what's on the Raspberry Pi Pico. 224 00:10:45,620 --> 00:10:47,740 So the somewhat tricky power trace routing, 225 00:10:48,040 --> 00:10:50,020 the correct crystal oscillator and capacitors 226 00:10:50,380 --> 00:10:51,520 critical for the chip's function 227 00:10:51,820 --> 00:10:53,660 are all specified here and laid out properly 228 00:10:53,780 --> 00:10:55,240 according to the guidelines in the data sheet. 229 00:10:56,240 --> 00:10:58,060 having those tiny but important details bundled up 230 00:10:58,080 --> 00:10:58,600 is really nice. 231 00:10:58,720 --> 00:11:00,900 Like normally you'll be copying and pasting those 232 00:11:01,000 --> 00:11:02,520 from previous known working circuits. 233 00:11:02,580 --> 00:11:05,880 And so now you just say, import RP2040 234 00:11:05,880 --> 00:11:08,500 at the top of your out of file file and you get all that. 235 00:11:09,220 --> 00:11:10,640 And so out of pile is also a compiler. 236 00:11:11,150 --> 00:11:12,800 Once you have your out of pile code written 237 00:11:13,300 --> 00:11:15,220 using these modules and some of your own, 238 00:11:15,680 --> 00:11:17,560 the out of pile compiler generates the PCB. 239 00:11:18,420 --> 00:11:20,000 When you open the board in KiCad, 240 00:11:20,360 --> 00:11:22,380 you'll see the sub modules that are fully routed, 241 00:11:22,740 --> 00:11:24,180 but the connections between them are not. 242 00:11:24,280 --> 00:11:25,800 so you maybe just move them around 243 00:11:26,320 --> 00:11:28,300 and then quickly hand route the connections between 244 00:11:28,940 --> 00:11:29,920 and you're bored to be finished. 245 00:11:30,340 --> 00:11:32,580 From code to finished PCB, how amazing is that? 246 00:11:33,260 --> 00:11:34,660 Well, that's the dream. (laughs) 247 00:11:35,080 --> 00:11:37,000 And it's not even the end goal for the devs. 248 00:11:37,440 --> 00:11:38,880 By moving the logical design, 249 00:11:39,080 --> 00:11:40,660 the schematic side of things, 250 00:11:41,010 --> 00:11:44,220 into this hierarchical code-like way of specifying it, 251 00:11:44,640 --> 00:11:47,020 the AdaPile devs are hoping to leverage LLMs 252 00:11:47,350 --> 00:11:48,420 to help design circuits. 253 00:11:49,230 --> 00:11:52,079 To do this, they have a first-party VS Code extension 254 00:11:52,080 --> 00:11:55,240 and uses cursor AI to help with writing the Adopile code. 255 00:11:55,740 --> 00:11:57,480 Apparently it's pretty good at writing Adopile code. 256 00:11:57,620 --> 00:11:58,200 I mean, you know, 257 00:11:59,300 --> 00:12:00,480 me as someone who's only been playing with it 258 00:12:00,480 --> 00:12:01,000 for about a week, 259 00:12:01,720 --> 00:12:02,940 it writes a better Adopile code than me. 260 00:12:03,760 --> 00:12:05,360 I've been playing with it, it's interesting. 261 00:12:05,880 --> 00:12:07,000 I'm a bit skeptical. 262 00:12:07,820 --> 00:12:10,160 There's a bunch of gaps in the package manager, 263 00:12:10,330 --> 00:12:11,000 sort of like, you know, 264 00:12:11,340 --> 00:12:14,900 how useful is Python without all the cool libraries 265 00:12:15,040 --> 00:12:15,740 that exist out there? 266 00:12:15,800 --> 00:12:17,900 It's hard, if you're having to reinvent everything, 267 00:12:17,980 --> 00:12:18,500 it's kind of tough. 268 00:12:18,800 --> 00:12:20,700 It's the same thing in KiCad. 269 00:12:20,800 --> 00:12:22,240 It's like, KiCad is much easier 270 00:12:22,440 --> 00:12:24,300 because of all the available components already there. 271 00:12:24,300 --> 00:12:26,200 You don't have to draw every component. 272 00:12:26,440 --> 00:12:28,300 You can import the libraries and stuff. 273 00:12:29,160 --> 00:12:30,700 Also in regular circuit design, 274 00:12:31,260 --> 00:12:33,000 there is this back and forth that usually happens 275 00:12:33,060 --> 00:12:35,620 between the schematic design and the PCB design. 276 00:12:35,700 --> 00:12:37,180 It's called forward and backward annotation. 277 00:12:37,920 --> 00:12:40,140 You know, you'll be laying out the PCB 278 00:12:40,240 --> 00:12:41,700 and you'll wanna make some small changes. 279 00:12:41,920 --> 00:12:42,820 And so you make those changes 280 00:12:42,840 --> 00:12:44,960 and then you have that update the schematic. 281 00:12:45,740 --> 00:12:47,280 And this sort of back and forth happens a lot. 282 00:12:47,780 --> 00:12:49,140 AutoPilot doesn't support this concept. 283 00:12:49,260 --> 00:12:52,500 its flow is very much one way from code to PCB layout. 284 00:12:53,100 --> 00:12:56,760 It breaks the way that you think of your design 285 00:12:57,000 --> 00:12:58,320 if you're used to that way of thinking, 286 00:12:58,720 --> 00:13:00,480 but it's very similar to how code works. 287 00:13:00,480 --> 00:13:03,000 You don't take your machine code and make changes 288 00:13:03,000 --> 00:13:05,100 and then push that back up to your source code. 289 00:13:05,860 --> 00:13:08,380 Related to me, this got me looking into KiCad 290 00:13:08,480 --> 00:13:11,680 and KiCad supports design blocks in a schematic view. 291 00:13:11,740 --> 00:13:15,320 These are reusable schematic functional modules 292 00:13:15,420 --> 00:13:16,440 that you can just plop down, 293 00:13:16,900 --> 00:13:18,800 sort of similar to the reusable module of Adopile, 294 00:13:19,500 --> 00:13:20,940 but KiCad doesn't yet have 295 00:13:21,120 --> 00:13:23,740 the corresponding PCB layout side of that, 296 00:13:24,360 --> 00:13:26,300 which is the part that for Adopile 297 00:13:26,300 --> 00:13:27,240 is really attractive to me. 298 00:13:28,180 --> 00:13:30,460 'Cause layout of this is really kind, 299 00:13:30,560 --> 00:13:31,980 like layout of some of these subcircuits, 300 00:13:32,420 --> 00:13:34,020 these complex subcircuits that are high frequency 301 00:13:34,300 --> 00:13:36,880 or have weird capacitance, like RF circuits 302 00:13:37,380 --> 00:13:39,280 is a real tricky thing. 303 00:13:39,280 --> 00:13:41,760 So having that already done for you and done once is nice. 304 00:13:42,740 --> 00:13:44,300 And also I miss schematics. 305 00:13:46,080 --> 00:13:47,540 The code view of AdaPal is nice, 306 00:13:48,060 --> 00:13:49,480 but like well-structured code, 307 00:13:49,580 --> 00:13:51,200 a lot of the implementation of a circuit 308 00:13:51,240 --> 00:13:52,700 is hidden behind the sub-modules, 309 00:13:52,920 --> 00:13:54,040 but these sub-circuits. 310 00:13:55,019 --> 00:13:57,100 And when you're trying to figure out a problem 311 00:13:57,100 --> 00:13:58,140 with your circuit, it's often useful 312 00:13:58,140 --> 00:14:00,500 to get a holistic view of how the whole thing works, 313 00:14:00,840 --> 00:14:02,600 which you can get with one schematic page, 314 00:14:03,000 --> 00:14:05,040 but it's hard to do that with these sort of 315 00:14:05,460 --> 00:14:07,140 well-structured code that AdaPal encourages. 316 00:14:08,200 --> 00:14:09,700 So I'm gonna keep playing with AdaPal. 317 00:14:10,020 --> 00:14:10,680 Seems really interesting. 318 00:14:11,200 --> 00:14:14,920 We used to design FPGAs and ASIC chips all with schematics, 319 00:14:15,180 --> 00:14:18,800 now they're almost always done in the VHDL or VLog languages. 320 00:14:19,510 --> 00:14:25,340 So there's precedent for moving circuits from a schematic to a full code-based workflow. 321 00:14:26,080 --> 00:14:29,720 But yeah, and I'm not even touching the LLM side of things, because that's like a whole 322 00:14:29,820 --> 00:14:33,680 other can of worms I don't want to look into yet. 323 00:14:34,120 --> 00:14:34,640 But yeah, it's interesting. 324 00:14:34,870 --> 00:14:38,980 And I think if you're more a code-thinking person, Adapile might be an interesting way 325 00:14:39,060 --> 00:14:40,200 for you to get into circuit design. 326 00:14:41,220 --> 00:14:45,040 So is Adapile to PCBs like OpenSCAD is to CAD design? 327 00:14:45,980 --> 00:14:46,940 I think a little bit, yeah. 328 00:14:47,180 --> 00:14:47,500 Yeah, yeah. 329 00:14:47,760 --> 00:14:50,200 That's a good way to think about it. 330 00:14:51,100 --> 00:14:54,860 Also similarly one way, where it's like your source code and it gets compiled down into 331 00:14:54,940 --> 00:14:55,580 the solid model. 332 00:14:55,960 --> 00:14:57,100 I did think it was interesting. 333 00:14:57,300 --> 00:15:01,940 I was flipping through some of their documentation and you're right, they recommend using cursor 334 00:15:02,020 --> 00:15:02,620 as your IDE. 335 00:15:03,320 --> 00:15:08,260 And in the docs, they specifically call out that LLMs have gotten good at writing ATO 336 00:15:08,380 --> 00:15:10,260 code, which is what Adapile uses. 337 00:15:10,860 --> 00:15:17,460 I kind of did a double take when I read that because new to me, but it's great that it had something to train on. 338 00:15:18,020 --> 00:15:23,200 Yeah, it's kind of, it's an interesting, it seems like their thought process was, 339 00:15:23,600 --> 00:15:28,160 "Hey, we want to use chat.gpt to write KiCad boards. 340 00:15:28,720 --> 00:15:33,760 Oh, well, the file format that KiCad uses isn't really usable by LLMs. 341 00:15:34,140 --> 00:15:36,080 Well, what if we had a language?" 342 00:15:36,080 --> 00:15:36,740 [laughter] 343 00:15:39,080 --> 00:15:40,040 And here we are. 344 00:15:40,220 --> 00:15:40,900 And here we are. 345 00:15:42,960 --> 00:15:47,280 I'd be curious if it could be leveraged with GitHub CI, 346 00:15:47,900 --> 00:15:49,860 so that if you needed to maybe swap a part, 347 00:15:50,380 --> 00:15:54,220 and it could maybe do a check to see if it's still meeting 348 00:15:54,360 --> 00:15:56,600 the parameters set in the code. 349 00:15:57,320 --> 00:15:59,700 Yeah, that's interesting, because they do have a whole 350 00:15:59,880 --> 00:16:02,320 test framework that I've not looked into at all. 351 00:16:02,460 --> 00:16:05,660 But you can specify various attributes of components. 352 00:16:05,860 --> 00:16:09,260 and I wonder if you specify then attributes 353 00:16:09,700 --> 00:16:11,880 on the sub-circuits that use those components, 354 00:16:12,060 --> 00:16:13,580 if then you're testing, you can do like, 355 00:16:13,720 --> 00:16:16,220 oh wait, you're blowing your power budget 356 00:16:17,100 --> 00:16:18,100 or something, right? 357 00:16:18,180 --> 00:16:19,060 You know? (laughs) 358 00:16:19,420 --> 00:16:19,660 - Yeah. 359 00:16:19,980 --> 00:16:22,080 - Like, I'd be interested to see what kind of tests 360 00:16:22,300 --> 00:16:24,080 they have, because they do have some sort of a CI 361 00:16:24,520 --> 00:16:26,960 set up as well, so as you check in, it'll do some tests. 362 00:16:28,040 --> 00:16:28,980 - Yeah, that would be really cool. 363 00:16:29,380 --> 00:16:29,480 - Yeah. 364 00:16:30,080 --> 00:16:32,000 Okay, so Liz, what's your next one for this time? 365 00:16:33,100 --> 00:16:40,480 My next one is the MIDI Baby Gen 4, and it's this utility pedal made by Disaster Area Designs. 366 00:16:40,720 --> 00:16:45,500 They make a lot of music utility pedals aimed at guitarists, and it's operated by Matthew 367 00:16:45,600 --> 00:16:48,100 Farrow, who also runs Alexander Pedals. 368 00:16:48,900 --> 00:16:51,100 The MIDI Baby has been around for a bit. 369 00:16:51,100 --> 00:16:56,760 I actually did a teardown of the original one when it came out on my, let's say, YouTube 370 00:16:56,980 --> 00:16:57,160 channel. 371 00:16:58,480 --> 00:17:01,100 That's how I met Matthew. 372 00:17:01,500 --> 00:17:07,000 that. He's a really nice guy. He then offered to do a teardown of one of his Alexander pedals 373 00:17:07,040 --> 00:17:10,959 with me on the channel where he actually walked through the circuit. And the original Mini Baby 374 00:17:11,020 --> 00:17:20,120 used a SAMD21, but this new one uses an RP2040. And the reason why I bring it to the show today 375 00:17:20,220 --> 00:17:27,659 is that it also can run CircuitPython. And he has ported it to CircuitPython. It does have a USB 376 00:17:27,660 --> 00:17:34,340 MIDI host port, it has a NeoPixel. So there's definitely, I think, some interesting community 377 00:17:34,620 --> 00:17:39,980 hacking that could happen with it. And I think he's also hoping for that. There's so much awesome 378 00:17:40,200 --> 00:17:44,640 MIDI support in CircuitPython that I think with this little tiny little square pedal, 379 00:17:45,050 --> 00:17:49,420 there could be some cool stuff there. Yeah, that's pretty cool. It's like, I love the 380 00:17:49,800 --> 00:17:56,320 proliferation of these "guitar pedals" that have no like guitar-ness inherent to them. 381 00:17:57,420 --> 00:18:02,640 This is just a MIDI controller, you know, and a MIDI router that is in guitar pedal 382 00:18:02,870 --> 00:18:03,000 format. 383 00:18:04,080 --> 00:18:08,080 It's the only way I think that guitarists can really understand MIDI is if you give 384 00:18:08,100 --> 00:18:12,240 it to them as a pedal, then they're like, "Oh, okay, I get it now." 385 00:18:13,960 --> 00:18:15,000 Yeah, so this is pretty great. 386 00:18:15,040 --> 00:18:19,520 And I love how you can configure it all via the little WebUSB webpage thing, so you can 387 00:18:19,700 --> 00:18:20,600 do all these crazy stuff. 388 00:18:20,740 --> 00:18:25,540 Like, like one jack can be transmit or receive of MIDI, or it can be other stuff. 389 00:18:25,660 --> 00:18:26,440 It's just like, what? 390 00:18:27,440 --> 00:18:29,880 - Yeah, it's really wild how it all works. 391 00:18:29,920 --> 00:18:31,900 And then if they do a new firmware release 392 00:18:31,980 --> 00:18:35,840 that isn't CircuitPython that's written in the Pico tool, 393 00:18:35,980 --> 00:18:38,720 then you can also do it via the web GUI, 394 00:18:38,860 --> 00:18:39,500 which is really nice. 395 00:18:39,700 --> 00:18:40,480 - Oh, that's nice, yeah. 396 00:18:42,160 --> 00:18:44,120 All right, Paul, what's your next one for this time? 397 00:18:45,100 --> 00:18:47,100 - Next up is an open source gaming console 398 00:18:47,320 --> 00:18:48,320 called the Game Tank, 399 00:18:48,560 --> 00:18:50,880 which you can learn more at gametank.zone. 400 00:18:51,720 --> 00:18:54,959 It's marketed as an open source 8-bit retro console 401 00:18:54,960 --> 00:18:56,720 that you can build and build games for. 402 00:18:57,210 --> 00:18:59,380 It compares itself to fantasy consoles 403 00:18:59,600 --> 00:19:01,060 like Pico 8 or TIC-80, 404 00:19:01,570 --> 00:19:02,860 but sets itself apart 405 00:19:03,160 --> 00:19:05,280 because it's a physical hardware device first, 406 00:19:05,980 --> 00:19:07,480 followed by an emulator second. 407 00:19:08,240 --> 00:19:10,940 And yes, there's an emulator also to make development easier. 408 00:19:11,480 --> 00:19:13,900 The emulator runs on Linux, Mac OS, and Windows. 409 00:19:14,550 --> 00:19:16,060 And when they say it's open source, 410 00:19:16,460 --> 00:19:17,600 everything is open source. 411 00:19:17,730 --> 00:19:20,360 You can get the PCB schematics in Eagle or KiCad 412 00:19:20,440 --> 00:19:21,820 right from their GitHub repository, 413 00:19:22,230 --> 00:19:23,400 so you can order your own. 414 00:19:23,880 --> 00:19:27,660 It also includes the files for 3D printing, so you can print your own shell or even print 415 00:19:27,700 --> 00:19:28,420 your own controller. 416 00:19:29,140 --> 00:19:36,220 For the hardware, it features a 3.5 MHz CPU with a double 128x128 framebuffer with 200 417 00:19:36,520 --> 00:19:36,820 colors. 418 00:19:37,300 --> 00:19:39,900 It also features a dedicated audio coprocessor. 419 00:19:40,780 --> 00:19:45,520 The homepage at gametake.zone features a one-minute teaser YouTube video that you have to see 420 00:19:45,580 --> 00:19:47,300 the motherboard with all the chips built in. 421 00:19:47,360 --> 00:19:49,040 It looks like it's right out of the 80s. 422 00:19:50,560 --> 00:19:54,280 One of the things that sets it apart, though, is that it's an actual hardware console that 423 00:19:54,460 --> 00:19:56,940 uses actual cartridges to load the games. 424 00:19:57,620 --> 00:20:02,040 For developers, there's a GameTake cartridge programmer that connects via USB-C to flash 425 00:20:02,100 --> 00:20:04,400 ROM files onto compatible cartridges. 426 00:20:05,440 --> 00:20:09,580 For creating the games themselves, there's a C SDK and a Rust SDK. 427 00:20:10,340 --> 00:20:11,800 Say that three times fast. 428 00:20:13,280 --> 00:20:18,060 On the CrowdSupply page, it mentions because it's open source, that's how the Rust SDK, 429 00:20:18,360 --> 00:20:21,440 the Rust emulator and the Rust Cartridge Flasher program, 430 00:20:22,060 --> 00:20:24,700 which has overtaken the C++ version and features, 431 00:20:24,860 --> 00:20:25,700 all came to be. 432 00:20:26,760 --> 00:20:29,680 The Game Take originally sold for $300 in their store, 433 00:20:29,880 --> 00:20:31,420 so we'll have to see how much it will be 434 00:20:31,640 --> 00:20:33,540 once the crowd supply campaign kicks off. 435 00:20:34,120 --> 00:20:36,760 It's a pretty neat project in that everything 436 00:20:36,940 --> 00:20:39,520 from the console to the software SDKs to the emulator 437 00:20:39,780 --> 00:20:40,940 are all open source. 438 00:20:41,680 --> 00:20:42,200 - That's really cool. 439 00:20:42,320 --> 00:20:46,099 And I must say, the fact that it has those DB9 connectors 440 00:20:46,100 --> 00:20:50,120 for the joysticks is a super, super retro triggering for me. 441 00:20:51,200 --> 00:20:51,460 - Yeah. 442 00:20:52,300 --> 00:20:54,000 - Yeah, and when you actually open the shell 443 00:20:54,040 --> 00:20:56,560 and look at the motherboard, for lack of a better word, 444 00:20:56,680 --> 00:20:59,000 it takes me right back to looking at like an Apple II 445 00:20:59,120 --> 00:21:01,140 with all the different chips laid out in order. 446 00:21:01,960 --> 00:21:04,980 - Totally, yeah, this looks, it's got a very retro look. 447 00:21:05,040 --> 00:21:08,120 Like a lot of these modern console retro game platforms 448 00:21:08,140 --> 00:21:10,620 are basically like, here's the one big FPGA 449 00:21:11,020 --> 00:21:13,000 or the one big microcontroller that does everything. 450 00:21:13,420 --> 00:21:16,660 But this one looks like it's from the 80s or 90s on the inside. 451 00:21:17,260 --> 00:21:19,780 I love that there's this renaissance happening right now, 452 00:21:19,840 --> 00:21:22,480 like kind of retro computing, 453 00:21:24,120 --> 00:21:26,400 but rethought with a modern spin on it. 454 00:21:26,520 --> 00:21:28,680 It's really cool to see all these different projects coming out. 455 00:21:29,840 --> 00:21:33,060 Yep. There's some Pico 8 games that you can play right now in a browser. 456 00:21:33,280 --> 00:21:35,200 And I think even their emulator works in a browser. 457 00:21:35,440 --> 00:21:37,040 So it just makes it so much more accessible. 458 00:21:37,800 --> 00:21:41,580 Yeah. I like that the emulator they've got on Linux, Mac OS and Windows. 459 00:21:41,620 --> 00:21:41,960 That's cool. 460 00:21:42,640 --> 00:21:45,300 Confidence usually one or one, yeah. 461 00:21:47,580 --> 00:21:49,220 - All right, Tod, why don't you wrap it up for us? 462 00:21:50,480 --> 00:21:52,340 - Okay, so you know, Quick StemmaQT, 463 00:21:52,520 --> 00:21:54,540 the cabling standard by SparkFun and Adafruit? 464 00:21:55,040 --> 00:21:56,920 It enables hundreds of different I2C devices 465 00:21:57,020 --> 00:21:58,260 to connect in a consistent way, 466 00:21:58,300 --> 00:22:00,220 make it easier for new people to get going, 467 00:22:00,680 --> 00:22:02,580 and generally making prototyping ideas a lot faster. 468 00:22:03,460 --> 00:22:05,620 But using that makes your project bulky fast 469 00:22:05,720 --> 00:22:08,040 if you get a couple of different StemmaQT modules. 470 00:22:08,820 --> 00:22:10,980 What if there was a micro-sized similar standard? 471 00:22:11,260 --> 00:22:14,640 There may be, it's called Tiles from BergZone Labs, 472 00:22:15,060 --> 00:22:17,320 and tiles are only four millimeters on a side. 473 00:22:18,000 --> 00:22:19,960 While tiles are sort of like a micro version 474 00:22:20,140 --> 00:22:21,660 of StemmaQT or Qwiic, 475 00:22:22,200 --> 00:22:23,880 they're targeting a more production level market. 476 00:22:24,560 --> 00:22:27,600 As mentioned, each tile is only four millimeters on a side, 477 00:22:28,160 --> 00:22:31,720 and it has 10 connections that consist of power, 478 00:22:31,880 --> 00:22:33,280 I2C, and SPI. 479 00:22:33,920 --> 00:22:35,700 And so these little four millimeter things 480 00:22:35,700 --> 00:22:38,940 are meant to be soldered down on easily fabbed carrier boards. 481 00:22:39,540 --> 00:22:41,880 You can even have the carrier board be a flex circuit. 482 00:22:42,780 --> 00:22:44,240 So four millimeters, how big is that? 483 00:22:44,360 --> 00:22:47,380 So if you look on your various circuit boards, 484 00:22:47,380 --> 00:22:48,540 you might see a NeoPixel LED. 485 00:22:48,970 --> 00:22:51,220 The standard ones of those are five millimeters. 486 00:22:51,860 --> 00:22:55,040 So each of these tiles is smaller than that. 487 00:22:55,480 --> 00:22:58,780 And a tile module can be a full BLE microcontroller 488 00:22:59,300 --> 00:23:04,080 or a six axis IMU or a LiPo battery management circuit 489 00:23:04,250 --> 00:23:06,060 or a haptic driver, a heart rate sensor. 490 00:23:06,220 --> 00:23:08,980 There's 26 tiles under active development. 491 00:23:09,520 --> 00:23:11,240 And they all connect together sort of like the way 492 00:23:11,280 --> 00:23:14,100 a StemmaQT sort of bundle of things would. 493 00:23:14,880 --> 00:23:18,120 The carrier PCB can be small enough to be production ready 494 00:23:18,480 --> 00:23:19,840 'cause it's, you know, the four millimeters, right? 495 00:23:20,120 --> 00:23:22,820 It's taking the design blocks approach I mentioned before 496 00:23:22,900 --> 00:23:25,720 with like KiCad or Autopile and making them physical. 497 00:23:26,400 --> 00:23:27,960 And the nice thing about the tiles 498 00:23:28,180 --> 00:23:30,920 is that the modules will be pre-verified and certified. 499 00:23:31,070 --> 00:23:33,280 So you can just use them as if you use a component 500 00:23:33,820 --> 00:23:35,980 and all the drivers are open source, 501 00:23:36,100 --> 00:23:38,599 just kind of the same way that Adafruit open sources 502 00:23:38,600 --> 00:23:40,720 all their drivers for all their StemmaQT boards. 503 00:23:41,440 --> 00:23:42,820 It looks really interesting. 504 00:23:42,820 --> 00:23:46,800 As someone who has pretenses of making production-level things, 505 00:23:46,920 --> 00:23:49,340 this is a really cool way of almost going to production 506 00:23:49,760 --> 00:23:51,200 with things that are kind of like StemmaQT. 507 00:23:51,900 --> 00:23:55,000 The tiles were created by a friend, an associate, 508 00:23:55,220 --> 00:23:57,800 Jonathan Fine, from the Max Planck Institute 509 00:23:57,810 --> 00:23:58,640 for Intelligent Systems. 510 00:23:59,330 --> 00:24:01,320 He created the BergZone Labs in Germany 511 00:24:01,480 --> 00:24:02,920 to encourage the use of tiles. 512 00:24:03,520 --> 00:24:06,279 BergZone is also working on an online design studio app 513 00:24:06,280 --> 00:24:08,600 to help with the creation of project using tiles. 514 00:24:09,380 --> 00:24:11,020 And they've also created some carrier boards 515 00:24:11,080 --> 00:24:11,960 with ZIF sockets, 516 00:24:12,320 --> 00:24:14,460 so that you try out different tile modules without soldering. 517 00:24:15,120 --> 00:24:17,380 I got to play with tiles a little bit a few weeks ago, 518 00:24:18,100 --> 00:24:20,280 and it's really hard to describe how small they are. 519 00:24:22,260 --> 00:24:24,380 They're smaller than your fingernail, you know, 520 00:24:24,480 --> 00:24:26,660 and each one is like a full computer 521 00:24:26,920 --> 00:24:28,100 or a full sensor or something. 522 00:24:28,940 --> 00:24:29,920 It's still very early days, 523 00:24:30,100 --> 00:24:32,780 but I love this modular approach of tried and true circuits. 524 00:24:33,300 --> 00:24:35,760 I love not having to reinvent the wheels. 525 00:24:35,880 --> 00:24:37,560 one of these I really love about systemic UT boards. 526 00:24:38,310 --> 00:24:40,000 And I can see new products, 527 00:24:40,460 --> 00:24:41,800 like Kickstarter type products, 528 00:24:42,690 --> 00:24:44,600 being composed entirely from tiles 529 00:24:44,840 --> 00:24:45,920 for an initial production run. 530 00:24:46,500 --> 00:24:49,340 And there'll be links to this in the show notes 531 00:24:49,420 --> 00:24:50,900 so you can see kind of like what they look like. 532 00:24:50,960 --> 00:24:53,680 There's a few reference designs that he has created. 533 00:24:53,720 --> 00:24:55,560 Like there's a ring, a smart ring, 534 00:24:55,650 --> 00:24:57,120 and there's I think a stylus, 535 00:24:57,920 --> 00:24:58,980 some other ones he's working on. 536 00:24:59,500 --> 00:25:01,300 But I hope this goes somewhere. 537 00:25:01,470 --> 00:25:03,599 I hope this gets picked up by a big manufacturer 538 00:25:03,600 --> 00:25:06,540 like, like earlier, a distributor, like a DigiKey or something, because it'd be 539 00:25:06,570 --> 00:25:09,640 kind of cool to order a whole bunch of these and build a thing. 540 00:25:09,740 --> 00:25:10,280 Yeah, definitely. 541 00:25:11,620 --> 00:25:15,500 Small enough where you could just order a whole reel for all practical purposes. 542 00:25:15,500 --> 00:25:16,180 I know, right? 543 00:25:17,980 --> 00:25:18,540 I like that. 544 00:25:18,540 --> 00:25:22,440 It seems like it's, like you said, it's like you have your kind of STEMMAQT 545 00:25:22,440 --> 00:25:25,760 kind of family of sensors, but then like this would be almost kind of 546 00:25:25,780 --> 00:25:29,460 like the next step if you were kind of doing more of a bigger production run. 547 00:25:29,840 --> 00:25:31,100 And yeah, I like that. 548 00:25:32,700 --> 00:25:33,460 Well, that's our show. 549 00:25:33,980 --> 00:25:35,740 Big thanks to Liz for joining us this episode. 550 00:25:36,220 --> 00:25:40,260 For detailed show notes and transcripts, visit thebootloader.net and click on 551 00:25:40,460 --> 00:25:41,680 news if you want to get a free sticker. 552 00:25:42,100 --> 00:25:43,800 Until next time, stay positive. 553 00:25:44,060 --> 00:25:44,540 (chiming)