Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
reprap:anet:a8:improvement:autobedleveling [2018/09/29 14:20] – pix_1 | reprap:anet:a8:improvement:autobedleveling [2021/05/09 08:32] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 17: | Line 17: | ||
^ Sensor name ^ Type ^glass bed^Distance^comment^cost^link^voltage^oc^sig*^ | ^ Sensor name ^ Type ^glass bed^Distance^comment^cost^link^voltage^oc^sig*^ | ||
- | |ROKO SN04-N|NPN|no|< | + | |ROKO SN04-N|NPN|no|< |
- | |TRONYX XY-08N|NPN|no|8mm|With Support|[[https:// | + | |TRONYX XY-08N|NPN|no|8 mm|With Support|[[https:// |
- | |**HallON**|Hall effect|yes|On any surface|With Connector for Anet|[[http:// | + | |**HallON**|Hall effect|yes|On any surface|With Connector for Anet|[[http:// |
- | |LJ18A3-8-Z/ | + | |LJ18A3-8-Z/ |
- | |**LJ18A3-8-Z/ | + | |**LJ18A3-8-Z/ |
- | |LJC18A3-H-Z/ | + | |LJC18A3-H-Z/ |
- | |LJ12A3-4-Z/ | + | |LJ12A3-4-Z/ |
- | |LJ12A3-4-Z/ | + | |LJ12A3-4-Z/ |
| | ||
- | If (5V) is mentioned on the sensor, it has been tested that it works on the 5V provided by the Z-switch connector, but officially it need a higher voltage therefore it might not work reliably. See " | + | If (5 V) is mentioned on the sensor, it has been tested that it works on the 5 V provided by the Z-switch connector, but officially it need a higher voltage therefore it might not work reliably. See " |
*)The standard deviation obtained according to the [[autobedleveling# | *)The standard deviation obtained according to the [[autobedleveling# | ||
==== capacitive sensors vs inductive ==== | ==== capacitive sensors vs inductive ==== | ||
- | * inductive sensors are using magnetic fields for the detection. They can only detect metal. It can detect the metal under the glass, if the range of the sensor is high enough. But if the metal is deformed beneath the glass the printer will try to compensate a non-existing deformation. Also while using Inductive sensors, the detection range needs to be adjusted according to the metal which the sensor senses. They are designed for sensing Iron based metals. So for other metals, the sensing distance needs to be derated. A rough multiplier for sensing distances for various metals are given in brackets - Steel (1.0), Stainless Steel (0.6 - 1.0), Aluminum (0.30 - 0.45), Brass (0.35 - 0.50), Copper (0.25 - 0.45). For eg: if an 8mm Inductive sensor is used to sense Aluminum, the sensing distance is actually between 2.4mm and 3.6mm. So it would be best to test the sensing distance with the sensor you purchased before installation, | + | * inductive sensors are using magnetic fields for the detection. They can only detect metal. It can detect the metal under the glass, if the range of the sensor is high enough. But if the metal is deformed beneath the glass the printer will try to compensate a non-existing deformation. Also while using Inductive sensors, the detection range needs to be adjusted according to the metal which the sensor senses. They are designed for sensing Iron based metals. So for other metals, the sensing distance needs to be derated. A rough multiplier for sensing distances for various metals are given in brackets - Steel (1.0), Stainless Steel (0.6 - 1.0), Aluminum (0.30 - 0.45), Brass (0.35 - 0.50), Copper (0.25 - 0.45). For eg: if an 8 mm Inductive sensor is used to sense Aluminum, the sensing distance is actually between 2.4 mm and 3.6 mm. So it would be best to test the sensing distance with the sensor you purchased before installation, |
Line 42: | Line 42: | ||
==== open collector(oc) & and internal pull up resistor==== | ==== open collector(oc) & and internal pull up resistor==== | ||
- | First of all, why do we need a NPN for the Anet-board? The input on the Anet-board is low-active. That means it is held high at 5v with an internal pullup-resistor and is actively switched down to 0V. That is what a NPN-Sensor does. | + | First of all, why do we need a NPN for the Anet-board? The input on the Anet-board is low-active. That means it is held high at 5 V with an internal pullup-resistor and is actively switched down to 0 V. That is what a NPN-Sensor does. |
- | If you get an open collector sensor you will have an easier wiring. To know if it is a open collector connect the powersupply | + | If you get an open collector sensor you will have an easier wiring. To know if it is a open collector connect the power supply |
- | Most Chinese sensors do not have an open collector output (might be the LED-circuit). They have an internal pull up resistor. This is why the black wire is not only high impedance when the sensor is not switched but has any voltage on it. For those you need to add at least one resistor between the black and the blue wire to reduce the voltage to nearly | + | Most Chinese sensors do not have an open collector output (might be the LED-circuit). They have an internal pull up resistor. This is why the black wire is not only high impedance when the sensor is not switched but has any voltage on it. For those you need to add at least one resistor between the black and the blue wire to reduce the voltage to nearly |
As you can see this topic is not easy to solve. So " | As you can see this topic is not easy to solve. So " | ||
Line 52: | Line 52: | ||
===== Sensor support ===== | ===== Sensor support ===== | ||
^Description^for Sensor^Printer^link/ | ^Description^for Sensor^Printer^link/ | ||
- | |Official Anet|ROKO SN04-N|A8|expensive, | + | |Official Anet|ROKO SN04-N|A8|expensive, |
- | |Official Anet like|ROKO SN04-N|A8|http:// | + | |Official Anet like|ROKO SN04-N|A8|http:// |
| |ROKO SN04-N|A8|http:// | | |ROKO SN04-N|A8|http:// | ||
- | | |ROKO SN04-N/ | + | | |ROKO SN04-N/ |
- | | |**HallON A8**|A8 |[[https:// | + | | |**HallON A8**|A8 |[[https:// |
| |LJC18A3-H-Z/ | | |LJC18A3-H-Z/ | ||
- | | |**LJ18A3-8-Z/ | + | | |**LJ18A3-8-Z/ |
- | | |**18mm capacitive sensor**|A8|http:// | + | | |**18 mm capacitive sensor**|A8|http:// |
- | | |12mm inductive sensor| |http:// | + | | |12 mm inductive sensor| |http:// |
The offset in X,Y, and Z are the values defined in the firmware (In Marlin Configuration.h). The value for X and Y can be quite coarse. Z has to be accurate and has to be adjusted quite accurately. This value you can set also via display (Marlin): Menu-> | The offset in X,Y, and Z are the values defined in the firmware (In Marlin Configuration.h). The value for X and Y can be quite coarse. Z has to be accurate and has to be adjusted quite accurately. This value you can set also via display (Marlin): Menu-> | ||
- | - Set a large Z-offset value (i.e. 2mm) | + | - Set a large Z-offset value (i.e. 2 mm) |
- Autohome your printer | - Autohome your printer | ||
- place a sheet of paper beneath the nozzle (make sure it is clean) | - place a sheet of paper beneath the nozzle (make sure it is clean) | ||
+ | - Go into Prepare -> Move Axis and disable Soft Endstops | ||
- move Z-axis down by steps of 0.1 until it touches the paper. | - move Z-axis down by steps of 0.1 until it touches the paper. | ||
- | - note the Z value (i.e 0.7mm) and subtract it from the initial value (2mm-0.7mm). | + | - note the Z value (i.e 0.7 mm) and subtract it from the initial value (2 mm-0.7 mm). |
- | - Set the value as Z-offset (1.3mm) | + | - Set the value as Z-offset (1.3 mm) |
**HallON** Only Sensor with ready to use predefined firmware, and full project support. | **HallON** Only Sensor with ready to use predefined firmware, and full project support. | ||
Line 76: | Line 77: | ||
===== Sensor wiring ===== | ===== Sensor wiring ===== | ||
- | The Sensor will be replace the Z switch. You will need a **"JST XPH-3" 3 pin connector**. You might also use the connector of your Z probe if you do not need a 5V power supply as the middle pin is missing. | + | The Sensor will be replace the Z switch. You will need a **"JST XPH-3" 3 pin connector**. You might also use the connector of your Z probe if you do not need a 5 V power supply as the middle pin is missing. |
The position of the pins on the board is described in the picture: | The position of the pins on the board is described in the picture: | ||
{{: | {{: | ||
- | Normally the following color code is used for the sensor Harness : | + | Normally the following color code is used for the sensor Harness: |
- | * Black - Signal - for NPN it is 0V=active, high impedance OR supply voltage for inactive | + | * Black - Signal - for NPN it is 0 V=active, high impedance OR supply voltage for inactive |
* Brown - Power supply - See sensor for the Voltage* | * Brown - Power supply - See sensor for the Voltage* | ||
- | * Blue - Ground - 0V | + | * Blue - Ground - 0 V |
- | As most sensors need a voltage larger than the 5V provided by the connector there are two options: | + | As most sensors need a voltage larger than the 5 V provided by the connector there are a few alternative |
- Purchase a pre made board: | - Purchase a pre made board: | ||
- | * [[https:// | + | * [[https:// |
- | - For **5V sensors or for some 6-36V sensors ** use the 5V supply of the connector. Anet and Skynet uses this option for their sensor and it works for the LJ18A3-8-Z/ | + | - For **5 V sensors or for some 6-36 V sensors ** use the 5 V supply of the connector. Anet and Skynet3D use this option for their sensor and it works for the LJ18A3-8-Z/ |
- | - If you have an **open collector NPN** sensor (see above) than you may connect the brown wire to the the 12V input of your board and the blue to the ground and finally the black wire to the Z switch (the board should have an internal pull up). | + | - If you have an **open collector NPN** sensor (see above) than you may connect the brown wire to the the 12 V input of your board and the blue to the ground and finally the black wire to the Z switch (the board should have an internal pull up). |
- | - If you have an sensor **with an internal pull up resistor**(see above) than you may connect the Brown wire to the the 12V input of your board and the blue to the ground. | + | - If you have a sensor **with an internal pull up resistor**(see above) than you may connect the Brown wire to the the 12 V input of your board and the blue to the ground. |
- | - Than add a resistor between the black(signal) and the blue(ground) wire to reduce the resulting voltage from 12V to 5V. The best way is to test it with different resistors and measure the voltage between the signal(black) and ground (blue). Best to start with is 10k, for me it worked with 5k. Increase the resistance if the voltage is to low, decrease if it is to high. When you found the correct resistor you can connect the signal pin (black) to the signal pin of the z-probe plug as shown on the picture. | + | - Add a resistor between the black(signal) and the blue(ground) wire to reduce the resulting voltage from 12 V to 5 V. The best way is to test it with different resistors and measure the voltage between the signal (black) and ground (blue). Best to start with is 10 kΩ, for me it worked with 5 kΩ. Increase the resistance if the voltage is to low, decrease if it is to high. When you found the correct resistor you can connect the signal pin (black) to the signal pin of the Z-probe plug as shown on the picture. |
- The disadvantage of using resistors is that it depends on the power supply voltage and a change of this voltage my damage your printer. This can be avoided by **using a diode**. Assuming a typical NPN normally-open (NO) sensor, connections can be made as in the schematic below (be careful with the polarity of the diode). See Method 3 [[https:// | - The disadvantage of using resistors is that it depends on the power supply voltage and a change of this voltage my damage your printer. This can be avoided by **using a diode**. Assuming a typical NPN normally-open (NO) sensor, connections can be made as in the schematic below (be careful with the polarity of the diode). See Method 3 [[https:// | ||
* {{: | * {{: | ||
- | - Some tutorials recommend to use **two resistors**. But this is **only for PNP-sensors and for high-active inputs**. In our case this would lead to errors. When the sensor switches to 0V and the Atmega internal pull up is activated there would be about 2,5V on the signal pin which is not recognized as low by the AVR. | + | - Some tutorials recommend to use **two resistors**. But this is **only for PNP-sensors and for high-active inputs**. In our case this would lead to errors. When the sensor switches to 0V and the Atmega internal pull up is activated there would be about 2.5 V on the signal pin which is not recognized as low by the AVR. |
- last but not least there is the universal/ | - last but not least there is the universal/ | ||
{{: | {{: | ||
Line 106: | Line 107: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
- | < | + | < |
==== Marlin ==== | ==== Marlin ==== | ||
Instructions and information can be found here: | Instructions and information can be found here: | ||
Line 145: | Line 146: | ||
In the case that the sensor is outside of the plate after homing the Y and X axis, use Z safe homing (applies if you are using a sensor support with a negative Y-offset: | In the case that the sensor is outside of the plate after homing the Y and X axis, use Z safe homing (applies if you are using a sensor support with a negative Y-offset: | ||
#define Z_SAFE_HOMING | #define Z_SAFE_HOMING | ||
+ | | ||
+ | Enable the Soft Endstops option in the menu by uncommenting: | ||
+ | #define SOFT_ENDSTOPS_MENU_ITEM | ||
===== Slicer settings ===== | ===== Slicer settings ===== | ||
Line 150: | Line 154: | ||
There are already some configuration files available at [[reprap: | There are already some configuration files available at [[reprap: | ||
- | ==== Gcode (only needed if there is no configuration file available for download) ==== | + | ==== G-code |
=== Auto home === | === Auto home === | ||
- | Before homing of the Z axis the probe has to be positioned above the heat bed. When the code G28 is send to the printer this is done automatically. But if "G28 Z" is send it is not. This is the case for some Cura 2.1 json files. | + | Before homing of the Z axis the probe has to be positioned above the heat bed. When the code G28 is sent to the printer this is done automatically. But if "G28 Z" is sent it is not. This is the case for some Cura 2.1 json files. |
=== Auto level === | === Auto level === | ||
The G code G29 starts the autolevel procedure. It should be executed after the G28 command | The G code G29 starts the autolevel procedure. It should be executed after the G28 command | ||
- | === Implementing | + | === Implementing |
- | The Gcode executed before a print is defined in the json file (see also [[reprap: | + | The G-code |
Example: | Example: | ||
< | < | ||
Line 187: | Line 191: | ||
ABL can't work miracles. | ABL can't work miracles. | ||
- | There' | + | There' |
==== Which levelling method are you using? ==== | ==== Which levelling method are you using? ==== | ||
Line 212: | Line 216: | ||
This shows the absolute maximum and minimum measurements the sensor took, the mean (average) of all the measurements, | This shows the absolute maximum and minimum measurements the sensor took, the mean (average) of all the measurements, | ||
- | The standard deviation is interesting because it tells us that 68% of all the measurements were within 0.00433mm | + | The standard deviation is interesting because it tells us that 68 % of all the measurements were within 0.00433 mm (one standard deviation) of either side of the mean, and 95 % of the measurements were within 0.00866 |
- | A good probe should consistently give a range in the hundredths of mm, e.g. 0.05mm. A very good probe will have a range in the thousandths. | + | A good probe should consistently give a range in the hundredths of mm, e.g. 0.05 mm. A very good probe will have a range in the thousandths. |
More information about standard deviation: | More information about standard deviation: | ||
Line 243: | Line 247: | ||
For ABL to work correctly it is **essential** that the printer knows the exact offset from the nozzle to the probe, otherwise any correction is not going to be applied in the right place, and it may look like the printer isn't correcting at all. | For ABL to work correctly it is **essential** that the printer knows the exact offset from the nozzle to the probe, otherwise any correction is not going to be applied in the right place, and it may look like the printer isn't correcting at all. | ||
- | If you downloaded SkyNet3D and used one of the example configurations, | + | If you downloaded SkyNet3D |
These are the relevant lines: | These are the relevant lines: | ||
Line 269: | Line 273: | ||
- Reset the existing Z-offset to zero < | - Reset the existing Z-offset to zero < | ||
- Home all axes < | - Home all axes < | ||
- | - Move the nozzle to the middle< | + | - Move the nozzle to the middle |
- Turn off the software endstops with < | - Turn off the software endstops with < | ||
- Move the nozzle down so it is just gripping a piece of standard printer paper | - Move the nozzle down so it is just gripping a piece of standard printer paper | ||
- Set the Z-offset to the displayed value. E.g. if the printer displays a Z-Value of -1.23 enter < | - Set the Z-offset to the displayed value. E.g. if the printer displays a Z-Value of -1.23 enter < | ||
- | - Store it to the EEPROM< | + | - Store it to the EEPROM < |
- | - **Important** Enable the endstops again with < | + | - **Important |
Line 292: | Line 296: | ||
==== Did you let it warm up? ==== | ==== Did you let it warm up? ==== | ||
- | Before setting your Z-offset you need to make sure your printer is up to temperature and you've given it a few minutes for any thermal expansion to occur. | + | Before setting your Z-offset you need to make sure your printer is up to temperature and you've given it a few minutes for any thermal expansion to occur. |
You should also ensure that the printer has had sufficient time at temperature before starting a print. | You should also ensure that the printer has had sufficient time at temperature before starting a print. |