Dual Z axis on SKR 1.3

dual z marlin 2.0 SKR tronxy x5s

Please Login to Comment

Not sure if anyone has successfully cracked this but I'm trying to set up a dual Z drive using the E1 port as a Z2 stepper driver. It seems to be driving ok apart from the steps per unit seem to be out. i.e. one of the motors is turning further than the other per demanded distance and the bed goes out of true.
I think it's because it is picking up the steps per unit from the E0 which on my config is 500 as opposed to 400 for the Z (X,Y,Z, E0 {80,80,400,500} I tried adding the E1 value of 400 but got a compile error stating Too many values for default axis steps, had I enabled DISTINCT_E_FACTORS. I did enable it but the error message persisted each time I attempted to compile. Also, when I run a M122 command in Pronerface, it doesn't report the 5th stepper driver which is a TMC2208 V3.0 un UART mode. (They all are). Not sure if it's supposed to when dual z axis is enabled in config_adv.h but I don't think I've missed any other settings.
This is frustrating as it's so close to working now. I wanted to enable the dual axis so the bed would home flat using the ABL probe. I've got an 8mm aluminium plate fitted for a heat bed so it tends to drop unevenly once the steppers are disabled.
Any info appreciated folks.

Comment has been deleted

Wow, really happy to find this thread. I am trying to achieve exactly same thing ( on different printer though ) with same board. I designed some parts for it and get slapped with some troll that dual motor is wrong way of doing it.
I am glad you make it into successful end. ( And to be honest, it also helped me :-)

Hy! I use E1 for the Z2 Motor on my X5S (SKR 1.3 TMC2208/2209) for a long time.
The function Z_ALIGN ist perfect to home bed flat. Probe does a few tests left and right of a defined section and aligns the bed.
If you want you can check my coniguration.h and Configuration_adv.h for settings.
I don´t need Z-endstops any more.

btw if connection issue with 5th stepper - have a look at this

Rado79, thanks for your help buddy. I've made a short video clip of the axis aligning and stuck it up on Youtube as the file will take a lifetime to upload to Thingiverse. Link below.

well done mate, you are welcome!

Right, you'll maybe pleased to know that.tonight I finally cracked the auto dual Z axis align using a Z probe. I've been pulling my hair out for bloody weeks trying to work out why it's not been working, checking config files and syntax and it finally dawned on me tonight. I've been abusing the privilege of being blonde. I had the damn Z axis direction reversed! I guess I've been working with cartesian machines for so long that when using pronterface, it seemed natural when clicking the Z down arrow, to see the bed drop. Duh! So a quick edit in atom and then a 2nd change of swapping Z motor connectors on the board and it's working beautifully. A G34 saw it auto home all axis and it then wen through 4 out of 6 iterations to achieve a level within 0.1mm.
Would just like to pass on my thanks and appreciation to all that have contributed and offered support, encouragement and patience.

Hi Rado, thanks for the info. Right then, I went through your code and compared it pretty much line by line. I'm using Marlin 2.0.1 so there's only a minimum of differences. Set it up exactly like yours other than linear advance. It still did the same thing. So short of launching the whole lot through the window, I read a bit around the UART only supporting up to 4 devices on one comms line. I can't ever remember seeing this mentioned anywhere of note but decided to replace the extruder driver with a 4988 driver and remove the UART jumper. Configured the new driver in config.h and uploaded. TMC comms error gone and the steppers are now rotating at the same rate. So a major success and I'm eternally grateful for you info provided above. The next thing I have to sort out is the Z homing. I selected auto home from pronterface and the X and Y axis homed as normal. The head then went to Z safe home position in the middle of the bed and the Z axis moved as though homing but even after the Z probe triggered, it continued to ascend, nearly jacking the print carriage off the gantry before I could reach the power switch. I should have checked it with a steel rule I suppose but the sensor is working and I'd previously checked the switches with a M119 command.
Gonna have another look in the morning as it's midnight now and I'm knackered. If you can think of a few checks tomorrow, let me know and I'll have to run through the code again. Not sure of the correct sequence with the auto dual Z aligning.

My probe is an IR-Z-Probe, maybe you have to switch true/false.
Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.

With stepper driver connection i had no issue, plugged in 5 TMC2208, compiled, 5x connection OK.

Comment has been deleted

Hi LJ, I've given up with it for the minute as I have some other config stuff to do with assigning pins to fans. I'm using a splitter again for the Z axis and have them both plugged in to the Z driver. I'm getting missed steps and thinking it's because the splitter looks like it's a parallel connection rather than a series. I've gotthe 2208 in UART mode and set the Vref to 850 from the default 800. It seems to have helped but there still seems a lack of torque with the stepper motors and it can be easily stalled with a bit of finger pressure on the drive shaft. Is there a recommended setting for the Vref when the motors are in parallel do you know? This is another reason for going with dual z drivers.
Ref your question around the dual limits. I've considered it but I think I'd need to use optical sensors so the bed can actually travel beyond their limit. The alternative would be to use a pair of limits at the Z-max position and this would be fairly slow given the 400mm of travel. I was planning on using the Z ABL probe to do it as it's already installed and working but unless I can get these damn steppers to synchronise, I can't experiment any further.
Thanks for the advice so far, much appreciated.

Comment has been deleted

Hi LJ,

Not sure if you saw the comment above but just to let you know I've got the dual Z axis auto align working now. After running down every bit of complicated stuff I could think of, it turned out to be the simplest of errors. I had the Z axis direction inverted. I guess I got so used to working with cartesian machines than when I clicked on the down Z direction arrows in Pronterface and the bed moved down, it seemed at first glance to be correct. After I realised I'd been exceptionally blonde, I reversed it, and after swapping Z1 and Z2 stepper leads over, it works like a charm. As it appears part of the G34 command actually includes an auto home, you can simply replace the G28 with G34 in the slicer start code?
Just like to pass on my thanks for your help and suggestions during my quest. I've got a few minor tweaks to make now with fans and hopefully the thing will start printing in anger. Can't believe the difference those TMC 2208 driver make to the noise and vibration.

Any reason why you aren't using the single z driver? They sell adapters to use 2 steppers on one port.

Hi Kahn, I wanted to use the Z probe to level the bed rather than simply do the auto bed levelling. I find with the Cube type printers, the bed can drop unevenly over time when the power is off the machine. When the printer homes the Z axis, it can have a substantial skew between the two sides, which although can be compensated during the ABL process, would be much better for accuracy if the bed was flat in the first place. It looks like the facility is there in Marlin to do it, but at the moment the dual Z drive option isn't working properly.

Comment has been deleted

Hi LJ, that's a more elegant solution to something I've done on my Anet printers.I just marked a line with a felt tip on both stepper couplers when the bed is level. That shroud of your is a much neater job, I might print some off for the Anets. The problem with the Tronxy is that the issue is more pronouced, especially with the heavier bed I have fitted. Manual levelling of the bed isn't a massive problem but it would be nice to automate it and it has become a mission now as I don't like to be beaten by bloody electronics and programming. I've read of some folks using triple Z screws with individual axis drives which will auto align so I'm assuming someone must have got a 2 axis setup working somewhere. It's probably a simple config issue in Marlin but I haven't found it yet.