M23cl config issues
-
@GillesDB said in M23cl config issues:
RepRapFirmware for Duet 3 MB6HC version 3.4.1
You're not even up to date on the stable branch (3.4.6).
You'd need to switch the Pi to the unstable branch to get 3.5 RC3
https://docs.duet3d.com/User_manual/Machine_configuration/DSF_RPi#switch-to-unstable-packages
-
@Phaedrux Thanks, I'm sure this will do the trick.
-
@Phaedrux @jay_s_uk
I believe I've successfully upgraded the firmware:Product Short Name Version Duet 3 MB6HC MB6HC 3.5.0-rc.3 Duet 3 Expansion M23CL M23CL 3.5.0-rc.1+ Duet 3 Expansion M23CL M23CL 3.5.0-rc.1+ Duet 3 Expansion M23CL M23CL 3.5.0-rc.1+ Duet 3 Expansion M23CL M23CL 3.5.0-rc.1+ Duet Software Framework DSF 3.5.0-rc.3 Duet Web Control DWC 3.5.0-rc.3
However, I'm getting the same results as before. I've added one fresh from the box under a new address to verify and it also gives the same errors.
When I run the following config:
; executed by the firmware on start-up G4 S2 ;wait for expansion boards to start ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"conveyor" ; set printer name M669 K0 ; printer mode M569.1 P71.0 T3 E2:4 R100 I0 D0 ; Configure the M23CL at CAN address 70 M569.1 P72.0 T3 E2:4 R100 I0 D0 ; Configure the M23CL at CAN address 71 M569 P71.0 D4 S1 ; Set into closed-loop drive mode (D4) and not reversed (S1) M569 P72.0 D4 S1 ; Set into closed-loop drive mode (D4) and not reversed (S1) M584 X71.0 Y72.0 ; set X and Y drivers M350 X32 Y32 ; set steps/mm to 32 for open loop mode operation M92 X160 Y160 ; steps/mm for a 20 tooth gt2 pulley for open loop operation
The error is:
M569.6 P71.0 V2 Error: M569.6: Driver is not enabled
And without any config for the M23CL's.
config:; executed by the firmware on start-up G4 S2 ;wait for expansion boards to start ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"conveyor" ; set printer name M669 K0 ; printer mode
Error:
M569.6 P73.0 V2 Error: M569.6: no encoder configured
For as far as I can tell the M23CL's can't be updated to run RC.3 based on the following feedback from terminal.
pi@conveyor:~ $ sudo rm -f /etc/apt/sources.list.d/duet3d.list pi@conveyor:~ $ sudo bash -c "echo 'deb https://pkg.duet3d.com/ unstable armv7' > /etc/apt/sources.list.d/duet3d-unstable.list" pi@conveyor:~ $ sudo apt update Hit:1 http://archive.raspberrypi.org/debian buster InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease Hit:3 https://pkg.duet3d.com unstable InRelease Reading package lists... Done Building dependency tree Reading state information... Done All packages are up to date. pi@conveyor:~ $ sudo apt dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. pi@conveyor:~ $
Any help would be greatly appreciated.
-
@GillesDB What is reported when you send
M122 B71
? Please post the full response.To update the motors to rc3, make sure the "Duet3Firmware_M23CL.bin" from https://github.com/Duet3D/RepRapFirmware/releases/tag/3.5.0-rc.3 is uploaded. If it doesn't prompt to update when uploaded, send
M997 B71
, and repeat for the CAN addresses of the other motors.I'm not sure if there is an order dependency for the M569.1 commands. They may need to go after the M569 commands.
Ian
-
@droftarts Thank you for your reply.
Here is the full reply on "M122 B73" before attempting to update through the bin file you linked to.
M122 B73 Diagnostics for board 73: Duet M23CL firmware version 3.5.0-rc.1+ (2023-10-26 09:24:34) Bootloader ID: SAME5x bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 75428, free system stack 186 words Tasks: Move(3,nWait,0.0%,182) CLSend(3,nWait,0.0%,150) HEAT(2,nWait,0.0%,120) CanAsync(5,nWait,0.0%,67) CanRecv(3,nWait,0.0%,80) CanClock(5,nWait,0.0%,70) TMC(2,nWait,20.2%,359) MAIN(1,running,77.5%,399) IDLE(0,ready,0.0%,40) AIN(2,nWait,2.2%,265), total 100.0% Last reset 00:05:14 ago, cause: power up Last software reset data not available Driver 0: pos 0, 80.0 steps/mm, standstill, SG min 0, mspos 8, reads 63748, writes 12 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -7/3, peak Rx sync delay 184, resyncs 0/0, next timer interrupt due in 12 ticks, enabled, next step interrupt due in 4059135798 ticks, disabled VIN voltage: min 48.2, current 48.2, max 48.2 V12 voltage: min 12.0, current 12.0, max 12.0 MCU temperature: min 20.1C, current 23.6C, max 23.6C Last sensors broadcast 0x00000000 found 0 197 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 2535, send timeouts 0, received 1581, 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 0 Closed loop driver 0 mode: open loop, pre-error threshold: 2.00, error threshold: 4.00, encoder type none
I downloaded the M23CL bin file and uploaded it in the system files which prompted an update on the M23CL that was connected at that time. It seems succesfull and displays in the machine specific info:
Electronics Diagnostics Product Short Name Version Duet 3 MB6HC MB6HC 3.5.0-rc.3 Duet 3 Expansion M23CL M23CL 3.5.0-rc.3 Duet Software Framework DSF 3.5.0-rc.3 Duet Web Control DWC 3.5.0-rc.3
For M23CL with CAN 73.0 which is not configured at all in the config file it still reads:
M569.6 P73.0 V2 Error: M569.6: no encoder configured
After reconnecting and updating 71.0 and 72.0 and running them with the same config file as before which was taken from the example in the documentation. I get popups in the DWC that say:
"Event notification
Driver 71.0 error: failed to maintain position"
And the same for 72.0Upon trying to initiate the config for the M23CL I still get the same error:
M569.6 P71.0 V2 Error: M569.6: Driver is not enabled
Here is the full reply on M112 B71.0 after updating.
M122 B71.0 Diagnostics for board 71: Duet M23CL firmware version 3.5.0-rc.3 (2024-01-24 17:54:18) Bootloader ID: SAME5x bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 45192, free system stack 186 words Tasks: EncCal(1,nWait 6,0.0%,470) Move(3,nWait 7,0.0%,166) CLSend(3,nWait 6,0.0%,148) HEAT(2,nWait 6,0.1%,108) CanAsync(5,nWait 4,0.0%,67) CanRecv(3,nWait 1,0.0%,66) CanClock(5,nWait 1,0.0%,65) TMC(4,nWait 6,70.0%,326) MAIN(1,running,25.2%,266) IDLE(0,ready,0.0%,30) AIN(2,nWait 2,4.7%,255), total 100.0% Owned mutexes: Last reset 00:04:19 ago, cause: software Last software reset data not available Driver 0: pos 0, 160.0 steps/mm, failed to maintain position, SG min n/a, mspos 4, reads 14047, writes 31123 timeouts 0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter -6/3, peak Rx sync delay 190, resyncs 0/0, no timer interrupt scheduled VIN voltage: min 48.0, current 48.0, max 48.0 V12 voltage: min 12.0, current 12.0, max 12.0 MCU temperature: min 20.2C, current 21.1C, max 21.1C Last sensors broadcast 0x00000000 found 0 177 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 2100, send timeouts 0, received 1311, 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 0 Closed loop driver 0 mode: closed loop, pre-error threshold: 2.00, error threshold: 4.00, encoder type rotaryAS5047, position 1955 Encoder reverse polarity: no, full rotations 0, last angle 1957, minCorrection=-12.6, maxCorrection=18.3, agc 62, mag 4757, no error Tuning mode: 0, tuning error: 0, collecting data: no Control loop runtime (us): min=4, max=66, frequency (Hz): min=8928, max=14150
Since as in the example they are configured as X and Y it tried sending:
M564 H0
In order to move them without homing from the DWC. This allows me to move X and Y from the dashboard. When I do this I can see their location update in the status as well as it going from "idle" to "busy" but no movement in the steppers.
The whole system seems to be running the latest versions of firmware but the errors have not changed. I've followed all the steps from the documentation as far as I can tell but no success.
Not sure how to proceed from here, any help as always would be greatly appreciated. I'm most likely making a stupid mistake somewhere but the big question is where.
-
@GillesDB some of the errors you were seeing are likely because you updated the firmware on the M23CL motors but didn't restart the main board.
To avoid the "Driver not enabled" message when you send M569.6, do the following:
-
Map an axis motor to the driver using M584. You are probably doing this already in config.g; if not then you can temporarily map an axis to it. For example, if you don't already have a U axis you can send: M584 U71.0
-
Enable that axis motor using M17. For example: M17 U
Note, you only need to run M569.6 once on each M23CL, and you should run it with the motor loaded only lightly; so preferably disconnect the belts.
Regards David
-
-
@dc42 Hey David, thank you for your reply.
I'm working on a test setup, there is no load on any of the steppers and the config file is empty except for the bare minimum and whatever it told me to add in the documentation.
I've just added 70.0 with an almost empty config as you described and when I run "M564 H0" I can indeed move the stepper which is a first. However when I try to run the M569.6 command it still gives me an error. I'm aware I only have to run it once but can't seem to get it working.
08/04/2024, 14:43:52 M569.6 P70.0 V2 Error: M569.6: no encoder configured 08/04/2024, 14:43:16 M17 U 08/04/2024, 14:43:04 M584 U70.0 08/04/2024, 14:42:40 Connection established
I then shut down and connected 70.0 and 71.0 and ran the config settings as in the documentation.
Config:
G4 S2 ;wait for expansion boards to start ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"conveyor" ; set printer name M669 K0 ; printer mode M569.1 P70.0 T3 E2:4 R100 I0 D0 ; Configure the M23CL at CAN address 70 M569.1 P71.0 T3 E2:4 R100 I0 D0 ; Configure the M23CL at CAN address 71 M569 P70.0 D4 S1 ; Set into closed-loop drive mode (D4) and not reversed (S1) M569 P71.0 D4 S1 ; Set into closed-loop drive mode (D4) and not reversed (S1) M584 X70.0 Y71.0 ; set X and Y drivers M350 X32 Y32 ; set steps/mm to 32 for open loop mode operation M92 X160 Y160 ; steps/mm for a 20 tooth gt2 pulley for open loop operation
And I get new errors on both.
console:08/04/2024, 15:41:18 Warning: Driver 71.0 warning: failed to maintain position, tuning/calibration failed 08/04/2024, 15:41:18 M569.6 P71.0 V2 Error: M569.6: Driver 71.0 calibration failed, the measured motion was less than expected, measured counts/step is about 0.0 08/04/2024, 15:40:40 Warning: Driver 70.0 warning: tuning/calibration failed 08/04/2024, 15:40:40 M569.6 P70.0 V2 Error: M569.6: Driver 70.0 calibration failed, the measured motion was less than expected, measured counts/step is about 0.0 08/04/2024, 15:40:11 M17 08/04/2024, 15:39:01 Connection established
With these config settings, I can no longer get the steppers to move either.
Another strange thing is also that I get an error as a popup for 71.0 but not for 70.0 even though they have the same settings upon startup.
Event notification Driver 71.0 error: failed to maintain position``` code_text
Currently, 70.0 is one I ordered earlier and 71.0 is from a later batch that shipped directly from China. The older serial starts with 2311 and the newer ones start with 2403.
Could this have something to do with how I wired them or would they not respond well to M115 in that case either?
-
-
@GillesDB your main board appears to be running firmware version 3.4.1 which is not compatible with the M23CL. Please upgrade to firmware 3.5.0-rc.4 throughout. As you are running in SBC mode, you will need to switch your Duet3D package feed to the unstable feed.
-
I've finally gotten everything to work.
The issue all along must have been the star-shaped configuration of cables I had for the Can signal. The system had one distribution block and 2m cables to the steppers. As soon as I changed this to one 2m cable followed by t splitters, 30cm cables and a 120-ohm resistor at the end everything started working as expected.
Thanks for all the help and sorry for wasting your time.
-
@GillesDB I'm glad you got it working.
-