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.