1 00:00:02,200 --> 00:00:03,860 Welcome to The Bootloader. I'm Tod Kurt. 2 00:00:04,360 --> 00:00:08,940 And I'm Paul Cutler. We're excited to welcome a special guest today, Brent Rubell of Adafruit Industries. 3 00:00:09,780 --> 00:00:15,660 The show works like this. We've each brought two things to share, which we'll talk about, but for no longer than five minutes each. 4 00:00:16,200 --> 00:00:19,380 We have detailed show notes and transcripts available at the bootloader.net. 5 00:00:20,040 --> 00:00:20,980 Brent, welcome to the show. 6 00:00:22,340 --> 00:00:23,280 Hello. Happy to be here. 7 00:00:24,380 --> 00:00:26,400 What's the first one that you brought for us this episode? 8 00:00:27,320 --> 00:00:29,960 Okay, for my first one, we have Wippersnapper. 9 00:00:30,000 --> 00:00:33,860 is offline mode. So I'm biased on this note. I work for Adafruit as an engineer. 10 00:00:34,860 --> 00:00:38,440 Back up and explain this site, I'm Wippersnapper' as firmware I work on. It enables people to 11 00:00:38,780 --> 00:00:42,860 visually create internet-connected electronics project. It means you can click your way into a 12 00:00:43,080 --> 00:00:47,380 functioning prototype. No programming involved. It's really good for scientists, artists, and 13 00:00:47,440 --> 00:00:52,800 non-technical people to get projects off the ground that they want to get going. And my colleague, 14 00:00:52,900 --> 00:00:57,000 Loren and I work on Wippersnapper. He's like the website of things. I'm the embedded side of things. 15 00:00:57,720 --> 00:01:00,020 And we also have other people work in this project, 16 00:01:00,160 --> 00:01:01,140 but we're the main two leads. 17 00:01:01,760 --> 00:01:02,640 It's been pretty fun. 18 00:01:03,420 --> 00:01:04,260 It's been out for a while now. 19 00:01:04,360 --> 00:01:05,800 I think we were talking about that Paul. 20 00:01:05,880 --> 00:01:08,200 It's like the original guide's like 2020. 21 00:01:09,180 --> 00:01:10,540 And it was an alpha, then beta. 22 00:01:10,740 --> 00:01:12,440 Now the beta tag's about to be ripped off. 23 00:01:12,560 --> 00:01:14,880 So we spent the last year re-doing the API, 24 00:01:15,020 --> 00:01:16,020 that involves rewriting the firmware. 25 00:01:16,400 --> 00:01:20,420 And then like one of the more fun things I think that we've added is offline mode. 26 00:01:21,280 --> 00:01:23,080 So like we didn't intend to add this feature at all. 27 00:01:23,220 --> 00:01:25,560 I needed a way of testing the API and functionality. 28 00:01:25,560 --> 00:01:27,500 And Loren was like, he's busy as something. 29 00:01:27,520 --> 00:01:29,760 else right now as far as development. 30 00:01:30,180 --> 00:01:33,660 And usually we work in tandem, like, he'll implement things, and then I'll come in on 31 00:01:33,800 --> 00:01:37,500 the embedded site and I'll implement things, and then we'll just, like, work like that. 32 00:01:37,620 --> 00:01:39,740 But right now, it's like I was stuck. 33 00:01:40,000 --> 00:01:44,140 So we added this feature that allows you to create a project on Adafruit I.O. 34 00:01:44,700 --> 00:01:49,180 Download a file, which is like a JSON encoded file, and then you just drag it onto the device. 35 00:01:49,800 --> 00:01:52,920 Then the device reads back this file and, like, automatically configure it to itself. 36 00:01:53,420 --> 00:01:55,060 So there's logging data out to an SD card. 37 00:01:55,680 --> 00:02:03,660 So there's like no network connection, but the grand idea of like creating a device by clicking some buttons on a website still exists. 38 00:02:04,360 --> 00:02:04,560 It's cool. 39 00:02:04,620 --> 00:02:09,119 There's like nothing like this where you can just create a project and download it and starts logging data. 40 00:02:09,700 --> 00:02:12,920 And it's also sitting, it's like doing a magic trick where it sits on the same firmware. 41 00:02:13,560 --> 00:02:19,460 So if you insert an SD card and add this like special file, then it will switch into offline mode. 42 00:02:20,140 --> 00:02:24,280 And if you don't do that, it will switch into online mode and start logging out to Adafird iOS. 43 00:02:24,480 --> 00:02:41,120 So, like, this is a totally weird little side project that I'm working on that I think is going to be really useful for mostly, like, people working on environmental sensing projects because it's like the existing ways of getting these up and running do involve programming. 44 00:02:41,380 --> 00:02:50,600 Or they do involve buying this, like, NCD makes these like $3 to $400 versions of this, which are like kind of expensive for like a nonprofit. 45 00:02:50,840 --> 00:02:53,940 So like the board I used in the guide is like the. 46 00:02:54,380 --> 00:02:58,760 Adalogger, which is like really cheap, and then like a BME sensor, which is also like, 47 00:02:58,900 --> 00:03:03,240 so the whole thing comes in under $50, which is a big difference from $400. 48 00:03:04,140 --> 00:03:04,360 Totally. 49 00:03:04,660 --> 00:03:08,340 And this is kind of amazing because like, I mean, first there's just the Wippersnapper thing 50 00:03:08,520 --> 00:03:13,180 itself, which totally solved sort of the last conceptual mile problem for me of like, 51 00:03:13,280 --> 00:03:17,980 okay, I've got a thing that can send MQTT messages and maybe I set up a broker somewhere, 52 00:03:18,880 --> 00:03:21,920 but then how do I actually configure what all the messages mean? 53 00:03:22,740 --> 00:03:26,600 And how do I ensure that there's no sort of decay between the sender and the receiver? 54 00:03:27,560 --> 00:03:30,640 And like Wippersnapper and Adafruit Io kind of made all that just not be a problem. 55 00:03:30,760 --> 00:03:34,900 It just kind of you configure it and it updates the device. 56 00:03:35,180 --> 00:03:41,080 And now you can do that for data logging, which is, I don't know, it seems like a totally separate thing than Wippersnapper to me. 57 00:03:41,540 --> 00:03:42,240 A huge thing. 58 00:03:42,580 --> 00:03:44,760 It's almost to have its own separate name to me. 59 00:03:44,860 --> 00:03:47,800 But I like that it's under the umbrella of Wippersnapper. 60 00:03:47,900 --> 00:03:51,620 So it's all the same configuration, all the same UI that you use to configure it. 61 00:03:52,500 --> 00:03:54,520 Yeah, I mean, the name's immutable. 62 00:03:54,780 --> 00:03:55,860 I haven't changed it yet. 63 00:03:56,000 --> 00:03:56,640 I haven't done anything. 64 00:03:56,740 --> 00:03:59,940 I'm just like, well, it logs offline and it also sends the online. 65 00:04:00,640 --> 00:04:02,800 But I haven't, if you have a name, Tod, like, let me know. 66 00:04:03,480 --> 00:04:04,300 I have no idea. 67 00:04:04,420 --> 00:04:09,600 I mean, that's the thing is that I think drafting off the Wippersnapper concept is really handy 68 00:04:09,760 --> 00:04:13,400 because people know that, like, oh, I can use Wippersnapper to quickly configure a device. 69 00:04:14,040 --> 00:04:17,959 Like, I want to hook up this sensor to this pin and this other sensor to this other pin. 70 00:04:18,380 --> 00:04:20,359 And that, you don't have to write any code to do that. 71 00:04:20,579 --> 00:04:21,959 You just drag and drop in things. 72 00:04:22,540 --> 00:04:30,660 If that is what Wippersnapper is, then the output mode could either be MQTT or it can be an SD card text file, I guess. 73 00:04:31,380 --> 00:04:31,520 Yeah. 74 00:04:32,300 --> 00:04:36,240 And I got to believe there's a subset of people out there who don't want to connect to AtaFruid I.O. 75 00:04:36,300 --> 00:04:37,760 Or don't want it network connected. 76 00:04:38,440 --> 00:04:46,140 So this is a great tool for those kind of people who want to keep their devices offline or off the IoT networks or whatever they're doing. 77 00:04:46,980 --> 00:04:47,900 I think that's growing too. 78 00:04:48,260 --> 00:04:52,120 You're seeing like home assistant and more project that popular because it's like people don't want to put their. 79 00:04:52,160 --> 00:04:57,420 data on like commercial servers or like a different server is pretty great as far as like 80 00:04:57,980 --> 00:05:03,080 maintaining your like privacy rights but like the bigger like AWS and Google and also like 81 00:05:03,540 --> 00:05:07,960 wherever my robot vacuum sends the server image like the image of my house that's like later 82 00:05:08,240 --> 00:05:13,160 later mapped I don't know where it's going but like an SD card that I can like pop out a device 83 00:05:13,660 --> 00:05:19,799 that's pretty rad yeah I mean also just for just for longevity like the internet between your 84 00:05:19,840 --> 00:05:24,420 device and the server recording the information, there are so many points of failure there. 85 00:05:24,760 --> 00:05:26,940 And with the SD card, it's just the device. 86 00:05:27,680 --> 00:05:30,060 There's like so few places it can go wrong. 87 00:05:30,820 --> 00:05:32,340 I'm glad we have that alternative now. 88 00:05:32,580 --> 00:05:32,760 Awesome. 89 00:05:33,020 --> 00:05:33,200 Thanks. 90 00:05:33,780 --> 00:05:35,740 All right, Tod, what did you bring us this episode? 91 00:05:36,720 --> 00:05:42,040 Okay, so a couple weeks ago, maybe two weeks, one week, there is now 200 megahertz clock 92 00:05:42,240 --> 00:05:43,380 support for the RP 2040. 93 00:05:43,940 --> 00:05:44,580 Good news, everyone. 94 00:05:44,840 --> 00:05:45,420 What does this mean? 95 00:05:45,720 --> 00:05:47,560 It's a free speed boost for your pico. 96 00:05:48,160 --> 00:05:51,700 Raspberry Pi officially supports overclocking the PICO RP2040. 97 00:05:52,340 --> 00:05:55,240 When the RP2040 chip that's in the PICO was first announced, 98 00:05:55,840 --> 00:05:59,760 the PICO SDK library that you use with it ran the chip at 125 meghertz, 99 00:06:00,060 --> 00:06:04,260 even though the data sheet for the chip says it's 133 meghertz parts. 100 00:06:04,340 --> 00:06:06,960 So it's already a little bit of like, hey, why is it underclocked? 101 00:06:07,260 --> 00:06:11,200 Sometimes that means that the manufacturer is a little bit conservative with their design, 102 00:06:11,760 --> 00:06:15,480 so they kind of run it slower than what their specs were, just in case there's problems. 103 00:06:15,820 --> 00:06:19,420 But it turned out the RP2040 has been incredibly overclockable. 104 00:06:19,860 --> 00:06:26,560 People have been doubling its speed to 250 megahertz with no downsides as far as pretty much I've known that you can do this. 105 00:06:27,000 --> 00:06:36,400 Many of my RP20-based CircuitPython synth projects run at that 250 megahertz because you can get a higher quality sample rate for your audio stuff. 106 00:06:37,280 --> 00:06:41,280 And normally overclocking on CPUs is frowned upon by the manufacturer. 107 00:06:41,420 --> 00:06:44,760 You can actually burn up a desktop CPU when you overclock it. 108 00:06:45,320 --> 00:06:48,000 So Intel is usually like, no, you know. 109 00:06:48,400 --> 00:06:53,140 But of course, there's all these cool gamer overclocking rigs that have been liquid cooled and stuff 110 00:06:54,160 --> 00:06:55,240 to make it until you like double the speed. 111 00:06:55,660 --> 00:06:59,760 So some of the vendors who have made RP20-based things have been reluctant to sell something 112 00:07:00,140 --> 00:07:03,640 that depended upon an overclockerty-2040 because of this sort of historical fear. 113 00:07:04,400 --> 00:07:10,120 But then last week, Raspberry Pi officially announced that the PICO SDK will default to 200 megahertz. 114 00:07:10,320 --> 00:07:12,000 That's almost twice the speed. 115 00:07:12,060 --> 00:07:14,380 It's like 60% faster or 70% is half faster. 116 00:07:15,080 --> 00:07:17,340 and that speed can be configured via compile time to find. 117 00:07:18,080 --> 00:07:21,760 In CircuitPython and in the Arduino Pico Arduino Core for the RP2040, 118 00:07:22,160 --> 00:07:24,520 changing the CPU speed has always been pretty easy. 119 00:07:24,680 --> 00:07:28,720 In CircuitPython, you can do it in real time, in the REPL even, 120 00:07:29,680 --> 00:07:31,580 by just setting the microcontroller.computer. 121 00:07:31,680 --> 00:07:36,920 One of the things you can use that for is you can underclock the CPU 122 00:07:37,080 --> 00:07:40,300 to make the chip draw less power when it's on a battery. 123 00:07:41,020 --> 00:07:44,380 Because one of the cool things about microcontrollers is their power usage scales 124 00:07:44,440 --> 00:07:46,560 pretty linearly with clock speed. 125 00:07:47,160 --> 00:07:49,660 So if you half the speed of the microcontroller, 126 00:07:49,760 --> 00:07:52,420 it's going to draw half the power, almost exactly. 127 00:07:53,220 --> 00:07:55,780 And in Arduino, you can do it with a compile time directive 128 00:07:55,920 --> 00:08:00,000 that's just in the tool CPU speed menu in the Arduino IDE. 129 00:08:00,780 --> 00:08:02,880 It's been pretty cool that we've been able to do this 130 00:08:03,000 --> 00:08:04,400 without any seeming repercussions. 131 00:08:04,980 --> 00:08:08,880 Like there's this one guy who makes a project called Pico Gus, GUS. 132 00:08:09,460 --> 00:08:14,360 It's a sound card, like an old IBM sound. 133 00:08:14,380 --> 00:08:19,780 sound card, Gravis Ultrasound, I think was the name of the sound card, that is emulated with a 134 00:08:20,080 --> 00:08:29,620 RP2040 chip. And he runs that at 366 megahertz. So clearly, clearly the Raspberry Pi team 135 00:08:29,720 --> 00:08:34,180 who've designed this chip did a pretty good job because it's so overclockable. And now Raspberry 136 00:08:34,280 --> 00:08:38,840 Pi officially supports it. It seemed like it just came out of nowhere after having the RP 2040 137 00:08:39,060 --> 00:08:44,200 around for three, four years for them just to support it. Sure, people like you were doing it, 138 00:08:44,600 --> 00:08:48,100 But all of a sudden they just dropped that news and everyone's like, oh, my goodness, this is so cool. 139 00:08:48,600 --> 00:08:52,840 Yeah, yeah, it makes me almost wonder if they're like, hmm, well, everybody's been doing it and there haven't been any reported problems. 140 00:08:53,060 --> 00:08:54,000 So let's just make it official. 141 00:08:55,140 --> 00:08:56,360 Are there any heat issues? 142 00:08:57,240 --> 00:08:58,960 You know, I don't, I've not detected any. 143 00:08:59,240 --> 00:09:07,320 Just from the very gross determination of putting my finger on the chip, like normally when chips or my controlers running hot, you can just kind of feel it. 144 00:09:07,420 --> 00:09:08,380 Go, okay, that doesn't feel right. 145 00:09:08,980 --> 00:09:14,080 There's really no obvious observable problems as far as far as I've seen. 146 00:09:14,260 --> 00:09:15,840 Yeah, so yay for us. 147 00:09:17,360 --> 00:09:18,900 So hey, Paul, what's your first one this week? 148 00:09:19,340 --> 00:09:21,240 I'm going to come back to something that we've touched on before, 149 00:09:21,480 --> 00:09:23,740 but that's microcontrollers as mini computers. 150 00:09:24,580 --> 00:09:28,800 Microcontrollers are so powerful that we're starting to see almost full-fledged mini-computers being built, 151 00:09:29,280 --> 00:09:31,060 which we have talked about in a past episode. 152 00:09:31,860 --> 00:09:32,900 We're getting closer every day, 153 00:09:33,000 --> 00:09:37,580 and a maker named Abe Haskins has built a small handheld computer called the Slime Deck Zero 154 00:09:37,840 --> 00:09:40,360 using Pimoroni's Pico Vision as its brain. 155 00:09:40,960 --> 00:09:43,500 Abe has a great 25-minute video up on YouTube, 156 00:09:43,680 --> 00:09:47,020 It might sound like it's a little long, but it's engaging as all heck, 157 00:09:47,340 --> 00:09:48,880 and I highly recommend checking it out. 158 00:09:49,260 --> 00:09:53,660 He shows the entire process and all the parts used to build this tiny handheld computer 159 00:09:53,800 --> 00:09:58,120 that runs MicroPython, has an app launcher and operating system called Slime OS, 160 00:09:58,840 --> 00:10:02,700 and even has an expansion slot to add additional hardware peripherals. 161 00:10:03,120 --> 00:10:06,280 It features a keyboard he disassembled from a $9 remote control, 162 00:10:06,880 --> 00:10:12,300 a 5-inch 800-by-460 screen, and uses the Pico Vision from Pimoroni as its brains. 163 00:10:12,820 --> 00:10:15,540 The PicoVision features two RP2040 chips, 164 00:10:15,700 --> 00:10:18,240 one acting as the CPU and the other is the GPU. 165 00:10:19,080 --> 00:10:21,120 He created a custom PCB for the keyboard 166 00:10:21,240 --> 00:10:26,100 to talk to the PicoVision over I-2C using a quick StemmaQT port. 167 00:10:26,920 --> 00:10:28,880 One of the neatest features of the Slime Deck Zero 168 00:10:29,100 --> 00:10:31,380 is that Abe added this expansion port. 169 00:10:32,040 --> 00:10:34,380 Abe demos it by plugging a XIAO microcontroller 170 00:10:34,500 --> 00:10:37,660 in that's wired to an LED that the slime deck zero could control. 171 00:10:38,520 --> 00:10:39,620 It's running MicroPython, 172 00:10:39,960 --> 00:10:42,100 and Abe has created a custom app launcher for it. 173 00:10:42,540 --> 00:10:49,560 It's also aware when something is plugged into the expansion port and can display an app if applicable for the hardware plugged into the port. 174 00:10:50,400 --> 00:10:53,460 The second one is the new Adafruit Fruit Jam. 175 00:10:54,500 --> 00:10:59,260 This handheld is something Adafruits been teasing for the last few weeks, which they've codenamed Fruit Jam. 176 00:10:59,340 --> 00:11:00,740 I don't think it'll be the final name. 177 00:11:01,520 --> 00:11:12,500 Lady Ada was inspired from a recent Hackaday hackchat with Raspberry Pi's Eben Upton and built a credit card-sized computer using a Raspberry Pi 2350B chip, the one with the 178 00:11:12,560 --> 00:11:20,180 extra GPIO. The number of peripherals built in on the fruit jam is crazy. It includes 16 mega flash and 179 00:11:20,280 --> 00:11:28,200 8 megs of RAM, a microSD card, DVI output using the new HSTX port, I2S stereo headphone and a 180 00:11:28,320 --> 00:11:34,940 mono speaker, not one, but two USB type A ports for USB host for things like keyboards, mice, 181 00:11:35,020 --> 00:11:42,480 or game controllers, StemmaQT, and Stemma Classic, I spy for TFT displays, five neopixels, and 182 00:11:42,500 --> 00:11:43,360 and three switches. 183 00:11:44,320 --> 00:11:49,380 So this is literally almost a motherboard for a handheld mini computer. 184 00:11:50,480 --> 00:11:52,820 Scott Shawcroft, CircuitPython's lead developer, 185 00:11:52,940 --> 00:11:55,980 has been sharing progress on it during his Friday deep dive streams. 186 00:11:56,540 --> 00:11:58,280 I can't wait to get my hands on one of these. 187 00:11:58,420 --> 00:11:59,860 As soon as they put it up for pre-order it, 188 00:12:00,680 --> 00:12:04,280 I'm like, notify me, notify me and put my email with this in right away. 189 00:12:05,360 --> 00:12:10,760 Yeah, it's just begging to be made into a little tiny video game console-looking box 190 00:12:10,840 --> 00:12:15,040 because it's got the two USB ports on the front, 191 00:12:15,680 --> 00:12:16,960 like what I'm considering the front, 192 00:12:17,280 --> 00:12:20,180 and then it's got the video and power port out the back. 193 00:12:20,820 --> 00:12:24,520 I can see a little Nintendo-style box for it 194 00:12:24,900 --> 00:12:26,360 coming out pretty quickly for it. 195 00:12:26,720 --> 00:12:30,620 And there are these little $10-NES-like USB controllers 196 00:12:30,900 --> 00:12:32,360 you can get to plug in. 197 00:12:32,900 --> 00:12:35,860 And the Fruit Jam also has a row of, I think, 198 00:12:35,920 --> 00:12:40,740 maybe 20 or 10 GPIO pins located right behind the USB 199 00:12:40,780 --> 00:12:44,100 ports, and that's on, I'm thinking, oh, that's a cartridge slot. 200 00:12:44,840 --> 00:12:45,060 Oh. 201 00:12:46,740 --> 00:12:49,260 I mean, the board already has so much memory on it. 202 00:12:49,300 --> 00:12:51,960 You don't need to add more memory with a cartridge, but maybe the cartridge is basically 203 00:12:52,040 --> 00:12:57,500 just a wiring diagram that kind of enables different programs that are already on the 204 00:12:57,880 --> 00:12:58,780 fruit gem itself to load. 205 00:12:59,620 --> 00:13:02,400 But it'd be fun to actually plug the cartridge in and then play the video game. 206 00:13:02,640 --> 00:13:02,980 Absolutely. 207 00:13:04,000 --> 00:13:04,800 We want the slime deck. 208 00:13:04,960 --> 00:13:07,520 I'm really interested in the fact that it has the expansion port. 209 00:13:07,940 --> 00:13:10,720 I've been seeing more expansion ports on devices, like the framework, lap, 210 00:13:10,740 --> 00:13:13,860 top super popular and it has this expansion port and people love it. 211 00:13:14,280 --> 00:13:16,960 And they're like, oh, it could be a USB port, could be a SD card reader. 212 00:13:17,560 --> 00:13:22,180 Like, I feel that's getting more popular as far as like things that people want there. 213 00:13:22,620 --> 00:13:24,160 And the flipper zero has the same thing too. 214 00:13:24,260 --> 00:13:28,580 It's like, how can I expand this hardware that already has some level of functionality? 215 00:13:29,240 --> 00:13:30,180 And I don't know. 216 00:13:30,400 --> 00:13:31,480 It's interesting to like, see people. 217 00:13:32,000 --> 00:13:34,700 So like, I built this little computer and it's like, what else can I do? 218 00:13:34,800 --> 00:13:36,320 Oh, maybe I should be able to plug in something. 219 00:13:36,880 --> 00:13:38,660 But then it comes back to like, what do I plug in? 220 00:13:39,020 --> 00:13:39,220 Right. 221 00:13:39,320 --> 00:13:39,400 Yeah. 222 00:13:39,840 --> 00:13:39,960 Yeah. 223 00:13:40,140 --> 00:13:44,920 And with the slime deck, I think it's interesting that he plugged in a full-blown microcontroller. 224 00:13:45,060 --> 00:13:55,940 It's not like he just plugged in a humidity sensor or something to see a whole Cidzia board attached to it being controlled from the Picovision device, from that brain, was pretty neat. 225 00:13:56,820 --> 00:13:58,600 Yeah, and the build looks pretty good. 226 00:13:59,340 --> 00:14:06,060 I'm just kind of amazed that we have microcontrollers that can spit out essentially HTML and also do Wi-Fi and Bluetooth. 227 00:14:06,380 --> 00:14:09,400 And it's just like, it's a $5 microcontroller. 228 00:14:09,920 --> 00:14:10,060 Right. 229 00:14:11,800 --> 00:14:13,460 All right, Brent, what's your second one for us? 230 00:14:14,100 --> 00:14:14,900 Yeah, a second one. 231 00:14:15,320 --> 00:14:16,680 Did you guys talk about Obsidian before? 232 00:14:17,120 --> 00:14:17,640 We have not. 233 00:14:18,500 --> 00:14:18,740 All right. 234 00:14:19,180 --> 00:14:20,840 I've used like this Evernote program for years. 235 00:14:20,940 --> 00:14:22,200 I think John Park uses it too. 236 00:14:22,900 --> 00:14:24,880 I have so many notes and EFernote. 237 00:14:25,100 --> 00:14:25,760 I tried Notion. 238 00:14:26,300 --> 00:14:27,920 Everybody in the software field loves the notion. 239 00:14:28,340 --> 00:14:29,000 And it's too advanced. 240 00:14:29,080 --> 00:14:32,820 They don't need an entire Wikipedia like system for just my notes. 241 00:14:33,420 --> 00:14:34,340 So Obsidian's a Notes app. 242 00:14:34,880 --> 00:14:36,760 It's kind of boring, but it's good because it's boring. 243 00:14:37,260 --> 00:14:39,220 So all of your notes are stored on the vice you're writing them. 244 00:14:39,780 --> 00:14:42,720 I guess the theme today is from my brain is offline storage. 245 00:14:43,500 --> 00:14:44,780 Everything stored is a markdown file. 246 00:14:45,380 --> 00:14:47,440 And you can pop each file open in your editor. 247 00:14:47,640 --> 00:14:50,220 So in the age of cloud first, it's like great. 248 00:14:50,300 --> 00:14:51,280 You can see all your folders. 249 00:14:51,940 --> 00:14:53,240 You can see all your files in a folder. 250 00:14:53,980 --> 00:14:54,680 It just feels right. 251 00:14:54,780 --> 00:14:56,220 It's like I'm writing this file. 252 00:14:56,300 --> 00:14:57,220 This file is located here. 253 00:14:57,680 --> 00:14:58,840 It's not I'm writing this file. 254 00:14:58,940 --> 00:15:01,700 It's going to a server somewhere and I don't have this file anymore. 255 00:15:02,260 --> 00:15:05,620 What I like is how little it does and how much it can be extended based on how little it does. 256 00:15:05,720 --> 00:15:09,740 So like instead of Notions, wiki system, you can actually link each Markdown note together. 257 00:15:09,760 --> 00:15:10,900 which is really powerful. 258 00:15:11,560 --> 00:15:13,980 And if you want to do wiki stuff, you can create your own. 259 00:15:14,700 --> 00:15:19,760 And then you can create like little workflows by combining obsidian and another application. 260 00:15:19,920 --> 00:15:22,560 So it's not all like notion like sitting in one. 261 00:15:22,680 --> 00:15:26,320 So like I use Zotero to organize academic papers, journal articles. 262 00:15:26,940 --> 00:15:28,880 Then I can link Zotero entries in my notes. 263 00:15:29,020 --> 00:15:29,460 And that's it. 264 00:15:29,580 --> 00:15:30,940 Like that's the whole workflow. 265 00:15:31,460 --> 00:15:35,260 Another one I have is like Obsidian has a paid plan which lets you sink. 266 00:15:35,820 --> 00:15:37,840 But I don't necessarily need the other things under plan. 267 00:15:38,380 --> 00:15:41,500 So I can just, these are files, right, like to sit on my device. 268 00:15:41,680 --> 00:15:43,580 So, like, I have a Google Drive folder. 269 00:15:44,000 --> 00:15:46,740 I move my Obsidian Storage right into that folder. 270 00:15:47,200 --> 00:15:48,120 And there, it's, like, syncing. 271 00:15:48,800 --> 00:15:52,340 And these are marked down files, so each of them will show versioning through Google Drive. 272 00:15:52,440 --> 00:15:56,200 So there's, like, three storage and free versioning, which is really great. 273 00:15:57,120 --> 00:16:01,460 And, yeah, it's definitely like a program I've been using a lot for every type of note taking. 274 00:16:02,100 --> 00:16:06,700 Yeah, I used to be a big Evernote user and stopped when they started down the road of incitification. 275 00:16:07,720 --> 00:16:11,740 And I tried Obsidian and was a little overwhelmed by it at the time. 276 00:16:12,520 --> 00:16:19,040 And switched to an app called Bear, which is a MacOS note taking very similar where it's marked down only. 277 00:16:19,760 --> 00:16:20,520 But it's got syncing. 278 00:16:20,720 --> 00:16:24,820 But it was also a third the price of Obsidian from a yearly perspective. 279 00:16:24,980 --> 00:16:25,560 And I'm cheap. 280 00:16:26,000 --> 00:16:32,600 But one of the really neat things I think about Obsidian is there's over 2,200 different plugins for it that you can add extra functionality. 281 00:16:32,920 --> 00:16:37,520 It's just a, if there's something you want to display in a note in a different way, 282 00:16:37,640 --> 00:16:39,520 they probably have a plugin that'll do it for you. 283 00:16:40,320 --> 00:16:46,700 I only have one plugin and it's command where I just command it and I just type like date time and it puts like the current time stamp on it. 284 00:16:46,740 --> 00:16:47,400 And that's all I need. 285 00:16:47,980 --> 00:16:50,960 Like I need a way of just inlining dates into my notes. 286 00:16:51,600 --> 00:16:55,620 I think I tried Obsidian many years ago like when it first came out. 287 00:16:55,720 --> 00:17:01,460 And I think I wasn't so steeped in Markdown that I just was kind of like, meh. 288 00:17:02,060 --> 00:17:07,380 But like now that I live and breathe Markdown every day, I think I think it's time to revisit Obsidian. 289 00:17:07,579 --> 00:17:12,480 because I'm already trying to take notes in Markdown in the Mac Notes app 290 00:17:12,540 --> 00:17:15,160 and getting frustrated that doesn't do it like I think it should. 291 00:17:17,060 --> 00:17:18,040 I didn't even know it does it. 292 00:17:18,920 --> 00:17:19,420 Yeah, that's awesome. 293 00:17:20,240 --> 00:17:20,600 Yeah, I think. 294 00:17:20,720 --> 00:17:24,640 And also, Obsidian has an iOS app, which is nice, looks like. 295 00:17:25,100 --> 00:17:26,579 Yeah, they support all the different platforms. 296 00:17:26,780 --> 00:17:30,680 If you want to sync your data, it's Android, iOS, Mac, Windows, Linux. 297 00:17:31,540 --> 00:17:33,540 I know a lot of Linux users who use Obsidian. 298 00:17:34,180 --> 00:17:34,360 Yeah. 299 00:17:35,020 --> 00:17:35,940 Yeah, thanks, Brent. 300 00:17:36,020 --> 00:17:37,360 I think I'm going to try this out. 301 00:17:37,400 --> 00:17:39,320 I'm always looking for a good note system. 302 00:17:40,560 --> 00:17:41,160 Trying it again. 303 00:17:42,140 --> 00:17:42,380 Totally. 304 00:17:43,840 --> 00:17:45,680 All right, Tod, what's your second one for us? 305 00:17:46,580 --> 00:17:49,480 Paul and I and Cedar Grove Studios, aka Jan, 306 00:17:49,960 --> 00:17:51,380 just did a CircuitPython show 307 00:17:51,460 --> 00:17:53,600 about the CircuitPython Community Bundle. 308 00:17:54,260 --> 00:17:56,100 In the Arduino world, the closest equivalent 309 00:17:56,300 --> 00:17:58,640 is the Arduino Library Manager's list of libraries. 310 00:17:59,300 --> 00:18:01,540 One of my favorite ways to observe updates to that list 311 00:18:01,680 --> 00:18:03,620 was the Arduino Libs Twitter bot 312 00:18:03,780 --> 00:18:05,700 that posted whenever libraries were added or updated. 313 00:18:06,280 --> 00:18:07,140 With Twitter gone, 314 00:18:07,880 --> 00:18:10,980 And thankfully, the bot has moved on to both Macedon and Blue Sky. 315 00:18:12,020 --> 00:18:15,740 And I've always wondered how it got that information. 316 00:18:16,020 --> 00:18:16,660 And I looked into it. 317 00:18:16,700 --> 00:18:21,060 And I think it's just looking at the pull requests from the Arduino Library Registry GitHub, 318 00:18:21,880 --> 00:18:22,780 which I've done in the past. 319 00:18:22,820 --> 00:18:26,300 I've just looked through their PRs and seen what people have been adding to it. 320 00:18:26,340 --> 00:18:31,980 But it's one of the few ways that the GitHub interface is actually kind of poor to see those changes. 321 00:18:32,580 --> 00:18:37,160 So with this bot, you get to see it all in a nice little social media post size. 322 00:18:37,320 --> 00:18:38,880 with a link to the actual repo. 323 00:18:39,620 --> 00:18:42,280 The bot itself promises no more than six posts per hour, 324 00:18:42,420 --> 00:18:43,600 so it doesn't overwhelm your feed, 325 00:18:44,100 --> 00:18:46,120 which I've had to unsubscribe to some other bots that I've liked 326 00:18:46,260 --> 00:18:48,040 because they just kind of flooded my timeline. 327 00:18:48,840 --> 00:18:51,400 And I really like poking around the libraries that people have been writing 328 00:18:51,500 --> 00:18:54,640 to see kind of what people are thinking about, 329 00:18:54,780 --> 00:18:56,520 what kind of tasks they're trying to solve, 330 00:18:56,760 --> 00:19:00,180 and get as a gauge on the state of the Arduino community. 331 00:19:00,920 --> 00:19:03,000 A couple examples that just came out. 332 00:19:03,480 --> 00:19:04,900 As I was thinking about this, 333 00:19:05,160 --> 00:19:06,820 this was like maybe yesterday the day before, 334 00:19:07,280 --> 00:19:18,020 There's a library called YAMLDuino that lets you do YAML file parsing and writing in Arduino, which is pretty awesome because YAML has been infecting my life more and more. 335 00:19:19,100 --> 00:19:24,100 I'll be using whatever the successor is to Obsidian is that's all in YAML instead of Markdown. 336 00:19:24,820 --> 00:19:30,900 There's a library for writing Discord bots called Ucini Discord Webhook. 337 00:19:31,300 --> 00:19:33,400 And we'll have links to all these in the show notes, of course. 338 00:19:34,120 --> 00:19:36,700 There is a library called CodeCell that's essentially, 339 00:19:36,740 --> 00:19:38,480 a sort of board 340 00:19:39,260 --> 00:19:40,440 abstraction library 341 00:19:40,800 --> 00:19:42,640 for this tiny coin-sized 342 00:19:42,840 --> 00:19:44,720 ESP32C3-based board 343 00:19:45,180 --> 00:19:46,240 that has a lipo charger, 344 00:19:46,800 --> 00:19:48,540 9-axis IMU, and a light sensor 345 00:19:49,060 --> 00:19:50,500 all on something about the size of a quarter. 346 00:19:51,980 --> 00:19:54,740 Here's an example of where the library shows you 347 00:19:55,040 --> 00:19:56,780 new hardware. Just looking 348 00:19:57,160 --> 00:19:58,760 at this library feed shows you new hardware. 349 00:19:58,880 --> 00:19:59,480 So that's pretty interesting. 350 00:20:00,540 --> 00:20:02,460 I don't have, I don't do wearables, but this is like a really 351 00:20:02,720 --> 00:20:04,780 cool board for doing wearable stuff. 352 00:20:05,500 --> 00:20:10,880 And another one is a library called Google Find My Tools that works not just for Arduino, 353 00:20:11,020 --> 00:20:17,360 but also for like Zephyr-based embedded devices, but it turns an ESP32 into a Find My device 354 00:20:18,060 --> 00:20:19,160 on the Google Find My network. 355 00:20:19,820 --> 00:20:24,120 So if you wanted to make little tokens that like joined that so you could like track something, 356 00:20:24,120 --> 00:20:29,720 I've been wanting to put an air tag on my cat to see where he goes, where he gets up to. 357 00:20:30,320 --> 00:20:35,380 I'll have links, but Arduino Libs on Fostodon, on Mastodon, and Arduino, 358 00:20:35,520 --> 00:20:36,360 libs.bsky.com 359 00:20:37,220 --> 00:20:38,620 The maintainer is someone named Toboso. 360 00:20:39,160 --> 00:20:43,760 So if you do like Arduino Libs, give him a shout or give them a shout out because I love this thing. 361 00:20:45,260 --> 00:20:47,900 Okay, Paul, what's your second and final thing for this week`? 362 00:20:48,540 --> 00:20:53,820 I recently came across a story that I was so excited to share because it combines two of my passions, 363 00:20:54,060 --> 00:20:56,260 vinyl records and 3D printings. 364 00:20:56,440 --> 00:20:59,360 But there's a catch, which I'll come to at the end of this. 365 00:20:59,460 --> 00:21:00,780 So just bear with me for a minute. 366 00:21:01,760 --> 00:21:05,440 But Amanda Ghassaei has one of the most in-depth tutorials and project recaps of 367 00:21:05,460 --> 00:21:11,180 ever seen. She was able to use a resin 3D printer to recreate a 3D printed record that can play 368 00:21:11,300 --> 00:21:16,920 on a normal record player with a normal stylus. On her Instructibles page, she first shares how a record 369 00:21:17,740 --> 00:21:21,680 works as the needle spins along the grooves of a record and vibrates and produces audio signals. 370 00:21:22,400 --> 00:21:27,400 She then walks through how she calculated the sampling rate for a 3D printer and all the math 371 00:21:27,480 --> 00:21:32,480 that goes along with it, which I'm not going to get into here, but trust me when I say it's detailed. 372 00:21:32,660 --> 00:21:41,080 She calculates the sampling frequency, revolutions per second, and inches per revolution to get a max sampling frequency of 12 kilohertz. 373 00:21:41,520 --> 00:21:48,560 She then prepared some test files to print to understand what might be possible with the printer and to optimize the size of the grooves in the record. 374 00:21:49,360 --> 00:21:55,080 She tested a few different amplitudes, depths, and groove widths, and printed three test prints to figure out what was possible. 375 00:21:55,880 --> 00:22:02,620 To do that, she used an Arduino sketch called processing to create sine waves, convert those to an SDL file that could be. 376 00:22:02,640 --> 00:22:06,620 be printed. After the third test was complete, she had the groove depth, the width, 377 00:22:06,760 --> 00:22:12,120 and the frequency range figured out. She then wrote a Python program to convert a wave file to an 378 00:22:12,260 --> 00:22:18,580 array of integers and be converted into a text file. She can import that text file into the processing 379 00:22:18,880 --> 00:22:25,880 sketch to convert it into an STL. Her instructables page contains examples using the song DeBaser 380 00:22:25,960 --> 00:22:30,200 from the Pixies and New Order's Blue Monday. You can clearly understand the songs, though with 381 00:22:30,220 --> 00:22:34,820 the distortion, it sounds worse than an AM radio station, but it's impressive for having done it herself. 382 00:22:35,780 --> 00:22:38,440 The catch was this article was from 2012. 383 00:22:39,580 --> 00:22:41,380 There were a few giveaways in the article. 384 00:22:42,460 --> 00:22:48,560 When she compared 3D printers, she was talking about her resin printer, she compared it to a maker bot and a reprap. 385 00:22:48,680 --> 00:22:53,820 And right there, my radar went off that, oh, you know, people aren't really using those 3D printers anymore. 386 00:22:54,500 --> 00:22:57,760 And her Python program uses Python 2.5, which is ancient. 387 00:22:58,920 --> 00:22:59,160 Wow. 388 00:22:59,960 --> 00:23:00,220 Exactly. 389 00:23:01,620 --> 00:23:04,100 I didn't really catch it until I started reading the comments 390 00:23:04,260 --> 00:23:06,720 and one of the oldest comments is from 12 years ago, 391 00:23:07,420 --> 00:23:09,740 but newer comments are from just a few months ago, 392 00:23:09,880 --> 00:23:12,040 so other people like me are just discovering it. 393 00:23:12,700 --> 00:23:15,260 The YouTube videos that she posted are about six years old. 394 00:23:16,100 --> 00:23:19,480 Now, she was using a commercial object Connect's 500 printer, 395 00:23:20,060 --> 00:23:22,200 and I'm curious to know in the last 10 to 12 years 396 00:23:22,360 --> 00:23:23,900 how far resin printers have come 397 00:23:24,340 --> 00:23:27,040 to know if you can make an even better sounding record today. 398 00:23:27,980 --> 00:23:34,420 In more modern news, The Guardian just published an article on February 25th also about creating your own records, 399 00:23:34,860 --> 00:23:37,760 but using a custom kit from Ulrich Sorosso. 400 00:23:38,220 --> 00:23:43,360 It's a lathe cutting machine that uses a diamond needle to cut a record one at a time in real time. 401 00:23:44,120 --> 00:23:50,040 People in the UK are using them to create custom pressings of, say, 20 to maybe 100 records that artists or bands can sell, 402 00:23:50,540 --> 00:23:53,340 who might not be able to afford a regular vinyl pressing. 403 00:23:53,840 --> 00:23:57,740 The catch with this one is Ulrich Sorosso is a cash-only. 404 00:23:57,760 --> 00:24:04,780 operation. And if you want to buy one, you'll need about 7,000 pounds, hand delivered to him in the Black Forest of Germany. 405 00:24:06,100 --> 00:24:06,320 What? 406 00:24:08,940 --> 00:24:11,320 So we'll have links to both of those in the show notes. 407 00:24:12,540 --> 00:24:13,800 That doesn't sound sketchy at all. 408 00:24:14,280 --> 00:24:14,960 No, not at all. 409 00:24:15,900 --> 00:24:19,240 They talked to a number of makers who are making records that have done that. 410 00:24:19,320 --> 00:24:21,360 They've gone over, paid them the money in cash. 411 00:24:21,460 --> 00:24:24,120 It's cash only, and came home with the lathe. 412 00:24:24,960 --> 00:24:25,660 That's really cool. 413 00:24:26,300 --> 00:24:35,980 Wasn't there in like the 40s or 50s, like a record cutting thing you could go and get your photo taken at a event, a little coin operator photo thing? 414 00:24:36,040 --> 00:24:43,100 There was a similar thing where you could go and put a quarter in and record a little message onto a tiny record that would engrave it in real time? 415 00:24:43,340 --> 00:24:44,460 And I think they're still around. 416 00:24:44,720 --> 00:24:51,480 I want to say that Jack White of the White Stripes has he has a couple record stores, one in Nashville, one in the UK. 417 00:24:51,920 --> 00:24:56,240 And I know that the one in Nashville, I want to say that he's got a machine that does that. 418 00:24:56,660 --> 00:24:58,200 I don't know if you can personally record, 419 00:24:58,380 --> 00:25:00,560 but he has artists in there and they press the records 420 00:25:01,540 --> 00:25:03,320 as soon as the mini concert is over. 421 00:25:03,460 --> 00:25:04,880 I've got a couple of them. 422 00:25:04,960 --> 00:25:05,640 It's pretty cool. 423 00:25:06,300 --> 00:25:06,900 That's amazing. 424 00:25:08,000 --> 00:25:09,160 I'm glad the records are still being made. 425 00:25:10,120 --> 00:25:10,960 That makes two of us. 426 00:25:12,320 --> 00:25:13,360 Yeah, I'm getting more popular. 427 00:25:14,560 --> 00:25:15,360 This project's incredible. 428 00:25:15,780 --> 00:25:17,620 Amanda's work is totally incredible. 429 00:25:17,880 --> 00:25:19,020 You're making a record from nothing. 430 00:25:19,980 --> 00:25:23,080 3D printing is always cool because it's like additive manufacturing. 431 00:25:23,980 --> 00:25:26,040 The Guardian one's really cool too because then it's like, 432 00:25:26,140 --> 00:25:27,920 okay, let's like make these 433 00:25:28,100 --> 00:25:28,980 but like sound good. 434 00:25:30,220 --> 00:25:32,060 And I wonder people have done this 435 00:25:32,100 --> 00:25:34,020 with like laser cutting like as far as 436 00:25:34,240 --> 00:25:35,500 Oh yeah. Actually 437 00:25:36,100 --> 00:25:38,100 she did an if you visit her homepage 438 00:25:38,380 --> 00:25:39,900 she's got a list of all of her projects. 439 00:25:40,260 --> 00:25:41,820 In 2012 she did this project 440 00:25:42,060 --> 00:25:44,380 and then in 2013 she revisited 441 00:25:44,540 --> 00:25:46,520 it using a laser cutter. 442 00:25:47,260 --> 00:25:49,140 So she's been all over it. 443 00:25:50,180 --> 00:25:52,020 Her website is incredible. It's got so many 444 00:25:52,120 --> 00:25:54,000 amazing projects all across the 445 00:25:54,800 --> 00:25:56,020 space. I recommend 446 00:25:56,060 --> 00:25:58,240 anyone go to her website to see 447 00:25:59,320 --> 00:26:00,200 some amazing projects. 448 00:26:01,160 --> 00:26:01,860 Well, that's our show. 449 00:26:02,520 --> 00:26:04,500 For detailed show notes and transcripts, 450 00:26:04,680 --> 00:26:05,640 visit the bootloader.net. 451 00:26:06,520 --> 00:26:07,640 Thanks, Brent, for joining us. 452 00:26:07,880 --> 00:26:09,700 And until next time, stay positive.