Bed leveling using 2 z-probes beta3.2



  • Hello all,

    At the moment i'm trying to get the config right for a printer project i'm working on. I have two hotends in a carriage where one of them is steady and the other one is mounted on linear rails and a linear stepper driver which can move it up and down. Both of them have FSR's installed to be able to probe the bed individually and so an offset can be set between them which will make calibration a breeze, if it will work that is.

    Right now i can't get it to work, on the user interface it displays two values however they're the same value. I'm wondering if any of you can look at my config and tell me how to fix it.

    The second hotend is defined as tool U in my config and im using RepRapFirmware 3.2-beta3.2

    ; Drives
    M569 P0.0 S1 ; physical drive 0.0 goes forwards
    M569 P0.1 S1 ; physical drive 0.1 goes forwards
    M569 P0.2 S1 ; physical drive 0.2 goes forwards
    M569 P0.3 S1 ; physical drive 0.3 goes forwards
    M569 P0.4 S1 ; physical drive 0.4 goes forwards
    M584 X0.0 Y0.1 Z0.2:0.3:0.4 U0.5 E1.0:1.1 ; set drive mapping
    M671 X51.3:400:748.7 Y75:448.7:75 S0.5 ; leadscrews at rear left, front middle and rear right

    M350 X16 Y16 Z16 U16 E16:16 I1 ; configure microstepping with interpolation
    M92 X160.00 Y160.00 Z640.00 U5039.37 E274.00:274.00 ; set steps per mm
    M566 X900.00 Y900.00 Z12.00 U20.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 U250.00 Z600.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z20.00 U E250.00:250.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 U420 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 U0 S1 ; set axis minima
    M208 X800 Y500 Z500 U15 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"!^io1.in" ; configure active-high endstop for low end on X via pin !^io1.in
    M574 Y1 S1 P"!^io2.in" ; configure active-high endstop for low end on Y via pin !^io2.in
    M574 Z1 S1 P"!^io3.in+!^io4.in+!^io5.in" ; configure active-high endstop for low end on Z via pin !^io3.in
    M574 U1 S1 P"!^io8.in"

    ; Z-Probe
    M558 K0 P3 C"io6.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    M558 K0 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
    G31 K0 P600 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M558 K1 P3 C"io7.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    M558 K1 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
    G31 K1 P600 X103.6 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M557 X15:215 Y15:195 S20 ; define mesh grid

    ; Tools
    M563 P0 S"Extruder 0 (Main)" D0 H1 F0:1 ; define tool 0
    G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"Extruder 1 (Support)" D1 H2 F0:1 ; define tool 1
    G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

    Kind regards, Piet.



  • @veti @deonholt @Phaedrux

    I got it working now, i read on the gcode webpage that you can't have multiple analog sensors? Im assuming it has to do with the filtering.

    This is what the page stated:

    *"Restrictions on defining more than one Z probe (K parameter) as at RRF 3.01:

    G29 and G30 commands always used probe 0 and there is no facility to select a different probe
    Only one Z probe can be type 1,2,3,5 or 9. But you can have multiple type 8 Z probes.
    All Z probes use the same deployprobe.g and retractprobe.g files"*

    I changed it to the following in my config.g:

    ; Z-Probe
    M558 K0 P3 C"io6.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 K0 P600 X-103.6 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M558 K1 P8 C"io7.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 K1 P600 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height

    I'd still prefer if there was a different way to do it but for now it works.

    I do however have another question. Like i said my tool 1 moves up and down. Now when i change tools i want my bed to move down before my tool goes down because otherwise it will crash into the bed. The problem is is that i use a G10 command to set the tool offset which is measured with the FSR. This offset only applies after running all the tool change scripts. So from what i can tell there is no way to move the bed first because it will only run after the tool change scripts which would the command to move the U axis.

    Currently my code for measuring and setting the offset:

    M561 ; clear any bed transform
    M98 P"homeu.g" ; Home U axis
    G90
    T0 P0 ; Select tool 0
    G1 X120 Y44
    G91
    G30 K0 Z-9999 ; Probe bed with tool 0 and set Z=0

    G90
    T1 P0
    G1 X120 Y44 Z7.5 U-7.5 F800; ; Move the bed 20mm, and the U axis 15mm down
    G91
    G38.2 Z0 P1
    M400
    G10 L1 P1 Z{move.axes[2].machinePosition}
    M500 P10
    M400
    G91
    G1 Z+5
    G90
    M400
    M117 "Z offset for tool 1 is set and saved"

    T0

    Maybe it is a possibility to set the U offset too so it changes it together?

    I'd like any input 🙂



  • does it probe with different probes if you issue

    G30 K0

    and

    G30 K1

    ?



  • No, it still shows the two same values in the UI. It only responds to the one shown there.



  • @Veti said in Bed leveling using 2 z-probes beta3.2:

    does it probe with different probes if you issue

    G30 K0

    and

    G30 K1

    ?

    Same here. Only probes 1 point.



  • @Piet said in Bed leveling using 2 z-probes beta3.2:

    No, it still shows the two same values in the UI. It only responds to the one shown there.

    @Piet , you battling with the same thing?


  • Moderator

    @Piet said in Bed leveling using 2 z-probes beta3.2:

    ; Z-Probe
    M558 K0 P3 C"io6.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    M558 K0 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
    G31 K0 P600 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M558 K1 P3 C"io7.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    M558 K1 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved

    Can you remove the duplicate M558. There have been some other issues with incomplete duplicate M558 commands.

    If you send M558 in the console what does it respond with?
    If you send M558 K0 and M558 K1 what does it respond with?



  • @veti @deonholt @Phaedrux

    I got it working now, i read on the gcode webpage that you can't have multiple analog sensors? Im assuming it has to do with the filtering.

    This is what the page stated:

    *"Restrictions on defining more than one Z probe (K parameter) as at RRF 3.01:

    G29 and G30 commands always used probe 0 and there is no facility to select a different probe
    Only one Z probe can be type 1,2,3,5 or 9. But you can have multiple type 8 Z probes.
    All Z probes use the same deployprobe.g and retractprobe.g files"*

    I changed it to the following in my config.g:

    ; Z-Probe
    M558 K0 P3 C"io6.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 K0 P600 X-103.6 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M558 K1 P8 C"io7.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
    G31 K1 P600 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height

    I'd still prefer if there was a different way to do it but for now it works.

    I do however have another question. Like i said my tool 1 moves up and down. Now when i change tools i want my bed to move down before my tool goes down because otherwise it will crash into the bed. The problem is is that i use a G10 command to set the tool offset which is measured with the FSR. This offset only applies after running all the tool change scripts. So from what i can tell there is no way to move the bed first because it will only run after the tool change scripts which would the command to move the U axis.

    Currently my code for measuring and setting the offset:

    M561 ; clear any bed transform
    M98 P"homeu.g" ; Home U axis
    G90
    T0 P0 ; Select tool 0
    G1 X120 Y44
    G91
    G30 K0 Z-9999 ; Probe bed with tool 0 and set Z=0

    G90
    T1 P0
    G1 X120 Y44 Z7.5 U-7.5 F800; ; Move the bed 20mm, and the U axis 15mm down
    G91
    G38.2 Z0 P1
    M400
    G10 L1 P1 Z{move.axes[2].machinePosition}
    M500 P10
    M400
    G91
    G1 Z+5
    G90
    M400
    M117 "Z offset for tool 1 is set and saved"

    T0

    Maybe it is a possibility to set the U offset too so it changes it together?

    I'd like any input 🙂


Log in to reply