CNC machines are cool, there’s no doubt about that. But what kind of results can the average Joe expect to get, when building to a low cost and low complexity target? We’re going to find out for you, in a build of the Solsylva 10×9 CNC router. Although this is Solsylva’s low-end machine, it seems like it will perform better than their workhorse 13×13 fixed gantry machine. This is because it uses 608 (skateboard/rollerblade) bearings on black iron pipe for all the linear rails instead of bushings, as well as the fact that a smaller machine made of simple pine boards will probably be stiffer and have less flex and play than a larger machine of the same construction. We shall have to wait to see if this theory holds.
Fig 1 – Solsylva’s pic of an unpainted machine
Although Solsylva has constructed this machine to be able to route wood and aluminum (seriously, they show results on their page here – not bad!) we intend to tryit for PCB milling. The biggest issues for the accuracy required in PCB milling are Z height variation and XY backlash. If there is variation in the Z height, then parts of the PCB will be milled deeper than other parts, and things can get ugly fast. If there is backlash in the XY axes, things can get ugly even faster. Backlash is mechanical slop in the positioning – for example, if you intend to move 3mm but there is a little space in your screw threads on the X axis, the table will move less than 3mm. When interleaving X and Y moves, there is a good chance you won’t even come back to the same position in X if you try moving -3mm due to different tensions in Y adding to, or taking away from the slop in X. You end up overcutting your traces (or undercutting, as the case may be) which means that to get a reasonable PCB you must use large traces – not fatal, but it will definitely limit the usefulness of the machine.
So why do we think that PCB milling is even practical on a non-precision aligned machine like this? A couple of reasons: Solsylva uses a clever method to fix the Z height issue – after construction, they use the machine itself to mill a little bit off the entire top of the table. This way, even if the machine is not level the table will be level to whatever angle the router carriage is hanging at. This is probably a very common technique in the CNC world, but to us it’s a clever self alignment trick that will correct for essentially all the Z misalignment (gantry not perfectly level, flex in gantry, etc) and some amount of misalignment is pretty much guaranteed in our build!
The Z axis has a constant weight of the router hanging on it, so it should not suffer backlash – even if there’s a little gap in the threads of the Z screw, the weight of the router will keep it pulled down tight so it won’t rattle back and forth. For the X and Y axis, Tee nuts are used because (we assume) that a longer section of thread has less probability of having a gap than a single nut. We’re still undecided as to whether we will use the Tee nuts or attempt to assemble some sort of homemade anti-backlash nut. These are usually made by drilling a hole in some delrin slightly smaller than your threaded rod, heating the rod and forcefully turning it through so it cuts it’s own threads at exactly the profile of the threaded rod. Another self-aligning technique that seems like it should work fairly well.
We may start with the recommended tee nuts and move to delrin or another homemade antibacklash setup later after measuring the actual PCB routing performance. If neither of those are good enough then the kit can be modded to use Acme threaded rod. This stuff has a very coarse, deep, trapezoidal thread and is intended for use as an axis positioning thread. Some Acme and a couple of true anti-backlash nuts will give this machine it’s top possible performance. Which is what, you say?
Well, if we’re using 5/16 x 18 threaded rod there are 18 threads per inch, or 0.055″ per turn (55 mils, or 1.4mm). Divide that by the base value of the stepper motor steps per revolution (typically 200 for a 1.8 degree stepper) which will bring you to 0.27mil / 0.007mm. If the stepper driver offers 4x, 8x, 16x microstepping then you would again divide by that number to get a ridiculously small value for theoretical accuracy that you will never hit based on mechanical tolerances. If we can achieve 2 mils of slop in this machine it would be a miracle – not due to the design, just to our mechanical ineptitude. So if our “noise floor” is already 2 mils, then microstepping is not even necessary for this type of device. However, acme thread is much coarser (2-5 turns per inch) so it’s better to get a microstepping driver. We’ll use the Allegro A4988 because it’s simple, not that easy to blow up when heatsinked and the Pololu breakout board is a convenient form factor at a pretty good price of $13 bucks.
As for the level of detail in the build… It may have to be limited in some cases as we do not want to give away Solsylva’s plans. We’ll show the pieces going together, but will leave out the measurements and other details on Solsylva’s stuff. In other cases (like the trucks) we have departed from Solsylva’s plans and consider our own designs to be open source – we will release the details there. In the case of the trucks, we have used a modified JRGO truck which goes together solid as a rock and was itself open source from the get-go. In either case, they’re just some skateboard bearings bolted to generic aluminum angle from your local hardware warehouse.
So stop back from time to time and check in on the progress. It’s going to be an interesting build, and should answer a lot of questions for those who want a small scale router and don’t want to pay the $600 and up for an offshore ebay model.

