The Constraints of Zero-ing and Leveling

We've all but lost touch.
How do we stick together?
Small drifts become waves.

Note: Lol. I started writing this in Oct 2017, got back to it around Jan 2018, and only just now finished it

Post arm-break, with me somewhat settling into my job, I've gotten back to my overdue printer mods a bit in the past few months. I've got a seemingly endless laundry list of mini-projects I want to tackle, but given that I have three 3d-printer builds, and only one of them works (and reliably only some of the time at that), it seems fair that I get my shit together and get those up and running first before diving into anything else. The primary motivation for most of the delta mods on my Rostock Max the past 4 years now is to get better bed adhesion and less warping for bigger prints. I think it's fair to break the bed adhesion problem into two main issues: bed composition and bed leveling (tramming).

Bed Composition

I haven't tried everything, but I've tried a bunch of things when it comes to the bed surface composition:

  1. Stock Rostock Max bed - Ah, when things were simpler. At this point, I'm amazed I got anything to stick at all when I started. Granted, I was printing much smaller parts with very sparse infill in the beginning, and I had the patience to wait up to a half hour for my bed to slowly work its way up to 100C
  2. Painter's tape - I pretty much always print with ABS, so this never did that much for me.
  3. BuildTak - When I first tried this, I thought it was magical, but it never lasted more than just a couple of prints for me, and since it was a pain to remove and re-apply, I never gave it or similar products another shot. That said, the whole sacrificial aspect of it made a lot of sense to me, given how Stratasys also treats their build trays like consumables.
  4. Glue Stick - Never worked for me at all, actually. In fact, it just seemed to gum up my nozzle.
  5. Hair Spray - In combination with a nice brim and maybe some manually-added "ears" or "feet" on the print model, this was my go-to for the first year or so of printing.
  6. PEI - This was supposed to be the chosen one, the magical surface material to end all surface materials. I liken it to a more durable BuildTak-type material. It wasn't perfect, but it got the job done. I used this for a good 2-3 years before it died on me. The Internet told me that I could sand it down and renew its usefulness, but that didn't hold true, which led me to my current test material of choice:
  7. Perforated Metal Sheet - The Zortrax line of printers are the only ones I've seen that use a metal build-plate with small perforations. They allow the initial material layer to seep in and anchor the part better. This requires a raft, but it seemed like a more robust version of the BuildTak or Stratasys approach, where the build surface texture is key to layer adhesion but degrades over time. Aside from the need for a raft, it's not readily clear to me how long the plate will maintain its effectiveness as the perforated holes get plugged. Also, the perforations sometimes cause my nozzle to catch and disengage the magnetic joints on my entire delta setup, which is not exactly a desirable outcome.

After all these trials, maybe the ideal build surface is a textured, consumable material that can be easily replaced. It's a little disappointing, but I suppose it's another case of Stratasys having figured out the optimal solution long ago.

Bed Leveling/Tramming

To me, whether a delta or Cartesian printer, all auto-leveling does is measure the z-height variance across a few select xy locations and then suggest the necessary corrective adjustments. That said, I think the differing methods by which these corrective adjustments can be made is pretty interesting. There seems to always be 3 adjustment points, either to tilt the bed in the Cartesian case or offset the towers in the delta case. It's notable to me that (at least for RepRap or hobby-grade firmwares) these adjustments only dial in the initial layer adhesion (and only measures z offset at that level), doing nothing for the actual orthogonal alignment of the motion axes (right?). A large enough print should manifest the mis-alignment more clearly, but for typical prints, I suppose it's hardly an issue.

Given a 3-dof positioning system, whether Cartesian or delta, we should be able to adjust for the mis-alignment through software, as long as we have a way to evaluate the system alignment, usually through some calibration print. Stratasys already uses a calibration print to tune the firmware value for offset between the material nozzles, and Thingiverse is rife with calibration geometries designed to test particular aspects of various printing setups. However, it appears for the most part that most calibration and leveling schemes only account for the initial layer adhesion. Again, that's not necessarily the end of the world unless the printer build is totally bonkers. No matter the physical printer architecture (delta vs reprap vs corexy, etc), there's always the potential for a skew error due to frame misalignment. Some are just easier to debug and rectify than others.

Sensing

Calibration requires some feedback regarding the z error, and several technologies are in use to date:

  1. Mechanical limit switches - Same as endstops, just mounted below the hotend. This typically requires some mechanism to deploy the endstop into position. The Kossel delta designs have used a pen-mechanism to deploy the leveling probe, and other printers have demonstrated ways of using the motion of the hotend to deploy the retract the switch. In my case, I've used a magnetic kinematic coupling that I just manually attach/detach whenever I want to level. Consequently, the repeatability of the endstop deployment mechanism is pretty critical. In addition, there's a bit of travel after contact is made before the switch triggers, so leveling would have to accommodate that as well.
  2. Inductive sensor - Inductive probes are triggered by proximity to metal surfaces but don't require physical contact, meaning that they can be permanently mounted next to the nozzle without any deployment mechanism. For delta printers, this means that the sensor is offset from the hotend, and due to their nonlinear kinematics, the probe points need to be adjusted, if that's even possible.
  3. IR sensor - Specifically, this differential IR sensor from Filastruder seems to be the go-to. Unlike inductive sensors, these can work on all surfaces, and the differential configuration seems to produce repeatable results regardless of the bed surface material.
  4. Piezoresistive pressure sensors - These sensors' electrical resistance change with applied pressure. I've mostly seen these implemented on delta beds such that contact between the hotend and build plate triggers the sensor. A conditioning circuit makes these work like microswitches, except without the required physical displacement. However, this does mean that the mount must either be elastic or allow the bed to 'float' in some manner, as there's still a physical deformation of the sensor that takes place, no matter how small.
  5. Electrical contact through hotend - In my more recent experiences, the Lulzbot and Zortrax printers use this method, where the print bed or contact pads complete an electrical connection through the conductive nozzle when contact is made. This requires a particular build plate setup but offers direct calibration between the hotend and the print surface. However, I've also seen this regularly fail when the nozzle wasn't entirely clean. Even with a scrubber pad and automated wiping protocol like the Lulzbot has, there can be enough carbonized residue on the hotend to prevent this method from working properly. This isn't me throwing shade at this approach (I think it's pretty slick), just pointing out a repeated mode of failure.
  6. Accelerometer - Given that I actually have a Rostock, I should've tried this out already but haven't. Seemecnc's HE280 accelerometer probe detects contact through abrupt changes in the hotend motion as it travels downwards. I've read good things about this approach, and I think it's interesting that Seemecnc has been the only one to release a commercial product for this, but I'd be worried about damaging something should the probe fail to trigger.
  7. Detecting motor stall - The Trinamic stepper drivers that seem to be all the rage nowadays have a feature called StallGuard that some people have leveraged to detect contact by running the hotend into the build plate. Again, like the accelerometer-based probe, I'd be worried about inadvertent damage, but I keep reading good things about it.

For me, I like the tried and true approach of a mechanical microswitch, especially since they're easily compatible with all firmwares with little to no adjustment. KISS, I guess. My current Rostock build uses a steel, perforated sheet off McMaster and a microswitch mounted to a magnetic kinematic probe that can attach to the bottom of my hotend effector. Not necessarily problem-free (leveling's not a regular pre-print procedure, after all), but it works for me.