Yet Another - Voron 2.4/Duet Mini / Sensorless Homing SAGA
-
Voron 2.4 CoreXY
1.8* Stepper Online Motors
Manufacturer Part Number: 17HS19-2004S1
Motor Type: Bipolar Stepper
Step Angle: 1.8 deg
Holding Torque: 59Ncm(84oz.in)
Rated Current/phase: 2.0A
Voltage: 2.8V
Phase Resistance: 1.4ohms
Inductance: 3.0mH ± 20%(1KHz)Config.g voltages for X/Y [ A/B ] M906 X1400 Y1400
Ive done MOST testing on the Y Axis as it has been giving me fits and oddly needed different param settings to get it to work. But now its gone uber flaky. Ive taken the wiring apart now and am working on continuity testing all pertinent connections.
This is my homeY.g
;==================== ; homeY.g ;==================== ; called to home the Y axis ; M400 ; Wait for current moves to finish M569 P5 D3 V40 ; X -> B axis reduce V parameter so driver operates in stealthChop G4 P200 ; wait 200ms M569 P6 D3 V40 ; Y -> A axis reduce V parameter so driver operates in stealthChop G4 P200 ; wait 200ms M913 X60 Y60 ; drop motor current to 60% M915 X Y S-3 R0 F0 H200 ; Sensitivity -3 [ -64 --> 100 / no lower than -10 ], R - take no action, F - No filter, 200steps/sec G4 P200 ; wait 200ms G91 ; set relative G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 Y-350 F5000 ; [ First Pass ] move quickly to Y axis endstop and stop there G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 ; Wait for current moves to finish M913 X100 Y100 ; return current to 100% M569 P5 D2 V2000 ; Take driver out of StealthChop Mode M569 P6 D2 V2000 ; Take driver out of StealthChop Mode M915 S63 X Y R0 ; Disable Logging and lower stall detection
A/B/X/Y motors are on the 2 driver expansion board Drivers 5/6
Obvious question - whats wrong with this code ?
Also M569 syntax ... can I address the two drivers in one line of code M569 P5:6 ... blah .. ?
Do I still need to do the PAUSE in latest stable release of RRF3.3 - which is what I am on now
TIA for guidance ...
-
@sputnikoc3d I'm having the same issue with my mini5+. On one of my CoreXY printers, I'm running a Duet 3 6HC, and it performs very well during sensorless homing. My other CoreXY running a Mini 5+ is very temperamental during sensorless homing. Identical hardware other than the controller board. I feel like going full Office Space on that controller.
-
@sputnikoc3d said in Yet Another - Voron 2.4/Duet Mini / Sensorless Homing SAGA:
Also M569 syntax ... can I address the two drivers in one line of code M569 P5:6 ... blah .. ?
No, you need to use separate M569 commands.
Some things to note about using stall detection:
- For the TMC2209 drivers, they need to be in stealthChop mode (you've done that)
- For stealthChop mode to work, the driver needs to be tuned first. Tuning requires the motor to be energised (which you can do using M17 in RRF 3.3), then a short pause, then a medium speed move. The medium speed move could be the homing move - unless of course the print head or bed is very close to the homing switch. You could consider moving the head/bed 10mm away from the switch using a G1 H2 move at low current, followed by a short pause before you do the G1 H1 move.
- The "no lower than -10" bit doesn't apply to TMC2209
- Stall detection is more consistent at lower motor current and high speed. So try reducing motor current below 30%.
- When the motors are hot, stall detection sensitivity is increased. So if you run the motor hot, it may be impossible to find a sensitivity that works when the machine has just been turned on (motors cold) and also at the end of the print (motors hot).
-
@dc42 - Cheers amigo - Many thanks ... will work on the driver tuning moves as suggested.
Always appreciate the help.
-
Tried several aspects of your suggestions and several combo - cannot get it to work now. I did have it working last eve. But as you mention on cold start up - it false homes now. Or something ...
I've altered M913 from X30 Y30 ---> X70 Y70 - no joy.
M915 S parameter from -5 thru 2 - same results ...
Latest iteration:
;==================== ; homeX.g ;==================== ; called to home the X axis M400 ; Wait for current moves to finish M569 P5 D3 V10 ; X -> B axis reduce V parameter so driver operates in stealthChop M569 P6 D3 V10 ; Y -> A axis reduce V parameter so driver operates in stealthChop M913 X70 Y70 ; drop motor current to 60% M915 X Y S1 R0 F0 H200 ; Sensitivity -3 [-64 --> 64], R - take no action, F - No filter, 400steps/sec G91 ; set relative G1 H2 Z10 F6000 ; lift Z relative to current position G1 H2 X-10 F6000 ; Move Y away from possible end point - relative to current position G4 P200 ; wait 200ms G1 H1 X-350 F6000 ; [ First Pass ] move quickly to Y axis endstop and stop there G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 ; Wait for current moves to finish M913 X100 Y100 ; return current to 100% M569 P5 D2 V2000 ; Take driver out of StealthChop Mode M569 P5 D2 V2000 ; Take driver out of StealthChop Mode 915 S63 X Y R0 ; Disable Logging and lower stall detection
-
Now Im trying this ... any pointers - its working but still a bit fussy - dependent on where the toolhead is on the x/y axis' at the time Y is homed. Center of X is near 100% reliable [ X150 ] ... X0 ... not so much - especially on the little +10mm move
;==================== ; homeY.g ;==================== ; called to home the Y axis M400 ; Wait for current moves to finish M17 X Y ; Energize Motors X Y G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M569 P5 D3 V10 ; X -> B axis reduce V parameter so driver operates in stealthChop M569 P6 D3 V10 ; Y -> A axis reduce V parameter so driver operates in stealthChop M913 X60 Y60 ; drop motor current to 60% M915 X Y S5 R0 F0 H200 ; Sensitivity -3 [-64 --> 64], R - take no action, F - No filter, 400steps/sec G4 P200 ; wait 200ms G91 ; set relative G1 H2 Z10 F6000 ; lift Z relative to current position G1 H2 Y-10 F6000 ; Move Y away from possible end point - relative to current position G4 P200 ; wait 200ms G1 H1 Y-350 F4600 ; [ First Pass ] move quickly to Y axis endstop and stop there G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 ; Wait for current moves to finish M913 X100 Y100 ; return current to 100% M569 P5 D2 V2000 ; Take driver out of StealthChop Mode M569 P5 D2 V2000 ; Take driver out of StealthChop Mode 915 S63 X Y R0 ; Disable Logging and lower stall detection
-
@sputnikoc3d It's hard to tell from your files, but how do you have things setup for the position of X0? Is there any chance that it is in effect up against the endstop? Your Y home code does not seem to move away from the endstop for instance? I'm also a bit confused about your Y-10 move isn't that moving it towards your Y endstop (it seems so because you move in the same direction when homing), it may be better to move away fro that move.
-
@sputnikoc3d I suggest you reduce the motor current before you energise the motors and pause, because it may affect stealthChop tuning.
-
@gloomyandy - yes sir - u r correct - for the testing I was doing it was not important which direction it was moving - only that it was moving. Ive corrected. Loss of focus - changed now.
DC42 ...
;==================== ; homeX.g ;==================== ; called to home the X axis M400 ; Wait for current moves to finish M569 P5 D3 V10 ; X -> B axis reduce V parameter so driver operates in stealthChop M569 P6 D3 V10 ; Y -> A axis reduce V parameter so driver operates in stealthChop M913 X80 Y80 ; drop motor current to 80% G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M17 X Y ; Energize Motors X Y G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M915 X Y S-2 R0 F0 H200 ; Sensitivity -3 [-64 --> 64], R - take no action, F - No filter, 400steps/sec G4 P200 ; Pause for 200ms to let StealthChop do some sh!t G91 ; set relative G1 H2 Z10 F6000 ; lift Z relative to current position G1 H2 X10 F6000 ; Move X away from possible end point - relative to current position G4 P200 ; wait 200ms G1 H1 X-350 F5000 ; [ First Pass ] move quickly to X axis endstop and stop there ;G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 ; Wait for current moves to finish M913 X100 Y100 ; return current to 100% M569 P5 D2 V2000 ; Take driver out of StealthChop Mode M569 P5 D2 V2000 ; Take driver out of StealthChop Mode M915 S63 X Y R0 ; Disable Logging and lower stall detection
Im struggling to get away from false homes at motor currents below 60-80% of full power ??? 2A at 1600Mah settings in config.g baffling.
But the real mystery to me atm is the order of the commands and where to pause etc. This is not at all clear from docs and or this thread ... yet .
-
@dc42 TY sir.
Looks like I had several syntax errors that needed sorting M915 at the end. As well needed to arrange the codes at the starts in better order. Still not sure of all the pauses needed but it is now working. I had some G1 H1 / H2 commands wrong as well that gave bizarre behavior on a corexy x/y axis as one might imagine.
So posting up what worked for me w/ spec OMC 2A steppers - voron 2.4 300mm build Duet 3 Mini5+
;==================== ; homeX.g ;==================== ; called to home the X axis M400 ; Wait for current moves to finish M913 X60 Y60 ; drop motor current to 60% M569 P5 D3 V10 ; X -> B axis reduce V parameter so driver operates in stealthChop M569 P6 D3 V10 ; Y -> A axis reduce V parameter so driver operates in stealthChop ;G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M17 X Y ; Energize Motors X Y G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M915 X S-2 R0 F0 H200 ; Sensitivity -3 [-64 --> 64], R - take no action, F - No filter, 400steps/sec G4 P200 ; wait 200ms G91 ; set relative G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 X10 F6000 ; Move X away from possible end point - relative to current position G4 P200 ; wait 200ms G1 H1 X-350 F5000 ; [ First Pass ] move quickly to X axis endstop and stop there G90 ; absolute positioning M400 ; Wait for current moves to finish M913 X100 Y100 ; return current to 100% M569 P5 D2 ; Take driver out of StealthChop Mode M569 P6 D2 ; Take driver out of StealthChop Mode M915 X Y R0 ; Disable Logging and lower stall detection G1 H1 X150 F12000 ; Move X away from possible end point - relative to current position
;==================== ; homeY.g ;==================== ; called to home the Y axis M400 ; Wait for current moves to finish M913 X60 Y60 ; drop motor current to 60% M569 P5 D3 V10 ; X -> B axis reduce V parameter so driver operates in stealthChop M569 P6 D3 V10 ; Y -> A axis reduce V parameter so driver operates in stealthChop ;G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M17 X Y ; Energize Motors X Y G4 P200 ; Pause for 200ms to let StealthChop do some sh!t M915 X Y S1 R0 F0 H200 ; Sensitivity -3 [-64 --> 64], R - take no action, F - No filter, 400steps/sec G4 P200 ; wait 200ms G91 ; set relative G1 H2 Z10 F6000 ; lift Z relative to current position G1 H1 Y10 F6000 ; Move Y away from possible end point - relative to current position G4 P200 ; wait 200ms G1 H1 Y-350 F4000 ; [ First Pass ] move quickly to Y axis endstop and stop there G1 H2 Z-10 F6000 ; lower Z again G90 ; absolute positioning M400 ; Wait for current moves to finish M913 X100 Y100 ; return current to 100% M569 P5 D2 V2000 ; Take driver out of StealthChop Mode M569 P6 D2 V2000 ; Take driver out of StealthChop Mode M915 X Y R0 ; Disable Logging and lower stall detection
Thanks to all for their help - especially ctilley ... gracias C3