Most folks that have been poking around at multi-tool 3D printing know that lining up nozzles can be a gnarly, but necessary pain point. Existing methods either have us measure offsets with a vernier scale or with a series of pictures taken with an upwards-facing camera. And this step is not to be ignored! Any mismatch between nozzles, and your multicolor prints end up looking like Scotty really screwed up those sliders on that transporter beam console. Fear not, however! [Danal] took this problem as an opportunity to write something that’s completely automated and brought to you by some machine vision.
Dubbed TAMV, for Tool Align Machine Vision, [Danal] added a Raspberry Pi alongside his existing 3D printing motion controller in addition to an upwards facing camera. A few lines of code (and a few hours of compiling OpenCV) later, and he had himself a circle-detecting script that automatically cycles through each tool, detects the nozzle center, and calculates an offset for each tool that’s stored into the machine’s configuration file. If that’s not nifty enough, he’s made the entire setup open-source, and he included both an installation script for compiling OpenCV and a well-written set of step-by-step instructions.
In a world where most hobbyists approaches still solve this problem manually, this is leaps and bounds ahead of what we know, and it’s a great application of machine vision built on top of a stack of recognizable hardware and software. While this project was outfitted for a Jubilee running a Duet3 controller with a Raspberry Pi connected in “single-board computer” mode, the core features are readily adaptable to any other multi-tool machine with a similar control board stack. And for folks willing to poke under the hood, the project could even be extended to a standalone script that you can run on your PC locally to simply print the tool offsets separately.
Alongside TAMV, it’s refreshing that even a decade after 3D printers have been with us, we’re still finding ways to make these machines more capable. For more fresh hacks in this category, check out a new spin on using sharpie ink as a support material release agent.
When it comes to computers, it seems like the only thing that matters is speed. The more the better, in general, and the same applies to peripherals. We want the fastest network adapters, the fastest video card, and the fastest printer. So why in the world would anyone intentionally build a really slow inkjet printer? For art, of course.
At least that’s the story [HomoFaciens] tells us in the video below. His efforts are in support of a friend’s art project, which seeks to print slowly but continuously on a roll of paper. [HomoFaciens]’s printer is based on an H-P C6602 inkjet cartridge, one of those high-priced consumables that make buying a new printer more attractive than replacing them once depleted. After figuring out how to drive the printhead — 5 to 6 μs pulses of 18 volts through a ULN2803 Darlington array driver chip seemed to do the trick — he mounted everything to the gantry of an old 3D printer. It’s interesting to watch the images slowly being built up — something that printers usually hide from prying eyes — and to see how the DPI count of the printer can be increased by interlacing each printed line.
Last week, [Danal Estes] passed away. This comes as a shock to many of us who had the pleasure of interacting with him online. Not only was [Danal] an active contributor to the 3D printing community, he was simply a warm-hearted character who was just fun to get along with. I met [Danal] online less than a year ago. But I owe him a debt in helping transform a set of design files that I posted online into a full blown community of hardware enthusiasts.
Here’s my best shot at recounting some of this fellow human’s legacy as seen from the fellow tool changing 3D printing enthusiasts who knew him.
Getting to Know an Online Community Builder
I first met [Danal] online last September through Thingiverse when he posted a make of Jubilee, a tool changing machine design that I posted a few weeks prior. At a time when Jubilee was just a set of files and instructions on the internet, I was stoked that someone in the world was out there building a duplicate. To get to know these people better and work out any pinch points in their assembly process, I started a Discord Chat Server. [Danal] was the first to join and start telling his story in pictures.
As a community of curious people on Discord grew, questions about the machine started to arise. How big was it? How did the tool changing work? I tried answering as many as I could, putting an FAQ blurb on Thingiverse, But a few weeks in, something else happened: [Danal] started answering the questions. Not only that, he was greeting nearly every single person who introduced themselves on the server. I didn’t understand the value of a simple “welcome aboard!” that follows someone’s first post in a budding online community, but [Danal] did. So he did just that. He made you feel welcome to have landed in this corner of the internet. In a world full of engineers who don’t like repeating themselves, [Danal] seemed to get that his repeat interaction was new for the person on the other end; and that made it worth doing.
As the days passed, questions continued, and [Danal] continued to fill people in with answers to questions–even repeat questions. All the while, he posted progress pictures of his own machine. In a way, the rest of the community seemed to be holding their breath during this time, watching [Danal] post status reports; waiting for some conviction that these files actually turned into something that worked. Then, less than a month later, [Danal] posted a video of his first successful tool change. It did work! Almost certainly inspired by [Danal’s] success, a few more folks started building machines of their own. But [Danal] was the first person to duplicate a Jubilee.
More than twenty machines have been built in the wild since I posted the project files back in September. I believe that the inspiration to start draws from the success of people who have finished before, which chains down to the inspiration drawn from the success of the first person to finish: [Danal Estes]. I owe him one for that: for inspiring a community of folks to follow in this adventure.
Commoditized Automatic Nozzle Alignment
[Danal] did more than affirm the machine design to a new Jubilee community. Over the short span of the project, [Danal] put his software hat on and developed an automated machine-vision based tool alignment system that he called TAMV. It turns out that tool tip calibration is one of the gnarly problems for any multi-nozzle 3D printer. Tools must be aligned relative to each other such that each of the unique materials they print are aligned in the resulting print. The current ways of doing this are cumbersome and manual. Either you measure offsets by printing a vernier scale or by taking pictures with an upwards-facing microscope. [Danal] took this gnarly problem as an opportunity to automate the process completely, so he did.
In just two months, [Danal] returned with an announcement on the Jubilee Discord to present TAMV, aka: Tool Align Machine Vision. By mounting an upwards facing webcam to the front of his Jubilee, [Danal] simply ran his one-button script, and his machine automatically calibrated each available tool both automatically and better than most humans could with the prior methods. It did this by sequentially picking up tools, putting them in the camera field of view, and then measuring their offsets. What’s more, he released the entire code base as open-source, literally transforming a gnarly problem into a thing of the past with a commodity solution made usable with a simple installation script and setup instructions that he also wrote.
Here on Hackaday, it’s humbling to read about the amazing feats folks are overcoming all from the comfort of their home workbenches. But it’s invigorating to see that same feat unfolded in a way that lets us unpack it, learn from it, build on top of it. The act of documenting work you’ve already done with the intent that others could follow it is an act of grace. [Danal] was gracious.
A Shared Story Told in Projects
As [Danal] became one of the most active community members on Discord, we started to learn more about his other projects. For [Danal], 3D printers were as much a side project as they were tools in a family of other tools for creative projects. Armed with these machines, [Danal] put them to work on machines for flight, from extraordinary remote control aircraft (3D printed of course) that could barely work their wingspan through a doorway to the consoles of real world aircraft that could carry a pilot.
It was always a pleasure to get a slice of [Danal’s] adventures. Getting to hear about his excitement in projecting was food for a growing community of hobbyists eager to get back to our workbenches. And the framing of his adventures was warm enough to make you feel not just that you wanted a bit of this lifestyle for yourself, but that you could have it too. I hope that this part of [Danal’s] legacy is something that we online folk can continue: the shared courtesy and warm attitude to newcomers in a hardware hacking community.
[Facelesstech] owns an SJCAM SJ4000 action camera, but the internal battery was no longer functional. Not wishing to buy a replacement and unwilling to hook up an ungainly USB cable to feed power, the solution was to design and 3D print an adapter to power the camera from a single rechargeable 14500 sized battery (which is the same size as an AA cell, and a good match for the width of the camera.)
The adapter works by mimicking the original battery, so the camera never knows the difference. A 3D-printed holder for the 14500 battery (which doubles as a GoPro compatible mount) has an extension the same size and shape of the camera’s original internal battery. The tricky part was interfacing to the power connectors buried inside the camera’s battery bay. For a solution, [Facelesstech] eventually settled on the small connectors harvested from inside a female header, using them to connect to the small blades inside the camera. We broke open a spare female 0.1″ header, shown here, to make it clear where these little pieces come from. The only other battery hardware needed are the contacts for an AA cell, but those are also easy to harvest and reuse.
The GitHub repository for the project includes STL files as well as the FreeCAD files for the parts. A video overview is embedded below.
There is something to be said for brute force or trial-and-error approaches to problems, especially when finding a solution has an empirical element to it. [Tommy] perceived that to be the case when needing to design and 3D print servo horns that would fit factory servos as closely as possible, and used OpenSCAD to print a “Goldilocks array” from which it was possible to find a perfect match for his printer by making the trial and error process much more efficient. By printing one part, [Tommy] could test-fit dozens of options.
What made doing this necessary is the fact that every 3D printer has some variance in how accurately they will reproduce small features and dimensions. A 6.3 mm diameter hole in a CAD model, for example, will not come out as exactly 6.3 mm in a 3D-printed object. It will be off by some amount, but usually consistently so. Therefore, one way around this is to empirically determine which measurements result in a perfect fit, and use those for production on that specific 3D printer.
That’s exactly what [Tommy] did, using OpenSCAD to generate an array of slightly different sizes and shapes. The array gets printed out, servos are test-fitted to them, and whichever option fits best has its dimensions used for production. This concept can be implemented in any number of ways, and OpenSCAD makes a decent option due to its programmatic nature. Interested in OpenSCAD? It will run on nearly any hardware, and you can get up and running with the basics in probably less than ten minutes.
Over the past decades, additive manufacturing (AM, also known as 3D printing) has become increasingly common in manufacturing processes. While immensely helpful in the prototyping of new products by allowing for rapid turn-around times between design and testing, these days additive manufacturing is used more and more often in the production of everything from small production runs of custom enclosures to hard to machine components for rocket engines.
The obvious advantage of additive manufacturing is that they use generic equipment and common materials as input, without requiring expensive molds as in the case of injection molding, or extensive, wasteful machining of raw materials on a lathe, mill, and similar equipment. All of the manufacturing gets reduced to a 3D model as input, one or more input materials, and the actual device that converts the 3D model into a physical component with very limited waste.
In the nuclear power industry, these benefits haven’t gone unnoticed, which has led to 3D printed parts being developed for everything from keeping existing plants running to streamlining spent fuel reprocessing and even the printing of entire nuclear reactors.
After going through all the trouble of printing a part in resin, discovering it feels sticky or tacky to the touch is pretty unwelcome. Giving the model some extra ultraviolet (UV) curing seems like it should fix the problem, but it probably does not. So, what can be done?
The best thing to do with a sticky print is to immediately re-wash it in clean isopropyl alcohol (IPA) before the UV present in ambient light cures stray resin. If the part remains sticky after it is dry, more aggressive steps can be taken.