cnc router, Electronics, project, dremel, Woodworking

DIY CNC Router - drilling and routing test 1

Last weekend was the first time I got my cnc router to do something recognisable. After some tuning I got it to plot out a simplified version of my blog logo, backwards... followed fairly swiftly by me breakinng the x-axis because the plastic coupler that joins the motor shaft to the threaded rod sheared in two. This weekend the first job was to replace this component, and see if I could fix whatever issue caused the break. I had my friend print me up another coupler on his makerbot this week (one day I really should get my own, but for now it is super helpful to know someone that has one). In fact he printed me two, so that next time I break one I have a reserve ready to go.

So i took apart the x-axis, removed the old coupler and started to put the new one in place. This time I realised that when fitting the couplers I really need the axis as close to the motor as possible, and this revealed the problem. there was a slight high difference between the motor shaft, and the mounted nut on the x-axis carriage. When the axis was pushed further away the height difference didn't matter much. However, as it got closer and closer to the motor that difference caused binding, and general stress on the coupler joint. Eventually this just snapped all the lugs that held the coupler together.

Simple  fix, take the mounting block off, cut a few mm off the bottom and remount. No post would be complete without some timelapse video of me doing the deed...

At the end of that video you can see I started a router test. However a couple of things didn't work so well, the main one being that the screws I used to hold the workpiece down didn't bite properly and the piece lifted into the cutter. causing smoke, and general badness. Luckily limit switches are readily available to hit to stop the machine and then I could just turn off the rotary tool.

Worth mentioning at this point, I realised last week that starting, and stopping the rotary tool caused enough of an EM spike (I'm guessing) along its cable, that when the cable was next to the wires for one of the limit switches it caused a limit trigger. I since ran the cables a little differently to avoid that issue.

I was generally wondering whether the rotary tool, and in particular the cutter I was using was really appropriate to this task. I do want to setup a mount for my actual router, and at some point by a proper cnc router bit for it. However for the moment my range of cutters is limited. So I decided to move on to a drill test.

During the week I made up a model of a cribbage board. For those that have never played, its a card game, in which you score points. ostensibly you need to be the first to score 120 points, but this is normally measured out on a board with a few tracks of holes, 30 holes in a row, 2 rows make a track for each player. you go around the board twice. marking your score with pegs. Its not important, but my wife and I play occasionally and years ago I made a crib board 'by hand' with a printed template and my pillar drill. it came out ok, and we still use it. However, I did think that the cnc would do a much neater job of drilling the holes. or at least in theory it is capable of doing so.

I knocked up a model in openScad (my modelling program of choice) and came up with this simple model:

Simple drill pattern

Simple drill pattern

Then I imported it into pyCam and created a tool path. The trick here is that by default it will want to follow around the outside of the 'holes' rather than drill them. However it lets you set an offset from the lines. If you set this to the radius of the hole, and you have a cutter specified that is the diameter of the hole, then what you get is a tool path that just hits the centre of the hole. I also don't want it dragging my drill bit around the perimeter of the shape,since it won't be a routing bit, so I set my boundaries to be inside the shape, but outside the holes. the last thing is to set the 'depth per pass' to the depth of the holes you want. so the resulting program will move from hole to hole, then drop down the entire depth of the hole in one go, come all the way back up, then move to the next hole. The output looks like this:

Screenshot from 2013-03-17 19:47:33
Screenshot from 2013-03-17 19:47:33

So with a drill bit in the rotary tool, I manually job the machine to the 0,0 point, which i this case is above where I want the first hole to be. Then power up the tool, and hit go on the program...

and of course disaster. well, not disaster, but not good either. the drill bit I was using was too long, and had too much lateral vibration at the tip, this combined with some problems moving the axis reliably put some holes very close to each other and the bit tried to wander off into a previous hole...generally not good. so I hit the limit switch and thought about what went wrong.

The first point was the choice of bit, too long, too much vibration. fortunately I had another much shorter bit which seemed much more appropriate for the task. Second problem, was a combination. I originally screwed up my model, I had mixed up diameter and radius and set the holes twice the size I wanted them, and thus confused the spacing and it wound up smaller than I wanted. I fixed all this in the model. However it soon transpired that there was also the issue of the machine binding up again. I had been a little over optimistic, after refitting the x-axis I found I could set the seek speed way higher than previously used, and up at 200mm/min it moved smoothly (seemingly) however apparently this was not reliable enough, and certainly at some extremes of either the x or y axis this get a little less reliable.


So I reconfigued the model, reconfigured grbl and set off again....and again... and well again. in the video below you can see evey time I stop and reset. that is because it would get a certain way in then screw up. weirdly 3 times in a row is screwed up in exactly the same place despite having been perfect up to that point. I realised that the notable bit of the program was that it was the first time the x-axis moved backwards from a position. for the first several holes it was effectively doing 'drill - right  -drill - forward - drill - left- drill- forward- drill-right' etc. but then it did 'drill-forward-drill-forward-drill-right-drill-back-drill' but the backward move didn't travel the same distance as the forward movement leaving a hole out of alignment.

You can see in this picture the various attempts and its easy to spot the first hole that goes off program. I take heart that the first several holes really are perfect.

The problem of the back move is a little perplexing. I manually tried entering the commands to go forward 20, back 20, forward/back repeat , and each time it did it perfectly. but for some reason in the program its not quite right. Later I will actually manually review the gcode, just to make sure something weird isn't wrong in the instructions. However I think the reality is either the machine needs to be set to an even slower speed to try to make it stay reliable. Or I need to manually resequence the gcode so that it doesn't take a backward step. it should be easy enough to drill all the wholes in a sweeping back and forth on the y axis, then stepping one row forward and repeating, so we never back off the x-axis. Obvioulsy that is a last resort. If I can't get the program to work reliably today, then some evenings this week I will manually re-work the gcode to see if I can get better results next weekend.

With the last few minutes before I needed to stop for the day I decided to try the routing pass again on my logo. This time with the feed rates lowered back to the levels that worked so well on the plotting last week. You can see this at the end of the video above. I don't get all the way through before aborting.


It is clear that there is a big difference between dragging a pencil over paper, and pushing a cutter through wood. the axis struggled to move reliably and that pushed everything off position. Also I realised that I was just reusing the same gcode as I used with the pencil, but a pencil is a very fine point, and a cutter is 3mm wide. Following the same path was causing a mess. So I need to refine the program to account for the size of the cutter. probably there is a minimum size that I could reliably carve this into wood with a 3mm cutter without it cutting into the space between letters etc.

So this weeks test was ...mixed. Positives - I figured out how to make a drilling pattern which I'm sure will be really helpful in various applications. and for at least the first 9 holes or so, the machine seemed to stay accurate and capable of good precision. Negatives - it really only takes one skip of a move, one revolution that stalls and doesn't happen to screw up your whole program. once the machine is off position that is that.  For now at least, I haven't hit on the right balance of settings/machine setup to give me complete reliability of movement even when not under the stress of a cut. And when it is under the stress of a cut things get worse.

Next steps... Well obvious next step is to try the drill program with a really really conservative set of feed rates. This will take a long time to run, but if it works will be worth it. I also need to start making the support for my real router. I think some of my problems under cutting stress are due to using a bit which is really not suited to this use. its find for slowly grinding away on some metal, but it really isn't a good choice for wood cutting. The sooner I can mount a real router spindle, the better.