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

    SmartEffector calibration issues on AKLP

    Scheduled Pinned Locked Moved
    Smart effector for delta printers
    3
    9
    415
    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.
    • technokamiundefined
      technokami
      last edited by

      Hey All,

      I have a heavily modified Anycubic Kossel that I have upgraded with an SKR2, E3D v6, Haydn magballs/arms, and a SmartEffector v3. I am running RepRapFirmware for STM32F4 based Boards 3.4.5+_107 (2023-05-24), with DWS version 2.1beta4. While I completed the upgrade a while ago, I have not had much luck getting the system calibrated, causing first layers to fail or at least come out poorly.

      I notice when testing probe repeatability, I get the following results:

      G32 bed probe heights: -0.405 -0.443 -0.455 -0.455 -0.430 -0.455 -0.455 -0.468 -0.468 -0.443, mean -0.448, deviation from mean 0.018

      Any suggestions for correcting the probe height reading?

      My config.g:

      ; Configuration file for BTT SKR 2 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+5 on Sun Feb 05 2023 12:03:53 GMT-0500 (Eastern Standard Time)
      
      ; General preferences
      G90                                                    ; send absolute coordinates...
      M83                                                    ; ...but relative extruder moves
      M550 P"Kossel"                                         ; set printer name
      M665 R120 L288.12 B115 H217                            ; Set delta radius, diagonal rod length, printable radius and homed height
      M666 X0 Y0 Z0                                          ; put your endstop adjustments here, or let auto calibration find them
      
      ; Network
      M551 P"Ddr2@667mhz"                                    ; set password
      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 using default driver timings
      M569 P1 S1                                             ; physical drive 1 goes forwards using default driver timings
      M569 P2 S1                                             ; physical drive 2 goes forwards using default driver timings
      M569 P3 S0                                             ; physical drive 3 goes backwards using default driver timings
      M584 X0 Y1 Z2 E3                                       ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                                ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z80.00 E425.68                       ; set steps per mm
      M566 X1200.00 Y1200.00 Z1200.00 E1200.00               ; set maximum instantaneous speed changes (mm/min)
      M203 X18000.00 Y18000.00 Z18000.00 E1200.00            ; set maximum speeds (mm/min)
      M201 X3000.00 Y3000.00 Z3000.00 E3000.00               ; set accelerations (mm/s^2)
      M906 X1200 Y1200 Z1200 E1340 I30                       ; set motor currents (mA) and motor idle factor in per cent - Originally was set to 1000 for all motors
      M84 S30                                                ; Set idle timeout
      
      ; Axis Limits
      M208 Z-0.3 S1                                          ; set minimum Z. Original Z0 
      
      ; Endstops
      M574 X2 S1 P"xstop"                                    ; configure switch-type (e.g. microswitch) endstop for high end on X via pin xstop
      M574 Y2 S1 P"ystop"                                    ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ystop
      M574 Z2 S1 P"zstop"                                    ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin zstop
      
      ; Z-Probe
      M558 P8 R0.4 C"probe+servo0" H5 F1200 T6000            ; set Z probe type to effector and the dive height + speeds
      G31 P100 X0 Y0 Z-0.1                                 ; set Z probe trigger value, offset and trigger height (trigger height is -0.1 due to Duet Smart Effector)
      M557 R110 S15                                          ; define mesh grid
      
      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B4092         ; configure sensor 0 as thermistor on pin bedtemp
      M950 H0 C"bed" T0                                      ; create bed heater output on bed 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 S120                                           ; set temperature limit for heater 0 to 120C
      M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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
      M143 H1 S285                                           ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M950 F0 C"fan0" Q500                                   ; create fan 0 on pin fan0 and set its frequency
      M106 P0 C"Stepper Driver Fan" H0:10:11 T15:100         ; set fan 0 name and value. Thermostatic control is turned on
      M950 F1 C"fan1" Q500                                   ; create fan 1 on pin fan1 and set its frequency
      M106 P1 C"Hotend Fan" S1 H1 T65                        ; set fan 1 name and value. Thermostatic control is turned on
      M950 F2 C"fan2" Q500                                   ; create fan 2 on pin fan2 and set its frequency
      M106 P2 C"Part-cooling Fan" S0 H-1                     ; set fan 2 name and value. Thermostatic control is turned off
      
      ; Tools
      M563 P0 S"E3D v6" D0 H1 F2                             ; 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
      
      ; Sensors
      M308 S10 Y"mcu-temp" A"MCU"                            ; defines sensor 10 as MCU temperature sensor
      M308 S11 Y"drivers" A"Stepper Drivers"                 ; defines sensor 11 as stepper driver temperature sensor
      
      M501
      
      dc42undefined 1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @technokami
        last edited by

        @technokami the deviation isn't bad (0.018mm) but the combination of your M665 H parameter and G31 probe trigger height is out by about 0.43mm.

        If it's the M665 H parameter that is out then if you home between running G32 and printing (e.g. because your slicer inserts a G28 command near the start of the file), that will mess up the initial height. Best practice is to run G32 before printing (which you can do manually, or in the start.g file, or in your slicer start GCode) but not re-home between that G32 and starting the print.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        technokamiundefined 1 Reply Last reply Reply Quote 0
        • technokamiundefined
          technokami @dc42
          last edited by

          @dc42 I just checked the output of M665 and it shows the homed height as 216.653.

          I also confirmed that G32 is run as part of my start G-code, and G28 is not being run before printing. I have also tried with UBL on and off, with no noticeable difference in printing outcome

          It's really odd because the output from G32 seems to indicate that it has things pretty dialed in, but then fails miserably to print.

          apakundefined 1 Reply Last reply Reply Quote 0
          • apakundefined
            apak @technokami
            last edited by

            @technokami you could try to insert part of my start up script, just the part that probes the bed after preheating with the G30, to set Z=0

            G28                                    ; home
            M104 S150                              ; Precaliento nozzle
            M140 S[first_layer_bed_temperature]    ; Caliento la cama
            M190 S[first_layer_bed_temperature]    ; wait for bed temp
            M109 S150                              ; wait for extruder temp
            G1 Z10 F6000                           ; Bajo rapido para hacer el probe
            G30                                    ;Establezco altura Z para evitar error Z-datum y que cargue correctamente el offset del prob
            M98 P"0:/sys/00-Functions/print_area_mesh.g" A{first_layer_print_min[0]} B{first_layer_print_max[0]} C{first_layer_print_min[1]} D{first_layer_print_max[1]}
            M376 H5                               ; turn on fade feature so it fades after 5mm height
            G1 X0 Y-190 Z80 F6000                  ; Me pongo en posicion para limpiar el filamento
            M104 S[first_layer_temperature]        ; set extruder temp
            M109 S[first_layer_temperature]        ; wait for extruder temp
            G92 E0                                 ;zero the extruded length 
            ;G1 F200 E30                            ; Saca un poco de filamento
            ;G92 E0                                 ;zero the extruded length again
            ;M291 S3 R"Remove Filament from nozzle" P"Then press OK"
            ;G4 S4                                  ; Pausa de 8 segundos (por si no quiero el menu anterior)
            M400
            M98 P"0:/sys/primeLine.g"                     ; Fichero de purga por el borde
            G92 E0.0
            
            technokamiundefined 1 Reply Last reply Reply Quote 0
            • technokamiundefined
              technokami @apak
              last edited by

              @apak Do you mean this part?

              G1 Z10 F6000                           ; Bajo rapido para hacer el probe
              G30                                    ;Establezco altura Z para evitar error Z-datum y que cargue correctamente el offset del prob
              M98 P"0:/sys/00-Functions/print_area_mesh.g" A{first_layer_print_min[0]} B{first_layer_print_max[0]} C{first_layer_print_min[1]} D{first_layer_print_max[1]}
              M376 H5                               ; turn on fade feature so it fades after 5mm height
              
              technokamiundefined apakundefined 2 Replies Last reply Reply Quote 0
              • technokamiundefined
                technokami @technokami
                last edited by technokami

                I spent most of yesterday testing probe points. I put together a macro that probes the centre of the bed first and then goes to all the bed.g points and probes to find the trigger height in that spot. Adding the height corrections to bed.g seems to have had no effect, it's almost like the printer is ignoring the corrections.

                Running G32 shows "Calibrated 6 factors using 9 points, (mean, deviation) before (0.055, 0.027) after (-0.000, 0.004)", which as far as I understand is pretty good right?

                In case it helps. Here is the bed.g file and the config-override.g

                bed.g

                ; bed.g file for RepRapFirmware, generated by Escher3D calculator
                ; 10 points, 6 factors, probing radius: 115, probe offset (0, 0)
                
                M561 ; Clear bed transform
                G28 ; Home the effector
                
                G30 P0 X0.00 Y115.00 Z-99999 H-0.0400029
                G30 P1 X99.59 Y57.50 Z-99999 H-0.0029763
                G30 P2 X99.59 Y-57.50 Z-99999 H-0.0388076
                G30 P3 X0.00 Y115.00 Z-99999 H-0.0384381
                G30 P4 X-99.59 Y-57.50 Z-99999 H-0.2030215
                G30 P5 X-99.59 Y57.50 Z-99999 H0.0401963
                G30 P6 X0.00 Y57.50 Z-99999 H0.0718113
                G30 P7 X49.80 Y-28.75 Z-99999 H-0.0086697
                G30 P8 X-49.80 Y-28.75 Z-99999 H-0.0451099 S6
                
                ;G30 P0 X0.00 Y115.00 Z-99999 H0
                ;G30 P1 X99.59 Y57.50 Z-99999 H0
                ;G30 P2 X99.59 Y-57.50 Z-99999 H0
                ;G30 P3 X0.00 Y-115.00 Z-99999 H0
                ;G30 P4 X-99.59 Y-57.50 Z-99999 H0
                ;G30 P5 X-99.59 Y57.50 Z-99999 H0
                ;G30 P6 X0.00 Y57.50 Z-99999 H0
                ;G30 P7 X49.80 Y-28.75 Z-99999 H0
                ;G30 P8 X-49.80 Y-28.75 Z-99999 H0
                ;G30 P9 X0 Y0 Z-99999 S6
                
                G1 X0 Y0 Z150 F15000 ; Move the effector 150mm above the bed
                
                M500 ; Save settings
                

                config-override.g

                ; config-override.g file generated in response to M500 at 2023-08-13 01:10
                ; This is a system-generated file - do not edit
                ; Delta parameters
                M665 L288.120:288.120:288.120 R139.781 H217.344 B115.0 X0.902 Y0.545 Z0.000
                M666 X-0.627 Y0.542 Z0.085 A0.00 B0.00
                ; Heater model parameters
                M307 H0 R0.258 K0.330:0.000 D5.15 E1.35 S1.00 B0
                M307 H1 R2.229 K0.412:0.000 D4.53 E1.35 S1.00 B0 V12.0
                ; Workplace coordinates
                G10 L2 P1 X0.00 Y0.00 Z0.00
                G10 L2 P2 X0.00 Y0.00 Z0.00
                G10 L2 P3 X0.00 Y0.00 Z0.00
                G10 L2 P4 X0.00 Y0.00 Z0.00
                G10 L2 P5 X0.00 Y0.00 Z0.00
                G10 L2 P6 X0.00 Y0.00 Z0.00
                G10 L2 P7 X0.00 Y0.00 Z0.00
                G10 L2 P8 X0.00 Y0.00 Z0.00
                G10 L2 P9 X0.00 Y0.00 Z0.00
                
                
                1 Reply Last reply Reply Quote 0
                • apakundefined
                  apak @technokami
                  last edited by

                  @technokami yes the g30

                  technokamiundefined 1 Reply Last reply Reply Quote 0
                  • technokamiundefined
                    technokami @apak
                    last edited by

                    @apak Tried the G30, no change. The printer still comes too close to the bed when printing.

                    Currently, I am waiting for a new set of feeler gauges and I will do some testing manually. Maybe the probe needs it's sensitivity increased.

                    apakundefined 1 Reply Last reply Reply Quote 0
                    • apakundefined
                      apak @technokami
                      last edited by

                      @technokami I would delete the z offset saved on config_override.
                      the run again the z offset calibration procedure....

                      make sure you do it after a g32 or g30 without rehome, so z=0 is set by probe and not by Height since you home on z max

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