Duet3d 3 custom Delta printer inconsistant motor problems.



  • I'm building a custom delta printer with a Duet 3 board, Nema23 425oz motors, 5mm pitch ballscrews, THK SR25 linear rails and a 400mm x 400mm x 600mm build volume.
    After initially connecting the motors (Nema17) and starting to get movement after trial and error I had to reduce all the speed and feeds down to stop the motors from stalling out. I have since then installed the Nema23 426oz motors and I'm still having similar problems with the one or all of the motors stalling out. Ive had to reduce the speed down to 20mm/s and sometimes I'm still having problems.

    I've managed to run a G30 and Bed mesh compensation with some success, Homing the axis's works well most of the time.

    I cant seem to get the Delta compensation feature to work.

    I am getting lots of warnings saying "Warning: motor phase A may be disconnected reported by driver(s) 3 4 5"

    This is my config file:

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Thu Jun 25 2020 12:34:19 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 H650 ; 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.1 S1 ; physical drive 0.1 goes forwards
    M584 X0.5 Y0.3 Z0.4 E0.1 ; set drive mapping
    M350 X16 Y16 Z16 I0 ; configure microstepping without interpolation
    M350 E16 I1 ; configure microstepping with interpolation
    M92 X640.00 Y640.00 Z640.00 E663.00 ; set steps per mm
    M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X4200 Y4200 Z4200 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" H20 F1200 T2400 ; 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 P800 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height
    M557 R200 S50 ; define mesh grid

    ; Heaters
    M308 S0 P"temp0" Y"pt1000" R2200 ; configure sensor 0 as PT1000 on pin temp0
    M950 H0 C"out0" T0 ; create bed heater output on out0 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 S120 ; set temperature limit for heater 0 to 120C
    M308 S1 P"temp1" Y"pt1000" R2200 ; configure sensor 1 as PT1000 on pin temp1
    M950 H1 C"out1" T1 ; create nozzle heater output on out1 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"out3" Q500 ; create fan 0 on pin out3 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
    M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

    ; Tools
    M563 P0 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
    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



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

    motor phase A may be disconnected

    Often this problem is wrong wiring or wiring problem of the stepper, but in your case with 3 motors at the same time this is unlikely.

    Are you sure about the Nema23 current setting? My strongest Nema 23 has 4.2 A, which means 50 to 85% setting for M906 of about between 2100 and 3570. I would try setting M201 lower also. It is not related to this error message, but is your G31 setting correct, the probe being at the same position like the nozzle?

    When you suspect that the problem are the stepper having not enough force, you can test whether the situation gets better by setting half stepping (microstepping 2) with correction of M92. This (or full step) mode has the most torque. => only for testing, may be loud.

    You can make a M122 also when experiencing the problems, this may give additional information.



  • I believe the wiring is correct as this is one of the first things I had to change fro the original E3d motors I was using.

    I was following the documentation for theNema23 motors for the current settings, I've also trying raising and lowering this number and it doesn't seem to have any affect.

    I have tried microstepping from 1X to 16X and with interpolation and without. 1X without interpolation seemed to work the best although quite noisy.

    After some research I think I am reaching the maximum RPM for the motor so it looks like for now Ill be limited to 50mm/s.



  • @Oliver3d this is not very fast, I expect you could improve it. Did you make a M122 and does it show something?

    I have thk 25 also, they are heavy, it is worth thinking using a gear between stepper and ball gear or belt, whatever you use. Then you get more torque for the cost of speed at movement, but speed of the stepper could be higher because you need less torque at the stepper. Like a 20/60 belt gear.


  • Moderator

    What are the specs for the motors? Sounds like you may be encountering back emf from high inductance motors.

    Enter your specs into the EMF calculator here: https://www.reprapfirmware.org/



  • @Phaedrux

    Motor specs are as follows:

    Electrical Specification:

    • Manufacturer Part Number: 23HS45-4204S
    • Motor Type: Bipolar Stepper
    • Step Angle: 1.8 deg.
    • Holding Torque: 3.0Nm(425oz.in)
    • Rated Current/phase: 4.2A
    • Phase Resistance: 0.9ohms
    • Inductance: 3.8mH+/-20%(1KHz)

    I ran the EMF Calculator and it seems you might be right, it shows the 188.8 V and 97.4 V in RED.

    Approximate peak back EMF due to rotation per motor: 188.8 V at 100.0 mm/s
    Approximate peak back EMF due to inductance per motor: 97.4 V at 100.0 mm/s
    Step pulse frequency: 64.0 kHz at 100.0 mm/s
    Speed at which torque starts to drop (low slip angle): 3.9 mm/s @ 4.3 kHz
    Speed at which torque starts to drop (high slip angle): 4.9 mm/s @ 5.3 kHz



  • @JoergS5

    This is the m122 result:

    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: 1 of 40 (11 max)
    === RTOS ===
    Static ram: 154604
    Dynamic ram: 161696 of which 52 recycled
    Exception stack ram used: 464
    Never used ram: 76400
    Tasks: NETWORK(ready,364) ETHERNET(blocked,436) HEAT(blocked,1200) CanReceiv(suspended,3820) CanSender(suspended,1432) CanClock(blocked,1424) TMC(blocked,68) MAIN(running,4512) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:03:07 ago, cause: software
    Last software reset at 2020-06-25 16:05, reason: User, spinning module GCodes, available RAM 76336 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 41.1, current 41.4, max 41.6
    Supply voltage: min 12.7, current 13.2, max 13.6, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.0, current 12.2, max 12.5, under voltage events: 0
    Driver 0: standstill, reads 65489, writes 11 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 65487, writes 14 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 65491, writes 11 timeouts 0, SG min/max 0/0
    Driver 3: standstill, reads 65483, writes 19 timeouts 0, SG min/max 0/1023
    Driver 4: standstill, reads 65484, writes 19 timeouts 0, SG min/max 0/1023
    Driver 5: standstill, reads 65484, writes 19 timeouts 0, SG min/max 0/1023
    Date/time: 2020-06-25 16:08:16
    Slowest loop: 5.23ms; fastest: 0.21ms
    === Storage ===
    Free file entries: 10
    SD card 0 detected, interface speed: 25.0MBytes/sec
    SD card longest read time 3.2ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 372, MaxWait: 39233ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 9, completed moves: 9, 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: 5.57ms; 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 750, longest wait 0ms for type 0
      === Linux interface ===
      State: 0, failed transfers: 0
      Last transfer: 187220ms ago
      RX/TX seq numbers: 0/1
      SPI underruns 0, overruns 0
      Number of disconnects: 0
      Buffer RX/TX: 0/0-0

  • Moderator

    What motor current are you setting?

    You may get better results from 24v power.



  • @Phaedrux

    I reduce the motor current down to 2400mA

    I tried changing to 24V on the supply voltage but it has do effect on the EMF numbers



  • I changed the Max Speed on X and Y axis's to 200mm/s and left the Z axis at 50/mm/s and this seems to work better. I was mostly having problems when moving in the Z axis.

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

    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Thu Jun 25 2020 16:04:10 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 H650 ; 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.1 S1 ; physical drive 0.1 goes forwards
    M584 X0.5 Y0.3 Z0.4 E0.1 ; set drive mapping
    M350 X8 Y8 Z8 E16 I1 ; configure microstepping with interpolation
    M92 X320.00 Y320.00 Z320.00 E663.00 ; set steps per mm
    M566 X3000.00 Y3000.00 Z1800.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X12000.00 Y12000.00 Z3000.00 E1200.00 ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z500.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X2500 Y2500 Z2500 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 T2400 ; 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"pt1000" R2200 ; configure sensor 0 as PT1000 on pin temp0
    M950 H0 C"out0" T0 ; create bed heater output on out0 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 S120 ; set temperature limit for heater 0 to 120C
    M308 S1 P"temp1" Y"pt1000" R2200 ; configure sensor 1 as PT1000 on pin temp1
    M950 H1 C"out1" T1 ; create nozzle heater output on out1 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"out3" Q500 ; create fan 0 on pin out3 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
    M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

    ; Tools
    M563 P0 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
    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



  • @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.


  • Moderator

    @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!



  • 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.



  • @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.



  • @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.



  • @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.



  • @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.



  • 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



  • @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.



  • 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.



  • @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.


Log in to reply