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

    Hang printer - Print stops with mesh leveling

    Scheduled Pinned Locked Moved
    Using Duet Controllers
    7
    115
    7.3k
    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.
    • Shinomoriundefined
      Shinomori @Phaedrux
      last edited by

      @phaedrux Thanks for feedback. Sorry for being a pain with this. I've run into the limit of my knowledge.

      Interesting test Tobben suggested on discord. I set the home position around z150 and sent a g1 z-100 command in absolute mode. It allowed it. The lines didn't maintain tension which is not too surprising asking for something so far out of norm. But there was no error. Hopefully that helps with diagnosis.

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

        @shinomori said in Hang printer - Print stops with mesh leveling:

        I've run into the limit of my knowledge.

        Mine too.

        @shinomori said in Hang printer - Print stops with mesh leveling:

        Interesting test Tobben suggested on discord.

        Does anyone else on the discord server have a hand printer on Duet 3 running 3.3 that can confirm whether G29 works for them or not?

        Z-Bot CoreXY Build | Thingiverse Profile

        Shinomoriundefined 2 Replies Last reply Reply Quote 0
        • Shinomoriundefined
          Shinomori @Phaedrux
          last edited by

          @phaedrux I copied the basic delta config for motors and set home and tried G29 and it worked unless the M557 was too big then it threw the same errors. Converted back to HP config. Tried G1 movement commands in absolute mode well past the M557 limits and it was allowed and the printer moved to those locations. The G29 still threw errors for all points.

          1 Reply Last reply Reply Quote 1
          • Shinomoriundefined
            Shinomori @Phaedrux
            last edited by

            @phaedrux I haven't seen another duet3 HP other than the V4 Tobben is working on but I asked to see if someone responds. Looking forward to what DC42 thinks. Hopefully the book above gives the clues needed. hehe Thanks for your help.

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

              @shinomori I've looked at the code and the limits that apply are those set by M208. So make sure that your limits are sufficient, for example M208 X-300:300 Y-300:300.

              I also notice that in your config.g file you do not hide the U axis. This may be because you need to move U (aka D in Hangprinter terminology) manually sometimes. However, it means that RRF will check that D is within limits too. So I suggest you hide the U axis using M584 P3 when you don't need to move it manually, in particular when running G29.

              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

              Shinomoriundefined 1 Reply Last reply Reply Quote 1
              • Shinomoriundefined
                Shinomori @dc42
                last edited by

                @dc42 The only time I use the U is with a g1 s2 command for individual axis move to tighten the lines for initial setup. Does that still work with the axis hidden? If so I can hide it all the time.

                That makes sense that it is out of limit. I've tried it with XYZ but not U.
                I'll get over to the printer to test in the next couple days.

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

                  If you need U available most of the time, you could setup a mesh.g file that would be called when you send G29. Inside that macro you could hide U, do whatever preparation you need and then call G29 S0 to probe the bed and when it's done, unhide the U axis if needed.

                  Z-Bot CoreXY Build | Thingiverse Profile

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

                    @shinomori said in Hang printer - Print stops with mesh leveling:

                    @dc42 The only time I use the U is with a g1 s2 command for individual axis move to tighten the lines for initial setup. Does that still work with the axis hidden?

                    No. You would need to un-hide the U axis (M584 P4) before using that function, and hide it again (M584 P3) afterwards.

                    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

                    Shinomoriundefined 1 Reply Last reply Reply Quote 0
                    • Shinomoriundefined
                      Shinomori @dc42
                      last edited by

                      @dc42

                      Ok did some testing.

                      With M584 p3 in the sys file I followed this procedure.

                      Start machine.
                      G92 X0 Y0 Z0 E0
                      G90
                      G30 ; Ui appears No motion at all even hitting buttons hitting ok the tool position says Z 6.0 but the tool head did not move
                      G29
                      g29
                      Warning: Skipping grid point X=-100.0, Y=-100.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=0.0, Y=-100.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=100.0, Y=-100.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=100.0, Y=0.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=0.0, Y=0.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=-100.0, Y=0.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=-100.0, Y=100.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=0.0, Y=100.0 because Z probe cannot reach it
                      Warning: Skipping grid point X=100.0, Y=100.0 because Z probe cannot reach it
                      Error: Too few points probed

                      If I try to move the machine with g1 commands in the Z the behavior is very chaotic. Small movements the printer does not move but the toolhead position that is reported in the ui is what was asked for and then on some commands it randomly moves, but not to location asked for. Small downward motions are ignored and then suddenly it crashes into the bed.

                      If I run M584 P4. G1 commands result in expected motion. G30 ui buttons work and it move up to z6.0 after hitting ok. G29 still throws the error.

                      Config.g:
                      ; General preferences
                      G91 ; send relative coordinates...
                      M83 ; ...but relative extruder moves
                      M550 P"Hangprinter" ; set printer name

                      ; Network wired direct
                      M552 P192.168.2.1 S1 ; enable network and acquire dynamic address via DHCP
                      M553 P255.255.255.0
                      M586 P0 S1 ; enable HTTP
                      M586 P1 S0 ; disable FTP
                      M586 P2 S0 ; disable Telnet

                      ; Drives
                      M569 P0.0 S0 ; 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 S1 ; physical drive 0.3 goes forwards
                      M569 P0.4 S0 ; physical drive 0.4 goes forwards
                      M584 X0.0 Y0.1 Z0.2 E0.3 U0.4 ; set drive mapping
                      M669 K6 A0.0:-2265.0:0.0 B1725.0:1100.0:0.0 C-1740.0:1120.0:0.0 D0.0:0.0:2666.0 P1500.0
                      M350 X16 Y16 Z16 E16 U16 I1 ; configure microstepping with interpolation
                      M92 X92.90 Y92.90 Z92.90 E396.00 U93.00 ; set steps per mm
                      M566 X900.00 Y900.00 Z900.00 E120.00 U900.00 ; set maximum instantaneous speed changes (mm/min)
                      M203 X6000.00 Y6000.00 Z6000.00 E1200.00 U6000.00 ; set maximum speeds (mm/min)
                      M201 X500.00 Y500.00 Z500.00 E250.00 U500.00 ; set accelerations (mm/s^2)
                      M906 X1000 Y1000 Z1000 E800 U1000 I60 ; set motor currents (mA) and motor idle factor in per cent
                      M84 S30 ; Set idle timeout

                      ; Axis Limits
                      M208 X-1000:1000 Y-1000:1000 Z-5:1500 ; set axis limits
                      M584 P3 ;Hide U axis
                      ;M208 Z1500 S0 ; set axis maxima

                      ; Endstops
                      ; WARNING: No endstops configured

                      ; Z-Probe
                      M558 P0 H6 F120 T6000; disable Z probe but set dive height, probe speed and travel speed
                      G31 P500 X0 Y0 Z0
                      ;M557 R100 S50
                      M557 X-100:100 Y-100:100 S100 ; define mesh grid

                      ; Heaters
                      M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1
                      M950 H0 C"out1" T0 ; create nozzle heater output on out1 and map it to sensor 0
                      M143 H0 S270 ; set temperature limit for heater 0 to 270C
                      M307 H0 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
                      M140 H-1

                      ; Fans
                      M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
                      M106 P0 S0 H0 ; set fan 0 value. Thermostatic control is turned off
                      M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
                      M106 P1 S0 H0 ; set fan 1 value. Thermostatic control is turned off

                      ; Tools
                      M563 P0 S"Extruder" D0.3 H0 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
                      M564 S0 H0 ;allow move without homing
                      ; Miscellaneous
                      M501 ; load saved parameters from non-volatile memory
                      T0 ; select first tool

                      1 Reply Last reply Reply Quote 0
                      • Shinomoriundefined
                        Shinomori
                        last edited by

                        Changed these lines:
                        M208 X-1000:1000 Y-1000:1000 Z-5:1500 U-1000:2000; set axis limits
                        ;M584 P3 ;Hide U axis

                        Start machine.
                        G92 X0 Y0 Z0 E0 or G92 X0Y0Z0E0U0
                        G90
                        G30 ; Ui appears moves with buttons ok print head moves up to 6.0
                        G29
                        g29
                        Warning: Skipping grid point X=-100.0, Y=-100.0 because Z probe cannot reach it

                        ...etc.

                        Running
                        M584 P3 right before the g29 still gives the error and no motion.

                        1 Reply Last reply Reply Quote 0
                        • Shinomoriundefined
                          Shinomori
                          last edited by

                          @shinomori
                          Did a new flash of the the duetpi. Copied over my sys files and macros.

                          Tried expanding the m208 range
                          M208 X-10000:10000 Y-10000:10000 Z-10000:10000 U-10000:10000;
                          g92 x0y0z0e0u0
                          g90
                          g30(probes with no error)
                          g29 -same can't reach points error

                          Also tried:
                          M208 X-10000:10000 Y-10000:10000 Z-10000:10000 U-10000:10000 A-10000:10000 B-10000:10000 C-10000:10000 D-10000:10000

                          With the same result.

                          Tried:
                          g92 x0y0z0e0u0a0b0c0d0
                          g29 still has same error.

                          m98 shows no errors in the config file for either version.

                          1 Reply Last reply Reply Quote 0
                          • Shinomoriundefined
                            Shinomori
                            last edited by

                            @shinomori Tobben said this on the hangprinter discord:
                            "
                            The failing test is here: https://github.com/Duet3D/RepRapFirmware/blob/3.4-dev/src/GCodes/GCodes4.cpp#L644

                            It looks like Hangprinterkinematics.h/cpp don't implement the function IsReachable()

                            The very old RRF version I had on my previous prototype had that function implemented. But is seems it has fallen though the cracks in my latest RRF work. Making a pull request now"

                            He sent me this fw file. Where it is working and print continues with mesh enabled. Duet3Firmware_MB6HC.bin

                            Thanks for help guys .

                            How would I know when those fixes are in the main branch? I'm not really git fluent yet.

                            Phaedruxundefined dc42undefined 2 Replies Last reply Reply Quote 1
                            • Phaedruxundefined
                              Phaedrux Moderator @Shinomori
                              last edited by

                              @shinomori said in Hang printer - Print stops with mesh leveling:

                              How would I know when those fixes are in the main branch? I'm not really git fluent yet.

                              If the pull request makes it into 3.4 it would be in the release notes. there may also be beta versions with it to test.

                              Z-Bot CoreXY Build | Thingiverse Profile

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

                                @shinomori unfortunately the PR referenced has a lot of other changes for Hangprinter that are very invasive and will need substantial refactoring before I can accept them. However, it may be possible to implement the change that fix this particular issue independently.

                                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

                                Shinomoriundefined 1 Reply Last reply Reply Quote 1
                                • Shinomoriundefined
                                  Shinomori @dc42
                                  last edited by

                                  @dc42 I understand. The current fw that I was sent has the mesh leveling working so I am ok for now. Just want to keep and eye out for whenever the official fw has the fix so i can jump to that one or avoid it if it is missing. Thanks!

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

                                    @shinomori it appears that the "fix" was just a hack to disable the checking of probe point coordinates. So we still don't know why it was failing.

                                    Does the height map file produced by running G29 to probe the bed depend on which RRF you are running (i.e the one that fails, or the one with the "fix" in it)? If so, please attach both height map files.

                                    Also, please post your G31 settings. The config.g file you posted doesn't include a G31 command. Perhaps the G31 command is in the config-override.g file?

                                    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

                                    Shinomoriundefined 1 Reply Last reply Reply Quote 0
                                    • Shinomoriundefined
                                      Shinomori @dc42
                                      last edited by

                                      @dc42
                                      On the current version of RRF Running G29 resulted in nothing but errors. I haven't gotten a mesh since updating from 3.0 to 3.3. The .bin Tobben sent allowed me to get a mesh and run a print using G29 S1 in the gcode. I am not certain any compensation actually happened as it was a small print, but it finished the print and on 3.0 it wouldn't even finish the first line.

                                      G31 was here:
                                      ; Z-Probe
                                      M558 P0 H5 F120 T6000; disable Z probe but set dive height, probe speed and travel speed
                                      G31 P500 X0 Y0 Z0
                                      ;M557 R100 S50
                                      M557 X-100:100 Y-100:100 S100 ; define mesh grid

                                      I would prefer to use the default FW, but this one is working at the moment. Tobben took some time out of his vacation to get me that fix so I really appreciate it and not surprised it was just a hacky fix.

                                      I don't have a comparison from the old heightmap on 3.0 since the plywood we are trying to print on has warped and shifted since capturing the older one.(also I think some of my settings were wrong so it was capturing bad numbers)

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

                                        @shinomori ok, I won't be able to do a proper fix for this issue then. I you try to probe the whole reachable circular area, it is likely to try to probe unreachable points too.

                                        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

                                        Shinomoriundefined 1 Reply Last reply Reply Quote 0
                                        • Shinomoriundefined
                                          Shinomori @dc42
                                          last edited by

                                          @dc42 I tried doing a mock delta config. With everything else the same. The behavior there was if the point was out of the build area it threw this same error, but it probed all within the area. With the hangprinter config. Even the small -100 too 100 probe had all errors. even at 0,0. I even tried telling it the print area was -10000 to 10000 on all axis(including u) and it still didn't like it.

                                          This was the config that was working when I was last at the printer I could try with stock RR3.3 *.bin again with this one. This is based on Tobben's v4 with some changes to match my setup:
                                          ; Communication and general
                                          G21 ; Work in millimetres
                                          G91 ; Send relative coordinates...
                                          M83 ; ...but relative extruder moves
                                          M550 P"duet3" ; set printer name

                                          ; Kinematics
                                          ;G4 S1 ; Wait 1 second because expansion boards might not be ready to receive CAN signal yet.
                                          ;M584 X43.0 Y42.0 Z41.0 U40.0 P4 ; map ABCD-axes to CAN addresses, and set four visible axes. Please excuse that ABCD motors are called XYZU here.
                                          ;M584 E0:1:2:3:4:5 ; Regard all built in stepper drivers as extruder drives
                                          M669 K6 ; "This is a Hangprinter"
                                          M669 P2000.0 ; Printable radius (unused by Hangprinters for now)
                                          M669 S200 ; Segments per second

                                          ; Output of auto calibration script for Hangprinter
                                          M669 A0.0:-2265.0:0.0 B1725.0:1100.0:0.0 C-1740.0:1120.0:0.0 D0.0:0.0:2666.0
                                          M666 Q0.035619 R55:55:55:55
                                          ; Explanation:
                                          ; ; M669 defines the positions of the anchors, expressed as X:Y:Z distances between a line's pivot points, when the machine is homed.
                                          ; ; M666 sets Q=spool buildup, R=spool radii (incl buildup, when homed)

                                          M208 Z1500.00 ; set maximum Z somewhere below to D anchor. See M669 ... D<number>
                                          M208 S1 Z-10.0 ; set minimum Z

                                          ; The following values must also be in the auto calibration script for Hangprinter (if you plan to use it)
                                          M666 U1:1:1:1; Mechanical advantages on ABCD
                                          M666 O1:1:1:1 ; Number of lines per spool
                                          M666 L10:10:10:10 ; Motor gear teeth of ABCD axes
                                          M666 H100💯100:100 ; Spool gear teeth of ABCD axes

                                          ; Uncomment M564 S0 if you don't want G0/G1 moves to be be limited to a software defined volume
                                          M564 S0

                                          ; Drives
                                          M666 J200:200:200:200 ; Full steps per ABCD motor revolution (match with ODrives...)

                                          M569 P0 S0 ; Drive 0 goes forwards
                                          M569 P1 S1 ; Drive 1 goes forwards
                                          M569 P2 S0 ; Drive 2 goes forwards
                                          M569 P3 S1 ; Drive 3 goes forwards
                                          M569 P4 S0 ; Drive 4 goes forwards
                                          ;M569 P5 S1 ; Drive 5 goes forwards
                                          ;M569 P43.0 S1 ; Drive 43.0 (A) goes forwards
                                          ;M569 P42.0 S1 ; Drive 42.0 (B) goes forwards
                                          ;M569 P41.0 S0 ; Drive 41.0 (C) goes backwards
                                          ;M569 P40.0 S0 ; Drive 40.0 (D) goes backwards
                                          M584 X0.0 Y0.1 Z0.2 E0.3 U0.4 ; set drive mapping
                                          ;M350 X16 Y16 Z16 E16 U16 I1 ; configure microstepping with interpolation
                                          M92 X92.5 Y92.5 Z92.5 U91.00 ; set steps per mm

                                          ; Speed
                                          M201 X1000 Y1000 Z1000 E2500 ; Accelerations (mm/s^2)
                                          M203 X6000 Y6000 Z6000 E600 ; Maximum speeds (mm/min)
                                          M566 X900 Y900 Z900 E900 ; Maximum instant speed changes mm/minute

                                          ; Currents
                                          M906 X1000 Y1000 Z1000 E800 U1000 I60 ; set motor currents (mA) and motor idle factor in per cent

                                          ; Endstops
                                          M574 X0 Y0 Z0 ; set endstop configuration (no endstops)

                                          ; Z-Probe
                                          M558 P0 H5 F120 T6000; disable Z probe but set dive height, probe speed and travel speed
                                          G31 P500 X0 Y0 Z0
                                          ;M557 R100 S50
                                          M557 X-100:100 Y-100:100 S100 ; define mesh grid

                                          ; Thermistors and heaters
                                          M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1
                                          M950 H0 C"out1" T0 ; create nozzle heater output on out1 and map it to sensor 0
                                          M307 H0 B0 S1.00 ; disable bang-bang mode for nozzle heater and set PWM limit
                                          ;M307 H0 A1271.9 C432.5 D8.2 V24 ; Set heater parameters (for Super Volcano 80W. You probably want to tune this yourself with M303.)
                                          M143 H0 S280 ; set temp limit for nozzle heater to 280C
                                          M570 S60 ; Hot end may be a little slow to heat up so allow it 180 seconds

                                          ; Fans
                                          M950 F0 C"out7" Q500
                                          M106 P0 S0 H0 ; set fan 0 value. Thermostatic control is turned off
                                          ;M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
                                          ;M106 P1 S0 H0 ; set fan 1 value. Thermostatic control is turned off

                                          ; Find "temp1" and "out4" pins in the wiring diagram:
                                          ; https://duet3d.dozuki.com/Wiki/Duet_3_Mainboard_6HC_Wiring_Diagram

                                          ; Tool definitions
                                          M563 P0 S"Extruder" D0.3 H0 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

                                          ; Miscellaneous
                                          M92 E396 ; Set extruder steps per mm
                                          ;M911 S10 R11 P"M913 X0 Y0 Z0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
                                          M501 ; load saved parameters from non-volatile memory
                                          T0 ; Select tool 0

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

                                            @shinomori said in Hang printer - Print stops with mesh leveling:

                                            M208 Z1500.00 ; set maximum Z somewhere below to D anchor. See M669 ... D<number>
                                            M208 S1 Z-10.0 ; set minimum Z

                                            Try this:

                                            M208 X-200:200 Y-200:200 Z-10:1500

                                            Feel free to replace 200 with more appropriate limits. I am assuming that X0 Y0 is roughly the centre of the bed.

                                            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

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