Big thanks to everyone who helped me lug this beast into the shop last night.
For something called a “microscope”, you’d think it would be tiny…
Minnie’s name plate is finally finished! Let’s start with the finalé and work backwards :
The black is high gloss automotive paint. I sprayed a nice thick layer over the entire piece, let it dry, then hit it with an orbital sander to remove the excess. A thin layer of clear-coat will hopefully keep it from tarnishing.
I had initially tried a more conservative shot of enamel, but it didn’t like the clear-coat. So one acetone wash later and it was back to the spray booth improvised from the remains of that old janky laser cutter.
Here’s the piece before sanding:
The brass cut pretty cleanly on the cncbot. Before I ran the cut in brass, I did several tests in plywood, which cuts like butter. For best results with brass, the rule seems to be SLOW DOWN AND USE MORE LUBE.
Before plywood, I simulated the gcode with Cutviewer to make sure I didn’t have any obvious mistakes:
The gcode was generated in CamBam (not free, Windows only, but reasonably priced and very easy to go from simple DXFs to mill-friendly gcode). The UI is pretty basic, but it has some nice features like auto-computing cutout tabs and integration with Cutviewer.
The rest of the toolchain is better left un-blogged. It’s ugly.
The DIY 3D printing world is fairly well covered with good software at this stage. But the path from bits to atoms via milling machines seems to be strewn with the debris of good intentions, abandoned java blobs, questionable firmware, and people who think that running Debian 3.0 on a 486 with a parallel port is the pinnacle of desktop CNC.
But if I had, I would have likely missed a great opportunity. We now live in an age of digital conical X-rays, cheap DVD burners, and 3D printers. I wondered what it would take to turn that collection of medical data into a physical copy of my own skull.
As it turns out, a couple of days of software wrangling and eleven hours of printing later, I had my answer.
If I was going to produce a 3D model suitable for printing, the first step was obvious: I’d need to get the data off of the DVD my dentist gave me and into a print-friendly format.
The scanner stores the data on disc as a “stack” of 0.4mm slices. Imagine taking your head to the supermarket and putting it on a deli slicer. Lop off the top couple of centimeters, slice the rest all the way down to the bottom of your chin, stack it up neatly on some brown paper, and there you have it. Here’s a video fly-through of my head, from top to bottom (generated by RadiAnt viewer).
This tool made it very easy to get a sense of the state of my teeth. It can zoom in on any angle and show a 3D model of the scan results. The only trouble is that it offered no obvious way to extract the model itself to any common format.
Fortunately for the medical world (and the rest of us), there’s DICOM. It’s the lingua franca of medical imaging. It’s to medical imaging software what PDF is to e-book readers. There are a bunch of programs out there that can take a stack of image data in DICOM format and reconstruct a model from it. And i-CAT Vision fully supports exporting to DICOM.
Now the bad news: As so often happens with specialized free software, each program is good at one or two things (whatever itch the programmer had to scratch) and terrible at anything else (abysmal user interfaces, abandoned codebases, poor documentation, etc.)
I eventually found InVesalius, a free (as in GPL) DICOM viewer and model creation tool from Brazil. It has a very nice interface for choosing which densities you’re interested in (Bone? Skin? Blood vessels? You pick!) and will export directly to STL (the generally preferred format for conversing with 3D printers). Plus, it was the least crashy of any of the DICOM software I tried.
Now that I had a model in a nice STL file, I encountered my second problem. Life (and poor dental hygiene habits) have not been kind to my teeth. I’ve got a ton of fillings, crowns, spikes from root canals, and other foreign metallic strangeness in my teeth. It shows up as bright white on the scan.
See those dark bands around all of that expensive dental work? I believe that happens because of the limited dynamic range of each slice. If you’ve got a lot of bright spots, you won’t have enough bits to provide detail in the shadows. These shadows and diffraction effects end up creating some really weird artifacts in the 3D model.
While it was possible to clean all of that up a slice at a time in InVesalius, that proved to be extremely time consuming. Since I just wanted to make something to spook my friends with (and not necessarily a completely accurate anatomical reference) I turned to a different tool: Autodesk MeshMixer.
Working with MeshMixer is a bit like modeling in clay. You have a few tools that let you push, stretch, smooth, or otherwise mangle your model. The emphasis is on organic manipulations rather than razor sharp precision. In other words, it’s the perfect tool to touch up a human skull.
The inspector tool is a powerful and very fast way to clean up artifacts (like the thousands of disconnected globules hanging around inside my brain, or the dozens of broken meshes that need to be repaired). After a couple of hours of playing with my skull in MeshMixer, I finally had something that looked like it would print well.
And since my X-ray imaging data stops at the top of my eye sockets, I thought adding an organic bowl shape would make for a nice candy dish when printed.
With the model complete, all that was left was to print it. I asked my good friend and 3D printing guru Rich Olson if he’d mind trying to print it out on his Replicator 2. The first couple of test prints looked very promising. After a little more cleanup (adding supports for some overhangs and making the bottom of the model perfectly flat) we decided to try for a full-sized print.
Ten and a half hours later, the results were much better than I’d hoped.
Now that I have my very own mini-me in PLA, I’m thinking of continuing to improve the model. If I remove the jaw, I could print it separately and get a perfect replica of my bottom teeth. If I make the walls just thick enough, I should be able to cast it in aluminum or maybe bronze. Of course, now I want to go get a full MRI of my body (or at least my brain!) and make more models of various organs.
I finally got around to making a couple of much needed upgrades to the Tesla gun. First: a trigger! I had previously been using a switch with a molly guard as the on/off mechanism. Now the switch “arms” the gun and turns on the turbine fan (both as an audible warning and to keep the HV switch cool). When it’s armed, just pull the trigger for lightning-at-your-fingertips convenience.
The second upgrade was a better, cooler hockey puck of doom. This one uses silicone compound impregnated with hexagonal boron nitride. It conducts heat much better than straight silicone, and should theoretically extend the life of the hockey puck driver.
I couldn’t find a heat sink of appropriate size, so I cut one out of an old discarded 12″ Mac Powerbook. It was covered in stickers, which I think greatly add to the aesthetic appeal of the resulting heat sink.
Finally, I added a new grounding ring with better strain relief to the back of the gun. This makes a much stronger mechanical connection to the gun. The wire is soldered on for the best possible electrical connection. The wire doesn’t carry much current, and needs to flex well, so I used some stranded 18 AWG.
With these upgrades, I think the Tesla gun is ready for the busy summer zapping season!
The gantry is the part of a CNC robot that puts a tool just where it needs to be to get the job done. The tool can be anything: a rotary tool, a plastic extrusion head, a sharpie, a vacuum attachment, or anything else you like. In the case of my laser cutter, the tool is a mirror and lens arrangement that focuses a beam of light onto the work piece.
As I mentioned in my first post, MakerSlide makes it easy to put a gantry together in short order. It elegantly solves the problem of how to keep your axes perpendicular to each other without twisting. It uses trapped Delrin v-wheels on a long, ridged piece of t-slot, with steel bearings to keep the movement smooth.
A nice side effect of using aluminum for all of the gantry pieces meant that I could use magnetic reed switches instead of physical microswitches. With a steel gantry, the steel would eventually become magnetized and interfere with the switches.
I found that adding 3 layers of marine grade heat shrink tubing not only protected the reed switches, but made the switch the perfect size to fit inside the edge of the t-slot. Heat it up with the heat gun, press it into place, and when it cools, this reed switch is permanently mounted. You can still slide it along the slot to get the edge of the stop in just the right position. Then all of the wiring can run along the slot, and stays held in place with little rubber grommets. No tools, no glue, just rubber friction is all it takes.
Magnets harvested from a couple of old laptop hard drives seal the deal. One rides along with the shuttle on the back of the X axis, the other rides on the side of the Y.
I used full stops on the X and Y (one each at the minimum and maximum). You can get away with two (one each at minimum X and Y) and rely on software to keep the gantry from running off the end, but I think full stops are worth the extra effort. They provide an extra sanity check in case something goes wrong with the motor drive. This is especially important when you’re still figuring out your motor speeds and step counts. Which brings us to…
I used one stepper motor for each of the axes. The X axis motor came from a recycled project, and is somewhere in the 1A / 1.8deg/step / 1.9Nm range. This was definitely overkill for the very light X shuttle (it only holds the laser head and a magnet, and weighs very little). But you can’t beat free, so in it went.
The Y axis motor is a dual-shaft (Longs 23HS8610B): another 1.0A, 1.8deg/step, 1.9Nm. This turned out to be slightly underpowered for the Y axis. The Y needs to move a lot more weight than the X (the Y axis MakerSlide, plus all of the weight of the X shuttle AND motor…) I ended up dropping the step count down a bit and slowed it down until it didn’t drop any steps, and it’s quite happy.
The Z axis used whatever motor came with the Z module from the old laser; it looks a lot like the X motor. A couple of minutes with a volt meter and a cheat sheet helped figure out how to wire it up.
I standardized on MXL pulleys and belts. They’re common enough to be reasonably cheap, and still provide plenty of grip.
Put it all together and away you go: the gantry can auto-home without any visible stop switches. It won’t run off the edge of the gantry, and all of the wiring is safely tucked away.
Tune in next time for DIY Laser Part 4: The Heart
In the meantime, here is the photo album for the completed build.