Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    BLTouch Bed leveling oddity

    Scheduled Pinned Locked Moved
    General Discussion
    bltouch bed level offset
    4
    11
    459
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • PuterProundefined
      PuterPro @PuterPro
      last edited by

      I couldn't fit my homing files, so here they are:
      homeall.g:

      ; homeall.g
      ; called to home all axes
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 19 2019 16:42:10 GMT-0500 (Eastern Standard Time)
      G91                       ; relative positioning
      G1 Z5 U5 F6000 S2         ; lift Z relative to current position
      
      
      G1 S1 X-301.5 Y-309 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
      G1 X5 Y5 F6000            ; go back a few mm
      G1 S1 X-301.5 Y-309 F360  ; move slowly to X and Y axis endstops once more (second pass)
      ; begin Split & Recombine for dual Z & U
      ; this defines the mechanical endstops as BACKUP to BLTouch
      M584 Z2 U4 P4           ; split Z motor control to Z and U but for it to work we have to show U (param P4) in the UI
      G1 S1 Z-205 U-205 F1000 ; Move Z and U  down until the switches triggers
      ;G92 Z.36 U.36           ; set Z position for .36mm above BLTouch Trigger (Allow switches to be used as emergency stops)TURNED OFF FOR T-SHOOT
      M584 Z2:4 P3            ; back to combined axes and hidden U
      G1 X1 Y10 F360           ; move slowly X and Y axis away from bed edge
      
      ; Activate BLTouch for Homing Z
      G1 X45 Y12 Z5 F6000     ; lift Z relative to current position ADDED X & Y TO MOVE NEW PROBE TO POSITION OVER THE BED  
      M98 Pdeployprobe.g      ; deploy BLTouch
      G1 S1 Z-205 F1000       ; move Z down until the switch triggers
      G92 Z0                  ; set Z position to trigger height
      M98 Pretractprobe.g     ; retract BLTouch
      
      ; Set Home for Z & Lift Z
      ;G92 Z0                  ; set Z position to axis minimum (you may want to adjust this)
      G1 S2 Z5 F100           ; lift Z above bed relative to current position
      G90                     ; absolute positioning
      

      homez.g:

      ; homez.g
      ; called to home the Z axis
      ;
      ; generated by RepRapFirmware Configuration Tool v2 on Tue Feb 19 2019 16:42:11 GMT-0500 (Eastern Standard Time)
      G91                     ; relative positioning
      G1 Z5 F6000 S2          ; lift Z relative to current position
      
      ; begin Split & Recombine for dual Z & U
      ; this defines the mechanical endstops as BACKUP to BLTouch
      M584 Z2 U4 P4           ; split Z motor control to Z and U but for it to work we have to show U (param P4) in the UI
      G1 S1 Z-205 U-205 F1000 ; Move Z and U  down until the switches triggers
      ;G92 Z.36 U.36           ; set Z position for .36mm above BLTouch Trigger (Allow switches to be used as emergency stops)TURNED OFF FOR T-SHOOT
      M584 Z2:4 P3            ; back to combined axes and hidden U
      G1 X10 Y10 F360         ; move slowly X and Y axis away from bed edge
      
      ; Activate BLTouch for Homing Z
      G1 X45 Y12 Z5 F6000    ; lift Z relative to current position & move probe over bed
      M98 Pdeployprobe.g      ; deploy BLTouch
      G1 S1 Z-205 F1000       ; move Z down until the switch triggers
      G92 Z0                  ; set Z position to trigger height 
      M98 Pretractprobe.g     ; retract BLTouch
      
      ; Set Home for Z & Lift Z
      ;G92 Z0                  ; set Z position to axis minimum (you may want to adjust this)
      G1 S2 Z5 F100           ; lift Z above bed relative to current position
      G90                     ; absolute positioning
      
      1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by Phaedrux

        It seems like you've got a ill-fated combination of the endstop leveling and probe leveling approaches. Abandon the endstops and use the probe.

        G31 P500 X50 Y12 Z0.68 U0.68 in config.g

        G31 doesn't take a U parameter. It's only for the Z offset for the probe, U is an imaginary axis, not a separate physical dimension. So remove the U from G31.

        You're using endstops for leveling, but since you have a z probe, you could just use the probe. It's a lot simpler and you don't have to mess with splitting the Z into multiple axis.

        https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_Example_for_2_motors

        M98 Pdeployprobe.g      ; deploy BLTouch
        G1 S1 Z-205 F1000       ; move Z down until the switch triggers
        G92 Z0                  ; set Z position to trigger height
        M98 Pretractprobe.g     ; retract BLTouch
        

        This isn't the way to probe the Z height with a probe either. You've basically converted it into a mobile endstop, none of the G31 offsets are being applied when used this way. Simply use a G30 to probe the bed.

        I think you need to take a step back and simplify things. You've gone off the rails here. 😀

        Z-Bot CoreXY Build | Thingiverse Profile

        PuterProundefined 1 Reply Last reply Reply Quote 1
        • RyanPundefined
          RyanP
          last edited by

          I just finished my conversion of the my CR10S and my Ender 5 Plus to using separate steppers. Through my learning, you only need to add and U* parameters in the descriptions of your steppers (ei; jerk, accel, steps etc).

          In all other instances (such as z probe offset), you simply need to apply a Z* parameter.

          It sounds like what I have been working through for the past few days where my z-offset keeps changing.

          As @Phaedrux said, use the probe. My process is very similar to yours.

          1. home all axis

          2. M564 S1 to make sure virtual endstops enabled so you can't go below 0 for Z

          3. raise 8mm

          4. probe bed

          5. repeat 3 and 4 and review Z offset.

          6. once I am locked in with my z offset, I reboot, home and check with paper.

          But I was doing this over and over and over, daily. But this I learned about operating the dual z axis with separate steppers, and using G32 to align the leadscrews Even though dual z screws is supposed to help with keeping your gantry level, it never does.

          I I made the need hardware changes and firmware changes, and can include G32 in my routine. I have found today on my CR10S I don't have to adjust my z-offset. Its rock solid.

          I will also add that in all this change, I also positioned my probe (BL Touch as well) to be closer to the nozzle. So my z offset is much smaller.

          So I would try

          CR10S, August 2018
          Anycubic Photon S December 2019
          Ender 5 Feb 2020
          Ender 5 Plus May 2020
          Anycubic Photon Mono X Nov 2020
          ~
          https://3dimensiongames.com/

          1 Reply Last reply Reply Quote 1
          • PuterProundefined
            PuterPro @Phaedrux
            last edited by

            @Phaedrux

            Sorry for the long reply time ... life...
            Aw 'cmon, I went off the rails YEARS ago 😉

            I started to make the changes and after 20 minutes decided the Nuclear route would be better, so I ran RRF Configurator again and started clean.

            Your advice, along with that from @RyanP (Thanks buddy, that helped my head a LOT!!) lead me to a very nice clean setup. Some minor bobbles, but I think I've got 'em.

            I'm now running just the Z probe and am getting hatted up on RRF 3 prior to taking the plunge, as it handles not needing the split Z and has some nice upgrades.

            I'm still a bit uncomfortable with not using the endstop switches as a backup to the BLTouch, I'd like to set it up with them commanding an Emergency stop if triggered.

            Should I just wait until I'm running RRF 3 so I don't have to set it up twice?

            One other odd Q - when you change something in a system file (config.g, bed.g, etc) is that change reflected in the JSON file automatically? (I'm thinking about when you use a JSON to be a starting point for the RRF Configurator)

            Thanks again to you both!! My forehead is healing.

            Here's my new config.g, if you could take a quick peek ...

            ; Configuration file for Duet Maestro (firmware version 2.03)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu May 07 2020 16:11:24 GMT-0400 (Eastern Daylight Time)
            
            ; General preferences
            G90                                                ; send absolute coordinates...
            M83                                                ; ...but relative extruder moves
            M550 P"CR-10S Duet"                                ; set printer name
            
            ; Network
            M552 P0.0.0.0 S1                                   ; enable network and acquire dynamic address via DHCP
            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 S1                                         ; physical drive 1 goes forwards
            M569 P2 S1                                         ; physical drive 2 goes forwards
            M569 P3 S1                                         ; physical drive 3 goes forwards
            M569 P4 S1                                         ; physical drive 4 goes forwards
            M584 X0 Y1 Z2:4 E3                                 ; set drive mapping
            M350 X16 Y16 Z16:16 E16 I1                         ; configure microstepping with interpolation
            M92 X80.00 Y80.00 Z400.00 E412.00                  ; set steps per mm
            M566 X900.00 Y900.00 Z12.00 E120.00                ; set maximum instantaneous speed changes (mm/min)
            M203 X12000.00 Y12000.00 Z600.00 E1200.00          ; set maximum speeds (mm/min)
            M201 X500.00 Y250.00 Z16.60 E166.00                ; set accelerations (mm/s^2)
            M906 X1000 Y1000 Z900 E800 I30                     ; set motor currents (mA) and motor idle factor in per cent
            M84 S30                                            ; Set idle timeout
            
            ; Axis Limits
            M208 X3.5 Y-4 Z0 S1                                ; set axis minima
            M208 X320 Y320 Z340 S0                             ; set axis maxima
            
            ; Endstops
            M574 X1 Y1 S1                                      ; set active high endstops
            M574 Z1 S2                                         ; set endstops controlled by probe
            
            ; Z-Probe
            M558 P9 H5 F120 T6000                              ; set Z probe type to bltouch and the dive height + speeds
            G31 P500 X44.3 Y12 Z0.57                           ; set Z probe trigger value, offset and trigger height
            M557 X50:350 Y12:312 S20                           ; define mesh grid
            
            ; Heaters
            M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
            M305 P0 T100000 B4388 C7.060000e-8 R2200           ; set thermistor + ADC parameters for heater 0
            M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
            M301 H2 S0.85                                      ; set heater 1 PWM limit to 85%
            M305 P2 X502 R2200 S"Heater 2"                     ; configure PT1000 for heater 1 NB: P2 = E1 on Maestro PCB, X502 = E1 Thermistor (NOT P1 due to Maestro Case)
            M143 H2 S310                                       ; set temperature limit for heater 1 to 310C
            
            ; Fans
            M106 P0 C"Parts Fan" S0 I0 F500                   ; set fan 0 name, value, PWM signal inversion and frequency. Thermostatic control is turned off
            
            
            ; Tools
            M563 P0 H2 S"Extruder 1" D0 F0                        ; 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
            
            ; Custom settings
            ;G29 S1						                      ; Enable automatic bed mesh compensation
            ;M572 D0 S0.10					                  ; Enable pressure-advance of 0.10 seconds
            
            ; Miscellaneous
            ;M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
            
            
            
            PaulHewundefined 1 Reply Last reply Reply Quote 0
            • PaulHewundefined
              PaulHew @PuterPro
              last edited by

              @PuterPro Glad you are up and running.
              No, the json file does not get updated when you change config.g

              Are you running the hotend fan from the 'Always On' connector?

              Regards,
              Paul

              RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
              Voron 2.4 disassembled..... Waiting for the RailCore Mini....

              PuterProundefined 1 Reply Last reply Reply Quote 1
              • PuterProundefined
                PuterPro @PaulHew
                last edited by

                @PaulHew said in BLTouch Bed leveling oddity:

                @PuterPro Glad you are up and running.
                No, the json file does not get updated when you change config.g

                I was afraid of that. I missed on a few items using the Configurator, but fixed them manually. So I would have to run the Configurator again to get a json file with the proper settings baked in?

                I guess it will be a moot point when I switch to RRF 3.x anyway, since there's no straight upgrade path.

                Are you running the hotend fan from the 'Always On' connector?

                Yep! Thanks for your time!

                PaulHewundefined 1 Reply Last reply Reply Quote 0
                • PaulHewundefined
                  PaulHew @PuterPro
                  last edited by

                  @PuterPro Honestly, going to RRF3 is not as bad as it seems. Took me about an hour and a day to do the Ender3! Not really, Couple of hours max. Issues were BL Touch and thermistors.

                  I am liking RRF3, now I have got my head round it!

                  Regards,
                  Paul.

                  RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
                  Voron 2.4 disassembled..... Waiting for the RailCore Mini....

                  PuterProundefined 1 Reply Last reply Reply Quote 0
                  • PuterProundefined
                    PuterPro @PaulHew
                    last edited by

                    @PaulHew Yeah, I'm reading all the docs now, trying to wrap my head around it. Glad to hear it's not too bad.

                    I'm reading you have to go 2.x > 3.0 > 3.xxx RCxx, the last step being manual since the RRF Configurator isn't updated past 3.0. Yes?

                    1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator
                      last edited by

                      The reason for going to 3.0 first is just to ensure you have all the right files in place. The config files should be mostly the same with the caveat for any specific changes in the release candidates.

                      The json file is a one way street. It allows you to open your config in the configurator again, but it is static as of the moment it left the configurator. Any changes made afterwards are not reflected in the json.

                      The configurator is a jumping off point, but once you get into a more advanced setup like with multiple independent axis, it's best to just get used to modifying the config.g directly.

                      Using the endstops as an e stop is perfectly fine idea. You can also drop your Z axis motor current during homing/leveling so that in the event of a crash there is minimal chance of damage which kind of negates the need.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      PuterProundefined 1 Reply Last reply Reply Quote 0
                      • PuterProundefined
                        PuterPro @Phaedrux
                        last edited by

                        @Phaedrux said in BLTouch Bed leveling oddity:

                        The reason for going to 3.0 first is ...

                        Makes sense.

                        The json file is a one way street.

                        I suspected that when I used my last old one and a lot of it wasn't what I had done manually.

                        The configurator is a jumping off point, .... it's best to just get used to modifying the config.g directly.

                        That was becoming apparent this time. It's fine when I'm all mired in it, but not touching it for over a year ... "You don't use it, you lose it!" Gets worse as I get older too. Grrr. LOL

                        Using the endstops as an e stop is perfectly fine idea. You can also drop your Z axis motor current during homing/leveling so that in the event of a crash there is minimal chance of damage which kind of negates the need.

                        Just like the idea of a backup plan, the BLTouch can be cranky.
                        I toyed with the idea of dropped current but never got around to it. Good idea, I'll do it now until I'm all squared away with RC 2.8 Milllion. Poor David, every time he thinks he's got it nailed some major buggy-boo bites him in the ass! Guy's a Saint.

                        Thanks Jason, you always get me back on track, your work here is truly appreciated. 🙂

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA