Moving a Z on a duet wifi
-
@zbeeble At this point, I don't know. I bought two different but identical to each other steppers. Nice ones. https://www.amazon.ca/gp/product/B06ZYQNBFR ... in case you want to have a look at it.
Same behaviour. I don't know what I should look at. All these motors run as a single motor just fine.
-
Can you post some photos of the board and connector? both sides?
If each motor works fine individually on the Z driver when the jumper is placed on the second connector, but has problems with both motors are connected to the board in series, perhaps there is a problem with the second connector.
-
@phaedrux said in Moving a Z on a duet wifi:
Can you post some photos of the board and connector? both sides?
If each motor works fine individually on the Z driver when the jumper is placed on the second connector, but has problems with both motors are connected to the board in series, perhaps there is a problem with the second connector.
I was starting to wonder if I should be looking at the board. This board is old ... BTW. Bought quite a few years ago. Here's a next cloud pic. I included some pics of the y-endstop connector --- it's been flaky too (and I replaced the wire). It's almost like I should suspect the y-endstop is a loose solder joint.
https://v4.nextcloud.towernet.ca/s/aHyJDfB959RkYmZ
Those are 4k x 3k pics. You might have to download them to get full resolution. I also have RAW files.
-
I don't see any visible reason the connector wouldn't work. Usually if there were a problem with a driver it would generate an error message.
Can you capture a video of a simple bench setup with two motors connected to the Z driver ports and send a command to move them like G1 H2 Z10 F200. Also show us your config and give us the motor specs for what you're trying.
-
OK. Finally a bit of progress. Here is a portion of my current config.g
; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X100.00 Y100.00 Z5104.00 E666.00 ; set steps per mm M566 X450.00 Y450.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z100.00 E1200.00 ; set maximum speeds (mm/min) M201 X250.00 Y250.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout
I was doing what you said ... and finding that even in the dual-Z configuration, the motors were moving when I used the move .5mm command. However, when I then asked for a home, one motor would move. OK. So ... the M203 was set Z180.00. I lowered the M203 to Z100.00 and homing is fine (allbeit slow).
The new motor had this card in the package: https://v4.nextcloud.towernet.ca/s/9cN2tJJdfzWCtfT
... I'm assuming here that this is max current 2A... so with the 80% rule, I should be able to set Z1600 in M906 --- or, can I raise that a bit --- and if so, what sort of max speed should I set (or should I twiddle the acceleration value)?
-
Post your homing file and your full config.g
5104 is an odd looking steps per mm for Z. What kind of a Z axis arrangement is it?
80% of 2000ma seems reasonable place to start.
Did you try a longer G1 Z move than just 0.5mm?
What feed rate did you use? What feed rate does the homing file use?
-
@phaedrux said in Moving a Z on a duet wifi:
Post your homing file and your full config.g
(note that this has the max Z at 100 mm/min, not the 180 that was failing)
; Configuration file for Duet WiFi (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.11 on Sat Jul 30 2022 14:43:31 GMT-0400 (Eastern Daylight Saving Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"The A-Frame" ; set printer name ; Network M551 P"averynicepasswordindeed" ; set password M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S0 ; physical drive 1 goes backwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X100.00 Y100.00 Z5104.00 E666.00 ; set steps per mm M566 X450.00 Y450.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z100.00 E1200.00 ; set maximum speeds (mm/min) M201 X250.00 Y250.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X230 Y210 Z200 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"!ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop ; M574 Z1 S1 P"!zstop" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop M574 Z1 S2 ; Z-Probe ; M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed ; M557 X15:215 Y15:195 S20 ; define mesh grid M950 S0 C"exp.heater3" ; Duet 2 WiFi/Ethernet M558 P9 C"^zprobe.in" H5 F120 T6000 ; Duet 2 WiFi/Ethernet, DueX2/5 G31 P25 X35 Y0 Z1.1 M557 X35:185 Y15:185 S20 ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 ; M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M307 H0 R0.291 K0.301:0.000 D3.50 E1.35 S1.00 B0 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 ; M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; M307 H1 R2.207 K0.479:0.004 D5.47 E1.35 S1.00 B0 V11.9 ; M307 H1 R2.187 K0.828:0.000 D4.46 E1.35 S1.00 B0 V11.9 M307 H1 R1.947 K0.473:0.002 D4.81 E1.35 S1.00 B0 V11.9 M143 H1 S300 ; set temperature limit for heater 1 to 300C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H0:1 T45 ; set fan 0 value. Thermostatic control is turned on M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S0 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined
This is the homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.12 on Fri Aug 05 2022 18:02:19 GMT-0400 (Eastern Daylight Saving Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-235 Y-215 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X5 Y5 F6000 ; go back a few mm G1 H1 X-235 Y-215 F360 ; move slowly to X and Y axis endstops once more (second pass) G90 ; absolute positioning G1 X-20 Y15 F6000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z5 F100 ; lift Z relative to current position ;G90 ; absolute positioning
5104 is an odd looking steps per mm for Z. What kind of a Z axis arrangement is it?
The stepper motors turn threaded rod which move through a spaced pair of nuts to raise an lower the bed. Think roughly a mendel design.
80% of 2000ma seems reasonable place to start.
So your advice is 1600? Will 1600 support 180 mm/min in this config with that motor?
Did you try a longer G1 Z move than just 0.5mm?
No, but I did several in a row.
What feed rate did you use? What feed rate does the homing file use?
I just used the button on the dashboard page. I don't know what feed rate it uses --- but I assume the "max" since it slowed down.
-
@zbeeble said in Moving a Z on a duet wifi:
The stepper motors turn threaded rod which move through a spaced pair of nuts to raise an lower the bed. Think roughly a mendel design.
Are you getting binding there?
Have you tried the two motors disconnected from the actual Z axis? I think I suggested that several days ago.
-
@phaedrux said in Moving a Z on a duet wifi:
@zbeeble said in Moving a Z on a duet wifi:
The stepper motors turn threaded rod which move through a spaced pair of nuts to raise an lower the bed. Think roughly a mendel design.
Are you getting binding there?
Have you tried the two motors disconnected from the actual Z axis? I think I suggested that several days ago.
I haven't tried them turning freely. I'm pretty sure this means that the shafts turn somewhat unequally. I don't have a sensitive torque measurement tool, but the turning force is very close by touch. As-I-said earlier, I detected one was a little harder to turn earlier and I corrected some geometry (the bottom clamp on the smooth rod of the configuration was inboard by a couple milimeters). Now the "feel" of the turn is the same to the accuracy I can detect with my hands.
Let's go at this another way. I have a bltouch now. It's 35 milimeters x positive from my extruder and 1.1 mm Z positive. Certainly, I can't home the two Zed's independantly, but is there code to handle the two zeds separately with a bltouch as the level sensing device?
-
@zbeeble said in Moving a Z on a duet wifi:
is there code to handle the two zeds separately with a bltouch as the level sensing device?
Yes of course.
https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_auto_levelling
You still have to home the Z axis as a whole first, but then you can adjust the position of the two motors independently. However, to do this, each z motor requires its own driver. It can't be done with the single Z driver with the series connectors.
-
@phaedrux said in Moving a Z on a duet wifi:
@zbeeble said in Moving a Z on a duet wifi:
is there code to handle the two zeds separately with a bltouch as the level sensing device?
Yes of course.
https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_auto_levelling
You still have to home the Z axis as a whole first, but then you can adjust the position of the two motors independently. However, to do this, each z motor requires its own driver. It can't be done with the single Z driver with the series connectors.
OK ... cool. Still doesn't exactly answer how to do the initial homing with the bltouch... or does that just happen with a standard "G30" ?
-
-
I've done further experimentation --- mostly on the combined motors. It would seem that the speed 180 is unobtainable in my setup --- I've increased the motor current to 100% (2000 or 2A).
In my testing, with the two motors on the two Z connectors, 100 or 120 performs properly, but 180 exhibits the one motor running, other motor stalling behaviour.
My questions:
- Are there much stricter limits on the difference in movement torque required of motors bonded in this way?
- Is there a difference in this requirement with parallel vs. serial arrangement?
-
I wonder if it's your very high steps per mm value for Z. Can you send M122 after you've commanded some faster and longer movements on Z? I'm wondering if you're getting any hiccups.
-
Thank-you for your patience. I believe I have resolved the issue... with a combination of your thoughts and my experimentation (as it should be). For posterity, here's wazzup.
BACKGROUND
The printer in question was built (originally) mid-2014 ... and with Chinese electronics. It was noisy and it ran hot. It's largely a Mendel from reprap.org ... combining some of the Prussia Mendel with some ideas from the Reprap-Pro Mendel and some custom changes suggested by the helpful fellow who printed the initial printed pieces for me (among them, a fine herringbone main gear set).
This I upgraded ~2016 or so --- the duet2wifi was a "new thing" when I did this, if that helps nail down the timeframe. I swapped the Chinese electronics for the duet2wifi, I added a heated and magnetic bed and I made minor improvements in the geometry.
This printer eventually choked on some filament and I didn't get around to fixing it until just recently. I have been collecting supplies to make something with the e3d tool changer (but different), but I haven't started assembly yet.
THIS ITERATION
So I started this iteration to improve a few things... one of the most major: add a BLTouch to the system. I ended up learning first that I had some really sub-optimal motors in play --- that only took 0.4A of max current (for X, Y and E0). I replaced these with 1.5A motors. Seriously, the documentation about selecting motors is good (although I found utube about parallel and serial that seemed to explain that better) ... but I'm relatively sure it wasn't available when I first did this.
After the upgrades, I found the print occasionally getting out of square. The pair of Z-axis motors were 2.4A beasts --- and so I hadn't replaced them in the first go round, but motors are pretty cheap ... so I ordered some more of the 1.5A ones. Then my Z-Axis problems got worse.
THE SCALE PROBLEM
So... here-we-are. The problem. Have you guessed yet? I think Phaedrux was dancing around it above. The original pair of Z-Axis motors were 0.9 degree motors. It would seem it is much harder to drive these fast. This is why the motor multiplier was 5104. I discovered this because after configuring my new motors to move more slowly, my "test cube" was 20x20x40 (and having trouble with layer adhesion).
Of course lightbulbs immediately lit (I didn't actually finish printing the cube --- I got to around 50% --- where it was 20cm-ish high ... and noted that it was only 50% finished and stopped the print). I cleared the bed and reached for the caliper --- 10 cm of commanded movement ... 20 cm of actual movement. Hrmmm.
This is the point I realized the situation. So I changed the multiplier to 2552 and adjusted the speed of that axis to 300mm/min (150 was working for the old config, so it made sense. 180 wasn't). I re-printed my test-cube. (If anyone's curious, with a nod to Star Trek's "Transport Test Cube", I have a 20mm cube that I use for testing the printer).