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

    Delta Printer Duet 3 Mini 5+ with 3 1HCL V1.0a

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    4
    9
    283
    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.
    • flopo76undefined
      flopo76
      last edited by flopo76

      Hello Good morning,
      I have assembled a Delta printer. I installed 3 17HS15-1504D-E1K 17HS15-1504D-E1K.pdf stepper motors with 1000 PPR optical encoders from Stepperonline.

      I connected EA+ and EB+ to the 1HCL V1.0a board using A_Input and B_Input, along with 5V and GND. (I believe this is correct, based on what I read in the wiki.)
      I have configured everything else correctly.

      However, I keep getting the following error:
      "Error in start-up file macro line 27: No encoder specified for closed loop drive mode."

      I initially had firmware version 3.5.4, then updated to 3.6.0 beta 4, but the issue remains the same.

      I have read and re-read the entire wiki, but it still doesn’t work.

      My Config:g :

      code_text
      ```; Configuration file for RepRapFirmware on Duet 3 Mini 5+ WiFi
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.5.10 on Sat Mar 01 2025 16:51:15 GMT+0100 (Ora standard dell’Europa centrale)
      
      ; General
      G90 ; absolute coordinates
      M83 ; relative extruder moves
      M550 P"Delta Star 3.1" ; set hostname
      
      ; Accessories
      M575 P1 S0 B57600 ; configure PanelDue support
      
      ; Network
      M552 S1 ; configure WiFi adapter
      M586 P0 S1 ; configure HTTP
      
      ; Kinematics
      M665 L360 R205.609 B150 H595.5 ; set delta radius, diagonal rod length, printable radius and homed height
      M208 Z0 S1 ; set minimum Z
      M666 X0 Y0 Z0 A0 B0 ; endstop adjustments and XY tilt, can be determined using auto calibration as well
      
      ; Wait a moment for the CAN expansion boards to become available
      G4 S2
      
      ; Smart Drivers
      M569 P50.0 S0 D4  ; driver 50.0 goes forwards (X axis)
      M569.1 P50.0 T2 C2500 S200 R100 I0 D0 E4:6 ; driver 50.0 has a quadrature encoder with 5 CPS
      M569 P51.0 S0 D4 ; driver 51.0 goes forwards (Z axis)
      M569.1 P51.0 T2 C2500 S200 R100 I0 D0 E4:6 ; driver 51.0 has a quadrature encoder with 5 CPS
      M569 P52.0 S0 D4 ; driver 52.0 goes forwards (Y axis)
      M569.1 P52.0 T2 C2500 S200 R100 I0 D0 E4:6 ; driver 52.0 has a quadrature encoder with 5 CPS
      M569 P0.3 S1 D2; driver 0.3 goes forwards (extruder 0)
      
      
      ; Axes
      M584 X50.0 Y52.0 Z51.0 ; set axis mapping
      M350 X32 Y32 Z32 I0 ; configure microstepping with interpolation
      M906 X1000 Y1000 Z1000 ; set axis driver currents
      M92 X160 Y160 Z160 ; configure steps per mm
      M566 X360 Y360 Z360 ; set maximum instantaneous speed changes (mm/min)
      M203 X30000 Y30000 Z30000 ; set maximum speeds (mm/min)
      M201 X10000 Y10000 Z10000 ; set accelerations (mm/s^2)
      
      ; Motor Idle Current Reduction
      M906 I30 ; set motor current idle factor
      M84 S30 ; set motor current idle timeout
      
      ; Endstops
      M574 X2 P"50.io0.in" S1 ; configure X axis endstop
      M574 Y2 P"52.io0.in" S1 ; configure Y axis endstop
      M574 Z2 P"51.io0.in" S1 ; configure Z axis endstop
      
      ; Extruders
      M584 E0.3 ; set extruder mapping
      M350 E64 I0 ; configure microstepping without interpolation
      M906 E750 ; set extruder driver currents
      M92 E1618.18 ; configure steps per mm
      M566 E900 ; set maximum instantaneous speed changes (mm/min)
      M203 E30000 ; set maximum speeds (mm/min)
      M201 E10000 ; set accelerations (mm/s^2)
      
      
      
      ; Probes
      M558 K0 P8 C"io3.in+io3.out" H5 F1200 T6000 ; configure unfiltered digital probe via slot #0
      M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
      G31 P500 X0 Y0 Z-0.1 ; set Z probe trigger value, offset and trigger height
      
      
      
      ; Mesh Bed Compensation
      M557 R150 S20:20 ; define grid for mesh bed compensation
      
      ; Sensors
      M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4725 C7.06e-8 ; configure sensor #0
      M308 S1 P"temp1" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1
      
      ; Heaters
      M950 H0 C"out0" T0 ; create heater #0
      M143 H0 P0 T0 C0 S110 A0 ; configure heater monitor #0 for heater #0
      M307 H0 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #0
      M950 H1 C"out1" T1 ; create heater #1
      M143 H1 P0 T1 C0 S320 A0 ; configure heater monitor #0 for heater #1
      M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1
      
      ; Heated beds
      M140 P0 H0 ; configure heated bed #0
      
      ; Fans
      M950 F0 C"out5" ; create fan #0
      M106 P0 S0 L0 X1 B0.1 ; configure fan #0
      M950 F1 C"out6" ; create fan #1
      M106 P1 S0 B0.1 H1 T45 ; configure fan #1
      
      ; Tools
      M563 P0 S"Smart Effector" D0 H1 F1 ; create tool #0
      M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
      
      ; Miscellaneous
      T0 ; select first tool
      
      ; Custom settings
      M593 P"zvd" F40.5                                   ; use ZVD input shaping to cancel ringing at 40.5Hz
      ;M575 P1 S1 B57600
      M572 D0 S0.048                                      ; Nozzle presure
      M501
      
      

      M122 B50

      code_text
      ```M122 B50
      Diagnostics for board 50:
      Duet EXP1HCL rev 1.0a or earlier firmware version 3.6.0-beta.4 (2025-02-10 20:09:59)
      Bootloader ID: SAME5x bootloader version 2.11 (2024-08-09)
      All averaging filters OK
      Never used RAM 81292, free system stack 158 words
      Tasks: Move(3,nWait 7,0.0%,146) CLSend(3,nWait 6,0.0%,126) TMC(2,nWait 6,37.3%,337) HEAT(2,nWait 6,0.0%,115) CanAsync(5,nWait 4,0.0%,66) CanRecv(3,nWait 1,0.0%,45) CanClock(5,nWait 1,0.0%,63) MAIN(1,running,61.9%,383) IDLE(0,ready,0.0%,29) AIN(2,nWait 2,0.8%,255), total 100.0%
      Owned mutexes:
      Last reset 00:55:43 ago, cause: software
      Last software reset data not available
      Moves scheduled 9, hiccups 0 (0.00/0.00ms), segs 3, step errors 0 (types 0x0), maxLate 0 maxPrep 16, ebfmin 0.00 max 0.00
      Phase step loop runtime (us): min=0, max=88, frequency (Hz): min=0, max=37500
      Peak sync jitter -12/12, peak Rx sync delay 186, resyncs 0/0, next timer interrupt due in 29 ticks, enabled, next step interrupt due in 1842656022 ticks, disabled
      VIN voltage: min 24.5, current 24.5, max 24.5
      V12 voltage: min 12.1, current 12.2, max 12.2
      MCU temperature: min 33.2C, current 36.4C, maDriver 0: pos 8004, 160.0 steps/mm, standstill, SG min 0, mspos 476, reads 42274, writes 19 timeouts 0
      Last sensors broadcast 0x00000000 found 0 203 ticks ago, 0 ordering errs, loop time 0
      CAN messages queued 28780, send timeouts 0, received 29241, lost 0, ignored 0, errs 0, boc 0, free buffers 38, min 38, error reg 0
      dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 292, adv 36298/37106
      Closed loop driver 0 mode: open loop, pre-error threshold: 4.00, error threshold: 6.00, encoder type rotaryQuadrature, position -5002
      Encoder reverse polarity: no, raw count 60534
      Accelerometer: none
      I2C bus errors 12, naks 0, contentions 0, other errors
      

      EDIT:

      I have solved the "No encoder specified for closed loop drive mode" error.
      M569 must be placed after M569.1.
      Strange, because the RRF Config Tool places M569 first, but that way it doesn't work.

      1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt
        last edited by

        EA+ and EB+? Those are from the stepper encoder to the Mini? What inputs?

        What about EA- and EB-?

        Frederick

        Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

        flopo76undefined 1 Reply Last reply Reply Quote 0
        • flopo76undefined
          flopo76 @fcwilt
          last edited by

          @fcwilt said in Delta Printer Duet 3 Mini 5+ with 3 1HCL V1.0a:

          EA+ and EB+? Those are from the stepper encoder to the Mini? What inputs?

          What about EA- and EB-?

          Frederick

          EA+ and EB+ come from the motor and are connected to the 1HCL driver. The Mini has nothing to do with it. Each motor has its own 1HCL driver.

          However, since the 1HCL 1.0a version only has A_input, B_input, and N_input for the encoder, I assume I have connected them correctly.

          Only the 1HCL 2.0 version has A+ B+ A- B- inputs.

          fcwiltundefined 1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @flopo76
            last edited by fcwilt

            @flopo76

            I haven't figured out the source of the error BUT the specs for the encoder show it to be differential - the HCL v1.0a board doesn't appear to support differential.

            Was that covered in the documentation you read?

            The entries in your config.g mostly look correct but it's been a while since I configured a closed loop setup.

            In the M569.1 you have C2500 - where did you get that value?

            Frederick

            Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

            flopo76undefined 1 Reply Last reply Reply Quote 0
            • flopo76undefined
              flopo76 @fcwilt
              last edited by

              @fcwilt I have solved the "No encoder specified for closed loop drive mode" error.
              M569 must be placed after M569.1.
              Strange, because the RRF Config Tool places M569 first, but that way it doesn't work.

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

                @flopo76 one for @chrishamm to fix with the config tool

                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
                • flopo76undefined
                  flopo76
                  last edited by

                  Ok, all motors are working. To perform calibration at machine startup or after a reset, I did this as suggested in the wiki:

                  ; homedelta.g
                  ; Homing per una stampante Delta con Duet 3 + 1HCL
                  
                  M569 P50.0 D0         ; Motore torre X in open loop
                  M569 P51.0 D0         ; Motore torre Y in open loop
                  M569 P52.0 D0         ; Motore torre Z in open loop
                  
                  G91                   ; Imposta il movimento relativo
                  G1 H2 Z5 F6000        ; Alza il carrello leggermente per sicurezza
                  
                  G1 H1 X500 Y500 Z500 F3000  ; Muovi velocemente fino agli endstop
                  G1 H2 X-5 Y-5 Z-5 F600      ; Rimuovi la pressione dagli endstop
                  G1 H1 X10 Y10 Z10 F600      ; Rifai homing con precisione
                  
                  G90                   ; Torna al movimento assoluto
                  G1 X0 Y0 Z300 F3000   ; Sposta la testina in una posizione sicura
                  M400                  ; Attendi che il movimento finisca
                  G4 P200               ; Pausa per stabilizzazione motori
                  
                  M569 P50.0 D4         ; Passa il motore torre X in closed loop
                  M569 P51.0 D4         ; Passa il motore torre Y in closed loop
                  M569 P52.0 D4         ; Passa il motore torre Z in closed loop
                  
                  M569.6 P50.0 V1       ; Calibrazione closed-loop per X
                  M569.6 P51.0 V1       ; Calibrazione closed-loop per Y
                  M569.6 P52.0 V1       ; Calibrazione closed-loop per Z
                  
                  G1 X0 Y0 Z0 F3000     ; Torna all'origine
                  

                  I believe this is correct.

                  1 Reply Last reply Reply Quote 0
                  • flopo76undefined
                    flopo76
                    last edited by flopo76

                    These are the PID tuning graphs. I think there is too much noise. The system is very unstable. I believe it's due to the motors, but I'm not sure. While moving, one of the motors always reports an error. I tried various PID settings, but it's still very unstable.

                    I'm not even sure that the encoder is working correctly, as there is no differential input on the 1HCL V1.0a.

                    Screenshot 2025-03-04 143841.png Screenshot 2025-03-04 143818.png Screenshot 2025-03-04 143742.png

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

                      @flopo76 your PID P term is clearly oscillating excessively. Try a lower P term (e.g. 20) and perhaps a small D term (0.01 to 0.05).

                      You may be better off using the Custom GCode field to command a 50mm Z move instead of letting the plugin generate the move command.

                      Also I suggest you change the data collection setting from "As fast as possible" to a lower value such as 500 or 1000 per second, that way you should be able to see the complete move.

                      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