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

    Duet3d 3 custom Delta printer inconsistant motor problems.

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    21
    877
    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.
    • JoergS5undefined
      JoergS5 @Oliver3d
      last edited by JoergS5

      @Oliver3d said in Duet3d 3 custom Delta printer inconsistant motor problems.:

      I have noticed that even when set to 200mm/s it is only able to reach 100mm/s actual speed.

      This may be valid (but please see below), because the speed depends on what you print. If you print short distances with changing directions, the acceleration and deceleration distances are a high percentage of total distance, so in average you have much lower speed than maximum speed.

      Delta printers have to segment even straight lines, because a straight line is a coordinated nonlinear movement of all three axis. This is specific to Delta printers. E . g. there is no Z axis which stands still if you print a layer, all three steppers move all the time. The 3D printer has to calculate a lot, it is good that you use a powerful Duet 3 for a big Delta.

      But for a delta printer 200 mm/s are still low, they are especially known for high speeds, so I am sure you can further optimize. But better one step after the other, you have achieved some improvements already. (and I would make a backup of the current configuration 😉 )

      But in most cases it is not the XYZ speed the limit, but extrusion speed of the hotend/filament.

      I just see you have a weakness in configuration:
      M203 X12000.00 Y12000.00 Z3000.00 E1200.00
      There is no difference between XY and Z at a Delta printer, they work together as described above, so you should set them the same value (M203, M201 also). This will speed up your printer.

      Phaedruxundefined 1 Reply Last reply Reply Quote 2
      • Phaedruxundefined
        Phaedrux Moderator @JoergS5
        last edited by

        @JoergS5 said in Duet3d 3 custom Delta printer inconsistant motor problems.:

        I just see you have a weakness in configuration:
        M203 X12000.00 Y12000.00 Z3000.00 E1200.00
        There is no difference between XY and Z at a Delta printer, they work together as described above, so you should set them the same value (M203, M201 also). This will speed up your printer.

        Bingo!

        Z-Bot CoreXY Build | Thingiverse Profile

        1 Reply Last reply Reply Quote 0
        • Oliver3dundefined
          Oliver3d
          last edited by

          Up until yesterday afternoon I was using equal speeds on all 3 axis's but mostly having problems with the motors stalling when I tried to move in the Z axis.

          I noticed that when you send a command to the printer to move in X or Y axis the print head moves in a straight line, i.e. moving 3 motors simultaneously, not motor X or motor Y as you would expect in a Cartesian style machine.

          So moving the print head 100mm/s doesn't mean any of the motors are moving at 100mm/s.
          With the speeds set as they are now when I move the print head up and down (Z Axis) then 40mm/s seems to be the limit for all 3 motors. But when I move the head left/right or front/back (X and Y axis) the I can increase the mm/s because the motors stay below the 40mm/s even if the head is moving at 100mm/s

          Something else I've noticed is even if I set the X and Y mm/s at 200mm/s to will only achieve 100mm/s, and this seems like its being limited in the software rather then a hardware issue. I may try programing a different pitch for the ballscrews to test this theory

          I still feel that I should be able to get much faster speeds and this may come down to changing the pitch on the ball screws or adding a belt drive to speed up the maximum RPM the motors can putout.

          JoergS5undefined 2 Replies Last reply Reply Quote 0
          • JoergS5undefined
            JoergS5 @Oliver3d
            last edited by JoergS5

            @Oliver3d

            According to config and discussion before, you have a Delta printer. This is not a Cartesian style machine. Every X, Y and Z movement is built from the 3 motors simultanesously.

            You should be aware that there are two different meanings of X (and Y, Z):

            • real world coordinates X, Y, Z, the common meaning of coordinates
            • X, Y, Z for the stepper movements. I would prefer to name them A, B, C.

            So your A, B, C movements result in a X, Y, Z movement.
            Cartesian: A=>X, B=>Y, C=>Z
            CoreXY: A and B => X, A and B => Y, C=>Z *)
            Delta: A, B, and C => X, A, B and C => Y, A, B and C => Z *)
            *) A, B, C connected by some formulae (eg. CoreXY (A+B)/2=>X )
            Especially at Delta the A,B,C=>X (and Y,Z) are complicated trigonometric functions, so calculation is complex, a powerful processor is advantageous.

            In G-Code the two meanings are mixed unhappily, some examples:

            • normal G1 X Y Z => X, Y, Z movements, realworld
            • G1 H2 X Y Z => A, B, C movements of single motors
            • G31 X Y Z => X, Y, Z distances
            • M92, M203, M566, M201, M906 X, Y, Z => A, B, C related
            • M574 X, Y, Z => A, B, C related

            So anytime you see an X, Y, Z in G-Code, you have to ask first which of the two possibilities it is.

            Oliver3dundefined 1 Reply Last reply Reply Quote 0
            • JoergS5undefined
              JoergS5 @Oliver3d
              last edited by JoergS5

              @Oliver3d said in Duet3d 3 custom Delta printer inconsistant motor problems.:

              I still feel that I should be able to get much faster speeds and this may come down to changing the pitch on the ball screws or adding a belt drive to speed up the maximum RPM the motors can putout.

              It may be easier and cheaper to assemble a gear between stepper and ball bear, but this comes at a cost, a diminished torque. I would calculate with the EMF calculator first, whether you have the optimal stepper and replace them. This may be the easiest solution.

              There is another option for the stepper: a servo like iHSV JMC based, there are some discussions on the forum. You need an additional card for Duet 3 however to drive it. The iHSV is motor driver and servo in one unit. The advantage would be that the torque doesn't diminish at high speed.

              But please allow me to repeat the hint above: the limiting factor is often extrusion speed of the hotend, not the stepper speeds for the axes. Better calculate the maximum extrusion speed first. Otherwise you waste money for a high speed which cannot be used.

              1 Reply Last reply Reply Quote 0
              • Oliver3dundefined
                Oliver3d @JoergS5
                last edited by

                @JoergS5

                Sorry I didn't explain myself very well.

                What I was trying to explain in my earlier post is that I have the motor speeds set as at different speeds because when moving in Z axis at 40mm/s motors A, B and C all move at 40mm/s, this seems to be the fastest I can get it to move in this axis as I think I'm maxing out the RPM's. (420 motor RPM / 60 = 7 Rev Per Second X 5mm pitch on the ballscrew = 35mm/s). So in RRF config I have the Z axis set at 40mm/s

                But for the X and Y axis I have it set at 200mm/s because this seems to set the real world X and Y speed not the motors A and B feed speeds.

                This confused me for a while but labeling the motors A, B, and C makes things a bit clearer in my head anyway.

                Unfortunately this still doesn't explain why if I have the X and Y speeds set to 200mm/s I'm only getting 100mm/s, and this speed stops exactly at 100mm/s so I suspect its a software issue rather than hardware.

                I would rather be limited by extrusion speed, but know I have the potential to go faster if needed that the other way around, I am building a tool changer in to the design so future hot-ends, lasers or "pick and place" tools could require more speed. I think with the size of motors I new have installed torque shouldn't be a problem.

                JoergS5undefined 1 Reply Last reply Reply Quote 0
                • JoergS5undefined
                  JoergS5 @Oliver3d
                  last edited by JoergS5

                  @Oliver3d you are right with your ball screw calculation. That is the main reason why most users use belts for X and Y (or XZY for Deltas). For Belt with 20 teeth pulley you get 40 mm for a stepper full rotation, for your ball screw you get 5 mm. To compensate, you need a gear between stepper and ball screw or a faster stepper (or higher pitch, as you said). The maximum speed for a normal Nema 17 is told to be around 1000 rpm, so about 16 rounds per second. So you could achieve about 80 mm/s without a gear *). The iHSV I mentioned has maximum 3000 rpm and there is a model for 4000 rpm which was tested and reported in this forum.
                  *) this is not totally correct, because the Delta uses three arms for the movement, hotend speed will be higher.

                  If your X Y axis (or A and B steppers) have the same setup as your ball screw axis, you would not achieve 200 mm/s there also. You can try 200 mm/s for all three axis and make a M122 report whether it shows errors due to lost steps.

                  1 Reply Last reply Reply Quote 0
                  • Oliver3dundefined
                    Oliver3d
                    last edited by

                    So after spending most of the weekend finishing up the missing parts and tweaking the config file, I finally was able to start a print.
                    Things seemed to be going well for the first 3 layers, I had lowered the feeds to 75mm/s from 100mm/s, because at that speed one of the motors had stalled a couple of times but after stalling restarting the system seemed to fix the problem.
                    During the 3rd layer the head dived in to the print bed and broke the heat break. I'm guessing one of the motors stalled again.
                    I checked the temperature of the motors and they didn't seem to hot and all the mechanical parts are fine.

                    After the crash I hit emergency stop and then ran M122 for this report

                    M122
                    === Diagnostics ===
                    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (standalone mode)
                    Board ID: 08DJM-956L2-G43S4-6JTDJ-3SJ6L-9866G
                    Used output buffers: 3 of 40 (6 max)
                    === RTOS ===
                    Static ram: 154604
                    Dynamic ram: 161924 of which 32 recycled
                    Exception stack ram used: 272
                    Never used ram: 76384
                    Tasks: NETWORK(ready,620) ETHERNET(blocked,432) HEAT(blocked,1176) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1424) TMC(blocked,204) MAIN(running,4528) IDLE(ready,76)
                    Owned mutexes:
                    === Platform ===
                    Last reset 00:03:26 ago, cause: software
                    Last software reset at 2020-06-28 21:07, reason: User, spinning module GCodes, available RAM 76136 bytes (slot 0)
                    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x04437000 BFAR 0x00000000 SP 0xffffffff Task MAIN
                    Error status: 0
                    MCU temperature: min 42.6, current 42.7, max 43.5
                    Supply voltage: min 13.1, current 13.1, max 13.3, under voltage events: 0, over voltage events: 0, power good: yes
                    12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0
                    Driver 0: standstill, reads 33464, writes 11 timeouts 0, SG min/max 0/0
                    Driver 1: standstill, reads 33464, writes 11 timeouts 0, SG min/max 0/0
                    Driver 2: standstill, reads 33462, writes 14 timeouts 0, SG min/max 0/0
                    Driver 3: standstill, reads 33462, writes 14 timeouts 0, SG min/max 0/0
                    Driver 4: standstill, reads 33464, writes 14 timeouts 0, SG min/max 0/0
                    Driver 5: standstill, reads 33464, writes 14 timeouts 0, SG min/max 0/0
                    Date/time: 2020-06-28 21:10:38
                    Slowest loop: 4.69ms; fastest: 0.22ms
                    === Storage ===
                    Free file entries: 10
                    SD card 0 detected, interface speed: 25.0MBytes/sec
                    SD card longest read time 3.1ms, write time 0.0ms, max retries 0
                    === Move ===
                    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
                    Bed compensation in use: none, comp offset 0.000
                    === MainDDARing ===
                    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
                    === AuxDDARing ===
                    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
                    === Heat ===
                    Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
                    === GCodes ===
                    Segments left: 0
                    Movement lock held by null
                    HTTP is idle in state(s) 0
                    Telnet is idle in state(s) 0
                    File is idle in state(s) 0
                    USB is idle in state(s) 0
                    Aux is idle in state(s) 0
                    Trigger is idle in state(s) 0
                    Queue is idle in state(s) 0
                    LCD is idle in state(s) 0
                    SBC is idle in state(s) 0
                    Daemon is idle in state(s) 0
                    Aux2 is idle in state(s) 0
                    Autopause is idle in state(s) 0
                    Code queue is empty.
                    === Network ===
                    Slowest loop: 7.96ms; fastest: 0.03ms
                    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
                    HTTP sessions: 1 of 8

                    • Ethernet -
                      State: active
                      Error counts: 0 0 0 0 0
                      Socket states: 5 2 2 2 2 0 0 0
                      === CAN ===
                      Messages sent 825, longest wait 0ms for type 0
                      === Linux interface ===
                      State: 0, failed transfers: 0
                      Last transfer: 206508ms ago
                      RX/TX seq numbers: 0/1
                      SPI underruns 0, overruns 0
                      Number of disconnects: 0
                      Buffer RX/TX: 0/0-0

                    ; Configuration file for Duet 3 (firmware version 3)
                    ; executed by the firmware on start-up
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 28 2020 20:22:16 GMT-0700 (Pacific Daylight Time)

                    ; General preferences
                    G90 ; send absolute coordinates...
                    M83 ; ...but relative extruder moves
                    M550 P"OLIVER3DPRINTER" ; set printer name
                    M665 R224.78 L573.5 B200 H500 ; 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
                    M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
                    M586 P0 S1 ; enable HTTP
                    M586 P1 S0 ; disable FTP
                    M586 P2 S0 ; disable Telnet

                    ; Drives
                    M569 P0.5 S0 ; physical drive 0.5 goes backwards
                    M569 P0.3 S0 ; physical drive 0.3 goes backwards
                    M569 P0.4 S0 ; physical drive 0.4 goes backwards
                    M569 P0.2 S0 ; physical drive 0.2 goes backwards
                    M584 X0.5 Y0.3 Z0.4 E0.2 ; set drive mapping
                    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                    M92 X640.00 Y640.00 Z640.00 E812.17 ; set steps per mm
                    M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
                    M203 X4500.00 Y4500.00 Z1800.00 E1200.00 ; set maximum speeds (mm/min)
                    M201 X500.00 Y500.00 Z300.00 E1000.00 ; set accelerations (mm/s^2)
                    M906 X2400 Y2400 Z2400 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
                    M84 S30 ; Set idle timeout

                    ; Axis Limits
                    M208 Z0 S1 ; set minimum Z

                    ; Endstops
                    M574 X2 S1 P"io1.in" ; configure active-high endstop for high end on X via pin io1.in
                    M574 Y2 S1 P"io3.in" ; configure active-high endstop for high end on Y via pin io3.in
                    M574 Z2 S1 P"io4.in" ; configure active-high endstop for high end on Z via pin io4.in

                    ; Z-Probe
                    M558 P3 R0.4 C"io5.in+io6.out" H0 F1200 T1800 ; set Z probe type to effector and the dive height + speeds
                    M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
                    G31 P850 X0 Y0 Z-0.01 ; set Z probe trigger value, offset and trigger height
                    M557 R200 S50 ; define mesh grid

                    ; Heaters
                    M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 0 as thermistor on pin temp0
                    M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0
                    M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
                    M140 H0 ; map heated bed to heater 0
                    M143 H0 S250 ; set temperature limit for heater 0 to 250C
                    M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
                    M950 H1 C"out2" T1 ; create nozzle heater output on out2 and map it to sensor 1
                    M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

                    ; Fans
                    M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency
                    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
                    M950 F1 C"out3" Q500 ; create fan 1 on pin out3 and set its frequency
                    M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off

                    ; Tools
                    M563 P1 S"TITAN AQUA" D0 H1 F1 ; define tool 1
                    G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
                    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

                    ; Custom settings
                    M575 P1 B57600 S1

                    ; Miscellaneous
                    M575 P1 S1 B57600 ; enable support for PanelDue
                    M501 ; load saved parameters from non-volatile memory
                    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss

                    Appreciate any thoughts as to why I'm having these problems

                    JoergS5undefined 1 Reply Last reply Reply Quote 0
                    • JoergS5undefined
                      JoergS5 @Oliver3d
                      last edited by JoergS5

                      @Oliver3d the spinning modules occured two times (known to me) in those threads, may help you:

                      https://forum.duet3d.com/topic/3211/software-reset-stuck-in-spin-loop-spinning-module-printmonitor
                      and
                      https://forum.duet3d.com/topic/5674/damned-crash-stuck-in-spin-loop

                      Please search for "spinning module", there are several forum threads with possible reasons discussed.

                      Checking SD card would be one action you can do.

                      1 Reply Last reply Reply Quote 0
                      • Oliver3dundefined
                        Oliver3d
                        last edited by

                        So after a few more days tweaking Ive got everything working slowly so I am 99% sure the main problem was that I was reaching maximum RPM on the motors.

                        I cleaned out all the files from the SD Card and did a completely new install and calibration that also may have helped

                        I now have a 32v Power supply coming that should help with getting the EMF numbers in the green and I'm designing a belt drive to speed up the ballcrews.

                        So with this combination I should be able to speed things up a little.

                        In the mean time I'm going to start work on the tool changer and spool mounts etc.

                        Once again thank you for the on going assistance.

                        JoergS5undefined 1 Reply Last reply Reply Quote 0
                        • JoergS5undefined
                          JoergS5 @Oliver3d
                          last edited by

                          @Oliver3d I wish you good luck. It would be interesting what speed and precision you achieve. It would be nice if you can tell the restults.

                          Regarding Belt drives, ball screws etc. I learned a lot from the CNC expert Möderl (EMS), you may find ideas on his pages. Unfortunatey it's only in german.

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