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

    RRF3.2Beta4.1 Heightmap vs. Spindle/Driver Mapping

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    49
    2.4k
    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.
    • Frederikundefined
      Frederik
      last edited by Frederik

      Good Morning,

      I´m trying to understand what's going on and why it is looking like that 🙂

      2020-11-20_15h00_22.png 2020-11-20_22h08_05.png 2020-12-22_08h10_39.png 2020-12-22_08h11_00.png 2020-12-22_08h11_13.png 2020-12-22_08h11_22.png 2020-12-22_08h11_29.png

      after editing my BLTouch Settings with these additional Parameters and half the Probing Speed quite repeatable Measurements.

      M558 P9 H5 F60 T6000 A10 S0.003 B1 (R0.75???)
      

      deployprobe.g:

      M280 P0 S10
      

      is saw there is an additional R Parameter but I can't find any documentation about it.

      is there anything to optimize?
      My Spindles are at the left Front, rear center, right front about 50mm outside the Bed.
      The Bed is a 4mm Aluminium Plate with a PrimaCreator MagneticFlex Steel Plate.

      This measurement was @ Room Temperature ~21°C

      The BLTouch needed about 2-3 attempts to achieve the tolerance specified in the config and go to the next Probing Spot.

      my bed.g:

      ;Probe 3-point
      M561                            ; clear any bed transform
      G28  				; Home all
      G30 P0 X40 Y80 Z-99999          ; Probe near the front left lead-screw
      G30 P1 X215 Y395 Z-99999        ; Probe near the rear lead screw 
      G30 P2 X415 Y80 Z-99999 S3      ; Probe near the front right lead-screw
      
      G30 P0 X40 Y80 Z-99999          ; Probe near the front left lead-screw (Second Pass)
      G30 P1 X215 Y395 Z-99999        ; Probe near the rear lead screw (Second Pass)
      G30 P2 X415 Y80 Z-99999 S3      ; Probe near the front right lead-screw (Second Pass) 
      
      G91                             ; Switch to relative positioning moves
      G1 H2 Z5 F1000                  ; Drop the Z-axis (the bed) by 5mm relative to its current position
      G90                             ; Revert back to absolute positioning moves
      G1 X215 Y210 F6000              ; Position the nozzle at the center of the bed
      G30                             ; Probe and set the height as probed
      G29 S1 P"heightmap.csv"         ; Load the heightmap
      

      my config.g:

      G90                                                          ; Send absolute coordinates...
      M550 P"vcore"                                                ; set printer name
      M669 K1                                                      ; select CoreXY mode
      
      ; Drives
      M569 P0.0 S1                                                 ; physical drive 0.0 goes forwards
      M569 P0.1 S1                                                 ; physical drive 0.1 goes forwards
      M569 P0.2 S0                                                 ; physical drive 0.2 goes forwards
      M569 P0.3 S0                                                 ; physical drive 0.5 goes forwards
      M569 P0.4 S0                                                 ; physical drive 0.5 goes forwards
      M569 P0.5 S0                                                 ; physical drive 0.5 goes forwards
      M569 P121.0 S0
      
      M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5                     	     ; set drive mapping
      M350 E16 I0                                                  ; configure microstepping without interpolation
      M350 X16 Y16 Z16 I1                                          ; configure microstepping with interpolation
      M92 X159.00 Y159.00 Z806.00 E830.00                          ; set steps per mm
      
      M566 X1500.00 Y1500.00 Z50.00 E120.00                        ; set maximum instantaneous speed changes (mm/min)
      M203 X18000.00 Y18000.00 Z1000.00 E750.00                    ; set maximum speeds (mm/min)
      M201 X1500.00 Y1500.00 Z75.00 E250.00                        ; set accelerations (mm/s^2)
      M906 X1800 Y1800 Z1000 E900 I20                              ; set motor currents (mA) and motor idle factor in per cent
      M84 S90                                                      ; Set the idle timeout
      
      ;Position of Leadscrews
      M671 X0:215:450 Y80:450:80 S5 				     ; Position of Leadscrews
      
      ;Define Mesh Grid
      M557 X40:395 Y40:395 S100                                    ; define mesh grid
      
      ; Endstops
      M574 X1 S1 P"121.io2.in"                                     ; configure active-high endstop for low end on X via pin 121.io2.in
      M574 Y1 S1 P"io0.in"                                         ; configure active-high endstop for low end on Y via pin io1.in
      M574 Z1 S2                                                   ; configure Z-probe endstop for high end on Z
      
      ; Z-Probe
      M950 S0 C"121.io0.out"                                       ; create servo pin 0 for BLTouch
      M558 P9  C"121.io0.in" H4 F60 T6000 A10 S0.005 B1            ; set Z probe type to bltouch and the dive height + speeds
      G31 P1000 X0 Y0 Z0.81                                        ; set Z probe trigger value, offset and trigger height
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                                             ; set axis minima
      M208 X415 Y395 Z400 S0                                       ; set axis maxima
      
      ;Duet Laser Filament Monitor
      M591 D0 P5 C"io3.in" R30:130 E3.0 S0 			     ; Tolerance 30 to 130%, 3mm comparison length, diabled
      
      ; Pressure Advance Tuning
      M572 D0 S0.05					             ; Extruder pressure advance
      
      ; Cancel Ringing at the defined Freuquenzy
      ;M593 F40.5						     ; Ringing Frequency
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B4138                 ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0                                           ; create bed heater output on out0 and map it to sensor 0
      M307 H0 B0 S1.00                                             ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                                      ; map heated bed to heater 0
      M143 H0 S150                                                 ; set temperature limit for heater 0 to 200C
      M308 S1 P"121.temp0" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 1 as thermistor on pin 121.temp0
      M950 H1 C"121.out0" T1                                       ; create nozzle heater output on 121.out0 and map it to sensor 1
      M307 H1 B0 S1.00                                             ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S500                                                 ; set temperature limit for heater 1 to 500C
      M308 S2 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8        ; configure sensor 2 as thermistor on pin temp1
      M950 H2 C"out1" T2                                           ; create chamber heater output on out1 and map it to sensor 2
      M307 H2 B0 S1.00                                             ; disable bang-bang mode for the chamber heater and set PWM limit
      M141 H2                                                      ; map chamber to heater 2
      M143 H2 S120                                                 ; set temperature limit for heater 2 to 120C
      
      ; Heater Model Parameters
      M307 H0 R0.641 C945.3 D3.18 S1.00 V24.1	                     ; PID Parameters Heated Bed
      M307 H1 R2.770 C158.7 D5.63 S1.00 V24.0			     ; PID Parameter Mosquito Magnum
      M307 H2 A202.7 C76.2 D3.1 S1.0 V24.0 B0			     ; PID Parameters Build Chamber
      			 										       
      ; Fans
      M950 F0 C"121.out2" Q500                                     ; create fan 0 on pin 121.out2 and set its frequency
      M106 P0 S0 H-1                                               ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"121.out1" Q500                                     ; create fan 1 on pin 121.out1 and set its frequency
      M106 P1 S0 H-1                                               ; set fan 1 value. Thermostatic control is turned off
      
      ; Tools
      M563 P0 S"mosquito magnum" D0 H1 F0:1                        ; define tool 0
      G10 P0 X0 Y0 Z0                                              ; set tool 0 axis offsets
      T0                                                           ; select first tool
                                                      
      ; Custom settings are not defined
      M912 P0 S-14.8						     ; MCU Temperature Calibration
      M308 S3 P"drivers" Y"drivers" A"TMC" 			     ; Create sensor for drivers
      
      

      heightmap.csv

      RepRapFirmware height map file v2 generated at 2020-12-22 02:28
      xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum
      45.00,390.00,45.00,390.00,-1.00,70.00,70.00,5,5
        0.467, -0.045, -0.356, -0.373, -0.037
        0.619,  0.124, -0.105, -0.077,  0.139
        0.765,  0.325,  0.077,  0.042,  0.269
        0.991,  0.517,  0.245,  0.222,  0.445
        1.245,  0.723,  0.398,  0.331,  0.578
      
      

      PrintHead:
      IMG_20201219_084307.jpg

      The BlTouch is around 20mm right of the nozzle and 4mm in front
      and is at x0 and y5 when homed at x0 y0
      Wiring of the Z-Motors:

      left front Spindle - driver 0.2
      rear center - driver 0.3
      right front - driver 0.4
      

      Duet3 Mainboard
      Toolbard LC1

      RRF 3.2Beta4.1
      DWC 3.2Beta4

      any Tips that I can improve?

      Regards Frederik

      1 Reply Last reply Reply Quote 0
      • gringoundefined
        gringo
        last edited by

        Please check your M671 command.
        As I see, the Position of the Leadscrews does not match the Axis minima and maxima.
        You write your Leadscrews are 50mm outside the print bed, then they can't be at X0.

        M208 X0 Y0 Z0 S1
        M671 0:215:450 Y80:450:80 S5

        Frederikundefined 1 Reply Last reply Reply Quote 1
        • Frederikundefined
          Frederik @gringo
          last edited by Frederik

          @gringo i will change the value as soon as i am home and post the results.

          its a bit unclear whats the right settings:

          from the duet gcode dozuki:

          M671: Define positions of Z leadscrews or bed levelling screws
          Parameters

          Xnn:nn:nn... List of between 2 and 4 X coordinates of the leadscrews that drive the Z axis or the bed levelling screws
          Ynn:nn:nn... List of between 2 and 4 Y coordinates of the leadscrews that drive the Z axis or the bed levelling screws
          Snn Maximum correction to apply to each leadscrew in mm (optional, default 1.0)
          Pnnn Pitch of the bed levelling screws (not used when bed levelling using independently-driven leadscrews). Defaults to 0.5mm which is correct for M3 bed levelling screws.
          Fnn Fudge factor, default 1.0
          Order dependency

          M671 must come later in config.g than any M667 or M669 command.
          Example

          M671 X-15.0:100.0:215.0 Y220.0:-20.0:220.0 ; Z leadscrews are at (-15,220), (100,-20) and (215,220)

          but i cant find anything about the Fudge Factor ?

          Phaedruxundefined 1 Reply Last reply Reply Quote 0
          • gringoundefined
            gringo
            last edited by

            I have configured it like this:

            M671 X-132:148:428 Y-25:385:-55 S5 ;Leadscrew Position
            M208 X-88: 290 U0: 380 Y-25: 325 Z0: 270 ; Axis minima and maxima

            Frederikundefined 1 Reply Last reply Reply Quote 1
            • Phaedruxundefined
              Phaedrux Moderator @Frederik
              last edited by

              @Frederik said in RRF3.2Beta4.1 Heightmap vs. Spindle/Driver Mapping:

              but i cant find anything about the Fudge Factor ?

              It can be used to exaggerate the amount of correction in cases where it doesn't correct enough per pass.

              M558 R is a rest period after the probing move to allow the probe to settle. For the BLTouch R0.5 or so works well and causes it to rest for half a second before probing again.

              M671 defines the position of the lead screws
              The order must match the order of the motors defined in M584
              In bed.g you probe as close to the lead screws as you can in the same order as the lead screws are defined.

              Z-Bot CoreXY Build | Thingiverse Profile

              Frederikundefined 1 Reply Last reply Reply Quote 0
              • 3dMLundefined
                3dML
                last edited by

                @Frederik
                I have found that slowing down the maximum Z speed can help with tolerance. Try adding a M203 Z100 before any bed probing moves and M203 Z1000 after the bed probing is finished to restore the speed back to your config settings. You may be able to push the speed a little higher Z100.

                Once you have your setting dialed in correctly you can use a While loop to get a perfect bed level.

                while true
                	G30 P0 X40 Y80 Z-99999          ; Probe near the front left lead-screw
                        G30 P1 X215 Y395 Z-99999        ; Probe near the rear lead screw 
                        G30 P2 X415 Y80 Z-99999 S3      ; Probe near the front right lead-screw
                	M409 K"move.calibration.initial.deviation" F"f"
                	if move.calibration.initial.deviation <= 0.001 && move.calibration.initial.deviation >= -0.001
                		echo "Passed"
                		break
                	continue
                

                Please do not try this until you know your setting are correct as this code has no safety checks and will break parts if misconfigured. You can add safety checks if you wish.
                Also if your bed temp is not stable it will not pass these tolerances.

                Frederikundefined 1 Reply Last reply Reply Quote 0
                • Frederikundefined
                  Frederik @gringo
                  last edited by Frederik

                  @gringo @Phaedrux @3dML

                  Console output of 3 point Leveling:

                  G32
                  Leadscrew adjustments made: 0.810 0.762 0.377, points used 3, (mean, deviation) before (0.623, 0.151) after (-0.000, 0.000)
                  Leadscrew adjustments made: 0.013 0.161 -0.115, points used 3, (mean, deviation) before (-0.012, 0.105) after (-0.000, 0.000)
                  Height map loaded from file heightmap.csv
                  

                  after i edited the standard BLtouch Line to:
                  ´´´
                  H4 F60 T6000 A10 S0.005 B1 it got from around 0.xx1 values to 0.0xx values at the second round probing with F120 i never saw values like that. if i change the value S0.005 to 0.003 i got an Error Message: unconsistend Z Values.... i also tried to play sith the setscrew on top of the bltouch and generated makro Files for Selftest and Error Reset. after i send these 2 Makkros the sensor is working again without touching the cabling . so i think thats probably a setting /software issue.

                  i try to make some photos for reference

                  Head at Endstops = X0 Y0

                  Nozzle Tip is at

                  1 Reply Last reply Reply Quote 0
                  • Frederikundefined
                    Frederik
                    last edited by

                    what a timing, the last Time i posted a question about trigger heigt Problems i ordered a few shottky diodes bat 43 -do35:

                    Bauform DO-35
                    Elektrische Werte
                    URRM 30 V
                    UF 0,33 V
                    IF(AV) 0,2 A
                    IFSM 4 A
                    IR 0,5 µA

                    I have an unsused inductive Probe here thats working witht 24 V .
                    could i connect it with that diode savely to an unused IOpin only for testing purposes , if there is a hardware error or other problem on the bltouch ?

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

                      For the BLtouch try this command

                      M558 P9 H4 F60 T6000 A10 B1 R0.5

                      Don't specify S at all, let it use the default.

                      Now if you do a test of G30 S-1 several times in a row, how consistent are the results?

                      Why do you think there is a problem with the BLTouch?

                      Error Message: unconsistend Z Values

                      That will happen if you use too tight a tolerance in S.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      Frederikundefined 2 Replies Last reply Reply Quote 0
                      • 3dMLundefined
                        3dML
                        last edited by

                        @Frederik
                        It looks like the second pass is better then the first.
                        If your setting are not prefect it may take several more rounds depending on the tolerance you want.

                        This is my output and it starts out much closer then your first attempt. I only have two Z motors instead of three hence only two probe points. As @Phaedrux said I also use the default S value and it works fine.

                        Leadscrew adjustments made: 0.005 0.005, points used 2, (mean, deviation) before (0.005, 0.000) after (-0.000, 0.000)
                        Leadscrew adjustments made: -0.007 0.016, points used 2, (mean, deviation) before (0.004, 0.004) after (0.000, 0.000)
                        Leadscrew adjustments made: -0.012 0.026, points used 2, (mean, deviation) before (0.006, 0.006) after (-0.000, 0.000)
                        Leadscrew adjustments made: -0.014 0.047, points used 2, (mean, deviation) before (0.015, 0.010) after (0.000, 0.000)
                        Leadscrew adjustments made: -0.080 0.095, points used 2, (mean, deviation) before (0.004, 0.029) after (-0.000, 0.000)
                        Leadscrew adjustments made: -0.098 0.245, points used 2, (mean, deviation) before (0.066, 0.056) after (0.000, 0.000)
                        
                        1 Reply Last reply Reply Quote 0
                        • Frederikundefined
                          Frederik @Phaedrux
                          last edited by Frederik

                          @Phaedrux I was reading on the antclabs web page that the v3. 1 is measuring within 0.005 mm and the results im getting are different every time I generate a Heightmap

                          Here are the pictures of my head and in green the position of my spindles and white the position of mgn15 rails to eliminate any z wobble

                          IMG_20201222_214450.jpg IMG_20201222_214522.jpg IMG_20201222_214657.jpg IMG_20201222_214857.jpg IMG_20201222_214936.jpg

                          Frederikundefined 1 Reply Last reply Reply Quote 0
                          • Frederikundefined
                            Frederik @Frederik
                            last edited by

                            IMG_20201222_214358.jpg

                            1 Reply Last reply Reply Quote 0
                            • 3dMLundefined
                              3dML
                              last edited by 3dML

                              @Frederik The different Heightmaps is because your Leadscrew deviation is not 0 before you generate the Heightmap.

                              Frederikundefined 1 Reply Last reply Reply Quote 0
                              • Frederikundefined
                                Frederik @Phaedrux
                                last edited by

                                @Phaedrux one moment. I probing single spots and checking the values before and after the z probe code change

                                1 Reply Last reply Reply Quote 0
                                • Frederikundefined
                                  Frederik @3dML
                                  last edited by

                                  @3dML I delete the Heightmap and compensation bevor generating a new mesh.

                                  Is that wrong?

                                  And after startup only a g32 - 3 point level +loading of Heightmap.csv (bed.g)

                                  1 Reply Last reply Reply Quote 0
                                  • Frederikundefined
                                    Frederik @3dML
                                    last edited by

                                    @3dML the showed Heightmap was generated at room temperature. To have a baseline when starting test at different standard bed temperatures. Like 60, 90, 100 etc

                                    How Lo g would you give the bed before starting the measurements, so that the temp is as evenly as possible

                                    1 Reply Last reply Reply Quote 0
                                    • 3dMLundefined
                                      3dML
                                      last edited by 3dML

                                      If you run the 3point calibration multiple time it should return a smaller deviation each time hence the reason I use a while loop and an if statement to check the deviation value. It will continue to run until it passes the tolerance set by the if statement.

                                      You could put this code in a macro and run it multiple time to see how small you can get the deviation.

                                      G30 P0 X40 Y80 Z-99999          ; Probe near the front left lead-screw
                                      G30 P1 X215 Y395 Z-99999        ; Probe near the rear lead screw
                                      G30 P2 X415 Y80 Z-99999 S3      ; Probe near the front right lead-screw
                                      
                                      1 Reply Last reply Reply Quote 1
                                      • Frederikundefined
                                        Frederik
                                        last edited by

                                        @Phaedrux

                                        Changed bltouch config to H3 F60 T6000 A10 B1 R0.5

                                        IMG_20201222_223234.jpg

                                        1 Reply Last reply Reply Quote 0
                                        • 3dMLundefined
                                          3dML
                                          last edited by

                                          @Frederik said in RRF3.2Beta4.1 Heightmap vs. Spindle/Driver Mapping:

                                          And after startup only a g32 - 3 point level +loading of Heightmap.csv (bed.g)

                                          generate a Heightmap

                                          If you can do a 3point calibration the a deviation of 0 or as close as you can get it you should not have to generate a new Heightmap every time you do a 3point calibration.

                                          The time to temp all depends on your setup.

                                          I have a 750w heater that covers the entire 300mm bed with a temp sensor to control the heat in a slot cutout of the magnet for the flex sheet so very close to the top of the bed. I also have a temp sensor on the heater pad itself so once they both stabilize its good to go. If you are only measuring temp at the heater pad it will take a while for the top of the bed to reach an even temp unless the bed is very thin.

                                          @Frederik said in RRF3.2Beta4.1 Heightmap vs. Spindle/Driver Mapping:

                                          @Phaedrux

                                          Changed bltouch config to H3 F60 T6000 A10 B1 R0.5

                                          IMG_20201222_223234.jpg

                                          What was the max Z speed for this test? The last 4 readings look good. Too high of a Z speed can cause the shift between the second and third reading.

                                          Frederikundefined 1 Reply Last reply Reply Quote 0
                                          • Frederikundefined
                                            Frederik @3dML
                                            last edited by

                                            @3dML Z Probing speed F60 normal in the RRF config tool was F120

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