Purposing a Makesmith CNC

Back in May of 2014 I was a Kickstarter supporter of the Makesmith CNC, which was an attempt to build an extremely inexpensive CNC router. The project was 822% funded, and they shipped all the kits in November, almost on time. Yay!

I began to put mine together right away. They had pretty good video tutorials on how to do it, but not much in the way of written documentation, and there were some holes in the tutorials. I made a post or two on their forum about my experiences. There were a few minor updates to the videos, made as overlaid titles, but nothing very substantial. I set the project aside to wait for the rest of the community to catch up and participate in improving the design.

Over a year later, in December 2015, I picked it up again. I found no improved documentation and relatively little more in the forums, so I just completed the assembly of the mill using my own best guesses. After jumping through some hoops to get their Macintosh software running, I was able to run some initial tests. I wasn’t impressed. As expected, it was really slow, but it’s hard to appreciate how slow without seeing it in person. Also as expected, its axes were pretty wimpy, barely powerful enough to overcome their own friction. One of the cost saving measures that makes the design feasible is that they don’t really try to prevent lost motion, they just measure it with a closed-loop feedback system and try to compensate. All this is more or less as advertised.

My particular mill had worse problems. It had a tendency to get stuck in the X and Z axes. This is undoubtedly due to alignment problems with the rails, which arise from some combination of the low-budget design and the assembly procedures I used. Because of the low-budget construction, though, there is no easy way to adjust the alignment after assembly and gluing. I’m sure there’s some way to make the mill work to expectations, but at this point it became clear to me that this mill was going to be frustrating to use. It was just too compromised to reduce cost.

By that time it was clear that Makesmith was never going into production with these machines, either. They filled the Kickstarter orders, and stopped. The software hasn’t been updated, and the user forum looks abandoned (overrun by forum spam). Maybe Makesmith reached the same conclusion: that the Makesmith CNC just wasn’t viable. They ran a new Kickstarter project in November 2016 to make a much larger CNC router at a very low cost point. I hope they and their Kickstarter backers have better luck this time.

Anyhow, I decided to give up on using the Makesmith CNC. It was fun to build and educational, so I got my money’s worth (more or less), even though I never even mounted a spindle (i.e., a Dremel tool) on the mill. I began researching commercially available mills and a few months later ended up buying the Tormach PCNC 440 with all the goodies for about 55 times the cost of the Kickstarter Makesmith CNC. Needless to say, it’s in a whole different class.

All of which is just a long explanation for why I have the carcass of a Makesmith CNC sitting around, capable (barely) of X-Y-Z positioning, but without a purpose. I also had a cheap USB microscope, which was adequately functional but which came with a nearly useless articulated-arm stand. Recently it occurred to me that the Makesmith would work as a positioner for the microscope. With a solid stand and relatively precise orthogonal positioning axes, the microscope would be transformed from a toy into a tool. Holding a lightweight plastic microscope and positioning it interactively under manual control is far less demanding for the Makesmith chassis than working as a milling machine.

I wanted interactive control of the positioner, independent of any computer software, so I bought a joystick on a breakout board and wired it up to spare I/O pins on the Arduino Mega 2560 that serves as the brains for the Makesmith CNC.


I then discarded the Makesmith firmware and wrote a dead-simple Arduino program that reads the joysticks and moves the axes, without any of the complexities of feedback or G-code interpretation or much of anything else. The software is on Github. I also added a power cable so that the Arduino was powered from the Makesmith’s power supply, instead of from the host computer’s USB port. Here’s the final lashup:


The microscope is a cheapie, but it gives decent results. My test subject here is a Raspberry Pi board. Here’s the view at minimum magnification, at 640×480 pixel resolution:

Wide small

For scale, the big black chip is 9mm square. Here’s the view at maximum magnification and maximum resolution:

Narrow big

We see just a few of the pins on one side of the same chip. Near the middle of the image is a via, a tiny hole that routes the circuit to the other side of the board. Those little white specks inside the via are formed by a silk screened annotation on the back side that happens to overlap with the hole. At this magnification, the depth of field is pretty shallow, so the top of the chip and of C78 are quite out of focus.

The motion of the Z axis is quite sufficient for focusing the microscope, even at maximum magnification. It could use more vertical travel for working on larger subjects, but that’s true of every positioner in the world. The X and Y axes are still slow, but even at minimum magnification they move the image about as fast as you’d want them to. The speed only becomes an issue when you need to move the microscope to a whole different area. Often it’s easier to just move the subject around on the platform.

The microscope can capture video, too, but the motion isn’t really smooth enough for that to be impressive. I’m using miXscope software to control the microscope from a MacBook Air. That software has a number of useful features for technical microscopy, but it’s a bit long in the tooth and a bit crashy on current versions of macOS.

The next obvious application for a microscope with a positioner is to automatically photograph a grid of overlapping images at different X-Y offsets, which can then be stitched together to create a larger high-resolution image. To do this I’d need to add back some of the complexity of the control firmware, so it’s on the back burner for now. Another variant would be to take multiple exposures at different Z offsets, which can then be merged to increase the effective depth of field. More projects!

This was a quickie weekend boondoggle, except for waiting for the joystick board to arrive. Well worth the effort to add an improved tool to the lab.

Drag Engraving Test

I did some diamond drag engraving on aluminum in the PCNC 440. Results look pretty good! It’s quick, too.


The heading across the top was done from the conversational screen in PathPilot. The two copies of the logo were converted from Adobe Illustrator via Inkscape to DWG format and imported into Fusion 360, which generated the Gcode for PathPilot.

One apparent limitation: I couldn’t find any way to tell Fusion 360 CAM that you’re working with a tool that doesn’t need to spin. If you set the spindle speed to 0, it complains that the spindle speed is out of range and won’t generate Gcode. The workaround (thanks NYC CNC) is to set an in-range spindle speed, and then edit the Gcode to remove the spindle commands. That’s messy and error-prone.

The diamond drag engraver is spring-loaded, so the Z depth is not critical. The logo on the left was engraved with a Z depth of only 0.02 inches, while the one on the right used 0.25 inches, about half the available travel of the spring head. The results are practically identical.

Spindle Lockout for Tormach PCNC 440

Recently I installed a CNC milling machine in the garage, a Tormach PCNC 440. This is the smallest and newest of three CNC mills they manufacture in China but design, QA, and support from Wisconsin. These machines are designed to be affordable but still offer a very usable level of performance. Current models are controlled by an external Linux-based PC built from standard PC components, plus a Mesa 5I25 FPGA-based PCI I/O card, running Tormach’s PathPilot software. This setup replaced an older configuration that ran third-party Mach3 software on a standard PC under a customized version of Windows.

I’m a beginner at machining, and have been taking it slow and easy as I get up to speed on operating the 440. A few days ago I was working with the Tormach Passive Probe. This is a simple mechanical sensor that mounts in the machine’s spindle (where a cutting tool would usually go) and cables up to the controller. This allows the controller to detect the X, Y, and Z locations of surfaces on the work piece or fixtures. It’s one of several ways to get the machine properly lined up to the work.

The probe comes with a prominent warning to disable the spindle before use. Obviously, if the spindle starts to spin with the probe mounted, the probe’s cable is going to get wrapped around the probe and destroyed. Tormach tells me that the warning exists because of a known problem with the older Mach3 software, which could cause the spindle to start running under certain conditions. On the older model mills, there is a control panel switch that locks out the spindle. Since the 440 never used Mach3, Tormach decided to leave out the spindle lockout switch, one of many cost reductions that makes the 440 so affordable. There is still an interlock on the spindle door, so the spindle cannot be activated with the access door open.

Unfortunately, the spindle access door can’t just be left open as a substitute for a spindle lockout switch. The top panel of the optional enclosure kit just clears the spindle with the door closed. With the door open, the machine’s head can’t be lowered into the work area. So, one has no choice but to trust that the controller won’t activate the spindle while you’re using the probe. If you make a mistake and tell the controller to activate the spindle, or if something goes wrong in the controller and it activates the spindle when it shouldn’t, there’s nothing to prevent the spindle from spinning and destroying the probe.

So, I was working with the probe. I had used it to line up X and Y, and was thinking about Z, when I got interrupted to go out to lunch. I didn’t want to lose my X and Y settings, so I left the machine turned on. When I returned from lunch, this is what I found:

Results of spindle mishap on Tormach PCNC 440
Results of spindle mishap on Tormach PCNC 440

Not only was the cable wrapped around the probe and snapped off where it enters the enclosure, but it had also grabbed and destroyed the armored hose that carries flood coolant. It had thrashed the lightweight fabric bellows that protects the Z axis ways, and also snapped off the expensive ruby-tipped ceramic probe tip. The user interface on the PathPilot screen looked normal but was unresponsive. Crashed.

I don’t know whether this was a one-time glitch (cosmic rays?) or a defect in my hardware or a systematic bug in the PathPilot software. Tormach is investigating, trying to reproduce the problem.

In the meantime, I decided to add my own spindle lockout switch. I consulted the schematic diagram for the mill and noted that the access door interlock switch is in series with the power being supplied to the module that runs the spindle motor. No combination of failures or glitches in the spindle motor driver could cause the spindle to turn when there’s no power being delivered to the driver. This is a very safe design, but it does require an interlock switch and wiring that’s able to handle all the current that the 3/4-horsepower spindle motor can draw. The schematic shows a 6 amp fuse in that circuit. I could add my own switch in series with the door interlock, as long as it could handle the 6 amps. I chose a toggle switch rated at 20 amps, GC Electronics model 35-130, because it was available at my local Fry’s.

The next question was where to mount my lockout switch. Perhaps the most obvious place would be on the side of the mill’s electronics cabinet. That’s where the main power switch is, and also the connector for plugging in the probe’s cable, and several blank panels that appear to be designed for specific future accessories. The needed circuits are readily accessible inside the cabinet on barrier strips, and there’s plenty of clearance inside the cabinet to mount a switch on the side panel. Unfortunately, my garage installation is somewhat crowded and the side panel is not very easy to reach. I worried that I might skip using a lockout switch mounted in that inconvenient location.

The easiest surfaces to reach are on the front of the mill’s enclosure, but all those surfaces are single thicknesses of sheet metal, with the inside being within the splash zone for coolant and chips. Mounting anything electrical there would mean adding a sealed enclosure for it, and finding a clean way to run heavy wires to it. That didn’t seem like the right answer.

Instead, I chose to mount the switch above the spindle motor, right next to the door interlock switch. This should be convenient, because I have to open the spindle door in order to change tools, so I will be in there every time I mount the probe. (When Tormach releases the power drawbar add-on kit, that will no longer be true. I may revisit the lockout switch placement then.) In my junk box I found some 3″x1″ aluminum C-channel. I cut a 1.75″ length of this stock, and mounted the switch on one of the small sides. I drilled two holes through the other small side, and matching holes in the back panel of the spindle enclosure, and mounted the assembly with two bolts. The C-channel is more than stiff enough to support the switch.

Spindle Lockout Switch added to Tormach PCNC 440
Spindle Lockout Switch added to Tormach PCNC 440

The switch has screw terminals, and so does the door interlock switch, so wiring was easy. I just removed one wire from the door interlock switch and moved it to my switch, and added a 6″ jumper of #14 wire between my switch and the door interlock switch.