Dual Z-axis endstops
-
I expect to implement multiple Z homing switches in firmware 1.19. In the meantime I think you can achieve the same thing as follows:
1. Put this command in config.g:
M584 X0 Y1 Z2:3 U3 E4
This assigns your second Z motor (connected to the E0 motor output) to both the Z and U axes.
2. In your homez.g file, do this:
M584 Z2
G1 S1 Zxxx Uxxx
G92 Zxxx
M584 Z2:3This splits Z into the Z and U axes, homes them simultaneously, and then restores normal Z movement. Fill in the xxx values to suit your machine - see https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer#Homing_files.
3. Change the Z homing section of homeall.g to do the same.
4. Connect the second Z endstop switch (the one you use for the U motor) to the E0 endstop input.
Test the above carefully, with low motor current and a hand on the power switch, in case I have forgotten something.
-
Nice, will try if I can source another 12V step-down for my fans Then I'm ready to assemble the Bigbox.
-
Awesome! Should have my board on Monday. Once I've got it all working normally I'll give this a shot and report back.
Thank you!
-
A bit off topic but I also suggested to Tony about using Jira for tracking features and bugs which would make keeping track a breeze. It's FOC for open source and very powerful.
I love Atlassian tools, Jira makes it extremely easy to track bugs and features I have also used Confluence, Trello, and Hipchat. Great stuff for dev and test teams.
-
my board will be here today , I had to order express shipping so I can have it for the weekend
-
A bit off topic but I also suggested to Tony about using Jira for tracking features and bugs which would make keeping track a breeze. It's FOC for open source and very powerful.
I love Atlassian tools, Jira makes it extremely easy to track bugs and features I have also used Confluence, Trello, and Hipchat. Great stuff for dev and test teams.
wouldn't it be great to see a sprint for each release!
-
It works!
Disclaimer: I haven't printed with this yet. Still waiting on my bed.
Took some tweaking though.
I may or may not have had to make some of the changes I made. Someone else can confirm.
Added the following to config.g:
;DUAL Z
M584 X0 Y1 Z2:3 U3 E4Wherever something for Z was defined, I added the same for U. (I'm unsure if this was necessary, as I did this during troubleshooting.)
Example:
This: M350 X128 Y128 Z128 E16 I1 ; Configure microstepping with interpolation
Became: M350 X128 Y128 Z128 U128 E16 I1 ; Configure microstepping with interpolationAdded, as it was missing:
M569 P4 S1 ; Drive 4 goes forwardsCommented out the entirety of homez.g and added:
M584 Z2
G1 S1 Zxxx Uxxx
G92 Zxxx
M584 Z2:3Pretty sure that was everything!
-
This me TWO days to figure out why my machine was grinding when homing. Then I realized on EVERY home move the right endstop hit before the left. If I moved the bed down 30MM or more this would happen.
While in this configuration, the motor hooked up to the original Z plug moves faster than the one in the U plug.
Any ideas on why this is happening?
Note: When tested with both motors in Z plug, homes and moves normally. I DID put the jumpers on as for a 1 Z motor hookup.
[[language]] ; Configuration file for Duet WiFi (firmware version 1.17) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Sat Mar 18 2017 20:32:40 GMT-0400 (Eastern Daylight Time) ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin ;DUAL Z M584 X0 Y1 Z2:3 U3 E4 M667 S1 ; Select CoreXY mode M208 X0 Y0 Z0 U0S1 ; Set axis minima M208 X300 Y300 Z320 U320 S0 ; Set axis maxima ; Endstops M574 X1 Y2 Z1 U1 S1 ; Define active high microswitches ;M558 P1 X0 Y0 Z0 H5 F120 T9000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds ;G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height ;M557 X15:285 Y15:285 S20 ; Define mesh grid ; Drives M569 P0 S1 ; Drive 0 goes forwards M569 P1 S0 ; Drive 1 goes forwards M569 P2 S1 ; Drive 2 goes forwards M569 P3 S1 ; Drive 3 goes forwards M569 P4 S1 ; Drive 4 goes forwards M350 X128 Y128 Z128 E16 I1 ; Configure microstepping with interpolation M92 X800 Y800 Z3200 U3200 E138.4336 ; Set steps per mm M566 X600 Y600 Z24 U24 E300 ; Set maximum instantaneous speed changes (mm/min) M203 X30000 Y30000 Z300 U300 E1500 ; Set maximum speeds (mm/min) M201 X2000 Y2000 Z100 U100 E4000 ; Set accelerations (mm/s^2) M906 X800 Y800 Z800 U800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Heaters M143 S260 ; Set maximum heater temperature to 260C M305 P0 T100000 B4388 R4700 H0 L0 ; Set thermistor + ADC parameters for heater 0 M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1 ; Tools M563 P0 D0 H1 ; Define tool 0 G10 P0 X0 Y0 Z0 U0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C ; Network M550 PBlack Widow ; Set machine name M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP ; Fans M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Custom settings are not configured
-
What do you have in your homez.g and homeall.g files? Perhaps you still have driver 3 assigned to Z as well as U when you are Z homing.
Edit: i just spotted that your M350 command doesn't set microstepping for the U axis.
-
I'm pretty sure I had it in there before I switched back to 1 Z for testing but I'll add back and test again tonight, just in case.
Here is homez.g. Homeall.g hasn't been updated yet.
[[language]] ;DUAL Z M584 Z2 M854 U3 G1 S1 Z-320 U-320 G92 Z.04 M584 Z2:3
-
M854 in your homez.g file is not a valid gcode, I presume you meant M584.
-
Good catch. I'll report back results.
-
I am really looking forward to the dual z end stops as well how long do you think it will be until the beta release?
-
Have you read the recent posts in this thread to see how you can [probably] do it already?
-
Yes I saw the post have that working but would like to get my NPN probe back eventually if possible.
-
If you mean that you can't connect your NPN probe to the E0 endstop connector because it is used for the second Z homing switch, you can connect your NPN probe to E1 endstop connector or to the Z probe connector instead if you select the appropriate probe type in your M558 command.
-
I got this working fine and will post my setup here soon. There is some oddities when lowering Z after hitting the endstops and only one axis move if I do not add S2 as instructed by David. I did report this as an bug on github as it seems it should not behave like that.
-
I'm working on a big IDEX build. Would the method you guys have described here also work for a Y axis using 2 steppers? It could be nice to tram the X axis at the start of a build.
-
Yes it should be possible to use dual Y homing switches in the same way.
-
Having fiddled with dual Z now for a while I'm not to fond of the extra axis in the UI. Z controls both Z motors but U only controls the one. How can I hide the U axis or at least disable it so I don't accidentally move only one Z motor?
Pretty easy to hit U instead of Z