A week in the shop

24 Dec 2018

My aim this week was to get most of the basic bits of The Clydesdale finished, but unfortunately it wasn’t to be, and this the week turned into a lot of trying to work out how to swap the brain on the CNC Router before it crosses me again.


After the success of making a custom pick guard for the prototype offset build last week, my plan this week was to make the pick guard for The Clydesdale, and then I could set about mounting all the rest of the hardware, getting to a point before xmas where all the was left to do would be setup work. So on Monday I sat down at the CNC router and set it to work on pick guard for the Clydesdale. This one is slightly more complicated than the one for the prototype, due to the pickup mounts needed another diameter hole (meaning an extra tool change) and the slot for the three-way selector switch needing a smaller end mill: all in this pick guard required 6 tools rather than 4.

All was going well until it was doing the final pass on the outer contour when the machine decided once again it really didn’t like my design and it would be much better if it just cut the side off :(

I’m not a superstitious person, but I’m finding it hard not to agree with my friend Graeme that this machine knows when I’m working on this customer’s guitar: it’ll be okay when I do the prototype test pieces and then I sit down to work on The Clydesdale and then it decided to play up. The real pain here is that I didn’t have any more cream PVC material to cut another one, and it being the week before Christmas getting replacement was very slow. Although I immediately ordered replacement material, it didn’t arrive until Friday by which time I was getting ready to wrap up for xmas along with juggling some last minute contract work. Obviously this was hugely disappointing.

What do I think went wrong here? My current theory is that the controller being cheap means it’s struggling with floating point numbers occasionally. The g-code language used to describe what the CNC-router should do is full of floating point numbers, and computers always struggle with floating point numbers a little, as they can’t represent them perfectly. For example, you can sometimes get a computer to add 1.0 and 1.0 and it’ll give you 2.00000000001. A friend took a look at my g-code and observed on the g-code for my pick guard had the curved edges represented as a lot of very small lines rather than as a series of larger curves. If you have bug numbers than floating point inaccuracies in computers don’t matter much, but if you have lots of small numbers then these inaccuracies can start to cause real trouble, and it could just be bad luck that the controller (which we know isn’t built to the highest standards) just got its maths wrong at that point.

I do have more material now, and I will try and get the pick guard cut again when I get back from xmas obligations, so I might yet get this guitar built before the year is out, but it’s going to be tight!


After all the other failures we had slowly been planing to replace the controller on the CNC router at Makespace. I hadn’t rushed this as my assumption was it was the more complex designs I do that were causing it to fail, but given the pick guard here was a relatively simple design I decided to refocus my week (given I was no longer fitting hardware to The Clydesdale) on moving that upgrade process forward.

Adrian, one of the Makespace directors, had built a test rig that let us try out new controllers and related software; in the summer we’d spent a day taking the CNC router apart and putting it back together only to find the replacement controller we had at that point didn’t work, so a test rig like this make finding a new controller much easier.

Adrian’s done a fantastic job with this rig: it features three axis motors and motor controllers, a bunch of physical switches for the various triggers that would be on the actual machine, and a display to show how fast the spindle would be driven. To top it all, he’s mounted it nicely up and labelled it all - a top job.

My task then is to figure out the software side of this. On the board currently is an Arduino running the popular hobbyist controller software Grbl. But Grbl only does half the controller job: it expects to be fed by some other g-code reading tool on a PC or similar device and then it will take commands from that and send them to the motor controllers etc. I tried a lot of bits of software, but the ones showing most promise are Universal G-Code Sender, and Easel by Instructables.

When assessing the software I wear two hats. Firstly, as a guitar builder I’m looking to see whether the software can cope with the complex designs that am generating these days with complex curved surfaces etc. Secondly, as someone who trains people on the CNC Router at Makespace I’m looking for a tool that is easy to get started with and will easily do the simple 2D shape cuts that most new members actually want to make. My research makes me think I can’t solve those two use cases with one bit of software, which is why now I’m looking at two different solutions.

Easel is quite a nice bit of easy to use software if all you want to do is cut out some simple 2D shapes. It has a nice visualiser of what you’re going to cut, and when you go to machine it has a wizard that takes you step by step through getting everything ready. The only issue I’ve had this week is that although it acknowledges the z-probe on our test rig it doesn’t seem to want to use it, so I need to find a way to get that to work.

Universal G-Code Sender has a much more complicated UI and relies on you knowing a lot more, but at the same time you can then do a lot more with the tool.

Neither tool is perfect - and for all its faults the current controller we have for the CNC router has a robustness about it that I feel is missing from both these software solutions. If anyone has any recommendations for tools in this space they love please do let me know (Grbl based or otherwise).

That said, I’m getting to the point where I want to try these tools on the actual machine, but there’s still a couple of things I need to get comfortable before we tear the CNC Router apart again.


In unexciting workshop tasks I fixed my headphones in preparation for carrying on my guitar practice when we visit the in-laws for xmas week. As often is the case the wire had broken internally where it entered one of the ear pieces, but thankfully it has a 2 m cable on it, so I just cut it off and soldered a new connection on an unbroken bit of wire.

Then, to try and give it better chance of surviving I replaced the old strain gauges with bits of orange Sugru; at least now I’ll be able to spot which headphones are mine in the workshop :)


The final act of luthiery before xmas was going to the pub with a couple of other local Luthiers: Matt from Fidelity Guitars and Jamie from Swannell Guitars. It was a nice evening and a reminder that I spent too much time head down in the workshop and not chatting to others to help keep me motivated. Something to work on in 2019!