Inexpensive Desktop CNC Mill & Lasercutter
The Electronics and Robotics shop (E&R) at Artisan's Asylum has one of the original Othermills from the Other Machine Co. "Original" as in back when it was still a Kickstarter project. I had been using it to mill one-off/prototype PCBs until the spindle bearings started to fail. The bearings on this old unit weren't designed to be user serviceable and replacing it with a new unit would have cost us ~ $3000 (USD).
I had been looking for a reason to buy one of the cheap, desktop CNC mills from China and this was it. For less than $300 (USD) including shipping, I bought a kit with a ~ 24cm x 17cm x 6.5cm working area. It also came with a 2.5W laser head so it's a combo mill and a laser cutter. (see below) What follows are some notes on getting this assembled and running.
The hardware
The kit arrived rather quickly and in good shape in spite of a poor repacking job by US customs after they inspected it.
The quality is acceptable given the price. It came with everything you need get up and running. This includes a full hardware kit, hex wrenches, a set of "engraving" bits and a pair of "safety" goggles. (More about the goggles in another post.) The frame is assembled from T-Slot, extruded aluminum and the various support rods are steel. The spindle assembly is a pair of 3D printed parts and the guide rod supports are milled from plastic. Again, considering the price, I have no complaints.
The controller board is manufactured by Laseraxe. It uses an Arduino Nano to drive a set of StepStick stepper motor drivers. It also has inputs for limit switches and Z-Axis probing. These features aren't used on the kit I purchased but it should be a fairly simple matter to modify it.
Assembly
Assembly took the better part of an evening and was very straight forward. If you've ever played with an old-school, steel parts and metal screws erector set, you'll be fine. I may have gotten my money's worth in the fun I had simply putting it together.
The only item I would suggest altering is the location specified for the controller board. The instructions show it mounted it on one of the base rails. This exposes it to being hit by objects laying on the same bench. It also puts it below the plane of the milling surface where's it's likely to be covered with chips and dust. I installed mine on the top rail. It makes it easy to get to and I'm not concerned about mashing anything against it.
The Firmware
The controller runs a version of the open source grbl software. Grbl does all the heavy lifting to take G code input and drive the hardware. As it's open source, the first thing I did was grab the latest binaries and upload them to the nano using the standard Arduino Software. Then I grabbed a G-Code sender, UGS Platform and fired up the mill.
Gotcha!
Hmm, I tell the mill to move the head in the positive Y direction and it moves it in the positive X direction. No problem, I've probably swapped cables to the controller board. However, when I tell it to "move negative Y" it again moves in the positive X direction. WTF? To get to the point, the default Grbl builds are designed to work with a specific Arduino motor/controller shield. The Laseraxe doesn't use the same pin-out configuration. In my rush to have the latest software I had loaded the wrong configuration for this hardware.
If you do a net search you'll come across a fork by Henri W. Sirkia on github which has modified pin-outs. There are two reasons I'm not using this. First, as it's is a fork it's no longer in sync with the main project. Second, it didn't have the correct step/lead configuration for my particular mill. Having said that, thank you to Mr. Sirkia for getting me pointed in the right direction.
The fix
After some probing with a multi-meter I verified the pin-outs as listed in Mr. Sirkia's fork. I also tried to identify some of the other pin-outs for future use, e.g. the various limit switches and Z probe lines. As I'm not using those features yet, I haven't verified that information.
Per the docs in the the config.h file:
// NOTE: OEMs can avoid the need to maintain/update the defaults.h and cpu_map.h files and use only
// one configuration file by placing their specific defaults and pin map at the bottom of this file.
// If doing so, simply comment out these two defines and see instructions below
I've done this with the linked config.h file. If you'd like to replicate or modify what I've done, simply checkout the official grbl repo and use this config.h as a reference. If the original hasn't changed much you may be able to simply drop it into place and go.
Once I rebuilt the firmware with the modified config.h and uploaded it to the Nano, everything worked as expected.
Initial thoughts
As this unit is an order of magnitude cheaper than one from Bantam Tools, I was not expecting much.
While there are the obvious quality differences in the hardware. I wasn't pushing the limits of the more expensive machine and the boards I've milled so far have turned out fine. Specifically, I'm doing basic, through-hole, hand soldered boards. So, for my use case, these differences weren't an issue.
The big difference I've experienced is the software/tool chain.
Bantam provides a nice piece of software called Otherplan. You hand it a set of gerber files and it mostly does the rest of the work for you. e.g. It handles the conversion to g-code, will home the bit for you, walks you through tool changes and drives the mill. While it supports an advanced config mode that will allow you to tweak settings, I've never needed it. (They call it 'bit breaker' mode for a reason.) It will also try to protect you from common errors. For example it won't let you try to drive past the end of the table. In short, it's darn simple to use.
The Kit Mill, on the other hand, is the exact opposite. It's up to you to convert your files to g-code. You need to find a way to send that G code to grbl. You need to remember to do things like home the bit and change tools. And it won't protect you from simple mistakes like forgetting to home the bit and then having the stepper motor try to push the spindle past the stops. (Note, per above it should be a simple mod to add limit switches as both the controller board and grbl support them.)
These may be challenges or they may be features depending on what you want to do. Personally, I like the level of control inherent with the kit mill and I'm learning quite a bit. However, if your primary goal is to generate a prototype as quickly and simply as possible, you want technical support or you're doing designs which are pushing the machine to its limits, the Bantam machine may be worth the expense.
Overall, I'm quite happy with the purchase. Look for future posts
regarding tool chains and the laser cutter functionality.
Miscellaneous notes and links
Other Machine Co is now Bantam Tools. I like their product and their support people have been great. If you're a professional looking for a desktop mill I suggest you check them out.
Artisan's Asylum is an amazing community of artists, makers, engineers and generally creative people. If you're ever near Union Square in Somerville, MA, I highly recommend stopping by for a tour. The concept of "not user serviceable" doesn't apply here and the broken Othermill mentioned above has since been repaired.
I buy all sorts of cheap stuff, in both quality and price, from AliExpress. If you're looking for something there, keep in mind that not only do the Chinese knock off the world's products, they also rip off each other. Before you buy something, check for other vendors selling the same item as you're likely to find it for a lower price. Also, you'll often find free shipping in small quantities. If you need more than the limit for free shipping simply order smaller amounts from multiple vendors.
If you're curious how it can be less expensive to ship something across the world than to ship it across the state, checkout the Planet Money Podcast, Episode 857: The Postal Illuminati