Problem with calibration of encoders
-
Hello everyone,
We are having problems with the encoder calibration on the stepper motor. We are using 1HCL expansion boards and with two of them the encoders can not calibrate, when we change to any other 1HCL the encoders calibrate fine.
Under the yellow error, information about the successful calibration of the encoder, and above some message that the encoder does not calibrate correctly. Is there anyone who can help? And if our problem is not solved, can we ask for a refund under warranty? -
@Kiryl what motors and encoders do you have? what firmware is running on board 61? (send M122 B61 and post the output)
-
@Kiryl what firmware versions are your main board and your 1HCL expansion boards running? The 1HCL boards may be been programmed with different firmware versions.
-
@jay_s_uk Sorry for the long reply.
There is an output of the M122 B61 command, and I also attach the datasheet for my encoder with motors.Karta katalogowa CS-M22331-L.pdf
M122 B61
Diagnostics for board 61:
Duet EXP1HCL firmware version 3.4.0beta7+8 (2022-01-25 10:33:00)
Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
All averaging filters OK
Never used RAM 52272, free system stack 2600 words
Tasks: Move(notifyWait,0.0%,152) HEAT(notifyWait,0.0%,88) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.0%,80) CanClock(notifyWait,0.0%,71) TMC(notifyWait,34.3%,360) CLSend(notifyWait,0.0%,152) MAIN(running,63.9%,408) IDLE(ready,0.0%,29) AIN(notifyWait,1.8%,265), total 100.0%
Last reset 00:04:03 ago, cause: power up
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 2, raw count = 0, tuning mode: 0, tuning error: 0x1, collecting data: no
Control loop runtime (ms): min=0.003, max=0.028, frequency (Hz): min=11538, max=17857
Driver 0: pos 0, 1600.0 steps/mm,standstill, SG min 0, mspos 4, reads 54056, writes 23 timeouts 0, steps req 0 done 0
Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
Peak sync jitter -5/8, peak Rx sync delay 192, resyncs 0/0, no step interrupt scheduled
VIN voltage: min 24.2, current 24.3, max 24.4
V12 voltage: min 18.1, current 18.1, max 18.2
MCU temperature: min 23.7C, current 28.3C, max 28.3C
Last sensors broadcast 0x00000000 found 0 27 ticks ago, 0 ordering errs, loop time 0
CAN messages queued 1978, send timeouts 0, received 1231, lost 0, free buffers 37, min 37, error reg 0
dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 -
@Kiryl please upgrade the system firmware to 3.4.5 as there have been a number of fixed for 1HLCs since the firmware you're running
-
@dc42 The version of my main boadre firmavire is 3.4.4.
And the 1HCL version is 3.4.1. But I don't think that's the problem. Because the other 1HCLs have the same version and work fine. -
@Kiryl your M122 report indicates that the EXP1HCL at address 61 is running firmware 3.4.0beta7+8. Please upgrade it to version 3.4.4.
-
@dc42 Can you please explain to me how to update the firmware if I am using the 6HC main board in SBC mode? I understand that it should be easy, but I can't find a good explanation on the internet.
-
@Kiryl M997 B61
-
@dc42 I used M997 B61 command, and now the output is:
M122 B61
Diagnostics for board 61:
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%,88) CanAsync(notifyWait,0.0%,66) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,72) TMC(notifyWait,35.1%,360) CLSend(notifyWait,0.0%,152) MAIN(running,62.8%,399) IDLE(ready,0.0%,30) AIN(notifyWait,2.0%,265), total 100.0%
Last reset 00:00:34 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 21, raw count = 65532, tuning mode: 0, tuning error: 0x4, collecting data: no
Control loop runtime (ms): min=0.004, max=0.017, frequency (Hz): min=10870, max=17045
Driver 0: pos -328000, 1600.0 steps/mm,tuning failed, SG min 0, mspos 76, reads 25212, writes 1072 timeouts 0, steps req 424000 done 136004
Moves scheduled 5, completed 5, in progress 0, hiccups 0, step errors 0, maxPrep 64, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
Peak sync jitter -5/5, peak Rx sync delay 192, resyncs 0/0, no step interrupt scheduled
VIN voltage: min 23.9, current 24.1, max 24.3
V12 voltage: min 12.2, current 12.2, max 12.2
MCU temperature: min 33.1C, current 33.8C, max 33.8C
Last sensors broadcast 0x00000000 found 0 212 ticks ago, 0 ordering errs, loop time 0
CAN messages queued 326, send timeouts 0, received 207, lost 0, free buffers 37, min 37, error reg 0
dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 295, adv 37076/37196It looks like the firmware is only updated to version 3.4.1.
End encoders still do not work
-
@jay_s_uk I used M997 B61 command, and 1HCL updated only to 3.4.1 version. is there are any other ways to update to 3.4.4?
-
@Kiryl how did you update the setup to 3.4.4 originally? did you use
sudo apt update
etc to update through the SBC?
Can you post an output of M122? -
@jay_s_uk I never used sudo apt update, M997 worked fine.
And here is a reprieve from M122M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.4 (2022-10-20 16:19:01) running on Duet 3 MB6HC v1.01 (SBC mode)
Board ID: 0JD2M-999AL-D2PS0-6JTDA-3SD6J-1NJ30
Used output buffers: 1 of 40 (12 max)
=== RTOS ===
Static ram: 152824
Dynamic ram: 66272 of which 76 recycled
Never used RAM 131428, free system stack 154 words
Tasks: SBC(ready,0.6%,466) HEAT(notifyWait,0.0%,374) Move(notifyWait,0.0%,256) CanReceiv(notifyWait,0.0%,773) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,340) TMC(notifyWait,7.8%,91) MAIN(running,90.8%,1257) IDLE(ready,0.8%,30), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:01:08 ago, cause: power up
Last software reset at 2022-09-18 06:19, reason: User, GCodes spinning, available RAM 131212, slot 0
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
Step timer max interval 132
MCU temperature: min 22.7, current 31.8, max 31.9
Supply voltage: min 23.7, current 23.9, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.2, current 12.2, max 12.2, under voltage events: 0
Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
Events: 1 queued, 1 completed
Driver 0: standstill, SG min 0, mspos 8, reads 54074, writes 11 timeouts 0
Driver 1: standstill, SG min 0, mspos 8, reads 54075, writes 11 timeouts 0
Driver 2: standstill, SG min 0, mspos 8, reads 54075, writes 11 timeouts 0
Driver 3: standstill, SG min 0, mspos 8, reads 54075, writes 11 timeouts 0
Driver 4: standstill, SG min 0, mspos 8, reads 54075, writes 11 timeouts 0
Driver 5: standstill, SG min 0, mspos 8, reads 54075, writes 11 timeouts 0
Date/time: 2022-09-18 06:17:58
Slowest loop: 34.06ms; fastest: 0.03ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, segments created 3, maxWait 34885ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 15, completed 15, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP* is doing "M122" 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
=== CAN ===
Messages queued 434, received 2273, lost 0, boc 0
Longest wait 7ms for reply type 6018, peak Tx sync delay 7, free buffers 50 (min 48), ts 343/342/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
Transfer state: 5, failed transfers: 0, checksum errors: 0
RX/TX seq numbers: 2615/2615
SPI underruns 0, overruns 0
State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x2ad08
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server v3.4.1
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
Full transfers per second: 50.79, max time between full transfers: 41.8ms, max pin wait times: 45.0ms/15.8ms
Codes per second: 1.46
Maximum length of RX/TX data transfers: 3044/1008 -
@Kiryl said in Problem with calibration of encoders:
Duet Control Server v3.4.1
then you've updated your system incorrectly
for SBC mode, you should SSH into the pi and usesudo apt update && sudo apt upgrade -y
you shouldn't be uploading firmware files and doing it that way -
@jay_s_uk Hello, I was able to update the system to version 3.4.4, here are the results of the M122 command:
M122 B61
Diagnostics for board 61:
Duet EXP1HCL firmware version 3.4.4 (2022-10-14 11:45:14)
Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
All averaging filters OK
Never used RAM 52256, free system stack 163 words
Tasks: Move(notifyWait,0.0%,108) HEAT(notifyWait,0.0%,88) CanAsync(notifyWait,0.0%,66) CanRecv(notifyWait,0.0%,79) CanClock(notifyWait,0.0%,70) TMC(notifyWait,36.1%,360) CLSend(notifyWait,0.0%,152) MAIN(running,61.9%,409) IDLE(ready,0.0%,30) AIN(notifyWait,2.0%,265), total 100.0%
Last reset 00:06:04 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 -25137, raw count = 40539, tuning mode: 0, tuning error: 0x4, collecting data: no
Control loop runtime (ms): min=0.003, max=0.029, frequency (Hz): min=10000, max=17442
Driver 0: pos 1171200, 1600.0 steps/mm,tuning failed, SG min 0, mspos 828, reads 14455, writes 3168 timeouts 0, steps req 1804800 done 881639
Moves scheduled 15, completed 15, in progress 0, hiccups 0, step errors 0, maxPrep 62, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
Peak sync jitter -5/8, peak Rx sync delay 194, resyncs 0/0, no step interrupt scheduled
VIN voltage: min 24.0, current 24.1, max 24.3
V12 voltage: min 12.2, current 12.2, max 12.2
MCU temperature: min 29.6C, current 36.1C, max 36.1C
Last sensors broadcast 0x00000000 found 0 52 ticks ago, 0 ordering errs, loop time 0
CAN messages queued 3002, send timeouts 0, received 1896, lost 0, free buffers 37, min 37, error reg 0
dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 302, adv 37072/37189But the problem is still the same, the encoder is not calibrated on the axis where the driver is at address 61. When Ireplace it with any other driver, it calibrates without any problems.
-
@Kiryl so replacing the 1HLC with another 1HLC, the same motor calibrates ok?
-
@jay_s_uk Yes
-
-
@jay_s_uk Does that mean I have to write to them or just wait for them to respond?
-
@Kiryl wait for them to respond