Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
zprobe [2018/04/11 01:52]
95.120.159.118 [Use]
zprobe [2018/10/14 16:19] (current)
88.186.78.124 [Tuning machine height] Minor
Line 47: Line 47:
 <callout type="​warning"​ icon="​true"​ title="​ Homing">​ <callout type="​warning"​ icon="​true"​ title="​ Homing">​
 A probe is **not** an endstop and therefore cannot be used to Home the Z axis. You need a Z endstop to use G28 to home the Z axis. Below are some instructions on how you can set the bed Z height using a probe (G30). A probe is **not** an endstop and therefore cannot be used to Home the Z axis. You need a Z endstop to use G28 to home the Z axis. Below are some instructions on how you can set the bed Z height using a probe (G30).
-**NOTE** that gamma_max in the endstop configuration **IS** used to set the maximum default travel for a probe command (G30) **ONLY IF** zprobe.z_max is not defined+**NOTE** that gamma_max in the endstop configuration **IS** used to set the maximum default travel for a probe command (G30) **ONLY IF** zprobe.max_z is not defined
 + 
 +A bit more : You have two choices :  
 + 
 +* Configure your probe as an endstop ( in the endstop module ), in which case you can use G28 to use it to seek the bed, but you can't use it in the zprobe module 
 +* Configure your probe as a probe ( in the probe module ), in which case you can't use it with G28 ( the endstop module ) to seek the bed, **but** you can use it with G30 to seek the bed, and you can use it with G31/G32 etc to level/​calibrate ( this is likely what you want to do ). 
 + 
 +The point is you configure your sensor as *either* a probe or an endstop, **not both**. You can still use it for both levelling/​calibration *and* bed seeking, it's just that if it's a probe ( and not an endstop ), you use a different Gcode ( G30 ) than if it were an endstop ( G28 ).
 </​callout>​ </​callout>​
  
Line 64: Line 71:
 zprobe.probe_height ​         5                  # how much above bed to start probe NB only needed for G32 on delta zprobe.probe_height ​         5                  # how much above bed to start probe NB only needed for G32 on delta
 zprobe.return_feedrate ​      ​0 ​                 # feedrate after a probe, default 0 is double of slow_feedrate (mm/s) zprobe.return_feedrate ​      ​0 ​                 # feedrate after a probe, default 0 is double of slow_feedrate (mm/s)
-zprobe.z_max                 200                # maximum default travel for the probe command, will use gamma_max if not defined+zprobe.max_z                 200                # maximum default travel for the probe command, will use gamma_max if not defined
 </​code>​ </​code>​
  
Line 75: Line 82:
 <​kbd>​G30</​kbd>​ will probe from the current position until it hits the bed and the probe triggers, it will report the distance traveled then return to where it started. <​kbd>​G30</​kbd>​ will probe from the current position until it hits the bed and the probe triggers, it will report the distance traveled then return to where it started.
  
-<​kbd>​G30 Znnn</​kbd>​ will probe until it hits the bed then sets Z to nnn, this can be used to set the nozzle height if nnn is the probes Z offset from the nozzle in the Z direction. ​+<​kbd>​G30 Znnn</​kbd>​ will probe until it hits the bed then sets Z to nnn (by doing G92 Znnn), this can be used to set the nozzle height if nnn is the probes Z offset from the nozzle in the Z direction. ​
  
 <​kbd>​G30 Fxxx</​kbd>​ will run the probe at xxx mm/min overriding the slow_feedrate. <​kbd>​G30 Fxxx</​kbd>​ will run the probe at xxx mm/min overriding the slow_feedrate.
Line 431: Line 438:
 This is different to other Firmware and is deliberate. ​ This is different to other Firmware and is deliberate. ​
 This allows people to use temporary Z probes and not have a permanent z probe or know the exact Z offset of the probe in relation to the nozzle. **In addition the z component of the .probe_offsets should always be zero.** This allows people to use temporary Z probes and not have a permanent z probe or know the exact Z offset of the probe in relation to the nozzle. **In addition the z component of the .probe_offsets should always be zero.**
 +</​callout>​
 +
 +<callout type="​success"​ icon="​true"​ title="​ Note">​
 +The three probe points **MUST** be the three corners of a triangle, they **MUST NOT** be on a straight line or the math and coordinate system will get corrupt and you will need to reset.
 </​callout>​ </​callout>​
  
Line 626: Line 637:
 Make sure your printer'​s mechanism will allow moves to these locations. ​ Make sure your printer'​s mechanism will allow moves to these locations. ​
 For example, if your probe is 60mm down from your nozzle in the Y direction (M565 X0 Y-60 Z0), and you bed is set to 200x200mm, the top row of probes will be done with the nozzle at Y=260 mm  For example, if your probe is 60mm down from your nozzle in the Y direction (M565 X0 Y-60 Z0), and you bed is set to 200x200mm, the top row of probes will be done with the nozzle at Y=260 mm 
 +
 +<callout type="​success"​ icon="​true"​ title="​ Grid Offset">​
 +
 +The first point of the grid is always at (0,0). If your printer can't reach this point with its probe due to the probe'​s offset you have two options:
 +
 + 1. You could invert one or multiple axis so (0,0) is in an accessible position.
 + 2. You can set <​kbd>​only_by_two_corners</​kbd>​ to true and specify the offset in Gcode using the <​kbd>​M31</​kbd>​ command.\\ See more on that in the PCB milling section: [[http://​smoothieware.org/​pcb-milling|PCB Milling]]
 +
 +</​callout>​
  
 If the saved grid is to be loaded on boot then this must be set in the config... If the saved grid is to be loaded on boot then this must be set in the config...
Line 739: Line 759:
  
 <callout type="​default"​ icon="​true"​ title="​Going further">​ <callout type="​default"​ icon="​true"​ title="​Going further">​
-If you want to learn more about this module, or are curious how it works, Smoothie is Open-Source and you can simply go look at the code, [[https://​github.com/​Smoothieware/​Smoothieware/​blob/​edge/​src/​modules/​tools/​zprobe|here]].+If you want to learn more about this module, or are curious ​about how it works, Smoothie is Open-Source and you can simply go look at the code, [[https://​github.com/​Smoothieware/​Smoothieware/​blob/​edge/​src/​modules/​tools/​zprobe|here]].
 </​callout>​ </​callout>​
  
Line 769: Line 789:
 </​div>​ </​div>​
 </​html>​ </​html>​
 +
 +Or in a copy/​paste-friendly format : 
 +
 +<​code>​
 +# Switch module for Bltouch control
 +switch.servo.enable ​                       true          # Activate this new module
 +switch.servo.input_on_command ​             M280          # Command to set PWM value
 +switch.servo.input_off_command ​            ​M281 ​         # Command to turn off switch
 +switch.servo.output_pin ​                   1.23          # This must be a PWM pin, see smoothieware.org/​pinout ​  
 +switch.servo.output_type ​                  ​hwpwm ​        # Hardware PWM, as software PWM is not adequate for servo/​bltouch
 +switch.servo.pwm_period_ms ​                ​20 ​           # 20ms period, or 50Hz
 +</​code>​
  
 Note that this wiring is also valid for a servo and a switch probe, as this is what the bltouch emulates. Note that this wiring is also valid for a servo and a switch probe, as this is what the bltouch emulates.
 When connecting the bltouch the yellow wire on the 3pin connector needs to be connected to a HWPWM pin on the smoothieboard,​ valid pins are 1.23, 2.4, 3.25 or 3.26 as seen on the wirediagram on antlabs webge: https://​www.antclabs.com/​wiring32 When connecting the bltouch the yellow wire on the 3pin connector needs to be connected to a HWPWM pin on the smoothieboard,​ valid pins are 1.23, 2.4, 3.25 or 3.26 as seen on the wirediagram on antlabs webge: https://​www.antclabs.com/​wiring32
- 
  
  
Line 811: Line 842:
  
 <​html>​ <​html>​
-<iframe width="​100%" height="​720" src="​https://​www.youtube.com/​embed/​wJI7OGchE08"​ frameborder="​0"​ allowfullscreen></​iframe>​+<​center>​ 
 +<iframe width="​640" height="​480" src="​https://​www.youtube.com/​embed/​wJI7OGchE08"​ frameborder="​0"​ allowfullscreen></​iframe
 +</center>
 </​html>​ </​html>​
 +
 +Bltouch official Smoothieboard video : 
 +
 +<​html>​
 +<​center>​
 +<iframe width="​640"​ height="​480"​ src="​https://​www.youtube.com/​embed/​zn_qLmcB_b0"​ frameborder="​0"​ allow="​autoplay;​ encrypted-media"​ allowfullscreen></​iframe>​
 +</​center>​
 +</​html>​
 +
 +<callout type="​warning"​ icon="​true"​ title="​If you have a 5XC">​
 +Note that on a Smoothieboard 5XC, the pin 1.23 is used by the third big mosfet, so you can not use it for a bltouch, you need to use another pin. That other pin must also be PWM-capable,​ see [[pinout]] to find another pin that will work.
 +</​callout>​
  
 == Inductive proximity probes == Inductive proximity probes
Line 819: Line 864:
  
 <​html>​ <​html>​
-<iframe width="​100%" height="​720" src="​https://​www.youtube.com/​embed/​F7BjZElStfQ"​ frameborder="​0"​ allowfullscreen></​iframe+<​center>​ 
-</html>+<iframe width="​640" height="​480" src="​https://​www.youtube.com/​embed/​F7BjZElStfQ"​ frameborder="​0"​ allowfullscreen></​iframe>​
  
-<​html>​ +<iframe width="​640" height="​480" src="​https://​www.youtube.com/​embed/​EcGFLwj0pnA"​ frameborder="​0"​ allowfullscreen></​iframe
-<iframe width="​100%" height="​720" src="​https://​www.youtube.com/​embed/​EcGFLwj0pnA"​ frameborder="​0"​ allowfullscreen></​iframe>​+</center>
 </​html>​ </​html>​