Episode 32 Transcript - Wave of Mutilation
Paul Cutler
Welcome to The Bootloader. I'm Paul Cutler.
Tod Kurt
And I'm Tod Kurt. The show works like this. In each episode, we each bring three things we're excited to share, chatting about each one for about five minutes. For detailed show notes and transcripts, visit the bootloader.net. Paul, what's your first one for us?
Paul Cutler
First up is openboardsguide.com, a new website dedicated to news reviews and project highlights for embedded boards and microcontrollers. And when I say new, it's brand new having just launched last month and only has three stories so far. But if you want to get in on the ground floor and see something grow, now is the time to check it out. Open Board Guides is founded by David Groom, aka I ShotJR on social media. David is or was the community editor at Make Magazine, so this is a subject I'm guessing he knows well. The first two reviews are focused around two very different Arduino boards. The first review is for the Arduino Ventuno, which means 21 and. in Italian and is a nod to Arduino's birthday this year. It's a $300 dev board with tons of storage, networking, and the ability to hook up a monitor, mouse, and keyboard. The article calls it a real kitchen sink dev board with all the connections at sports, including a 40-pin Raspberry Pi-like header. The second review focused on the Arduino Nesso N1, which is by M5 Stack, who makes what I think are really neat and innovative boards. David shared in the article that M5 launches a new board week and has a wall to keep track of them all, which is really neat. That NSON1 is a tiny solution that features an ESP32C6 with a 1.14-inch iPS touchscreen. It has everything you need in a board, Wi-Fi 6, Bluetooth 5.3 low energy, infrared, expander ports, and thread and Zigby support for your home automation projects. And it has a Lora radio and a spot to hold the antenna built in all for 50 bucks. And lastly, just so you don't think they're all doing a lot. boards is a review of the Pimoroni badgeware Tufty running MicroPython. The Tufty is the high end of three badgeware offerings from Pomeroni and features an RP 2350 with 16 megs of flash, Wi-Fi 4 and Bluetooth 5.2. It also features a LIPO battery with integrated charging that can keep a charge going up to 12 hours with 100 days of standby and a real-time clock. What's different about this one from the other two badges Pomerone offers is the 2.8-inch TFT IPS. LCD screen with a 320 by 240 resolution. This all comes in a package for about $55, and you can even buy an add-on STEM kit for more projects with the Tufty. The only question I have is for this particular review is who wrote it. I came across a blue sky post from Strath, who mentions they're an editor at the site, and the Tufty review is their first submission. But the byline at the top is David, so it might just be a quirk of their publishing platform. Overall, I like the site. The reviews are hands-on and thoughtful, and I like at the end of each review that it concludes with a what I'd love and room for improvement section. I'm always looking for neutral, trustworthy review sites, and there aren't a lot of folks out there doing board and microcontroller reviews. So maybe go check this one out.
Tod Kurt
Yeah, this is great. I like all the stuff that I shot J.R. has posted on various socials, his various publishes on making all that kind of stuff. And I used to always get the make board guide back when the number of boards was like kind of tractable. Now there's like an infinite number of boards. But the board guide was always really handy to be like, okay, this is a great way of kind of thumbing through and see what's the kind of cool boards in the different spaces because there's all these different ways you can use these or do we don't kind of boards. And I didn't even know about this Nesso N1, this M5 stack thing. It's totally positioned to me as a great thing to use for mesh-tastic because it's got a display and a Lora radio and a couple of buttons. And so it could run a messtastic. interface and it's like a nicely real device. It's not some kit yet put together.
Paul Cutler
Right. I mean, the way they've got the antenna built in and then the screen makes it a really nice little device for 50 bucks.
Tod Kurt
Yeah, yeah. So, I mean, I'm curious to see what the meshtastic folk have, if they've seen this and like, I think porting to a new board is pretty, pretty easy. So maybe we'll see mesh task pretty soon on it. Which case, I might get one in playing with it because I'm always looking for a way to actually, to actually use meshastic. Right. As opposed to just goof it around with it.
Paul Cutler
I know. I keep telling myself, the next time I make an Adafruit order, I'm going to order a Lora board, and I just haven't got around to it yet.
Tod Kurt
Totally. But yeah, so I'm here. I'm hoping that open boards guide, openboardsguide.com becomes a big thing because we need something like this. I agree. What's your first one for us? My first one for this week is bump mesh.com. So bump mesh is a web-based tool to let you add arbitrary textures. to your 3D printable models. Just import an STL, pick a texture or upload your own, adjust the texture settings, and export your modified STL. It's free. It runs in your browser. There's no service, no login, no privacy issues. I think you can even like just download it locally and run it entirely that way if you wanted to. If you ever use the fuzzy texture option in your slicer when printing a 3D model to get a more interesting surface on your prints, you'll definitely want to try this out. It's really cool. So ButtMesh was created by Stefan. from the YouTube channel, C&C Kitchen. If you watch 3D printer or stuff at all, you'll have probably come across this channel. He wanted something more interesting than just the fuzzy skin. He recognized that in 3D computer graphics, there are these displacement maps or bump maps that simulate the bumps and wrinkles of a surface, and these are just black and white images, where the pixel brightness corresponds to the height above the normal level of the surface. And those bump maps that exist could actually perturb the surface of a 3D model if you had some clever algorithm to do it, which he figured out. And so he turned the simulated bumps and creases into actual ones. And there are tons of existing bump map textures of out there available to try out. But also, since the bump map is just a black and white image, or a grayscale image, I should say, you can make your own. You can just draw something and have that be your texture. It's pretty cool. So in bump mesh, the web app, when you're actually using it, once you pick a texture map, you can adjust the many parameters of it. So it wraps around your model in the way that makes sense. sense, like if you're making a, like if you have a brick texture for the sides of the, of your model, you might not want to have the top be a brick texture, for instance. You can also adjust the various scaling and how it joins at the edges. So the, like the bricks line up at the edges, if it's a sort of a right angle or something. There's a built-in 3D visualizer, so you can see all these changes in real time. And it's doing, like, using the bump maps as 3D graphics originally intended them to be. But there's also a mode to show you what the 3D printable. like deformed STL would look like as well. And then you just click export. It's a lot of fun. You can try out different textures. There's a bunch of textures like sort of built into the app, but you can add your own really, be really easy. And even just for simple shapes like spheres and cubes, you can make them look totally different by making them look all weird and, you know, made of rock or made of wood or something. So this is highly recommended a great way of adding detail to your 3D models without having to model that detail in the CAD program. That's really neat. Yeah.
Paul Cutler
When you say the word bump maps, it takes me back to the early days of OpenGL and Direct 3D when 3D video cards were just becoming a thing. But it's so neat to see, you know, 30 years later to see the similar technology being employed in such a novel way. Just even having thought this thing up and then actually create the algorithm that does it as just ingenious.
Tod Kurt
Yeah, I think it's like, I think it's pretty easy. I mean, the fact that we can render 3D models with bump maps and shading and all this stuff just in your browser is kind of bonkers. And so I think it's like a pretty well-hewn path for him to be able to like modify the STL. But yeah, it's a so cool. So what's your next one for the for this time?
Paul Cutler
As listeners know, I'm a big music fan. And in addition to my record collection, I have a large collection of CDs I've ripped and imported into Apple Music. Plus everything I've ever bought there as well. But the music app on macOS does not bring me joy. And I'm always looking for an alternative. Parachord is one alternative. It's an electron app that runs on Windows, Mac, and Linux and connects multiple music services into one user experience. You can connect and sync your Apple Music and or Spotify accounts, so everything that was available for streaming can be streamed by Parachord as well, and you can point it at a local library, and you can also link your band camp and YouTube accounts. I don't know about Spotify, but be warned, sinking my large Apple music collection of about 34,000 songs, took a while. I should have timed it, but I feel like it was at least 15 minutes. The UI itself is a little bit sluggish. It is an electron app after all, but from clicking playlist to my collection, for example, can take a good three to five seconds, which feels like forever. I don't know if it's the size of my collection or if it's because it's an electron app, but I'm running this on an M4 Mac Mini, so it's not like it's an old machine. Overall, though, I do like the user experience. It's exactly what you would expect a music library app to be, and it makes easy to switch between albums, artists, and playlists. When you're looking at your library, it will have an icon for where you can stream it, Apple Music, BandCamp, or YouTube, for example. But BandCamp and YouTube actually punch you out to a browser for streaming. They're not integrated in the app like Apple Music and Spotify are, or like using your local library. It's got a neat Discover feature with a few different categories such as fresh drops, new songs by artists in your collection, or recommendations, which if you use Last FM or Listen Brains, it will learn what you like from what you listen to. And lastly, you will either love this or hate it, but it does have some AI features built in. It looks like Claude assisted in writing the code as well. The AI features include an MCP server. I used my Cloud API key to test it out, and you can interact with your collection right from Claude on the desktop. For example, I asked it, how many songs by prints do I have? And it came back and didn't hallucinate. It actually had it right. It uses AI as a chatbot to play music, manage the queue, or discover new music. When you do open the chat bot, you'll notice the Share My Data is defaulted to off, which is a nice touch, but you can opt into telemetry if you want. You can also use Olamma locally as a model or any of the other three big AI companies if you have an API key. It features a plug-in architecture allowing add-ons like connecting to bands in town or songkick to see what concerts will be coming to your town. Overall, I really like it, though it can be a bit sluggish, like I mentioned at times. If you're looking for an alternative to the Apple Music or Spotify default experience, Parachord is worth checking out.
Tod Kurt
This is cool. I've been so frustrated of the years because I've been using Apple music since it was called iTunes back in the early 2000s or whatever. And it used to be the best way of organizing your music, at least to me, because back when it was just like you had your directory full of MP3s or whatever. Right. It seemed to be like a very straightforward way of categories and stuff and let you, let you reorganize things in a pretty seamless way. But man, it's just gotten weirder because they've added a bunch of services on top of it that I'm just not interested in. And so it's nice to have an alternative. I think the sluggishness might just be they have not optimized it yet for large libraries. And so maybe they'll figure out a way to do that because that just sounds like a large data problem.
Paul Cutler
Yeah, it very well could be. And I do have a large library, so it wouldn't surprise me one bit. Totally. What's your next one for us?
Tod Kurt
All right. Speaking of cross-platform apps, I got a little bit of shameless self-promotion. I wrote a cross-platform app for Mac, Windows, and Linux, called Serial Plotster. If you can hear the scare quotes around Plotster, I'll describe that later. It's a data graphing app for use with Arduino, MicroPython, CircuitPython, similar boards. If your project spits out data, this app can graph it. And it's a very tiny download at 10 megabytes. and it launches really fast. These are aspects that are very important to me. So back in 2015, one of the best additions to the Arduino IDE that was added was the serial plotter. Just print a value in your Arduino sketch, and you can see a cool plot of it. Add more values with commas, and now you've got a multi-series real-time plot of those values against each other. The obvious use is data logging, but I find it really helpful for debugging. Being able to see how a value changes graphically just hits different than watching scrolling numbers. it's also much easier to catch when you've got a glitch and a value that should be set at a certain value or smoothly moving, suddenly jumps to like a max or a man. But as I started working more in CircuitPython and MicroPython, I lost the plotter. I tried using the Arduino plotter, but it's very helpful in grabbing the serial port, making connecting back to the REPL really frustrating. On the Mu editor, it's got a nice plotter, but it's also pretty port grabby because it expects you that you're just living in the Mu editor editing your, CircuitPython and the repel and graphing, all that kind of stuff. Thonny editor got a plotter in 2019 inspired by Mu, but I've never liked Thonny for much. I've never really inspected why. I don't like it, but I'm not a big, big Thonny fan. So clearly plotters are a useful thing. All these I dees have them, but I want to use my own editor. I don't really want a huge IDE that may or may not have a plotter extension. So every once in a while, I'd go looking for plotter apps. There are a few, but they're the weird, or abandoned now or they're web-based, which means they have to use Chromium, and I'm not a Chrome user. I use Firefox and Safari. But one really great web-based one is called Web Serial Plotter by Atomic 14 on GitHub. If you run a chromium-based browser that supports WebSereal and if you like web apps, it's a great solution, no need to look further. But I wanted an actual application on my desktops for both Mac and Linux. I've built many of these in the past, My normal tool of choice is Electron because, as you know, it lets you write JavaScript to make a desktop app. It's really easy to get going. This is great, but it means the app ends up being over 200 megabytes in size just for like a hello world because you're shipping a whole chromium browser that's just wearing your applications close. It's also slowed up at launch, as you might expect, and it takes up a lot of RAM. So I always feel a little bit gross writing electron. It just feels inefficient. If I write three or four little handy tools for myself using electron, suddenly I'm using up all the RAM and CPU of my computer. But there's an alternative I've been playing with lately called Tori, Tauri, T-A-U-R-I, which is the same ideas as Electron, but it uses Rust for the OS-specific stuff, and the OS's built-in web renderer for your apps GUI. So if you're experienced with making web apps, 90% of your skills and processes stay the same. But if you can figure out that last 10% that's Rust, you're rewarded with an app that's literally 20 times smaller and has a tiny RAM and CPU usage footprint. But I don't know Rust. I know just enough to know I don't know anything about Rust. I banged on adapting the concepts of the Web Serial Plotter Project to Towery and got it sort of working, but was ruining up against my lack of knowledge and my lack of modern web development skills. So I brought in cloud code like everyone does now and asked it to figure out what I was doing wrong. And it was quite helpful. It rewrote huge swaths of my Rust code and cleaned up a lot of how I was using React objects in the GUI. Turns out, I don't know React nearly as well as I thought I did. And then, most importantly, it helped me write a barrage of tests for the data parser in Rust. Because parsing all this data is because it can support many different formats of data, the parser is a little bit complicated. and so having a set of tests for that is great. Now that I can have tests written for me, I've been much more of a fan of projects having test suite. Everything should have tests now because you can just ask an AI to write the test for us. So anyway, there's this app now. Thanks Atomic 14 for the web serial plotter. It was the basis for what I made with Serial Plotster. It looks like that he also used Cloud Code to help write it and released it all under the GPL3. So Serial Plotster is also GPL3, and you can download pre-built and signed binaries for MacOS, Linux, and Windows. And if you like it, let me know. If you use it, let me know. This is kind of a niche tool. If you have any suggestions for improvements or fixes, also please let me know. Well done.
Paul Cutler
And if you want to see it in action, check out the April 30th, JPs workshop on the Adafruit YouTube channel. He demoed Serial Plotster on his show as well, so you can actually see it. The thing that you don't mention is you kind of complained about how some of the other apps you would grab the serial port. How is Serial Plotster a little different in that regard?
Tod Kurt
So the sort of normal way that I'm used to dealing with things that access serial ports is you've got a connect button and a disconnect button. And you have to explicitly press the connect button and you use the serial port and then you press the disconnect button when you're done to use a serial port. But in Arduino and stuff, it's more like you just set which. port you want to use and it tries to use the port all the time. And it's really hard to get it for you to say no. There's no explicit disconnect button because the assumption is like, oh, once you've hooked up a board, you're going to be interacting with that board entirely with Arduino or with Moo or something. And so it doesn't really have the concept of multi-application use of the serial port. So that's all. It's a more friendly way of doing stuff with serial port-based projects, but it also makes it hard for things when I do things like me, where I like have my terminal program, looks at the REPL, and then my serial plotter looks at the, looks at the serial port. So I am. So Paul, what's your, your third one for this week?
Paul Cutler
When my kids were younger, I was always introducing them to my hobbies and interests with limited success. I didn't become a maker until they were almost fully grown, but if I had younger kids, I definitely introduced them to picoCAD 2. PicoCAD 2 is an app, I won't call it a game that's sold on Steam and Itchio for just under $15. PicoCad 2 is available on Mac or Windows and it just came out over a month ago. It describes itself as focused on the bare essentials of 3D modeling, blending simplicity with creativity, allowing you to make low-poly 3D models with just a few clicks. I've included a link to a two-minute feature video on YouTube that shows it in action. Picoad 2 features a CAD tool set you'd expect where you can. can draw lines to create shapes and then fill them in with textures and colors. The homepage and video highlights a big reg truck and trailer with a spinning GameCube animation as well. picoCAD 2 has three main modes, modeling, texturing, and animating. You start with modeling, add the textures, and then you can animate the final model, and you can even make it a spinning GIF in PicoCad 2 to show off your new model and share it. I've also included links to its manual and a five-minute YouTube video that gets you up and running pretty quickly. One of the neatest features, I think, is the ability to export your models in GLTG or OBJ slash MTL and ping sprite sheets so it can be imported into popular game engines. So many kids out there are always wanting to build their own games. Well, here's a nice little first step of building blocks to getting game assets. For only $15, I wish my kids were still young enough or interested in something like picoCAD 2. Check it out.
Tod Kurt
Yeah, this is really neat. I've seen a lot of kids who love to like make, build stuff in Minecraft, but Minecraft is sort of its own little thing. And also its way of doing stuff is voxels based where you're not, you're not doing normal modeling. You're doing these like, you know, let's stack a bunch of Lego bricks on top of each other essentially, which is cool. But it's not how most video games are done. It's not how like Cat has done. This is, this looks almost more like my first blender. Because it's got a lot of the same workflow as blender where you're, you're, creating these shapes and you're putting the textures on them and you're animating them. I'd almost call it more blender than CAD because, like to me, CAD implies a sort of parametricness and dependency tree aspect, which I've not yet seen in PicoCAD, but this is really, really fascinating. Yeah, the fact that it can be used, the output can be used in actual game engines. It's pretty cool.
Paul Cutler
Yeah. It's just really neat building blocks. And like you said, it reminds you a blender. You could start with this, get good with it, and then graduate to something like a blender, or maybe even a Fusion 360 if you wanted to get into the CAD part more.
Tod Kurt
Totally. Yeah, this is really great. All right, what's your last one for us? Okay, so there's some new research in 3D printer model slicing that I just learned about called wave overhangs. It lets you print steep overhangs without supports. The 3D printer tool pass that it creates are generated recursively using wave propagation theory instead of the standard layer stacking technique used today. This is a big change to how we normally think of 3D printing. And if it ends up actually being useful, could cause 30 printers to be designed differently. You can try right now. There's a custom fork of orca slicer you can download that has the wave overhangs stuff built into it. So as a little bit of refresher, process of turning a 3D model into instructions for a 3D printer is called slicing because traditionally the process divides the model into a series of horizontal layers, and the 3D printers prints out those layers, stacking them up on top of each other. Now, Steve Overhangs present a problem because there's a part of a layer that's just floating in space without anything holding it up. If you try to print this, you'll get a messed up print because the plastic will just fall to the ground. So Slicer software will typically give you the option to print these disposable supports to hold up these parts. And getting the supports off can be tricky because it's just plastic also, so it'll stick together. And generally the surface finish of those overhang areas are worse than the other parts of the print. So this 3D object to 2D layer stack process has made that almost all printers have been designed to be fast in the X, Y part of the printer, and slow in the Z dimension, as that is the part that just moves to the next layer. But the wave overhangs process makes slicing a truly 3D operation. The exterior of the model becomes sort of a wavefront that ripples into the model until it meets another wavefront to fill a recursive wavefront spawn from the cusp or two waves meet. And these waves kind of become the tool paths of how the plastic is laid down. It's extremely clever, but this means your 3D printer Z axis is going to be working as hard as the X, Y axis, potentially. The task of laying down plastic is no longer just putting down stacks of layers, but these complicated blooms of moves in three dimensions. The plastic sort of blossoms out to create the overhang, so there's never any fully unsupported plastic. I've not tried this out yet with an actual 3D printer as I just discovered this, but I have downloaded the Wave Overhangs fork of Orca Slicer and I sliced a few simple models with it, and it's really cool to look at the resulting tool paths. It's just, in fact, some of the, some of the G-code renders can't quite display it because it's expecting layer-based kind of ideas. So I had to, like, I had to like export it to G-code and load it into the the Prusa G-G-code slicer because it actually could render it soMuhat. I, I had to, I had to, I think it might be a really interesting addition in sliders going forward as we see a bunch of, and we'll see people start to redesign how things are made. Because right now there's this huge preference to not do overhangs on 3D printed objects because you'll have to add supports and supports takes time and make sure the part look kind of crappy. But one of the challenges I think of this technique is that it could cause warping because because of the way that these overhangs work, it creates these lines of filament that sort of wrap around help support from above the overhang. And when plastic cools, it cools along the extrusion length. And so with these wrapping around, it'll sort of like pull up the overhung part and kind of make them, instead of being like, if it's a right angle out, it might pull them up a little bit. I think, I think there's a way to fix this, but it'll be, it'll be interesting to see how they fix it. If you go to the waveoverhangs.com in there's a gallery section, you can see some of the warping happen, but I'm sure they'll fix it.
Paul Cutler
It feels like just yesterday we got tree supports, which were a major evolution in supports, and now we actually have it evolving even more where we might not even have to have supports, which is just great. Yeah. But this is hot off the press. I mean, this article just came out or the projects.
Tod Kurt
Yeah, yeah, yeah. It's from a thesis research project that's like maybe from a month ago.
Paul Cutler
So it's definitely we're checking out. I want to get my hands on orcas slicer as well. I didn't realize that there was a new version of orcus slicer that supported that.
Tod Kurt
Oh, no, yeah. This is a custom fork of an orchestra. It's not the real one. Got it. So, yeah, you're going to have to like, yeah, run two different versions if you already use orcisler. There's a nice Hackaday article about it as well, but there are also the Wave Overhanging site. It goes into a lot of good detail about it. And, of course, you could read the research paper if you wanted to.
Paul Cutler
That's our show for detailed show notes and transcripts, visit the bootloader.net. Until next time, stay positive.