Art of 3D printer in the middle of printing a Hackaday Jolly Wrencher logo

3D Printering: Listen To Klipper

I recently wrote about using Klipper to drive my 3D printers, and one natural question is: Why use Klipper instead of Marlin? To some degree that’s like asking why write in one programming language instead of another. However, Klipper does offer some opportunities to extend the environment more easily. Klipper runs on a Linux host, so you can do all of the normal Linux things.

What if you wanted to create a custom G-code that would play a wave file on a speaker? That would let you have custom sounds for starting a print, aborting a print, or even finishing a print.

If you recall, I mentioned that the Klipper system is really two parts. Well, actually more than two parts, but two important parts at the core. Klipper is, technically, just the small software stub that runs on your 3D printer. It does almost nothing. The real work is in Klippy, which is mostly Python software that runs on a host computer like a Raspberry Pi or, in my case, an old laptop.

Because it is Python and quite modular, it is very simple to write your own extensions without having to major surgery or even fork Klipper. At least in theory. Most of the time, you wind up just writing G-code macros. That’s fine, but there are some limitations. This time, I’m going to show you how easy it can be using the sound player as an example.

Macros All the Way Down

Normally, you think of gcode as something like: G1 X50 Y50. Some of the newer codes don’t start with G, but they look similar. But with Klipper, G1, M205, and MeltdownExtruder are all legitimate tokens that could be “G-code.”

For example, suppose you wanted to implement a new command called G_PURGE to create a purge line (case doesn’t matter, by the way). That’s easy. You just need to put in your configuration file:

[gcode_macro g_purge]
gcode:
# do your purge code here

The only restriction is that numbers have to occur at the end of the name, if at all. You can create a macro called “Hackaday2024,” but you can’t create one called “Hackaday2024_Test.” At least, the documentation says so. We haven’t tried it.

There’s more to macros. You can add descriptions, for example. You can also override an existing macro and even call it from within your new macro. Suppose you want to do something special before and after a G28 homing command:

[gcode_macro g28]
description: Macro to do homing (no arguments)
rename_existing: g28_original
gcode:
M117 Homing...
g28_original
M117 Home done....

Continue reading “3D Printering: Listen To Klipper”

First Benchies In Stainless Steel, With Lasers

DIY 3D printing in metal is a lot more complicated than we thought. And this video from [Metal Matters] shows two approaches, many many false starts, and finally, a glorious 78.9% success! (And it’s embedded below for your enjoyment.)

The first half of the video is dedicated to the work on a laser welding system that doesn’t pan out in the end at all. But the missteps are worth watching as well, and they hammer home the difficulties of melting metal reliably with nothing more than coherent light. Things like reflection, the difficulty of getting good process control cameras, and finally the whole thing slumping as multiple layers stack up on each other make this approach to 3D construction look nearly impossible.

Indeed, around halfway through the video, the focus shifts toward a metal-powder sintering machine, and this one is a success! Metal dust is deposited layer by layer, and fused with a totally different laser. The tricky bits here range from esoteric problems like making the laser fuse the metal dust without blasting it, to simple things like the geometry of the scraper that ensures even layer heights. And once you’ve got all that down, getting a good pattern down for 2D infill in metal is non-trivial.

A sweet half-scale metal Benchy emerges at the end, so why does [Metal Matters] call this a 78.9% success? Because that’s the density of the final print, and he is shooting for 100%. But we wouldn’t be so harsh. We’ve seen how far he’s come since the first machines, and this is a huge advance. We’re looking forward to the next video update in a year or two!

Continue reading “First Benchies In Stainless Steel, With Lasers”

Tinkering With Klipper: Making The ManiPilator Robotic Arm

[Leo Goldstien]’s entry into the world of robotics has been full of stops and starts. Like many beginners, he found traditional robotics instructions overwhelming and hard to follow, bogged down with dense math that often obscured the bigger picture. So he decided to approach things differently and create something with his own hands. The result? A 3D-printed robotic arm he affectionately calls “ManiPilator.”

This article is the first in a three-part series documenting [Leo]’s hands-on approach to learning robotics from the ground up. Building ManiPilator became an opportunity to learn by doing, and the project took him on a journey of experimenting, failing, and eventually succeeding in tasks that seemed deceptively simple at first glance. Each hurdle provided him with insights that more traditional learning methods hadn’t delivered. Below is one of the videos [Leo] captured, to show one step in the process: doing a check using multiple motors.

To make his project work, [Leo] relied on open-source software like Klipper, piecing together code and hardware in a way that made sense to him. In sharing his story, he offers fellow beginners an approachable perspective on robotics, with practical insights and candid reflections on the challenges and breakthroughs.

[Leo]’s project shows that there’s more than one way to start exploring robotics, and that sometimes the best way to learn is simply to dive in and start building. Follow along with his journey as he tackles the complexities of robotics, one step at a time.

Continue reading “Tinkering With Klipper: Making The ManiPilator Robotic Arm”

See The “Pause-and-Attach” Technique For 3D Printing In Action

[3DPrintBunny] is someone who continually explores new techniques and designs in 3D printing, and her latest is one she calls “pause-and-attach”, which she demonstrates by printing a vase design with elements of the design splayed out onto the print bed.

The splayed-out elements get peeled up and attached to the print during a pause.

At a key point, the print is paused and one peels up the extended bits, manually attaching them to sockets on the main body of the print. Then the print resumes and seals everything in. The result is something that appears to defy the usual 3D printer constraints, as you can see here.

Pausing a 3D print to insert hardware (like nuts or magnets) is one thing, but we can’t recall seeing anything quite like this approach. It’s a little bit reminiscent of printing foldable structures to avoid supports in that it prints all of its own self-connecting elements, but at the same time it’s very different.

We’ve seen [3DPrintBunny]’s innovative approaches before with intentional stringing used as a design element and like the rest of her work, it’s both highly visual and definitely it’s own thing. You can see the whole process in a video she posted to social media, embedded below.

Continue reading “See The “Pause-and-Attach” Technique For 3D Printing In Action”

3D Print A Stenciling Frame For Your PCB

For many a hacker, stenciling a board for the first time is a game-changing experience – the solder joints you get, sure do give your PCB the aura of a mass-manufactured device. Now, you might not get a perfect print – and neither did [Atul R]. Not to worry, because if you have a 3D printer handy, he’s showing you how to design a 3D-printed frame using Blender and TinkerCAD, making your solder paste print well even if you’re trying to rest a giant stencil on top of a tiny board.

[Atul]’s situation was non-characteristic – the project is a 2mm thick PCB designed to plug right into a USB port, so the usual trick of using some scrap PCBs wouldn’t work, and using a 3D-printed frame turned out to be key. To get it done, he exported a .wrl from KiCad, processed it in Blender, and then designed a frame with help of TinkerCAD. These techniques, no doubt, will translate into your CAD of choice – especially if you go with .step export instead of .wrl.

This kind of frame design will get you far, especially for boards where the more common techniques fail – say, if you need to assemble a double-sided board and one side is already populated. Don’t have a stencil? You could surely make a 3D printed stencil, too, both for KiCad boards and for random Gerber files. Oh, and don’t forget this 3D-printable stencil alignment jig, while you’re at it – looks like it ought to save you quite a bit of trouble.

Print Yourself Penrose Wave Tiles As An Excellent Conversation Starter

Ah, tiles. You can get square ones, and do a grid, or you can get fancier shapes and do something altogether more complex. By and large though, whatever pattern you choose, it will normally end up repeating on some scale or other. That is, unless you go with something like a Penrose Wave Tile. Discovered by mathematician Roger Penrose, they never exactly repeat, no matter how you lay them out.

[carterhoefling14] decided to try and create Penrose tiles at home—with a 3D printer being the perfect route to do it. Creating the tiles was simple—the first step was to find a Penrose pattern image online, which could then be used as the basis to design the 3D part in Fusion 360. From there, the parts were also given an inner wave structure to add further visual interest. The tiles were then printed to create a real-world Penrose tile form.

You could certainly use these Penrose tiles as decor, though we’d make some recommendations if you’re going that path. For one, you’ll want to print them in a way that optimizes for surface quality, as post-processing is time consuming and laborious. If you’re printing in plastic, probably don’t bother using these as floor tiles, as they won’t hold up. Wall tiles, though? Go nuts, just not as a splashback or anything. Keep it decorative only.

You can learn plenty more about Penrose tiling if you please. We do love a bit of maths around these parts, too. If you’ve been making your own topological creation, don’t hesitate to drop us a line. 

3D Printer Swaps Build Plates To Automate Print Jobs

[Andre Me] has long-standing interest in automating 3D print jobs, and his latest project is automating build plate changes on the Bambu A1 Mini.

Here’s how it works: each build plate gets a sort of “shoe” affixed to it, with which attachments on the printer itself physically interact when loading new plates and removing filled ones.

When a print job is finished, custom G-code causes an attachment on the printer to wedge itself under the build plate and peel it off until it is freed from the magnetic bed, after which the finished plate can be pushed towards the front. A stack of fresh build plates is behind the printer, and the printer slips a new one from the bottom when needed. Again, since the printer’s bed is magnetic, all one has to do is get the new plate to reliably line up and the magnetic attraction does the rest.

Some methods of automating print jobs rely on ejecting the finished parts and others swap the print beds. [Andre]’s is the latter type and we do really like how few moving parts are involved, although the resulting system has the drawback of requiring considerably more table space than just the printer itself. Still, it’s not at all a bad trade-off.

Watch it in action in the two videos embedded below. The first shows a time-lapse of loading and ejecting over 100 build plates in a row, and the second shows the whole system in action printing bowls in different colors. Continue reading “3D Printer Swaps Build Plates To Automate Print Jobs”