Episode 25 Transcript

Tod Kurt

  • Welcome to The Bootloader, I'm Tod Kurt.

Paul Cutler

  • And I'm Paul Cutler. The show works like this. Tod and I have each brought three things to share and we'll chat about each one for about five minutes. For detailed show notes and transcripts, check out thebootloader.net, which also just got a shiny new coat of paint as we're now using MKDocs for the website. Tod, what's your first one for us this episode?

Tod Kurt

  • This is about getting faster Raspberry Pis by ditching the SD card. If you use Raspberry Pis regularly running off micro SD card have I got a treat for you. Short version, use the RPI clone script to a USB thumb drive. You may know that Raspberry Pi is running off SD cards can get slower over time. SD cards can get flaky with age too. But SD cards are so easy to get a Pi going, just write it with the imager and boot it up and you're gone. But with a modern thumb drive and the RPI clone script, my Raspberry Pi that I depend on is faster than it's ever been. It's amazing. I run a small group of Raspberry Pis for testing of my products in various CircuitPython builds. One critical Raspberry Pi has four different CircuitPython boards permanently hooked up to it that I use to test different, how the different CircuitPython firmwares work. And when I'm doing CircuitPython development, I copy to it and I do it all remotely. It's just on a rack somewhere. I actually don't look at this computer very much. But over the last couple of months, I've noticed the server has been getting increasingly slow. Get checkouts took twice as long. Even logging in via SSH took a few seconds. Normally, we just log in. There are no errors in the logs, and the microSD was a high-endurance one. I replaced it only about a year ago, but I have been using this Pi a lot more lately. So I know, I know, all the real hackers that have been booting their Pis off external drives forever are raising their eyebrows at me. What took me so long? Well, I imagined it would be a daunting task, needing extra components like an NVMe hat or an ungainly external drive enclosure hanging off the back. Fortunately, I'd just seen a YouTube video by the awesome Jeff Geerling, where he offhandedly showed his RPI clone script to turn an existing SD card-based Raspberry Pi into one that boots off in external storage. I thought, "Well, it seems pretty easy, let's try it out." So I got one of those small USB 3.1 drives. Those are pretty fast. The one I got was a $15 Samsung 128 gigabyte, which is like four times the size of the SD card that was currently in the Pi. And it's so small, it's just a little nubbin when it's plugged in. It looks like one of those little keyboard, Logitech keyboard adapter things. It's not something hanging off the back of the Pi, which is nice. After you plug in your external drive or the thumb drive, I downloaded the RPI clone script, ran it according to the README. It chugged for a bit, formatted the thumb drive with an appropriate file system, the XT4, I think, and copied over the Pi's file system, the existing Pi's file system on the SD card to the external drive, to the thumb drive. And when done, I just powered it on the Pi, remove the micro SD card, turn it back on, and hey, look, it boots. It boots off this new little USB drive. This Raspberry Pi server that I've been using for five years feels like a whole new computer. It's like I got a free CPU upgrade. To prevent this thumb drive from degrading faster because it's not an SSD, it's just another flash drive. It's like an SD card. I'm going to be putting the logs directory into a RAM disk using the log to RAM program. One of the things that wears out a lot of these solid state drives the fastest is how much all these various programs that are running on Unix write their log files to the disk. And so you can minimize that by having the logs written to a RAM disk. There's this file system format called tempfs. And log2ram will create this RAM disk, but then it will also sync periodically, like once an hour or so, it'll sync the RAM disk to your persistent storage. So you can actually go back and look at the logs if you need to. But doing one big write is much less of a wear on the drive than doing thousands of little tiny writes. And then I'm also looking into tiny SSDs for my other Pi servers. For Pi 5, there's an official NVMe SSD hat I might try. I've also found there's some other smaller NVMe SSD hats. So now I'm on a quest for what's the tiniest SSD solution for Pi 4s and other Pis that I've got 'cause I'm just blown away. It's like I should have done this so many years ago. Links to all this will be in the show notes.

Paul Cutler

  • I knew about the SSD hats. I had no idea that you could use a USB flash drive as a bootable disk for it. And I know I've got a Raspberry Pi that sits on my desk full time and even SSHing into that takes a second or two. So I'm wondering if my performance is starting to degrade and if it's that easy, I think I know what I'm doing this weekend.

Tod Kurt

  • Yeah, I mean, I think this was like the third SSD card I'd used for this pie just over the years and I kept getting trying to get like the ones that were recommended by the various Raspberry Pi tip sites that said oh This is the high endurance micro SD card to use but over time it just seemed to get slower and slower and like You know this this Raspberry Pi is not doing anything weird. It's using is running the standard Raspberry Pi OS There's no fancy programs installed, you know, except for Python All right, Paul, what's your first one for this week

Paul Cutler

  • My first one is inventory. Back in episode 17, I shared Inventory, an open-source inventory system for makers and manufacturers that had just released their 1.0 release. Thanks to Alec Delaney, aka Tech Trick, I came across an app called Inventory, a play on the word "inventory," which also just released their 1.0 release after eight years of active development. Inventory includes a number of features, including organizing your parts and sorting them into related to each part, stock locations, which are real world physical location for your parts, and bill of material management, allowing you to define a list of parts to make an assembly. And then you can create custom reports about your inventory based on a number of templates, and it uses HTML templates to create PDF reports for you. It also has a full-featured API using the Django REST framework and allows you to programmatically interact with your inventory. The documentation includes examples of how to interact with the API in both JavaScript and Python. Inventory also includes a robust plugin ecosystem. There are plugins maintained by the core team as well as the community. There are plugins for just about everything. There's integration for DigiKey and Mouser. There's a plugin to locate your physical stock locations with WLED, which is pretty neat, and a bunch of plugins to use with your printer. Inventory is written in Python using the Django web framework and plugins can be written in Python too. There's also excellent documentation covering everything you might want to know. It's detailed and covers all of the features. And lastly, if you want to take inventory for a spin before installing it, they have a full featured demo instance. I logged in and tried it out and came away really impressed. Wow, that's really awesome.

Tod Kurt

  • I wish I could use one of these. Like when you talked up the inventory program back in episode 17, I was like, I'm going to really try this out and I didn't.

Paul Cutler

  • And I'm sure it's daunting from a setup perspective of trying to get all your stuff into, into the database. But once it's there, the payoff is probably worth it.

Tod Kurt

  • Yeah, no, I just, just yesterday I was rooting through my sort of geologic filing system of like, you know, basically what's on the bottom is the oldest, trying to find some, some low profile headers that I knew I bought a year ago. And. See, and you could have a stock location that tells you exactly where you stored them. Now, and I love the I love the WLED integration, like it sort of assumes you have some sort of LEDs rigged across your racks and you could just like have something light up to indicate where approximately the thing is. That's wonderful.

Paul Cutler

  • Yeah, I'd love to see that in practice. Someone's got to have a YouTube video of doing that already. What's your next one for us?

Tod Kurt

  • I'm going to talk about a little, this is a sort of a mini review of the framework 12 laptop. I don't normally do just straight up reviews of products, but this has been really impressive to me. So if you're looking for a Linux laptop, I highly recommend the framework 12. It's their smaller computer. They have a 16 and a 13 inch, I think as well. This is a 12 inch. You can buy it fully assembled or as a kit. And if you can see I'm using quote fingers, where kit means you just install the RAM, SSD and expansion cards. More on that in a bit. The assembly is super easy, but it does give you a chance to see the inside of the laptop and the care that went into it. You can see that the framework company designed the whole machine for repairability. Like everything is screwed down, you can remove bits and pieces, you know, if like you break a jack or something, or you can even upgrade the motherboard. Like in fact, their older Framework 16 laptop, they just introduced a new AMD Ryzen mainboard with an integrated NVIDIA RTX GPU that you can just swap in if you already have a Framework 16. So to assemble my new laptop, I got a beer ready and everything. I mean, I say everything, but they included the one screwdriver needed. I only got about two sips into the beer before I was done. You install the RAM and SSD from the top by lifting the keyboard out. You just plug in the RAM and SSD into the little standard RAM socket and the standard NVMe socket. And the keyboard connects via pogo pins and magnets. So you can just kind of lay the keyboard on top and it'll connect and you can then test it out. Once you're sure you're done, you can then secure the keyboard with a couple screws on the bottom that are captive screws. That's another cool thing. All the screws in this laptop are captive. So once you remove, once you unscrew something, the screw stays with the part or it stays on the computer. So you're never losing screws. You're never getting screws mixed up because you know how some companies, Apple, will use like slightly different length screws for things. And if you swap them, you could really damage something. It's really nice design. And the laptop, once you've got it all assembled, it's still only as thick as my main MacBook Pro. So, it's like, even with the sockets for all this replaceable stuff and the screws and stuff, it's still the same thickness as my MacBook Pro. That's just amazing. There are many YouTube videos that deep dive into this laptop, its features, how it performs. I'm not gonna go into those aspects. It seems to perform about as well as any other Intel i5 laptop, and it costs about the same, I think. I'm using Linux on it. You can get it with Windows. But one of the cool things is they support Linux pretty heavily and they've got three different distros that they recommend, Ubuntu, Fedora, and this other one, I forget what it's called. I chose Ubuntu 'cause Ubuntu's Debian-based and it's the most like Raspberry Pi OS and the other Debian-based OSs that I'm used to. When you install the Ubuntu 25 that they recommend, which is regular Ubuntu, it's like not a special framework version of Ubuntu, all the peripherals are recognized. And when I plug in class compliant USB devices, like USB audio or MIDI adapters, they just work. It's just, as someone who's used Linux laptops, this is kind of weird. I've been using it for a little over a month and haven't had a problem. I use it mostly for doing things like web browsing, video playing, code editing, compiling, doing little test compiles, PDF viewing. I have it on my bench as basically the thing that I have next to me while I'm working. There are two things though about this laptop it really stand out. And I've been trying Linux on laptops since the 90s. Like parenthetically, anyone remember linuxonlaptops.com? It was where we huddled in the cold sharing campfire stories of almost getting audio working on corporate Toshiba satellites or Dell Inspirons. Now we have Linux first companies like Framework, MNT, and System76. But if you're scarred from past attempts to get Linux working on a laptop, and you have an old ThinkPad or Dell for the last few years, there's a good chance it'll work great today. And it'll seem much faster than the Windows that was on it. So try that out if you wanna get back into the Linux on laptop thing. I think that's kind of a solved problem in many ways. Anyway, the first really cool thing about the Framework 12 is that besides just being a fully working modern laptop on Linux, is the four expansion card slots on the sides. These are essentially recessed USB-C ports and the available expansion cards either expose that USB-C port or USB-A or Ethernet, HDMI, extra audio, SD card, or storage like a little built-in thumb drive or something. It's really neat. It totally gives that I'm plugging a cartridge in vibe for those of us that grew up with cartridge-based video games. Unless you customize the laptop how you want, if you want to have a bunch of extra built-in storage, you can. If you want to have a whole bunch of extra audio outputs, you can have that. My current setup has two USB-C ports, a USB-A port, and HDMI out. Then any USB-C port is also a charge port, so that's how you charge the laptop. You can swap these out anytime you want, they're all hot swap. I've also got an Ethernet card, and so when I was playing around with doing wired Ethernet to get really fast performance, I just swapped out one of the, I think the USB-A, and plugged in the Ethernet card and did Ethernet. The other thing about the Framework 12 is that the screen folds over and onto the back and it turns into a tablet. I wasn't even really aware about this when I got it. And the touch screen even works in Linux. Even though most of my uses aren't touch compatible, it's really handy to have an instructional video or schematic on the tablet screen while I'm working. They just introduced a stylus that works with the laptop when it's in tablet mode. I've not tried this out yet. I don't even know if it's supported under Linux, but it's 60 bucks. So I might get it just to see what it can do. KiCad absolutely flies on this thing. Using a stylus on KiCad on Linux would seem very sci-fi to me. (laughs) So this review isn't sponsored in any way. I'm just happy to have a good portable Linux box next to my, on my bench. It's made by a company that seems to care about repairability and upgradability, which seems to be in short supply a lot nowadays. So thanks, Framework. And I've got some links in the show notes, one of which is my very abbreviated three-post live assembly thread. I did when I first got this, thinking it was gonna be like a long thing, But no, it was only like three posts. (laughs) - I used Linux full time for about 10 years

Paul Cutler

  • and I'm with you where the stuff just sometimes works, sometimes didn't. So this is very tempting. You're an Ubuntu guy, I'm a Fedora guy and there's a distro called Project Bluefin from Universal Blue that inherits all of Fedora and then it's cloud native. So they've got a lot of tools, they've got home brew built in. But since it inherits from Fedora and Fedora supports this, it's got framework support right out of the box. So I've been keeping an eye on that distro for a little while and tempted to get back into Linux on the desktop. So that's pretty cool that just everything just works.

Tod Kurt

  • Yeah, on their Linux page, they list a bunch of distros, I think 10 total. And it's like, they have three that are like, this is the easy version of Linux. And then like the other ones are, they're like, this works with a couple of asterisks. And I think, I'm not quite sure what the asterisks are, but I think it's like something pretty minor. 'cause most of the hardware support is in the Linux kernel. That's not something that different distros would be that different from. Anyway, what's your next one for this time?

Paul Cutler

  • My next one is one of my favorite pieces of tech in my house, and it just keeps getting better. If you're like me, you probably subscribe to a bunch of streaming services like Netflix, Peacock, HBO Max, Hulu, or Paramount. Throw in a cable TV bill, and it gets expensive really quick. One option is to cancel your cable bill and get your local channels via an antenna. I've tried a number of solutions over the years since then for watching live TV with an antenna, including Myth TV, Kodi, and MB, but there's one piece of software that I think does it better than any of them, and that's an app called Channels, which is available at getchannels.com. First, you'll need to get an antenna to get over the air stations that you hook up to a device called the HD Home Run, which is a digital network tuner. You plug the antenna into that, and the TV signal is now available over your network. Antenna prices vary and an HD Home Run box will run you about $100 to $150 depending on which model you choose. If you visit rabbitears.info, it will show you a list of all the channels in your area that you can get via antenna. And you'll probably be surprised how many channels there are. Next, you'll need to subscribe to channels for $80 a year, which is $10 more a year than Plex. Then you download the channels DVR server software, which is available for Windows, Mac, Linux, Docker, and a number of network attached storage devices, including Synology, Netgear, TrueNAS, and a lot more. So there's a little bit of cost getting started, but if you're cutting the cord and getting rid of cable, you probably will recoup it in just a matter of months. Now you need to provide it with your source, which is usually an antenna, but if you do have a cable subscription with TV Everywhere, that works too. What's really neat is even when using TV Everywhere, which is streaming over the internet, channels will automatically detect and skip commercials when recording via TV everywhere and when you use an antenna. The only catch with channels is that if you wanna watch it on a TV, you're going to need an Apple TV, Android TV, or an Amazon Fire Stick, which I can understand might be a non-starter for some. The apps to connect the channels and watch it on your phone or tablet, on iOS or Android are all free. And they make it super easy to watch it on the go away from home and just stream it over the internet to your device. The iPad app also runs on Mac OS, which is nice. I'll sometimes watch it on a second monitor when doing something else. But it's not just a DVR. You can manage all of your personal media on it as well. I have a large physical media collection with a ton of DVDs and Blu-rays that I've ripped and I've imported them all into channels. Those are all the features you would expect in a DVR and a home media server, but that's not all. They continue to innovate and add features. A year or two ago, they added what they call virtual channels. you can create your own channels with your own content. For example, I created a Star Wars channel that streams 10 of the movies, or an action channel where I added the Matrix trilogy, the John Wick movies, and more. Now when I browse my channels and can't decide on something to watch, I'll sometimes just watch one of those channels and pick up a movie halfway through, just because I can't decide on what I want. They also recently added in the beta, multi-view. So you can put two channels on side by side, which is fun on Sundays when watching football. I can play both games at the same time. And the newest feature is the ability to skip intros and credits at the end, a la Netflix, which is a nice touch. There may be cheaper solutions out there for your DVR, but few are as polished as channels. I've been using it for years, and it's one of my favorite apps that I use almost every day.

Tod Kurt

  • Wow, this is really cool. Like it was so many years ago, gave up standard broadcast TV because, you know, It was during that time when everything was switching to digital and I didn't have a digital receiver yet. And it seemed like I was getting the sort of standard, substandard service from just analog, but like all the transmissions are digital. If you can put up a little rabbit ears or whatever, you can now have that stream to kind of any of your apps in your house. That's pretty cool using the HD home run and then record it all with channels. That's pretty cool. Yeah. - What's your next one for us? All right, so synthesizers again, me and the synthesizers. If you've ever played with Eurorack modular synths, you'll know the name mutable instruments. Mutable instruments was created by Emily Gillette back in 2009, and every one of her synth modules was interesting and useful. They ran the gamut from oscillators and filters and reverbs to envelopes and utility modules like mixers. And now you can run some of them in Arduino on a Raspberry Pi Pico. Friend of the show and previous guest, John Park, has an almost complete collection of the Mutable Modules, and it fills up about two racks of space. I think there's like 60, not 60, like maybe 20 or 30 modules, it's a lot. He can create such wonderful noise with all of them. I mean, he'll occasionally send me little videos of crazy little evolving soundscapes, and they're just wonderful. So because the Mutable Modules are so useful and beloved, they became the standard kit for anyone doing modular. And because all of her designs are open source, several other best book manufacturers made versions of her modules in different form factors or with added features. I've got a few mutable modules and a few clones. For instance, I have a clone of the reverb module, the cloud reverb module called Supercell that adds extra knobs and inputs to control even more of the reverb sound. Like one of these you can use, you can freeze the reverb. Like it's got like sort of the echo that's happening of the reverb. You can kind of freeze that and add noises to it and reverse it and all that kind of stuff. I also have a clone of Braids, which is one of Mutable's most popular synth modules. It's got all these wave tables in it. All the wave table stuff that I've been doing in CircuitPython is very much influenced from Braids. The clone that I have is a much smaller size. Braids came out, it was a fairly large module, and in a modular synth rack, every amount of space counts, and so I wanted a smaller one. Some of Emily's algorithms made it into professional synths like the Korg MicroFreak and the Polyant synth. So you may not know Mutable, but I bet you've heard the sounds. So back in 2022, Emily shut down Mutable Instruments, but her and her modules legacy lives on and all the modules, repos, and inspiration her circuits and algorithms have created. Thank you, Emily. I've learned a lot about analog electronics from you. I've long wanted to poke around the synth and effects algorithms that she's created, but most of her modules are written for the STM32 chips, a chip that I'm not that experienced with. Fortunately, Mark Washam, aka Potaster on GitHub, has ported some of the mutable modules code to Arduino on the Pico. This is great. I know that well. It's one less barrier for me and I've just started poking around trying stuff out. It's really easy to get started. If you want to start playing with this stuff immediately, Potaster/Mark also has a little Pico-based synth board he sells on Tindy called Scarp that he targets for his mutable porting experiments. It's got an OLED, two pots, eight buttons, and LEDs. I was pleased and surprised to see my name called out as he based some of the design of Scarp on the various synth boards I've made over the years. Thanks, Mark. I can't wait to get deeper into the mutable synth code and links to all this stuff in the show notes.

Paul Cutler

  • So on the Pico, is it copying specific mutable modules? Like, is there a code base for this module and a code base for that module that you flash? Yeah, yeah, yeah. Exactly. Yeah.

Tod Kurt

  • So there's kind of two parts to these things. There's the core algorithm that, like say, in the case of braids, like he's got a version of braids that he's ported. There's the core algorithm that's generating the synth noises and then there's the user interface of like, you know, what knobs exist, what display, if any, exists, what LEDs exist. And so one of the nice things that, I don't know if Emily did this or if Mark did this, but there's sort of two different folders. There's one that's just the algorithm and others like, oh, here's the algorithm being used by, for instance, his scarf board. So you have a concrete example of like, oh, here's how I might map a knob to control this parameter. Here's how I might reflect this parameter on an LED or something. So yeah, so it's both. And the fact that both are there are really handy, because just having one of the others is, you know, not as helpful. All right, Paul, what's the last one for this post?

Paul Cutler

  • My last item is dissolvable 3D printed circuit boards. Researchers at the University of Maryland have developed a new type of circuit board using polyvinyl alcohol, which is 3D printable and which can dissolve in water. To create the wiring on the PCB, they inject a gallium-indium metal alloy into the circuit board's channels in liquid form and then manually place the components on the board. They then apply a polymer glue to seal the circuits before drying the device for an hour at 60 degrees Celsius. Using this process, the researchers created working versions of a Bluetooth speaker, a fidget toy, and an electronic three-finger gripper. A splash of water won't hurt the circuit board. It takes up to 22 hours at room temperature to dissolve, and the researchers were able to recover 99% of the dissolved polyvinyl alcohol. The article goes on to say that according to a 2022 United Nations report, Asia generated 600,000 tons of used circuit boards while recycling only 17%. Europe and North America generated 300,000 tons and recycled 61% in Europe and 44% in North America. Imagine how many hobbyists create PCBs for prototyping and what happens when you get something wrong and have to throw the board out. This process might start to address that. Not to mention that if you can do this with a 3D printer, you can speed up prototyping processes by a huge factor. Unfortunately, you'll need a subscription to read the article either on Apple News or at the New Scientist website, but I've linked to both in the show notes.

Tod Kurt

  • This is really amazing. I mean, like, because isn't PVA, polyvinyl alcohol, isn't PVA the standard dissolvable filament people use when they print with soluble supports in 3D printing? I think it is, now that you mention it.

Paul Cutler

  • I didn't even put that together.

Tod Kurt

  • I mean, I've not used it yet, because I don't have a printer that can do that really, but this is incredible. Yeah, it's really a shame. It's like I've got this big shoebox full of PCBs that I'll never use, 'cause if you're getting a PCB made, the minimum order is five. And so even though maybe if you want one to test with and one to be your actual one, you now have three left overs. (laughs) - Well, hopefully it comes to market sooner rather than later. - Yeah, it's cool. Yeah, it's a... (laughs) Man, just don't let it sit out in the rain.

Paul Cutler

  • Exactly. (laughs) Well, that's our show. For detailed show notes and transcripts, visit thebootloader.net. And if you're enjoying the show, please leave a review. It really does help the show. Until next time, stay positive.