This week I figured out what I needed to in order to send sensible gcode to my DIY cnc. I think the thing that I had been missing was the idea that you don’t really need a single consistent co-ordinate system and that actually you might have a few for different purposes. Eg you might light to manually move the tool to a point on your machine, then reset that to be 0,0,0 such that your gcode is interpreted relative to that point. In that way you can have your models centred around 0,0,0 and work with the easier than if you had to have them offset to some point that would be the middle of your machine.
So with that in mind I took my inkscape file of my website name ‘maker | geek’ not rendered in appropriate font, just typed in with regular font etc, just to get something quickly. I then imported it into pyCam, centered it around the 0,0 and offset negative z by the distance my rigged up pencil was above the bed.
Once I had homed the machine, then moved it back to somewhere near the centre, I stored the location by using the G28.1 code. In theory this means I can always return to this same point by homing, then entering g28.
Once there I reset grbl so that this became my 0,0,0 point.
Having duct-taped a pencil to the z-axis. I then positioned some paper on the bed, and kicked off a simple stream of the gcode to the arduino. And everything started to spring to life!
I quickly realised that I’d rather messed up the scale of my model, and made it way too small. so I was just getting odd little squiggles. I was fairly sure this also indicated that not all was well, I could tell the Y-axis was binding up and stalling. but I went back to pyCam, doubled the size, reset and set off again.
After a few minutes I was rewarded with this output:
Impressive huh? The more observant reader may say ‘wasn’t that supposed to say maker | geek’ to which I respond…well yes it was, and if you squint and look at the right angle and use your imgaination that is indeed what it says. However it was very apparent that the Y axis was just not moving reliably. However the approximate spacing of the ‘letters’ on the x axis did seem about right. That was all I had time to try on that occasion since it was an evening mid week. However I resolved to return to the garage this weekend, strip down the Y-axis and rebuild it.
Cue timelapse of me fixing the Y-axis….
Sadly most of the work wound up at the bench, and so not really in shot….
Basically the original design (throughout the whole machine) I had attempted to get fairly tight tolerances and holes lined up across the length of the axis. This was a bad plan since I failed to get a precise alignment this just caused binding issues. To fix it I basically widened all the holes, leaving just the coupling to the motor and a single ‘captured nut’ in a block attached to the Y carriage. The captured nut was set so that it could slid up and down, but not back and forth. This means the rod is free to wobble a little laterally to the turn, but the nut/carriage has no slack in the direction of travel. This seems to have improved things.
I conducted another test which looked a little better,
but still suffered some binding and stalls. So I dropped the rate of feed/seek down to 80mm/minute. I then also jumped the text up to fill more of the page. And then at last… success!! it plotted perfectly (well as perfectly as I have any right to expect)
Ok, yes its back to front. But that is just a minor issue with flipping the Y-Axis, but the actual plot worked! including where it returned at the end to fill in the centre of the ‘e’s and the a.
Emboldened by success I attached the rotary tool which you can see at the end of the timelapse. My intentionw as to carve the same text into a length of wood. and perform my first actual cutting pass.
However, as I was setting up the position I was suffering more binding on the X-axis. I think the alignment is out such that the closer it gets to the motor end, the more out of line it is and the harder the binding. Just as I was thinking about this,…disaster. The x-axis coupling sheered completely in two.
And so the end of the plotting test was forced upon me. I now have to wait until I can replace the coupler before I can continue. However I think it will just require a little fettling of the x-axis to avoid it doing this again. (hopefully) However on the plus side this shows I’m not lacking for torque in the motors. When reduced to a slower rate of travel, they were able to develop enough to sheer straight through the plastic lugs that held the two halves of the coupler together.
At the end of the day this was my first properly successful test of a DIY cnc router that I built from scratch, for less than £250 and I’m very happy with how things are going. Excuse me whilst I go feel just a little pleased with myself…