Hello,
We are trying to get a linear encoder and magnetic encoder setup with our 1HCL V1.0a expansion board. We have the magnetic shaft encoder setup and are trying to get the linear encoder configured. We are using a Phidgets ENC4110_0 quadrature encoder.
The process we have been using is as follows:
- Boot duet and home axis in open loop configuration.
- Switch to closed loop configuration.
- Perform calibration tuning move on magnetic encoder.
- Perform calibration tuning move on linear encoder. This is where the error arises. The error we receive is "M569.6 P50.0 V1 Error: M569.6: Driver 50.0 basic tuning failed, the measured motion was inconsistent Warning: Driver 50.0 warning: tuning/calibration failed".
Our configuration file along with m122 for attached board is below. Thank you in advance!
code_text
```M569.1 P50.0 T1 S200 R40 I0 D0 C1000; Configure the 1HCL board at CAN address 50 with a quad shaft encoder,
;M569 P50.0 D4 S1;set drive 0 go forward, address 50, spreadcycle, CLOSED LOOP
M569 P50.0 S1 D2;set drive 0 go forward, address 50, spreadcycle, OPEN LOOP
M584 X50.0; set X drivers
M917 X0 ; Set the closed loop axes to have a holding current of zero
M350 X16 ; 16 microstepping
M92 X640.00 ; set steps per mm
M566 X100.00 ; set maximum instantaneous speed changes (mm/min)
M203 X3000.00 ; set maximum speeds (mm/min)
M201 X10.00 ; set accelerations (mm/s^2)
M906 X4000 I50 ; set motor currents (mA) and motor idle factor in per cent
M574 X2 S1 P"!50.io0.in"
M915 X S3 F0 R0
The commands to perform calibration are as follows
M569 P50.0 D4 S1 ;closed loop
M569.6 P50.0 V2 ;magnetic encoder calibration
M569.6 P50.0 V1;quadrature encoder calibration
And our m122 response is:
M122 B50
Diagnostics for board 50:
Duet EXP1HCL rev 1.0a or earlier firmware version 3.5.4 (2024-11-24 10:39:28)
Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
All averaging filters OK
Never used RAM 45676, free system stack 178 words
Tasks: EncCal(1,nWait 6,0.1%,175) Move(3,nWait 7,0.0%,131) CLSend(3,nWait 6,0.0%,147) HEAT(2,nWait 6,0.0%,105) CanAsync(5,nWait 4,0.0%,66) CanRecv(3,nWait 1,0.0%,31) CanClock(5,nWait 1,0.0%,64) TMC(4,nWait 6,62.3%,321) MAIN(1,running,36.5%,253) IDLE(0,ready,0.1%,29) AIN(2,nWait 2,1.0%,255), total 100.0%
Owned mutexes:
Last reset 00:15:31 ago, cause: software
Last software reset data not available
Driver 0: pos -200674, 640.0 steps/mm, tuning/calibration failed, SG min 26, mspos 1000, reads 44823, writes 44595 timeouts 0, steps req 0 done 13441
Moves scheduled 1, completed 1, in progress 0, hiccups 0, segs 3, step errors 0, maxLate 0 maxPrep 14, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00
Peak sync jitter -6/8, peak Rx sync delay 185, resyncs 0/0, next timer interrupt due in 4 ticks, enabled, next step interrupt due in 3691560387 ticks, disabled
VIN voltage: min 24.2, current 24.2, max 24.3
V12 voltage: min 12.0, current 12.1, max 12.1
MCU temperature: min 31.9C, current 39.2C, max 39.2C
Last sensors broadcast 0x00000000 found 0 207 ticks ago, 0 ordering errs, loop time 0
CAN messages queued 7691, send timeouts 0, received 4882, lost 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 278, adv 37137/37137
Closed loop driver 0 mode: closed loop, pre-error threshold: 2.00, error threshold: 4.00, encoder type linearComposite, position -32
Shaft: Encoder reverse polarity: no, full rotations 0, last angle 10911, minCorrection=-30.7, maxCorrection=26.1, agc 117, mag 4559, no error
Lin: Encoder reverse polarity: no, raw count 65504
Tuning mode: 0, tuning error: 0x10, collecting data: no
Control loop runtime (us): min=5, max=66, frequency (Hz): min=24, max=17857
Accelerometer: none
I2C bus errors 12, nak