In today’s blog post, let’s take a look at the development history of Johann’s Auto Levelling bed probe.
Automated bed leveling and calibration, in my opinion, is one of the most important design improvements in recent Reprap / OHW 3D Printer development. Anyone that’s ever operated a non “professional” 3D printer will tell you that perhaps the biggest challenge faced by the user is ensuring that the first layer height is set correctly and that the bed is parallel with respect to the X, Y motion plane of the machine. I’ve always explained to curious observers that a 3D printer is, essentially, a computer controlled hot glue gun. To build a good model, the foundation layer must offer good adhesion. If the nozzle is too high, the bead of plastic being applied won’t stick, and if it’s too low, the bead of plastic will squish out too flat, deforming the part, or in worse case situations, crash the head into the print bed and jam the nozzle.
An auto-levelling software routine, such as Johann’s Marlin G29 implementation, will therefore do the following:
1) Deploy a sensor of some sort that can register contact with the print surface. The registration point (where the sensor trips) shall be a known, repeatable distance from the tip of the hot end in the Z-axis.
2) Over an array of points, determine the Z coordinates of the print bed.
3) Perform a linear extrapolation to create a Z map of the print bed’s X, Y coordinates. We can do this by assuming that the print bed is perfectly flat; this assumption is safe to make with a borosilicate glass print bed.
4) By definition, the probe must physically extend past the tip of the print head in –Z direction. This needs to be fixed by retracting the probe above the print head so that printing may start.
5) Magic happens in the firmware that offsets each point on each layer of the print by the Z-map determined in point #3. The results? Within reasonable amount of tilt, the first layer and subsequent layers will come out correctly.
It is worth also pointing out that Delta printers are traditionally harder to calibrate. Unlike their Cartesian counterparts, the X, Y and Z motions on a Deltabot are generated by mixing input from the 3 drive towers. The geometry of the linkages and simple trigonometry are used to compute the necessary tower motions to generate the proper motion in Cartesian space. However, ball joint center-to-center distance, critical to the calculations, are rather difficult to measure without specialized fixtures. The Delta Marlin G29 routine compensates for errors in this ball joint center-to-center measurement, which traditionally will result in a parabolic plane being generated. Prior to the introduction of the Delta Marlin G29 routine, machine calibration required iterative changing and recompiling of the firmware to experimentally determine the correct values.
Johann’s original test probe is the classic definition of McGyver ingenuity: Comprised of a couple of springs salvaged from ball point pens, an allen key, a safety pin, a terminal block (used as a shaft clamp!), a microswitch and a 3D Printed part, the probe is a shining example of a Reprap developer’s resourcefulness.
However, no sooner than the design been published did questions started popping up. What size safety pin do I use? Where do I clamp the terminal block? What’s the digikey part number of the terminal block? And more importantly, why are all the local hardware stores suddenly sold out of 1.5mm ball end allen keys? :-D
All kidding aside, the original auto-levelling probe was hard to replicate. Not only that, there were a few issues:
1) The print's "grain" direction is normal to the probe's travel. On a not-perfectly calibrated printer, this causes a very rough deployment on the probe and can adversely affect accuracy.
2) The 1.5mm long arm allen key is actually pretty flimsy. The contact area with the probe body is quite small, so the tip has a nasty tendency to wobble and drift. Combined with the grain in the probe body, it is very prone to jamming. And finally, in order for the 1.5mm probe to reliably engage the belts, heat shrink had to be added to the short arm. This proved to be a very delicate and difficult to replicate process.
At the same time, Terence was working on the probe for the Kossel Pro. After being relentlessly teased by the folks at Metrix to keep shrinking the probe, this was the design:
Turns out, it was a bad idea, for a few reasons:
1) The prototype parts did not hold up well under real use, and real life longevity of the plastic latch was difficult to determine without additional thousands of dollars in machined prototype testing.
2) The adjustability turned out to be a liability more than an asset. With Johann's probe, you perform a one-time calibration and you're done. With an adjustable probe, the adjustment can actually drift over time.
3) Holy part count, Batman!
Back to the drawing board, for the Reprap design:
With the OpenBeam Mini Kossel installed at an art gallery after being returned from Make Magazine's 3D Printer Shootout, it was apparently that the issues with Das Original had to be fixed - quickly. So, Terence drew this up pretty quickly, and after a few quick iterations, arrived at the final design released reprap probe:
Porting over to the Kossel Pro
The new Reprap Kossel probe worked so well, Terence decided to port it back to the OpenBeam Kossel Pro:
The decision was made to replace the allen key with a custom injection molded part. This had the advantage of combining the shaft clamp and the allen key, placing the shaft clamp in a consistent position (thus allowing for consistent spring force), and also allowing the nose of the probe to be made bullet-shaped to prevent scratching / marring the print surface.
The "A-ha" moment was figuring how to install the probe. By making the shaft diameter big enough to hold a M2 flat socket head screw, it became possible to install the probe from below and lock it into position with a screw. This also works to our advantage, as a larger diameter probe pin will be more stable during deployment (less likely to flex).
Taking an inspiration from Legos, we core out the plastic pin into an "X" cross section to keep the wall thickness uniform, we arrive at the following parts:
It's been a long journey to get here (and for my very patient kickstarter backers, probably *too* long). But for such a critical piece of the printer, we hope that the time spent was worth it - remember, this probe is also meant to be an inexpensive retrofit option onto the thousands of cartesian printers out there as well.
The nature of Reprap and Open Source 3D Printers is that we are always evolving the ecosystem. Our friend, Steve Graber, was onto something good when he designed the Cerebus prototype that used the hot end itself for probing. In doing this, you eliminate any systematic error in setting the probe offset from the actual print head itself. Johann recently demonstrated the use of force sensitive resistors (FSR) in the print bed mount for auto probing. The next generation of Kossel Multi-Material printers that will be developed after this will likely feature some form of force sensitive resistor probing setup, to eliminate calibration error on different hot ends. The engineering challenge there will be reliably and heated bed compatibility (FSRs are heat sensitive, so mounting them onto the build platform will be problematic on a heated bed).
But, in the meantime, I have kickstarter backers to take care of, and overdue printer kits to ship. So, while we dream about the next thing, here are some more pictures from the development of the probes - including the injection mold drawings for the auto probe that is going into production. We just received the mold design from our molder late last night, and I have already approved the production of the steel molds. The end of the tunnel is finally in sight!