Z probes used in FFF (FDM) 3D printers are used to determine the height of the print nozzle above the print surface during calibration or before a printing operation. The measurement obtained from a Z probe can be used to assist in the manual adjustment of bed level and nozzle height or to allow fully automatic correction for errors of bed squareness and flatness and nozzle height.
Z probes used only to determine the bed level and flatness are usualy based on some form of proximity sensor although some mechanical switches fall into this category. Z probes that determine the absolute height of the nozzle typically require the detection of the nozzle touching the bed.
Differing Z probe technologies vary in their ability to deliver reliability, simplicity, accuracy and low cost and no single type predominates.
While there are many different types of probes available, the general operating principle is usually the same. Most probes act as a switch, triggering when they are near or in contact with the print surface. There are many mechanisms through which this switching is done - from simple mechanical switches to advanced reflective sensors. From the perspective of the printer's control board and firmware, the method used by the probe is irrelevant - the firmware only sees the output as a switch that is either open or closed.
The goal is to measure the distance between the printer's nozzle and the surface of the bed at various points on the bed's surface. These points are then analysed to generate a model of the print surface (to varying extents depending on the firmware and settings used). This model is then used during the print to move the nozzle up and down, in order to keep the distance between the nozzle and the print surface constant - thus compensating for any unevenness in the print surface.
Additionally, the probe may also be used for homing the Z axis. This is (depending on firmware) typically independent of the bed probing / compensation process, in that it is possible to use a probe for Z-homing without performing any bed compensation, or, alternatively, it is possible to perform the compensation but use a traditional endstop for axis homing. This is an important distinction as automatic bed levelling / compensation and homing using a probe are often confused / conflated.
Types of Probes
These probes make use of a small microswitch, as are often used in axis endstops.
The switch must make physical contact with the print surface to trigger, but during a print it will need to be situated higher than the nozzle in order to avoid colliding with the print - because of this, most microswitch-based solutions employ some mechanism to raise or lower the probe into place when required. Often small hobby servomotors are used to achieve this, though there are other approaches.
Using microswitches as probes is often one of the easiest approaches from an electronics perspective, but there is usually complexity and bulk in the mechanism involved in moving the microswitch.
Inductive sensors trigger when they are close to a metal object. The distance at which the sensor triggers depends on both the sensor in question and the properties of the metal object.
In 3D printers, these probes are typically used when printing on a metal bed. Usually the trigger distance is too small to allow for glass or any other thick surfaces over the metal bed, but thin surfaces - such as tape or other thin films - are unlikely to interfere with operation.
Most inductive sensors used in 3D printers were originally designed for larger mechatronic systems, such as automated assembly lines. Because of this, they have a largely standardised mechanical mounting design - many inductive probes are cylindrical in shape and approximately 12mm in diameter. They have an external thread and two nuts which can be tightened to secure the sensor in place. This makes it fairly easy to design and print adaptors to mount these probes into place.
Because of their intended use in larger mechatronic systems, most inductive sensors are typically designed to act as a switch for non-logic-level voltages, such as 12V. In order to interface such an inductive sensor with most RepRap electronics operating at 3.3/5V, some form of voltage-level translation is necessary.
Inductive Probe Wiring Example
A very popular model of inductive probe is the LJ12A3-4-Z/BX (blue tip), this probe is normally closed so your firmware configuration should treat this as an "inverted" endstop.
LJ12A3-4-Z/BY (brown tip) also available and is normally open.
Additionally, this probe is rated to run at 6-36V and output the same, which is not safe to directly connect to the 5V inputs on the RAMPS board.
Appropriate values for a voltage divider from 12v to 5v would be 4.7K and 6.8K.
Please Note: If while printing you notice your z-motors oscillate more than a half turn or so as your head travels back and forth across the bed you should probably stop the print and eyeball the nozzle height across the bed, you may need to twiddle one of the z-axis lead screws a turn or so to bring the distance closer. Having a "mostly" level bed definitely doesn't hurt the process, the less the hardware has to compensate the better.
There is a repeatability test in Marlin available through an M48 GCode command which (if sent alone) will probe the current bed point 10x and return the standard deviation, the closer to zero the better.
Capacitive probes are similar to inductive probes. They are also commonly used in larger mechatronic systems, and usually share the same cylindrical form-factor. However, unlike inductive probes, capacitive probes are able to detect and trigger from a glass print surface.
Conductive probes are less common, and are usually limited to designs built into printers. This type of probing works by touching the metal nozzle onto conductive parts of the print bed, closing a circuit. This setup is used in the Taz Mini.
Pressure / Force
This uncommon approach relies on having sensors in place to detect force - either forces experienced by the print surface, or by the printer's nozzle. Typically force-sensitive resistors (FSRs) are placed underneath the print surface, and configured so that they will trigger when the print surface is pressed down. The printer's nozzle is then used to carefully press into the print surface at several points, triggering the FSRs.
This approach has several drawbacks. Firstly, it requires that the nozzle collide with the print surface - this likely requires probing to be slow and careful, and for the FSRs to be very sensitive, otherwise the nozzle may damage the print surface. Secondly, FSRs are typically not designed to be used when heated significantly, and as such it is difficult to design a solution in which the FSRs are mounted very near the print surface to be sensitive enough, but far enough away as to not experience any heating.
Reflective / IR
Reflective sensors work by shining light - usually infra-red - onto the print surface, and measuring the intensity of the returned light. In this, they are similar to IR distance sensors. However, the reflective sensors designed for 3D printer use have been optimised for repeatability and precision, instead of range.
IR sensors may be either simple threshold-based sensors, which work by triggering when the reflected light is greater than some internal threshold, or more advanced differential sensors, which use multiple LEDs and measures the different relative intensities reflected from each.
Simple threshold IR sensors are cheaper, but are affected by interference from background IR sources - such as daylight, light-fittings, and so on. Additionally, the output from these sensors will vary significantly with different bed surfaces. Differential sensors are not affected by interference, and provide much more consistent readings against different print surfaces.
IR probes are a popular choice as they will work with most print surfaces, such as glass, metal, or tape. Additionally, due to their small form-factor, some IR sensors - such as the Aus3D probe pictured - can mount directly to E3D HotEnds, requiring no adaptors or other modifications.
- Poul-Henning Kamp. "Height probing for PCB isolation routing with Eagle/pcb-gcode".