Unable to set Z offset with PINDA probe



  • Hello all,
    Installed a PINDA probe and I'm experiencing major issues with setting the z-offset; I set the offset with G10 P0 X0 Y0 Z4 and after probing the z-axis I see that it reports the z-axis as positive 4mm when I tell it to go to 0mm with G1 Z0. When I attempt to jog up past 4mm it does nothing; jogging with any settings results in the printer refusing to go past the point the probe reported as 0mm...
    I've removed the z-axis minima value from my config.g file, and I'm at a loss for figuring out how to get this to work.
    Please see my config.g and homez.g.



  • the offset is set with G31 not G10



  • @CarbonVirus

    1. Restore axis minima
    2. Set tool Z offset to 0 as pointed by @Veti in G10
    3. Configure z probe properly:
      G31 P500 X<x probe offset> Y<y probe offset> Z<trigger height>

    As a start point You can set Z trigger height for pinda at 0mm

    And follow this:
    https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe



  • M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp

    your thermistor config is incorrect. find the correct beta value in your thermistor documentation.



  • Alright, I updated the G10/G31 commands as instructed and still cannot get the printer to jog negatively past 0mm.
    Here's my updated config.g.
    As for the thermistor config, that is what the reprap auto config tool gave me; if it's wrong, I am unsure what to update.



  • @CarbonVirus Normally You should not be able to jog Z below 0 (or z min actually) - because normally this would crash nozzle into the bed.

    If at Z=0 nozzle is not touching the table that means You still did not follow calibration guide.

    Also Z trigger height in G31 - 12mm... how did You manage to get 12mm? This is well outside of pinda probe range.

    And... unless You have pinda somehow integrated with nozzle probe x and y offset can not be 0.0 0.0


  • Moderator

    Can you please send M122 and M98 P"config.g" and post the results?

    Also please post homeall.g

    Remove this from your homez as it belongs in config.g

    M574 Z1 S2 ; Set endstops controlled by probe
    M558 P5 C"^zprobe.in" I1 H0.7 F1000 T6000 A20 S0.005 ; PINDA
    

    Your homez is setup to use an endstop homing move and not a probing move, which means your probe settings aren't being applied at all.

    G1 H1 Z-1000 F500 ; move 1000mm, stopping at the endstop

    That should be removed and replaced by

    G90 ; absolute position
    G1 X150 Y150 ; move probe to center of bed
    G30 ; use probe to find Z0
    

    The same would likely need to change in your homeall.

    G31 P500 X0 Y0 Z12 ; set z-probe offset height

    Is your trigger height really 12mm? Use the test and calibrate link from BoA above to find it.



  • @CarbonVirus said in Unable to set Z offset with PINDA probe:

    As for the thermistor config, that is what the reprap auto config tool gave me; if it's wrong, I am unsure what to update.

    4138 is the default and wrong for your thermistor. what thermistor did you buy?



  • alright, I've updated the z-probe offset information, updated the homeall.g/homez.g file, ran through the z-probe calibration process outlined on the above link, and updated the config.g file; still after homing, the z-axis raises the bed only to the trigger height of the sensor; it refuses to go negative past the trigger height.



  • @Veti Currently have the following 24v bed with integrated thermistor; according to the comments it has a NTC 100k 3950B thermistor.


  • Moderator

    This is a corexy with a moving bed, correct?

    Z+ should move the bed up towards the nozzle and Z- should move the bed down away from the nozzle, correct? Flip that. Z- to the nozzle, and Z+ away from nozzle.

    What exactly do you mean by "negative past the trigger height?"


  • Moderator

    Your new trigger height in G13 Z is Z-0.490. That would mean the probe is only triggering when the nozzle is pressing into the surface of the bed. That seems unlikely.


  • Moderator

    Also, can you copy and paste your configs into the post window itself? paste bin is complaining about me viewing so many pastes so quickly.



  • @Phaedrux Apologies, I'm quite shite at explaining the situation...
    It is a Core X/Y, and positive should move the bed down away from the gantry I believe (jogging positive results in the bed descending).

    Here's the process resulting in failure:

    • Home X + Y
    • Home Z (with updated homing code provided above)
    • Send gantry to x150, y150
    • Send gantry to z0
    • Observe nozzle is still ~4mm away from print bed
    • Observe this distance is right where the PINDA sensor triggers
    • Cannot raise bed (send negative movement commands) without disabling axis endstops (M564 S0)


  • config.g

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 28 2020 17:19:16 GMT-0400 (Eastern Daylight Time)
    
    ; General preferences
    G90                                                	; send absolute coordinates...
    M83                                                	; ...but relative extruder moves
    M550 P"CarbonCube"                                 	; set printer name
    M669 K1                                            	; select CoreXY mode
    
    ; Network
    M552 S1                                            	; enable network
    M586 P0 S1                                         	; enable HTTP
    M586 P1 S0                                         	; disable FTP
    M586 P2 S0                                         	; disable Telnet
    
    ; Drives
    M569 P0 S1                                         	; physical drive 0 goes forwards
    M569 P1 S0                                         	; physical drive 1 goes forwards
    M569 P2 S0                                         	; physical drive 2 goes forwards
    M569 P3 S0                                         	; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                                   	; set drive mapping
    M350 X16 Y16 Z16 E16 I1                            	; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z800.00 E418.60                	; set steps per mm
    M566 X1800.00 Y1800.00 Z400.00 E4000.00            	; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z2000.00 E120000.00       	; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z400.00 E2000.00            	; set accelerations (mm/s^2)
    M906 X1450 Y1450 Z1450 E1450 I30                   	; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            	; set idle timeout
    
    ; Axis Limits
    M208 S1 X0 Y0 Z0                                 	; set axis minima
    M208 S0 X300 Y300 Z300                             	; set axis maxima
    
    ; Endstops
    M574 X1 S4                                         	; configure sensorless endstop for low end on X
    M574 Y1 S4                                         	; configure sensorless endstop for low end on Y
    
    ; Z-Probe
    M574 Z1 S2 ; Set endstops controlled by probe
    M558 P5 C"^zprobe.in" I1 H0.7 F1000 T6000 A20 S0.005; PINDA
    G31 P500 X30 Y-20 Z-0.490							; set z-probe offset height
    M557 X100:200 Y100:200 P2                           ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     	; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                              	; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S1.00                                   	; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            	; map heated bed to heater 0
    M143 H0 S120                                       	; set temperature limit for heater 0 to 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138      	; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                               	; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                   	; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"fan0" Q500                               	; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1                                     	; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                               	; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45                                  	; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1 F0                                   	; define tool 0
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M501                                               	; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" 	; set voltage thresholds and actions to run on power loss
    T0                             			   		  	; select first tool
    
    

    homeall.g

    ; homeall.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 28 2020 17:19:16 GMT-0400 (Eastern Daylight Time)
    
    G91                     										; relative positioning
    G1 H2 Z5 F6000          										; lift Z relative to current position
    
    ; set motors to homing settings
    M400 															; make sure everything has stopped before we make changes
    M574 X1 Y1 S4 													; set endstops to use motor stall
    M913 X30 Y30 													; drop motor current to 20%
    M915 X Y S1 F0 H400 R0 											; set sensitivity , do nothing when stall, unfiltered
    
    
    ; home x
    G1 H1 X-1000 F4000 												; move 1000mm, stopping at the endstop
    
    
    ; home y
    G1 H1 Y-1000 F4000 												; move 1000mm, stopping at the endstop
    
    
    ; home z
    G91              												; relative positioning
    G1 H2 Z5 F6000   												; lift Z relative to current position
    
    G90              												; absolute positioning
    G1 X150 Y150 F6000 												; go to first probe point
    
    G30 															; use probe to find Z 0
    
    G91             												; relative positioning
    G1 Z10 F6000      												; lift Z relative to current position
    G90             												; absolute positioning
    
    
    ; set motors to print settings
    M400 															; make sure everything has stopped before we reset the motor current
    M913 X100 Y100 													; motor current back to 100%
    
    G91             												; relative positioning
    G1 Z10 F6000      												; lift Z relative to current position
    G90             												; absolute positioning
    G1 x10 y10 F6000      											; move x/y relative to current position
    

    homez.g

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 28 2020 17:19:17 GMT-0400 (Eastern Daylight Time)
    
    
    G91              												; relative positioning
    G1 H2 Z5 F6000   												; lift Z relative to current position
    
    G90              												; absolute positioning
    G1 X150 Y150 F6000 												; go to first probe point
    
    G30 															; use probe to find Z 0
    
    G91             												; relative positioning
    G1 Z10 F6000      												; lift Z relative to current position
    G90             												; absolute positioning
    

  • Moderator

    @Phaedrux said in Unable to set Z offset with PINDA probe:

    Z+ should move the bed up towards the nozzle and Z- should move the bed down away from the nozzle, correct? Flip that. Z- to the nozzle, and Z+ away from nozzle.

    Sorry. My mistake there.


  • Moderator

    @CarbonVirus said in Unable to set Z offset with PINDA probe:

    It is a Core X/Y, and positive should move the bed down away from the gantry I believe (jogging positive results in the bed descending).

    Yes. That is correct. Sorry for the confusion.

    @CarbonVirus said in Unable to set Z offset with PINDA probe:

    Cannot raise bed (send negative movement commands) without disabling axis endstops (M564 S0)

    I think this is because of your odd trigger height.

    @CarbonVirus said in Unable to set Z offset with PINDA probe:

    Send gantry to z0
    Observe nozzle is still ~4mm away from print bed

    What your G31 Z-0.4 trigger height is saying, is that when you send G30 to probe the bed, when the probe triggers the nozzle is at -0.4mm inside the surface of the bed. You can't send a negative value after that because it already thinks you're touching the bed.

    If your nozzle is still far away from the bed at that point, you need to redo the trigger height calibration because something went wrong.



  • alright, achieved proper z-offset with following configs
    config.g

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 28 2020 17:19:16 GMT-0400 (Eastern Daylight Time)
    
    ; General preferences
    G90                                                	; send absolute coordinates...
    M83                                                	; ...but relative extruder moves
    M550 P"CarbonCube"                                 	; set printer name
    M669 K1                                            	; select CoreXY mode
    
    ; Network
    M552 S1                                            	; enable network
    M586 P0 S1                                         	; enable HTTP
    M586 P1 S0                                         	; disable FTP
    M586 P2 S0                                         	; disable Telnet
    
    ; Drives
    M569 P0 S1                                         	; physical drive 0 goes forwards
    M569 P1 S0                                         	; physical drive 1 goes forwards
    M569 P2 S0                                         	; physical drive 2 goes forwards
    M569 P3 S0                                         	; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3                                   	; set drive mapping
    M350 X16 Y16 Z16 E16 I1                            	; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z800.00 E418.60                	; set steps per mm
    M566 X1800.00 Y1800.00 Z400.00 E4000.00            	; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z2000.00 E120000.00       	; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z400.00 E2000.00            	; set accelerations (mm/s^2)
    M906 X1450 Y1450 Z1450 E1450 I30                   	; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                            	; set idle timeout
    
    ; Axis Limits
    M208 S1 X0 Y0 Z0                                 	; set axis minima
    M208 S0 X300 Y300 Z300                             	; set axis maxima
    
    ; Endstops
    M574 X1 S4                                         	; configure sensorless endstop for low end on X
    M574 Y1 S4                                         	; configure sensorless endstop for low end on Y
    
    ; Z-Probe
    M574 Z1 S2 ; Set endstops controlled by probe
    M558 P5 C"^zprobe.in" I1 H0.7 F1000 T6000 A20 S0.005; PINDA
    G31 P500 X30 Y-20 Z2.75							; set z-probe offset height
    M557 X100:200 Y100:200 P2                           ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138     	; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                              	; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S1.00                                   	; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                            	; map heated bed to heater 0
    M143 H0 S120                                       	; set temperature limit for heater 0 to 120C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138      	; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                               	; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S1.00                                   	; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"fan0" Q500                               	; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1                                     	; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                               	; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45                                  	; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1 F0                                   	; define tool 0
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M501                                               	; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" 	; set voltage thresholds and actions to run on power loss
    T0                             			   		  	; select first tool
    

    homez.g

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 28 2020 17:19:17 GMT-0400 (Eastern Daylight Time)
    
    
    G91              												; relative positioning
    G1 H2 Z5 F6000   												; lift Z relative to current position
    
    G90              												; absolute positioning
    G1 X150 Y150 F6000 												; go to first probe point
    
    G30 															; use probe to find Z 0
    
    G91             												; relative positioning
    G1 Z10 F6000      												; lift Z relative to current position
    G90             												; absolute positioning
    

    I think the stem of the entire issue was the incorrect homing command (using the endstop style command instead of a probe G30); still need to determine what could be wrong with my thermistor 😕
    Thank you very much @Phaedrux for the assistance; I got all turned about when messing with the offset/axis limit/homing commands and your assistance was quite helpful (as well as all others who chimed in)!


  • Moderator

    @CarbonVirus said in Unable to set Z offset with PINDA probe:

    still need to determine what could be wrong with my thermistor

    Do you mean the pinda thermistor?



  • @Phaedrux
    I believe @Veti was indicating the default thermistor my bed uses based off the reprap auto configuration tool is wrong. I wasn't planning on using the PINDA thermistor as I only ever print with the bed at 60c and plan to do the mesh grid probing at that temp so there shouldn't be variance, correct?
    Reading up on the PINDA temp compensation was rather perplexing TBH.


  • Moderator

    Right. Do you know what kind of thermistor you have? What kind of printer is it? did it come with the hotend? What is it?



  • It's a fully custom printer I've been tinkering with 2+ years; Core X/Y with a single Z axis drive and a 20x20 cube chassis.
    The thermistor is the standard thermistor included with the E3D V6 Lite. The bed thermistor is outlined in the above comments.



  • @CarbonVirus said in Unable to set Z offset with PINDA probe:

    it has a NTC 100k 3950B thermistor.

    So the B value for your bed is 3950

    @CarbonVirus said in Unable to set Z offset with PINDA probe:

    The thermistor is the standard thermistor included with the E3D V6 Lite

    this one has 2 values B4725 C7.06e-8



  • Excellent, I've updated the thermistor values and am running a test print ATM; thank you for the assistance @Veti 👍


Log in to reply