@jay_s_uk ah, ok fine thanks, I will try using that names, so it seems the name of the warning or error is the name of the .g file that is executed
Posts made by abraxas
-
RE: Immediate Step Skipping Correction - closed / assisted open loop
-
RE: Immediate Step Skipping Correction - closed / assisted open loop
@jay_s_uk ok thank you
The problem after skipping steps is: The triggered driver-warning reacts like this: "Inform user via console and continue" In this form:
Warning: Driver 112.0 warning: position tolerance exceeded
And it just prints on, with lost steps in wrong position, ruining the part. But it does not call a macro like "correct_lost_steps.g" or "retry_last_move_from_lost_step_position.g" and continue afterwards.
How do I make the warning call a macro?
Is there already code examples for the above named macros? -
RE: Immediate Step Skipping Correction - closed / assisted open loop
This image taken from assisted open loop shows what can happen when skipping steps:
The red arrow indicates, where we would want to be after the move.
-
Immediate Step Skipping Correction - closed / assisted open loop
Where do I find the command to immediately correct for the skipped steps?
In (say) one in a Million moves my printer looses steps "preferably" in a 3 day print. - Costly, delaying, unreliable and annoying.
- To prevent that I bought some different closed loop motors. Trying them out I still can not make the PID controlled closed loop perform as well as in open loop. So I am eagerly waiting for the Troubleshooting for the "Duet_3_1HCL_tuning" "Coming Soon!" since months. Maybe that is not coming so soon, as the manual PID tuning is very complex.
Ok. So what is the EASY WAY? >> Immediate step skipping correction. - not complex and very rewarding.
As I did not find an immediate step skipping correction command, neither for assisted open loop nor for closed loop I will argue for it.
What would the algorithm need to do?
The software already measures steps in assisted open loop or in closed loop. After exceeding a threshold of lost steps a subroutine is started. (maybe only after the lost step move has finished) That subroutine would just retry the last move with the lost steps, ideally from the position, where the steps were lost. Optionally the subroutine tries the move with only half the speeds and accelerations. If the loosing steps happens again in the same move, maybe there is something in the printing path and the print is paused.Benefits:
If the correction works, there is hardly any time, material, reliability and manpower lost. Even the print quality maybe unaffected. The programming effort for the Immediate step correction feature would be way less than for PID tuning and it would still be a good improvement even with a well working PID tuning.What do you think?
-
RE: closed loop calibration threshold threats dual motor axis ripoff
@abraxas said in closed loop calibration threshold threats dual motor axis ripoff:
if result = 2
M569 P113.0 D3 ; Switch Axis 112.0 back to (open loop mode)=D3
abort "Y-Axis (#113=Far) backlash threshold overshot, closed loop is not available today"In above code the indentation was not visible, so the correct version would be:
if result = 2 M569 P113.0 D3 ; Switch Axis 112.0 back to (open loop mode)=D3 abort "Y-Axis (#113=Far) backlash threshold overshot, closed loop is not available today"
-
RE: Forum account confirmation email not being sent
To be complete: The solution was using my different email address.
So it was a problem with the email provider of the first email address tested.
-
RE: closed loop calibration threshold threats dual motor axis ripoff
@dc42 Now, for being able to go into closed loop, only the two other (initial) questions are open:
"1) Can you provide means to alter the threshold of 0.22 for the closed loop calibration manoeuvre?
"3) Can you provide the variable name for the backlash_value for being able to assigning a value rather than actually needing to do the calibration manoeuvre? -
RE: closed loop calibration threshold threats dual motor axis ripoff
@dc42 Thank you, using result = 2 helps with aborting going into closed loop, the following code seems to work well:
; P113.0 is the driver address (Y_Right (far)) to tune
M569 P113.0 D4 ; Switch Axis 113.0 to (closed loop mode)=D4 / D5=Assisted open loop
M569.6 P113.0 V1 ; Perform the calibration manoeuvre for a quadrature shaft encoder; Calibration manoeuvre error code - aborts closed loop if error message is produced
if result = 2
M569 P113.0 D3 ; Switch Axis 112.0 back to (open loop mode)=D3
abort "Y-Axis (#113=Far) backlash threshold overshot, closed loop is not available today"... so the axis breakaway is prevented.
Increasing the motor current temporarily (above the rated current) to be able to go into closed loop
every time the printer is homing - so every time a print is started, is not an option. -
closed loop calibration threshold threats dual motor axis ripoff
Can you provide means to alter the threshold of 0.22 for the closed loop calibration manoeuvre?
In case that manoeuvre produces an error message:- can you provide the variable name for the calibration_error for coding (like: if Cal_error = true ...)?
- +can you provide the variable name for the backlash_value for being able to assigning a value
rather than actually needing to do the calibration manoeuvre?
Background:
When doing the calibration manoeuvre for my dual motor axis I get the following error and warning messages:
26.7.2024, 14:32:27 Error: Driver 113.0 basic tuning failed, measured backlash (0.235 step) is too high
26.7.2024, 14:32:26 M98 P"0:/macros/Vorsicht makros/Closed_Loop_Single_Axis_Ends_Y-direction"
Warning: Driver 111.0 basic tuning succeeded but measured backlash (0.213 step) is highAfterwards, when doing controlled movements with the axis only one end of the axis is moving. (The one with the warning, the one with the error message is not moving.)
So this is threatening a breakaway of the axis. It is not really an option to remove the belts from the two x-axes motors and the two y-axes motors every time I want to do homing. It wouldn't even be if I had only one closed loop motor...
FIRMWARE_VERSION: 3.5.1 ELECTRONICS: Duet 3 MB6XD v1.0 FIRMWARE_DATE: 2024-04-19 14:39:48
Hardware: Duet 3 mainboard 6XD + 4 * Duet 3 expansion 1HCLAll Questions answers would give me good control over the calibration manoeuvre .
Partial answers would at least enable me to start working.An additional suggestion:
In the code example in the "What do I need to do?" section of:
https://docs.duet3d.com/User_manual/Tuning/Duet_3_1HCL_tuningI would suggest changing the line:
G1 X50 F3000 ; Move to a known-safe position
to:
G1 X10 F3000 ; Move to a known-safe positionas 10mm would work for most calibration manoeuvres but not rip off the axis, when trying to move to the endstops again.
-
RE: Duet 3 Motor 23 CL torque curve
btw: "1,26kg/cm" as a holding torque found via above link is not a valid torque unit
if we assume "1,26kg*cm" at 9,81N/kg is meant, then this value translates to a valid torque of 1,236Nm.
-
Forum account confirmation email not being sent
I'd really like to confirm my email for account verification. I checked the spelling, my inbox and spam multiple times.
The forum account confirmation email seems to not being sent to me.
-
Duet 3 Motor 23 CL torque curve
I am constructing a custom 3D printer. Please provide a
torque curve (torque at different speeds)
for the Duet 3 Motor 23 CL to check if that one is suitable.
https://docs.duet3d.com/en/Duet3D_hardware/Duet_3_family/Duet_3_Motor_23CL
I did not find any via the above link.
-
Dual motor axis end stop woes -> Bug report
Using the config tool I found out a Bug that can produce serious damage when homing:
When defining endstops like this (on four 1HCL Ports):
Axis Driver Endstop Type Endstop Port Endstop Location Homing Speeds
X 112.0 Switch 112.io0.in Low end 10/5 mm/s
X 114.0 112.io1.in
Y 111.0 Switch 111.io0.in Low end 10/5 mm/s
Y 113.0 114.io0.inthe tool produces this code:
M574 X1 P"112.io0.in+io1.in" S1 ; configure X axis endstop
M574 Y1 P"111.io0.in+io0.in" S1 ; configure Y axis endstopThat produces a homing sequence moving only one end of the X Axis and one end of the Y Axis. The working code is:
M574 X1 P"112.io0.in+112.io1.in" S1 ; configure X axis endstop
M574 Y1 P"111.io0.in+114.io0.in" S1 ; configure Y axis endstopI hope that helps someone, best, Felix