IDEX - Closed loop tune
-
I am building a IDEX printer with an X & U axis driven by their own 1HCL boards. I installed 17E1K-07 Motors.
The issue I am hoping to resolve is that I keep getting:
Warning: Driver 41.0 warning: tuning failed
Warning: Driver 41.0 new tuning error(s): The measured motion was inconsistent.
Warning: Driver 40.0 warning: tuning failed
Warning: Driver 40.0 new tuning error(s): The measured motion was inconsistent.in the console as a result of homing sequence. I have played with different maneuvers. i.e. the required ones as listed in the table.
I have also adjusted the M569.1 TX parameter from 1 & 2 (pretty sure its shaft mounted however)
Additionally, when I use the closed-loop plugin (latest version), my recorded data is always:
Sample,Timestamp,Measured Motor Steps,Target Motor Steps
0,0.04,3.04,-248.09
1,0.11,3.04,-248.09
2,0.18,3.04,-248.09
3,0.24,3.04,-248.09
(You can assume the rest.....)config.g
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Sep 04 2020 17:16:08 GMT-0600 (Mountain Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"TOM" ; set printer name ; Network M551 P"tom" ; set password 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 ; Axis Definitions====>>>>> ; X = Left (on X-axis) Extruder U = Right (on X-axis) Extruder /// Y = Y-Axis /// Z = Z-Axis ; ======={ Drives }======================================== ; 0.x corresponds to main board /// 40.x corresponds 1HCL-1 /// 41.x corresponds to 1HCL-2 ; X M569.1 P40.0 T2 C20 R100 I0 D0 ; M569.1 P41.0 T2 C20 R100 I0 D0 ; M569 P40.0 S0 D4 ; physical drive 0.0 goes forwards M569 P41.0 S0 D4 ; physical drive 0.1 goes forwards M569.6 P40.0 V1 ; Tuning maneuver M569.6 P41.0 V1 ; Tuning maneuver ; Y M569 P0.2 S0 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes backwards ; Z M569 P0.4 S0 ; physical drive 0.4 goes backwards M569 P0.5 S0 ; physical drive 0.5 goes backwards ; ======={ Extruders }===================================== M569 P0.0 S1 ; physical drive 1.0 goes forwards M569 P0.1 S1 ; physical drive 2.0 goes forwards M584 X40.0 Y0.2:0.3 Z0.4:0.5 U41.0 E0.0:0.1 ; set drive mapping [REST config.g IS CLIPPED]
M122 B40 (X-Axis)
Diagnostics for board 40: Duet EXP1HCL firmware version 3.4.1 (2022-06-01 21:14:32) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52256, free system stack 169 words Tasks: Move(notifyWait,0.0%,108) HEAT(notifyWait,0.0%,70) CanAsync(notifyWait,0.0%,65) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,70) TMC(notifyWait,34.5%,360) CLSend(notifyWait,0.0%,152) MAIN(running,63.7%,413) IDLE(ready,0.0%,30) AIN(notifyWait,1.7%,265), total 100.0% Last reset 00:07:43 ago, cause: software Last software reset data not available Closed loop enabled: yes, pre-error threshold: 0.00, error threshold: 0.00, encoder type rotaryQuadrature, reverse polarity: no, position 243, raw count = 0, tuning mode: 0, tuning error: 0x10, collecting data: no Control loop runtime (ms): min=0.003, max=0.028, frequency (Hz): min=11719, max=17442 Driver 0: pos -48210, 80.4 steps/mm,tuning failed, SG min 0, mspos 776, reads 24967, writes 2112 timeouts 0, steps req 57854 done 13661 Moves scheduled 5, completed 5, in progress 0, hiccups 0, step errors 0, maxPrep 60, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter -1/10, peak Rx sync delay 194, resyncs 0/0, no step interrupt scheduled VIN voltage: min 10.9, current 12.4, max 12.5 V12 voltage: min 10.6, current 10.6, max 10.8 MCU temperature: min 31.5C, current 32.4C, max 32.4C Last sensors broadcast 0x00000000 found 0 223 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 3776, send timeouts 0, received 4215, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 292, adv 36388/37193
M122 B41 (U-Axis)
Diagnostics for board 41: Duet EXP1HCL firmware version 3.4.1 (2022-06-01 21:14:32) Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10) All averaging filters OK Never used RAM 52256, free system stack 173 words Tasks: Move(notifyWait,0.0%,108) HEAT(notifyWait,0.0%,70) CanAsync(notifyWait,0.0%,65) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,70) TMC(notifyWait,34.5%,360) CLSend(notifyWait,0.0%,152) MAIN(running,63.7%,409) IDLE(ready,0.0%,30) AIN(notifyWait,1.8%,265), total 100.0% Last reset 00:09:26 ago, cause: software Last software reset data not available Closed loop enabled: yes, pre-error threshold: 0.00, error threshold: 0.00, encoder type rotaryQuadrature, reverse polarity: no, position 163, raw count = 0, tuning mode: 0, tuning error: 0x10, collecting data: no Control loop runtime (ms): min=0.003, max=0.029, frequency (Hz): min=11538, max=17442 Driver 0: pos 48210, 80.4 steps/mm,tuning failed, SG min 0, mspos 520, reads 64910, writes 2112 timeouts 0, steps req 57854 done 13661 Moves scheduled 5, completed 5, in progress 0, hiccups 0, step errors 0, maxPrep 60, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 2/14, peak Rx sync delay 196, resyncs 0/0, no step interrupt scheduled VIN voltage: min 12.4, current 12.4, max 12.5 V12 voltage: min 10.7, current 10.7, max 10.8 MCU temperature: min 34.8C, current 35.9C, max 36.1C Last sensors broadcast 0x00000000 found 0 103 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 4599, send timeouts 0, received 5140, lost 0, free buffers 37, min 37, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 294, adv 35836/37161
homeall.g
; ========{Change to Open Mode}======== M569 P40.0 D0 S0 ; Change X to open-mode M569 P41.0 D0 S0 ; Change U to open-mode ; ========{Home in Open-Loop Mode}======== G91 ; relative positioning G1 H2 Z15 F720 ; lift Z relative to current position G1 H1 X-595 Y-459 U595 F2400 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X10 Y10 U-10 F6000 ; go back a few mm G1 H1 X-15 Y-15 U15 F180 ; move slowly to X and Y axis endstops once more (second pass) G1 H1 Z-650 F360 ; move Z down stopping at the endstop G1 H2 Z3 F360 G1 H1 Z-10 F10 G90 ; absolute positioning G92 Z0 ; set Z position to axis minimum (you may want to adjust this) ; ========{Move to a Safe Location}======== G91 ; Relative Positioning G1 Z15 F720 ; Move the Z down G1 X50 F1000 ; Move the X away from the endstop G1 U-50 F1000 ; Move the U away from the endstop M400 ; Wait for previous moves to complete G4 P500 ; Wait for the motor to settle G90 ; Absolute Positioning;- ; ========{Turn on Closed-Loop Mode}======== ; ========{Perform the Encoder Tuning}======== M569 P40.0 D4 S0 ; Change X to closed-loop-mode M569.6 P40.0 V1 ; Perform the tuning manoeuvres for a quadrature encoder; M569 P41.0 D4 S0 ; Change U to closed-loop-mode M569.6 P41.0 V1 ; Perform the tuning manoeuvres for a quadrature encoder ; ========{Return to Home Location}======== G91 ; Relative Positioning G1 X-50 F720 G1 U50 F720 G1 Z-15 F720 G90 ; Absolute Positioning