Issues configuring firmware
-
I'm configuring a CoreXY 3D printer with an accessory that runs additional axes. (First time configuring a Duet build). Running RRF 3.5.0 RC1 as I will need some of the features there.
Using Duet 3 Mini 5+ with the 2 stepper expansion board, 3HC expansion, and toolboard. So far the heated beds work (4 zones), the extruder works (toolboard), X and Y axes work and are homing (endstop switches).
I could use some help fixing the following issues:
1. I can't get the sensorless homing to work on the Z axis (bed moves on Z via belts and small geared motors). It reaches the end and keeps going trying to move past. I have 3 independent motors connected to ports 0,1,2. I want to home at the bottom. See end of config below.
M569 P0.0 S0 M569 P0.1 S0 M569 P0.2 S1 M584 X1.0 Y1.1 Z0.0:0.1:0.2 E121.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z800.00 E710.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X36000.00 Y36000.00 Z3600.00 E1800.00 ; set maximum speeds (mm/min) M201 X2000.00 Y2000.00 Z300.00 E2000.00 ; set accelerations (mm/s^2) M906 X2000 Y2000 Z600 E600 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; stall detection M915 P0.0 S0 R1 H400 M915 P0.1 S0 R1 H400 M915 P0.2 S0 R1 H400 ; axis limits M208 X-3 Y0 Z0 S1 ; set axis minima M208 X370 Y400 Z382 S0 ; set axis maxima
For homing I call G1 H1 Z100 F3600.
I tried M915 P0.x S0 alone, even tried S-50 which is super sensitive and it still fails to trigger. I understand that R1 should log the event, but am not sure where it would get logged. Also tried setting a low motor current to 200mA. Running out of ideas to try.2. I cannot home a custom axis. I have an axis called W on an accessory. I can move the axis with G1 Wxx command. There is an endstop switch. I'd like to home that axis using the switch and I can't figure out how. I have the config below and am not sure the last line is allowed:
M569 P0.6 S0 M584 U0.5 V0.3:0.4 W0.6 ; set drive mapping M350 U16 V16 W16 I1 ; configure microstepping with interpolation M92 U160 V160 W36 ; set steps per mm M566 U600 V600 W600 ; set maximum instantaneous speed changes (mm/min) M203 U24000 V12000 W12000 ; set maximum speeds (mm/min) M201 U2000 V2000 W300 ; set accelerations (mm/s^2) M906 U1000 V1000 W1000 ; set motor currents (mA) and motor idle factor in per cent M208 U0 V0 W-90 S1 ; set axis minima M208 U550 V550 W90 S0 ; set axis maxima M574 W2 S1 P"^1.io2.in" ; configure switch-type (e.g. microswitch) endstop
Last line is exactly the same format as the ones for the X and Y endstop switches (M574 X1 S1 P"^1.io0.in").
I tried homing with something like G1 H2 W200 F360 but it reaches the endstop and keeps trying to move past. I did check the endstop wiring.
Looking at the documentation, the last line in the code above might not be allowed. M572 specifies parameters X, Y, Z, P, S, K. There's no mention of custom axes such as W. What is the best way to home a custom axis?
Additionally, I have other custom axes (U and V) which will require sensorless homing, but am hoping to fix the sensorless homing on the Z first.3. Ideal mesh leveling probe configuration. I have a custom probe, similar in concept to the Klicky probe. Basically a microswitch that attaches via magnets to the underside of the extruder. I can load/unload(park) it. The probe triggers about 14.5mm below the nozzle Z height. I got it working by calling code below after loading the probe:
G0 Z16 M557 X10:360 Y0:350 S70 G29 S0
(I manually "homed" the Z axis so it sort of knows where it is roughly).
However, I read in the documentation that I should first establish a Z=0 datum first. So I ran the code:G0 Z16 ; lower bed G0 X182 Y182 F36000 M98 P"/macros/probe-load.g" G0 X182 Y182 F36000 G30 ; Establish a Z=0 datum G31 P500 X0 Y22.5 Z2 M557 X10:360 Y0:350 S70 G29 S0
If I do that, the mesh probing starts at a very high position (~15-20mm above the bed) and slowly moves the bed until it touches. It does this for every probing point. It takes forever! I with it used the Z2 probing distance as instructed.
I'm not sure how to improve this. I could skip the Z=0 datum, but I feel like there should be a better way.I'm also starting toying with G30 S3 (as I run independent motors and kinematic coupled bed) but wanted to finish fixing the homing first.
Cheers!
-
I'm guessing that the geared nature of the motors (they are steppers correct?) is causing a problem. But it's just a guess. I installed 3 micro-switches on adjustable mounts for my three Z stepper printer. A little work but simple and reliable. Stall detection can be a little problematic.
If you know how to home the X and Y axes you know how to home W. It's just the same. G1 H2 is not what you want. G1 H1 is for homing.
As to setting the Z=0 Datum:
You have a G30, which does the probing for setting Z=0, before the G31 which configures the probe. I don't think that is going to work.
Before you start trying to use G29 you should be sure that G30 sets Z=0 correctly.
If G30 seems to probe OK then you carefully jog the Z axis until the extruder nozzle (remove the probe first of course) just touches the bed and see if the DWC Dashboard reports Z=0.
If it does report Z=0 the probe trigger height is set correctly. If it does not, tweak the trigger height parameter in G31 and then run the test above again. Repeat as needed.
You do not want to skip setting the Z=0 Datum. Do it before creating the height map. Do it before loading the height map. Do it before starting a print if you don't load the height map.
Get back to me if you cannot get things sorted.
Frederick
-
@fcwilt thanks for the answer.
I solved the extra axis endstop homing. On Z probing I'll have to read more documentation first.
Sensorless homing still not working.
I have 3 axes running 3, 2, and 1 motor respectively. Sensorless homing is not working for any of them. The last two use Nema17 motors, not geared. They are all connected to the Mini 5+ board, two via the small TMC expansion board.
Here's the relevant config for one of the axes (U) running just one motor:config.g
M569 P0.5 S1 M584 U0.5 M350 U16 I1 M92 U160 M566 U600 M203 U24000 M201 U2000 M906 U800 M915 P5 S-120 R0 ; I set the sensitivity abnormally low and it still doesn't trigger. Also fails for S0 M208 U0 S1 ; set axis minima M208 U550 S0 ; set axis maxima M574 U1 S3 ; sensorless endstop
homeu.g
G91 G1 H2 U10 F6000 G1 H1 U-30 F1800 ; moving just a little bit for testing (axis starts in the homed position anyways) G92 U0
-
I've tried sensor-less homing a few times and have always given up and installed endstop micro-switches.
Frederick
-
@fcwilt the thing is I'd like to avoid adding 6 more switches and wires. Plus, two of the axes home at the far end from the motor position, so not even the same wire path. I used sensorless homing in Marlin on various printers. It shouldn't be hard to configure.
-
I wonder if it has something to do with the 3.5.0 RC1 firmware. I'll try a more stable version.
-
@MihaiDesigns said in Issues configuring firmware:
I wonder if it has something to do with the 3.5.0 RC1 firmware. I'll try a more stable version.
Maybe so.
I simply don't use BETA or RC firmware. I let the "brave" folks do that.
I understand about running the wires - but that is something you only do once - and it leads to more tranquil homing.
Good luck.
Frederick
-
@fcwilt thank you!
-
I tested firmware version 3.4.6 (updated all boards) and sensorless homing is still not working. I suspect I have an error in my configuration but can't figure out what it is.
-
@MihaiDesigns said in Issues configuring firmware:
I tested firmware version 3.4.6 (updated all boards) and sensorless homing is still not working. I suspect I have an error in my configuration but can't figure out what it is.
Instead of using P in the M915 try using the actual drive letter X, Y, Z, etc.
And be sure the desired endstops, for each axis, are set for "stall" type.
Frederick
-
Update: I got sensorless homing working on all 3 axes.
Someone suggested adjusting stealthchop/spreadcycle like this: M569 P0.3 V40 D3 and it fixed one of the axes. For the Z axis with small motors I had to go back and forth with stall sensitivity and speed. Same for the remaining axis, basically trying random speeds and sensitivities until it worked. It took a while, but it worked eventually.@fcwilt thanks for the help.
Still got that probing offset thing to fix, but that's tomorrow.
-
You have more patience then I. As you well know micro-switch endstops don't need that kind of tweaking.
Good job.
Frederick
-
@MihaiDesigns I can already see the expression on your face when you talk about this in an upcoming video ^^
Some time ago I also configured sensorless homing for XY on a coreXY. After after a while I had it dialed in quite nicely. Then the next day it didn't work at all (I haven't changed any settings). Turns out some gcode I ran adjusted the travel acceration, and with the higher acceleration the sensorless homing would give me false positives. So maybe reduce your accelerations for the duration of the homing sequence?
-
@nikscha more current versions of RRF use the acceleration set in M201.1 for special moves including homing moves so your issue shouldn't apply anymore.
-
@oliof thank you, that's very useful to know!