FSR
Release status: working
Description | Force Sensing Resistors
|
License | GPL
|
Author | |
Contributors | |
Based-on | |
Categories | autolevel
|
CAD Models | |
External Link |
Contents
Instead of the retractable Z probe, now using Force Sensing Resistors (FSR) sandwiched between the glass print surface and the triangle frame. We use three FSR wired in parallel, connected to the Z_MIN endstop pin. This allows calibrating the print surface with 0.02 mm repeatability, which is good enough for printing PLA on cold naked glass.
When the hotend pushes down on the print surface, the FSR changes quickly from 5MΩ to <50Ω, depending on the force. Less than one pound (or 500g) of pressure can trigger the Z_MIN endstop digital input pin, because it's using a 20kΩ internal pull-up resistor inside the Arduino or similar microcontroller.
Johann's first prototype used the heated bed thermistor (analog) input pin, but that's actually not necessary. The endstop (digital) input pin works just fine, without any additional parts.
<videoflash>HcnhCNh2Ln4</videoflash>
Configuration
Because Force Sensing Resistors are normally open (NO) make sure that you have the following in Configuration.h
:
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
Testing
When none of your endstops are touched and there's less than 300g of added weight on the build surface the result of M119 should look like this:
SENDING:M119 PC>Reporting endstop status PC>x_max: open PC>y_max: open PC>z_min: open PC>z_max: open
When you put a weight of about one pound or 500g (e.g. two rolls of blue tape) on the print surface, it should look like this:
SENDING:M119 PC>Reporting endstop status PC>x_max: open PC>y_max: open PC>z_min: TRIGGERED PC>z_max: open
Adjusting sensitivity
If you get z_min: TRIGGERED
even with less than 300g of weight on the build surface, your FSR endstops are too sensitive. To fix this, increase the size of the sticky pads on top of the FSR sensors, e.g. 1 by 1 inch clear Scotch Restickable Strips. By extending over the edge of each FSR circle, they will support the print bed more and reduce the FSR response.
If you get z_min: open
even with more than 500g of weight on the build surface, your FSR endstops are not sensitive enough. To fix this, reduce the size of the sticky pads on top of the FSR sensors, e.g. 1/2 by 1/2 inch clear Scotch Restickable Strips. By putting all the weight on the middle of the FSR circle, they will increase the FSR response.
If you get z_min: TRIGGERED
when the build surface is empty, and z_min: open
when you put weight on it, your endstop is probably still configured normally closed (NC). But for FSR it must be configured normally open (NO). Make sure you have the following in Configuration.h
and then recompile Marlin and upload the firmware to the printer electronics again:
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
For the updated Marlin firmware , connect FSR to heat bed temperature sensor pin
For the updated Marlin firmware (Johann C. Rocholl) for Mini Kossel , move back to connect the FSR to the heat bed temperature sensor pin instead of connect to z_min pin.