Twelve options to sense the surface of a 3D
printer’s bed. Twelve solutions to the same problem. Twelve sensors that are all different.
But there can only be one! Well, actually, each one of these has an upside, so let’s
see what they can and can’t do. Myth busting 3D-printer style!
Essentially these should all do the same thing: When using autoleveling on a 3D printer or
even on other machines that need their tool to be at a perfect distance from a workpiece,
like a PCB router, these sensors probe a few different points on the surface and then compensate
for any misalignment of the bed or workpiece. Since the sensor itself is the only input
the machine gets about how the surface is aligned or deformed, it’s kinda critical
that it senses stuff reliably and can even detect your surface. The easiest option are
inductive sensors, but those only detect metals and are useless for glass, then you’ve got
optical ones, which can detect any surface as long as it’s not totally transparent,
mechanical ones that physically extend to the surface and touch it, and lastly capacitive
sensors that will detect every surface and then some. To test their repeatability, I
built this assembly that should provide a near-perfect linear motion for testing the
sensors. Essentially, it’s an IGUS W rail, which as a sliding mate, should have a better
repeatablity than ball bearings, and the backlash these typically have doesn’t matter much
since gravitiy is essentially pre-tensioning things here, then we’ve got another IGUS
part, a 2mm pitch trapezoid spindle attached to a 0.9° stepper motor the two shafts here
are touching inside the coupling, so we’re not getting any springiness. Again, to take
care of any tipping effects on the rail, it’s mounted off-center. The entire thing is driven
with an MKS Gen board that was literally sitting in the “scraps” bin, and a few lines of
Arduino code. And yes, you can still run standard Arduino code by itself on any 3D printer board
that would otherwise run the Marlin firmware or similar. All it does is to run the sensor
into the surface, backs up by a bit and then does that again 41 more times. In the end,
it reports the standard deviation of all measurements, which essentially tells us what sort of precision
we can expect from each sensor. To check that this construction even worked as intended,
I mounted a steel rod to the carriage and let it close a circuit as it touched the aluminum
block, and that came in with a repeatability much better than one micron, and basically,
it was never further off than a single microstep. Yes, the microstepping might not be perfect,
but it’s still an indicator that this apparatus works pretty well for these measurements.
So the units I’ve got lined up here are four different industrial inductive sensors,
the smaller 2mm trigger distance, 5V type, a 4 and 8mm type and the Prusa PINDA probe,
and yes, Prusa definitely has the smallest and shortest one of them all. Also in the
category of inductive sensors is the one from the BQ Hephestos 2, but that one turned out
to be defective, so I couldn’t include it. The capacitive ones are also industrial types,
with 8 and 20mm sensing distances, this huge guy was actually pretty expensive in comparison
at around 8 bucks, and even worse, it also didn’t work. Bummer. Mechanical probes are
the BLTouch and a standard microswitch with and without the lever, the BLTouch retracts
on its own, while a switch like this will need some sort of servo to lift it up, which
will introduce inaccuracies on top of what the sensor itself can do. And lastly, the
optical sensors are David Crocker’s infrared probe I got from Think3DPrint3D and a Sharp
sensor that outputs an analog voltage according to how far away it senses an object, which
is really cool, but needs a comparator to generate that on/off signal the board requires.
So that’s how we’re going to do it, let’s get to mythbusting! #1 Optical Sensors can sense plain glass.
That’s actually one that’s a bit more complex than it might look like at first sight.
Glass is transparent, obviously, at least to the naked eye. But because these sensors
work with infrared light, what they see could be completely different to what we see. These
sensors work based on reflected light, so having a surface that is glossy like this
could throw them off as well. Now, the simple answer is yes, both the optical sensors can
detect that sheet of glass. David Crocker’s sensor easily detects the glass, but the Sharp
sensor gets thrown off track quite a bit. First off all, it requires a much larger distance
to trigger at all, and even then it started drifting and eventually smashed into the glass.
The custom sensor did trigger reliably against glass, but still came with a huge penalty
in precision: The readings onto glass had a tolerance fifteen times as large as the
ones onto an opaque block. So while it works, it’s not something that is really advisable. #2 You can just run a standard 6 to 36V probe
from 5V Ok, this one is actually easy to test. Out
of all the 6 to 36V probes, none worked on 5V except the 8mm capacitive one. And even
then, it was much less sensitive than on 12V and only triggered against metal parts, while
with the higher supply voltage and a voltage divider on the output, it reliably also triggered
against printed parts and had a larger trigger distance than on 5V.
So that one is busted. #3 Capacitive probes are unreliable
So the theory with capacitive probes is that they sense pretty much anything - Plastic,
glass, wood, metal, humans, etc. The problem is, things like moisture in the air also influence
the readings - in theory. So as a really simple test, I let the system do 21 measurements
and then just started breathing over the sensor. And oh boy, did that throw it off. Almost
instantly, it started triggering about 200µm earlier - that’s 0.2mm, so basically a full
layer height off target. So even if you had a less extreme humidity change, it would still
throw the sensor off by a significant amount. I also did the same with the inductive sensors
and while they did show a marginal change, it was always in the single-digit micron range,
which might as well have been from thermal expansion. Speaking of the topic, the capacitive
sensor also showed, by far, the greatest deviation when blasted with a hairdryer on low.
So are capacitive sensor unreliable and unprecise? Well, if you look at the base reading in a
consistent environment, they aren’t that bad, but as soon as anything changes, you
will run into issues. #4 Probing slower gets you better readings
There are a few things that go into this - first off, some sensors, like the Sharp optical
one only take a reading a few times per second, so by the time they trigger, you might already
be past the point that would be the perfect spot. The same thing might be true for the
printer’s firmware, which only reads values every now and then. The code I’m using is
checking the sensor after every microstep, so that shouldn’t be an issue. But still,
sensor delay etc still are. So every sensor was tested at two different speeds - 1.35mm/s
and twice as fast, so 2.7mm/s, which is about the range you would expect a normal Z-axis
to move at. And basically every single sensor was less precise when run at the faster speed.
They all showed about 20% better repeatiability at the slower speed, some a bit less, some
a bit more, so while that’s not going turn a great sensor into an unusable one, or vice-versa,
it’s still a considerable improvement if you just need that extra bit of precision. #5 Sensors drift with heat
So you might have noticed the effect that when you run the autoleveling cycle with the
bed cold, the nozzle height will end up slightly different than when probed hot. And this is
very real effect, but after testing all the relevant sensors, I’m not quite sure that
the sensors themselves are actually the problem there. It looks like the larger the trigger
distance is, the larger the temperature drift is going to be.The inductive and optical ones
were all decent, maybe not the 8mm inductive one, but the others are all at least usable
when heated up. Though what also played into this was the apparatus simply heated and expanded,
too, so the measured trigger point unavoidably moved back, too. What could also play into
this is that at higher temperatures, copper and aluminum are less conductive, so for the
sensor, it’s as if there was a thinner sheet of material, which shortens the trigger distance. #6 Just use aluminum tape for inductive sensors
So the myth is that if you want the advantages of an inductive sensor, you can simply use
some aluminum tape, even on the bottom of a glass sheet and the sensor will still trigger.
So I used some standard aluminum tape, and the 4 and 8mm inductive sensors do trigger
against just the roll of material, but none of the inductive sensors actually triggered
against a layer of tape, even on the top surface of a glass sheet. So while multiple layers
might work, they are going to add some thickness, and even then, you’re only going to get
a fraction of the nominal trigger distance. And that leads us into #7 Larger trigger distance
sensors are less precise While none of the industrial sensors are actually
made to detect a set distance precisely each time, they can still be incredibly good at
it. For the inductive sensors, I had 2, 4 and 8mm types, and they all performed virtually
identical. They all achieved sub-micron repeatibilities, except for the 5V, 2mm type, and even that
one was better than 2µm. So that’s busted. #8 Inductive sensors trigger much closer when
sensing aluminum Before I try and explain why this is the case
and end up with half the viewers and getting bored and the other half getting ready to
roast me, let’s just stick to the facts: Yes, inductive sensors do lose quite a bit
of their trigger distance, even against a solid block of aluminum. The distance the
sensor says is against iron or steel, and with aluminum, you get about half of that.
Capacitive sensors aren’t affected by this. and last, #9 Anything sensor with a standard
deviation better than 50µ is probably good enough
And this one is from the BLTouch kickstarter campaign - the sensor measured in with a standard
deviation of about 2.5µ. Let’s take a step back and look at what the standard deviation
means. Say you have a bunch of measurements and you plot out how many of them are how
far off. Typically, noisy sensors like show a normal distribution, which looks like this.
All the standard deviation says is that about ⅔ of the measurements are better than that
standard deviation range. So with a bed leveling approach that uses just three points, on average,
two of them will be measured more precisely than the standard deviation, and one of them
will be worse. In turn, this point then, again, has about a ⅔ chance of falling within the
range of two standard deviations, which means that, statistically, every three prints, that
50µ sensor is going to have be off by more than + - 100µ or 0.1mm. And if you’ve ever
played around and experienced the difference 100µ can make to the first layer of a print,
you’ll probably agree that that’s too much.
Now, of course, a more precise sensor can still have those measurements that are far
off, but it’s much less likely to happen. So if you look at the measured standard deviations
of the sensors I’ve tested, i’d say they are all very usable, maybe with the exception
of the SHARP optical sensor and the capacitive one, everything else is, like, really good.
Out of those, the BLTouch performed the worst, but if you take it a bit slower, it’s still
way more than good enough. So yeah, that’s the story behind all the
different sensor options. What surprised me was how precise the inductive sensors turned
out to be, I was expecting them to be much noisier. What I’d also like to retest is
the Sharp sensor, this one is the analog type, but they are also making ones just trigger
at a set distance, and I think that might make it a bit less noisy. This video is sponsored by Aleph Objects,
Inc., a Free Software, Libre Innovation, and Open Source Hardware company headquartered
in Loveland, Colorado, USA and makers of LulzBot desktop 3D printers.
Watch my reviews of both LulzBot 3D printers here and check the links in video description
for more info on the machines straight from Aleph Objects. So I if this video so if this video was helpful
to you, give it a thumbs up, if not, leave a comment on what I can improve. Also consider
subscribing to the channel, and click that bell or YouTube might not show you updates
as new videos come out and livestreams go live.
If you’re going to be shopping on Amazon or other shops, check out the affiliate links
from the video description or head over to Patreon to support the channel directly and
get access to monthly Q&A hangouts and more. And that’s it for today, thanks for watching,
and I’ll see you in the next one.