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/08/05 01:08]
134.41.43.103 [Hardware requirements]
zprobe [2019/05/16 17:52] (current)
wolfmanjm [Configuration]
Line 86: Line 86:
 <​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.
  
-<​kbd>​G38.2</​kbd>​ and <​kbd>​G38.3</​kbd>​ ( for probing in X and Y ) are also implemented as documented [[http://​linuxcnc.org/​docs/​2.6/​html/​gcode/​gcode.html#​sec:​G38-probe|here]] ​+<​kbd>​G38.2</​kbd>​ and <​kbd>​G38.3</​kbd>​ ( for probing in X and Y ) are also implemented as documented [[http://​linuxcnc.org/​docs/​2.6/​html/​gcode/​gcode.html#​sec:​G38-probe|here]] ​**NOTE** probing in X or Y on a delta is not recommended due to non linear movement issues.
  
 If there are multiple levelling strategies selected the <​kbd>​Pn</​kbd>​ parameter will select which one to send leveling codes to, 0 being the first defined one, 1 the second and so on. eg <​kbd>​G29 P1</​kbd>​ will send G29 to the second defined levelling strategy. If there are multiple levelling strategies selected the <​kbd>​Pn</​kbd>​ parameter will select which one to send leveling codes to, 0 being the first defined one, 1 the second and so on. eg <​kbd>​G29 P1</​kbd>​ will send G29 to the second defined levelling strategy.
Line 461: Line 461:
 </​code>​ </​code>​
  
-Or they may be defined (and saved with <​kbd>​M500</​kbd>​) using <​kbd>​M557 P0 X30 Y40.5</​kbd> ​ where <​kbd>​P</​kbd>​ is <​kbd>​0,​1,​2</​kbd>​+Or the probe points ​may be defined (and saved with <​kbd>​M500</​kbd>​) using <​kbd>​M557 P0 X30 Y40.5</​kbd> ​ where <​kbd>​P</​kbd>​ is <​kbd>​0,​1,​2</​kbd>​
  
 Probe offsets from the nozzle or tool head can be defined with : Probe offsets from the nozzle or tool head can be defined with :
Line 469: Line 469:
 </​code>​ </​code>​
  
-They may also be set with <​kbd>​M565 X0 Y0 Z0</​kbd>​+The probe offsets ​may also be set with <​kbd>​M565 X0 Y0 Z0</​kbd>​
  
-To force homing in X and Y before <​kbd>​G32</​kbd>​ does the probe the following can be set in configthis is the default+To force homing in X and Y before <​kbd>​G32</​kbd>​ does the probethe following can be set in config ​(this is the default)
  
 <​code>​ <​code>​
Line 572: Line 572:
 **NOTE** there is **NO** extrapolation in this version, However the very latest firmware will not jump when outside the probed area, it will just use the nearest edge heights instead. **NOTE** there is **NO** extrapolation in this version, However the very latest firmware will not jump when outside the probed area, it will just use the nearest edge heights instead.
  
-**NOTE** you **MUST** set Z0 correctly (or close) before issuing the G32 probe as it will move to the specified ''​initial_height''​ before it starts to probe so it needs to know where Z0 is approximately.+**NOTE** you **MUST** set Z0 correctly (or close) before issuing the G32 probe as it may move to the specified ''​initial_height'' ​(if set) before it starts to probe so it needs to know where Z0 is approximately.
  
 === Configuration === Configuration
Line 637: 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 several options:
 +
 + 1. Set the homing offset to allow for the probe offset and/or reduce the grids x/y size to accommodate the probe offsets.
 + 2. You could invert one or multiple axis so (0,0) is in an accessible position.
 + 3. 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 653: Line 663:
 </​callout>​ </​callout>​
  
-An initial_height ​must be set that tells the probe where to start the first probe from, this should be around 5-10mm above the bed, it will move to the absolute Z position specified here.+An initial_height ​**may** ​be set that tells the probe where to start the first probe from, this should be around 5-10mm ​above the probe height ​above the bed, it will move to the absolute Z position specified here before it starts the first probe. Fir instance this is useful for bltouch probes that are deployed automatically as it will lift the probe off the bed before moving to the first probe position.
        
 <​code>​ <​code>​
Line 668: Line 678:
 <callout type="​warning"​ icon="​true"​ title="​Dampening settings">​ <callout type="​warning"​ icon="​true"​ title="​Dampening settings">​
 Both of these settings are needed to be defined in your configuration file for dampening compensation feature to work. If any of them is missing, the compensation will be applied through all heights (the old and default behavior). Both of these settings are needed to be defined in your configuration file for dampening compensation feature to work. If any of them is missing, the compensation will be applied through all heights (the old and default behavior).
 +Be careful using these settings, as they may appear to totally disable any compensation. It is advised to not set these until the leveling has been tested and verified to work.
 +**NOTE** the height_limit and dampening_start are in Machine coordinates,​ so if you have set Z with G92 or equivalent it may not stop at the height you think it will.
 +
 </​callout>​ </​callout>​
  
-By setting the configuration ​like this example ​above, ​you make your compensation ​to be applied ​for full for first 0.5 millimeters, ​start to decrease slowly until height ​is 1 millimeters, and not applied from 1 mm and onward.+By setting the configuration ​as above, ​the compensation ​will be applied ​until MCS is 0.5 millimeters, ​then it starts ​to decrease slowly until MCS is at millimeter, and not applied from 1 mm and onward.
  
 <callout type="​success"​ icon="​true"​ title="​Limits">​ <callout type="​success"​ icon="​true"​ title="​Limits">​
Line 708: Line 721:
 leveling-strategy.rectangular-grid.save ​                ​false ​   # If the saved grid is to be loaded on boot then this must be set to true leveling-strategy.rectangular-grid.save ​                ​false ​   # If the saved grid is to be loaded on boot then this must be set to true
 leveling-strategy.rectangular-grid.initial_height ​      ​10 ​      # will move to Z10 before the first probe leveling-strategy.rectangular-grid.initial_height ​      ​10 ​      # will move to Z10 before the first probe
-leveling-strategy.rectangular-grid.dampening_start ​     0.5      # compensation decrease point (optional) 
-leveling-strategy.rectangular-grid.height_limit ​        ​1 ​       # no compensation to apply after this point (optional) 
 mm_per_line_segment ​                                    ​1 ​       # necessary for cartesians using rectangular-grid mm_per_line_segment ​                                    ​1 ​       # necessary for cartesians using rectangular-grid
 </​code>​ </​code>​
Line 750: Line 761:
  
 <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 795: Line 806:
 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
 +
 +**UPDATE** on the latest Smoothie firmware you can now use software emulated PWM, which means you can use any pin for the control pin, just change the following config lines...
 +
 +<​code>​
 +# Switch module for Bltouch control using S/W PWM
 +# Note in the latest firmware with these settings you can just issue M280 to deploy and M281 to stow
 +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 ​                   2.11      # This must can be ANY spare pin   
 +switch.servo.output_type ​                  ​swpwm ​    # Software emulated PWM
 +switch.servo.pwm_period_ms ​                ​20 ​       # 20ms period, or 50Hz
 +switch.servo.startup_state ​                ​false ​    # use startup_value as initial setting
 +switch.servo.startup_value ​                ​7.43 ​     # On boot it will go into stow mode
 +switch.servo.default_on_value ​             3.3       # value set if M280 is issued without the S parameter, also value set if startup_state is true
 +
 +</​code>​
 +
 +
 +
  
  
Line 866: Line 897:
 If you want to be able to deploy and retract your probe using a small servo motor, see the [[/​switch|Switch]] module documentation. If you want to be able to deploy and retract your probe using a small servo motor, see the [[/​switch|Switch]] module documentation.
  
 +== Baby steps
  
 +This isn't strictly probe related, but probe users are likely to be looking for this. If you need to do small live adjustment to your Z height, take a look at [[http://​smoothieware.org/​motion-control#​adjusting-z-once-printing-starts-sometimes-called-babysteps|This page]]