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

    Help Sorting Out Minimum Z on a Delta Printer

    Scheduled Pinned Locked Moved
    General Discussion
    4
    15
    572
    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.
    • daveman1010220undefined
      daveman1010220
      last edited by

      I'm having issues after upgrading my firmware, getting sane values for minimum Z. If I set minimum Z using M208 to say, 1.2mm (M208 Z1.2 S1), it solves the problem of the head being too close to properly extrude. However, I end up having problems with the slicer (Cura), with layers getting mashed together and making a mess, when Cura tries to create something like a brim with a height of .2. If I take out the M208, the printer will actually try printing at Z = .2, which causes a different problem. I've never had this problem before and am not sure how to fix it, either in firmware/gcode or in Cura settings somehow. Printer is a Rostock Max v4 with Duet 2 Wifi, running RRF 3.3. My apologies if I'm just being a noob. ๐Ÿถ

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

        Can you post your config.g, homeall.g, homez.g, and bed.g if it exists?โ€จCan you post a sliced gcode file or at least the first 50 or so lines of it?โ€จCan you send M122 and M98 P"config.g" in the Gcode console in DWC and post the results?
        That should give us a much better idea of what is happening in your setup.

        Your M208 Z minimum should be 0 or very slightly negative to allow more baby stepping range, but if you're having to set it to something positive to print there is a serious problem somewhere. It sounds like you might not be using your probe to set the Z0 position correctly before the print, or not doing an autocalibration and your homed height is not quite right.

        When in doubt, go through these again

        https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareDeltaPrinter
        https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer

        Z-Bot CoreXY Build | Thingiverse Profile

        daveman1010220undefined 1 Reply Last reply Reply Quote 0
        • daveman1010220undefined
          daveman1010220 @Phaedrux
          last edited by

          @phaedrux I'm not sure it's the best solution, but I did find a solution: M290, in the preamble for every print. Seems to have solved all of the issues I was seeing. I can still post the files, if there is still interest. Thanks. ๐Ÿ™‚

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

            I don't think that's the right solution. ๐Ÿ˜‰

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • jay_s_ukundefined
              jay_s_uk @daveman1010220
              last edited by

              @daveman1010220 can you post your config?

              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

              daveman1010220undefined 1 Reply Last reply Reply Quote 0
              • daveman1010220undefined
                daveman1010220 @jay_s_uk
                last edited by

                @jay_s_uk have a look:

                config.g:

                ; Configuration file for Duet WiFi (firmware version 3)
                ; executed by the firmware on start-up
                ;
                ; generated by RepRapFirmware Configuration Tool v3.3.0 on Sun Aug 08 2021 15:27:21 GMT-0400 (Eastern Daylight Time)
                
                ; General preferences
                ; M555 P2												   ; emulate marlin firmware
                M575 P1 S1 B57600                                      ; enable support for PanelDue
                
                M550 P"RMAXV4"                                         ; set printer name
                M111 S0                                				   ; debug off
                
                ; Network
                M552 S1                                                ; enable network
                M586 P0 S1                                             ; enable HTTP
                M586 P1 S0                                             ; disable FTP
                M586 P2 S0                                             ; disable Telnet
                
                G21                                                    ; work in millimeters
                G90                                                    ; send absolute coordinates...
                M83                                                    ; ...but relative extruder moves
                
                ; 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
                M584 X0 Y1 Z2 E3                                       ; set drive mapping
                
                ; Axis Limits
                ; M208 Z1.1 S1                                             ; set minimum Z - Trying something...
                
                ; Endstops
                M574 X2 S1 P"xstop"									   ; configure active-high endstop for high end on X via pin xstop
                M574 Y2 S1 P"ystop"									   ; configure active-high endstop for high end on Y via pin ystop
                M574 Z2 S1 P"zstop"									   ; configure active-high endstop for high end on Z via pin zstop
                
                M665 L340.500:340.500:340.500 R144.000 H350.000 B135.0 X0.000 Y0.000 Z0.000    ;  Standard Injection Molded Arms - adjusted L and H values for new carbon fiber arms
                M666 X0.000 Y0.000 Z0.000 A0.00 B0.00                  ; put your endstop adjustments here, or let auto calibration find them
                
                ; motion control parameters
                M350 X16 Y16 Z16 E16 I1              ; Set 16x micro-stepping w/ Interpolation
                M92 X200 Y200 Z200                      ; Set axis steps/mm
                M92 E182.0                        ; Set extruder steps/mm
                M906 X1300 Y1300 Z1300 E1200 I50   ; Set motor currents (mA) and idle current %
                M201 X1200 Y1200 Z1200 E5000            ; Accelerations (mm/s^2)
                M203 X12000 Y12000 Z12000 E15000        ; Maximum speeds (mm/min)
                M566 X500 Y500 Z500 E2000               ; Maximum instant speed changes mm/minute
                
                M84 S30                                                ; Set idle timeout
                
                ; Z-Probe
                ; M558 P1 C"zprobe.in" H5 F120 T6000                     ; set Z probe type to unmodulated and the dive height + speeds
                M558 P5 C"zprobe.in+zprobe.mod" I0 A5 S0.05 R0.4 H20 F1500
                G31 P100 X0 Y0 Z-0.01                                   ; Probe trigger and offset values Glass Plate Only
                
                M557 R85 S20                                           ; define mesh grid
                
                ; Heaters
                M308 S0 P"bedtemp" Y"thermistor" T100000 B4388 R4700 H30 L0 A"Bed Thermistor"
                M950 H0 C"bedheat" T0                                  ; create bed heater output on bedheat and map it to sensor 0
                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 B4388 R4700 C7.06e-8 H30 L0 A"Hotend Thermistor"
                M950 H1 C"e0heat" T1                                   ; create nozzle heater output on e0heat and map it to sensor 1
                M143 H1 S280                                           ; set temperature limit for heater 1 to 280C
                
                ; Fans
                M950 F0 C"fan0"                                        ; create fan 0 on pin fan0 and set its frequency
                M106 P0 S1 H-1                                         ; set fan 0 value. Thermostatic control is turned off
                
                M950 F1 C"fan1"                                        ; I think this fan might actually be set to "always on" as a pin.
                M106 P1 S0.5 H-1
                
                M950 F2 C"fan2"                                        ; create fan 1 on pin fan2 and set its frequency
                M106 P2 T50 S0.7 H1                                    ; set fan 1 value. Thermostatic control is turned on
                
                ; Tools
                M563 P0 S"HE-300" D0 H1 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 are not defined
                
                ; Miscellaneous
                M557 R135 S30                           			   ; default bed mapping
                M501                                                   ; load saved parameters from non-volatile memory
                T0                                                     ; select first tool
                M375												   ; load height map
                

                homedelta.g:

                M203 Z15000
                G91                         ; use relative positioning
                G1 H1 X750 Y750 Z750 F5000  ; move all carriages up, stopping at the endstops
                G1 H2 X-5 Y-5 Z-5 F500     ; move all towers down 5mm
                G1 H1 X8 Y8 Z8 F500        ; move towers slowly up 8mm, stopping at the endstops
                G1 H2 X-5 Y-5 Z-5 F500     ; move carriages down 5mm
                G90                         ; back to absolute positioning
                

                bed.g:

                M561 ; clear any bed transform
                G28  ; home all towers
                ; Probe the bed at 3 peripheral and 3 halfway points, and perform 6-factor auto compensation
                ; Before running this, you should have set up your Z-probe trigger height to suit your build, in the G31 command in config.g.
                G30 P0 X0 Y84.9 H0 Z-99999
                G30 P1 X73.53 Y-42.45 H0 Z-99999
                G30 P2 X-73.53 Y-42.45 H0 Z-99999
                G30 P3 X0 Y42.4 H0 Z-99999
                G30 P4 X36.72 Y-21.2 H0 Z-99999
                G30 P5 X-36.72 Y-21.2 H0 Z-99999
                G30 P6 X0 Y0 H0 Z-99999 S6
                

                A sample of my generated print:

                ;FLAVOR:Marlin
                ;TIME:19847
                ;Filament used: 1.02411m
                ;Layer height: 0.15
                ;MINX:-20.134
                ;MINY:-26.388
                ;MINZ:0.2
                ;MAXX:20.097
                ;MAXY:28.034
                ;MAXZ:16.05
                ;Generated with Cura_SteamEngine 4.10.0
                M140 S60
                M105
                M190 S60
                M104 S190
                M105
                M109 S190
                M82 ;absolute extrusion mode
                G28
                G1 Z15.0 F6000
                G92 E0
                G1 F200 E3
                G92 E0
                M290 R1 S.9
                G92 E0
                G92 E0
                G1 F2700 E-3.2
                ;LAYER_COUNT:100
                ;LAYER:0
                M107
                G1 F600 Z1.2
                G0 F3600 X-3.676 Y-6.757 Z1.2
                ;TYPE:SKIRT
                G1 F600 Z0.2
                G1 F2700 E0
                G1 F600 X-4.4 Y-6.421 E0.00332
                G1 X-5.154 Y-6.159 E0.00664
                G1 X-5.931 Y-5.973 E0.00996
                G1 X-6.722 Y-5.866 E0.01328
                G1 X-7.393 Y-5.838 E0.01607
                G1 X-11.863 Y-5.838 E0.03465
                G1 X-12.66 Y-5.878 E0.03797
                G1 X-13.45 Y-5.997 E0.04129
                G1 X-14.224 Y-6.195 E0.04461
                G1 X-14.974 Y-6.47 E0.04794
                G1 X-15.692 Y-6.817 E0.05125
                G1 X-16.373 Y-7.235 E0.05457
                G1 X-17.008 Y-7.719 E0.05789
                G1 X-17.517 Y-8.189 E0.06077
                G1 X-18.053 Y-8.781 E0.06409
                

                I'm running a print right now and can post the M122 and M98 when it's done. Thanks! ๐Ÿ™‚

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

                  @daveman1010220 said in Help Sorting Out Minimum Z on a Delta Printer:

                  ; Axis Limits ; M208 Z1.1 S1 ; set minimum Z - Trying something...

                  It's commented out, is that intentional? Having the minimum Z position reachable be 1.1 doesn't make a lot of sense. Make it 0 or -0.5.

                  @daveman1010220 said in Help Sorting Out Minimum Z on a Delta Printer:

                  M375 ; load height map

                  Don't load the heightmap in config.g. You don't want to apply any correction until you've established the Z0 position with a G30 otherwise you can get weird unexplained offsets. Sound familiar?

                  When are you calling G32 to run bed.g? In your slicer start gcode you have it home all towers and start the print. This will reset your Z0 position to whatever the homed height is set to. I suggest you run G32 before each print instead of just G28.

                  If you want to apply a mesh compensation to the bed surface you'll need to recreate the mesh after doing a G32 and then either probe the mesh each time before the print, or load the previously saved mesh with G29 S1.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  daveman1010220undefined 1 Reply Last reply Reply Quote 1
                  • daveman1010220undefined
                    daveman1010220 @Phaedrux
                    last edited by

                    @phaedrux The M208 is commented out because I couldn't get the right behavior with it. I tried making it negative as well, which just showed the problems with the print gcode, trying to print at Z=.2, which doesn't really work. Didn't know that about the height map, it was in the original code that came with the printer. I'll take it out. In general, I'm not in any hurry when I print, so I usually do run calibrations before every major print, if only by running macros. Putting it directly into the slicer is a great idea. Incidentally, here is the macro I usually run to create a mesh of the bed:

                    G28
                    M117 Bed Mapping RostockMAX v4
                    M558 P5 I0 A1 S0.05 R0.4 H20 F2500 
                    M104 S0
                    M140 S0
                    M106 P0 S0
                    G29
                    M500
                    G4 S1
                    M106 P2 T50 S0.5 H1
                    G28
                    M117 NOTE Any Auto-Probe (G32) done after bed mapping will disable previous bed mapping!
                    

                    Thanks!

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

                      That macro is ok, but it's still homing the towers and then going right into creating the mesh. You should be doing a G32 calibration before hand.

                      Every time it homes the towers, the true Z position is lost and you're just going to be using the homed height which isn't always accurate. Doing an autocalibration and doing a G30 at the center of the bed is the best (only) way to be certain the firmware knows where the bed surface truly is.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      1 Reply Last reply Reply Quote 1
                      • jay_s_ukundefined
                        jay_s_uk @daveman1010220
                        last edited by

                        @daveman1010220 said in Help Sorting Out Minimum Z on a Delta Printer:

                        RostockMAX v4

                        nothing untoward with your config that I can see.
                        your slicer needs changing from marlin flavour to reprap though.

                        I would suggest starting from here https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer#Section_Running_auto_calibration_for_the_first_time in the delta calibration page.
                        That should help you establish Z0 correctly.

                        Could you also post your config-override?

                        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                        daveman1010220undefined 1 Reply Last reply Reply Quote 2
                        • daveman1010220undefined
                          daveman1010220 @jay_s_uk
                          last edited by

                          @jay_s_uk Yeah, I need to change something. Getting weird effects with my prints that I've never had in the past. The calibrations continue.

                          Here is config-override.g:

                          M665 L340.500:340.500:340.500 R142.241 H346.794 B135.0 X0.301 Y0.430 Z0.000
                          M666 X0.128 Y-0.020 Z-0.107 A0.00 B0.00
                          ; Heater model parameters
                          M307 H0 R0.129 C700.000:700.000 D10.00 S1.00 V0.0 B1 I0
                          M307 H1 R2.429 C140.000:140.000 D5.50 S1.00 V0.0 B0 I0
                          ; 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
                          • Phaedruxundefined
                            Phaedrux Moderator
                            last edited by

                            After doing an auto calibration are you saving the results with M500?

                            Z-Bot CoreXY Build | Thingiverse Profile

                            daveman1010220undefined 1 Reply Last reply Reply Quote 0
                            • daveman1010220undefined
                              daveman1010220 @Phaedrux
                              last edited by

                              @phaedrux I actually went through the delta calibration guide and copied the M665 and M666 params directly. Is M500 something that should be run after an auto calibration?

                              jay_s_ukundefined dc42undefined 2 Replies Last reply Reply Quote 0
                              • jay_s_ukundefined
                                jay_s_uk @daveman1010220
                                last edited by

                                @daveman1010220 yes

                                Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                                1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators @daveman1010220
                                  last edited by dc42

                                  @daveman1010220 what type of Z probe are you using? You have the trigger height set to -0.01 which seems to me to be an unusual value. If it's a nozzle contact probe, then the trigger height is almost certainly more negative than that.

                                  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

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