Or, Why You Should Always Listen To People Who Know More Than You.
There are many 3D printer designs out there. I took ideas from some of them, and designed my own. I’ve built it, and it kind of works. My prints are dogged by a number of problems. Principle amongst these has been a distinct slant to all the printed items (and by ‘distinct’, what I really mean is ‘45 degrees’). This is not conducive to making precision parts for sundry other projects, which is the main purpose of the printer. After fiddling round the edges for a while, and managing occasionally to get half-decent small prints, I realised it was time to do it properly.
In building my printer, I knew I would not have access to precision tools. Any parts I made would be cut by hand with a saw. Holes would be drilled with a hand-held drill. High accuracy was not going to be the order of the day. I naively didn’t think that this would be a problem – the machine is software controlled, after all, and it should be possible to account for misalignment of parts by judiciously tweaking the code. It’s only software, after all.
This approach is feasible. Software is flexible, and all sorts of hardware faults can be catered for in the software. If, that is (and this is a big ‘if’) you know what they are. Without accurate measuring tools, how do you know what errors need to be accommodated? With the infinite flexibility that software configuration offers, it’s easy to get into a situation where more and more settings can be tweaked, but the settings become pure guesswork. If something prints successfully, you don’t really know why, but you use those settings next time. Post hoc ergo propter hoc.
Also, adding all those settings involves time and effort. Especially if you are using printer control firmware written by someone else, and you have to hack new tweaks into it. This is labour that could be better used reducing the errors in the system rather than trying to accommodate them.
The better way
I’ve come to the staggering conclusion that it’s best to get the hardware as accurate as possible first. To most people (including may writing on the web) this is blindingly obvious. It took me a little longer to realise. Having finally got the idea through my thick skull, though I set about re-engineering the hardware. Firstly, I disassembled the arms and print head, and measured everything as accurately as I could. It turned out that two of the delta arms were 1mm longer than the rest. I picked one arm to use as a reference (and marked it) and reworked all the others so that they were as close to the same length as I could make them. I estimate variation to be no more than +-0.1mm now. Everything else seemed to be correct, so I reassembled it all. Not much change there, really. I then used a try square to adjust the print bed to be as perpendicular as I could to the vertical beams. I had previously been adjusting this to try and level the prints, when really I should have been adjusting the print mechanism to move parallel to it. Too many adjustment points, not enough logic.
The second part of the process is to use a consistent and structured set of steps to calibrate the system in a repeatable manner. I found a nice article on how to do this sensibly, from which I quote: “First, and foremost, build your printer as accurately as you can.” I second that. In the article, much of the calibration is done with small adjustments to the carriage end-stop screws. Well, my design doesn’t have them. I can shift the end stops, but not under fine control. I thought I would do this in software. So I needed to add adjusters to my carriages. How could I make them? If only I had a 3D printer…
The nice thing about small, non-precision parts is that the calibration errors don’t show themselves quite so much. So I was able to print three small blocks with holes to allow me to add adjustment screws to the carriages.
These are the first parts I’ve printed which actually form part of the printer itself. A small achievement, but quite a satisfying one.
With the new adjusters in place (superglue is a wonderful thing), and following the calibration plan closely, I’ve finally managed to print some things which are (almost) straight and (almost) the right size. Here’s a print head, straight after printing and before tidying up.
It’s not perfect. I’ve still got some tweaking to do with feed rates, temperatures and so on, but the RepRap Wiki has an excellent guide to printing problems which should help me sort these out. Things are definitely looking up, and I should be producing upgraded parts for the printer itself Real Soon Now.