Dual Z - Axis Belt Drive Configuration Uncertainty

  • Hi
    I have a Tevo Tarantula. I have removed all of the rollers from the axis build plates and I have replaced them with sliding mounts which are mounted on my rails. Very smooth action!

    I have included the Z axis in this changeover, so the threaded rod has been removed. I have two Z axis motors connected to the two Z ports on the DuetWifi. These motors have the same toothed gear wheels as the X and Y axis, and I have mounted roller wheels to the center cross frame on the bottom beam that crosses under the heat bed. The belts are fastened to the build plates on either end of the X axis.

    The Z motors will need to rotate in opposite directions in order to raise and lower the plates / X axis.

    Do the Z axis drivers on the DuetWifi have different names even though they are driven in a serial connection, or should I use Extruder 1 as the second driver in order to set the direction of rotation opposite to Z0?

    I have set the step/mm rate in the config.g file to match what is set for X and Y.

    Is there anything else that I should be aware of that I might be overlooking?


  • You can reverse the direction of a stepper by flipping the connector, or reversing the polarity of a coil.

  • administrators

    If you connect your two Z motors to the ZA and ZB connectors, then they have the same name in the firmware. Connect the wire colours of the two motors in the opposite order to make them turn in opposite directions.

    However, if the E1 motor connector is otherwise unused, then you can connect one Z motor to that one instead, and use the automatic bed levelling feature to adjust the Z motors independently after homing. See https://duet3d.com/wiki/Bed_levelling_using_multiple_independent_Z_motors.

  • Thanks elmoret for the input on flipping the connector. That works for me.

    Thanks DC42 also for the input on flipping the connector. That is the easiest solution. Are you saying that they are referred to differently as ZA or ZB specifically instead of just Z as previously configured with 1 Z motor?

    I did also purchase and install the special IR Probe for the DuetWifi and so I would like to include it's configuration in the mix as well. For ease of mounting, I have installed it on a small acrylic panel that is intended for the limit switch, I would eventually like to print a case for it and mount it to the side of the hot end, but I want to get the print quality up first. The probe is near the edge of the gantry on the right side of the print bed. I have tested it and it certainly "sees" the surface and triggers.

    I have added the code that I found in the examples for the various home files, so I hope that will work. I am a little concerned that I did not define the probe in the configuration anywhere. I was previously using a limit switch on a threaded rod arrangement and I remember having to state the type for the system. Do I not have to do so for the IR Probe? or is it detected and all I need do the G30 to record the height that it tripped at?



  • administrators

    See the "Testing and commissioning the board" section at https://miscsolutions.wordpress.com/mini-height-sensor-board/.

  • Hi dc42

    I shall read up and post if unclear. Thanks for the link!


  • Hi dc42

    Would you mind looking at my config.g file?

    ; General Preferences - no changes
    ; Endstops
    dropped the Z1 out of the M574 line. It was before the S0
    uncommented M558 and changed P0 to P1
    uncommented G31 and changed P600 to P500
    ; Drives
    I think I should be doing something here to assign ZA clockwise to raise hotend rail on the right side
    motor and to assign ZB to counterclockwise to raise hotend rail on the left side in sync with motor ZA
    I do not understand the relationship between P0 to what I expect should include a P4. Are they X, Y,
    ZA, ZB, E0 in order? , with X backwards, Y backwards, ZA backwards? P3 is the extruder I think which
    is set to go forwards, but does ZB get inserted ahead of P3?
    In the M92 line I changed Z1600 from the threaded rod to Z80 like X and Y since I am using the same
    motor and belt and gear wheel.
    In the M906 line, do I need to bump the current because of the two Z motors, or do I need a line for
    each of ZA and ZB to set each of them to 1200ma, or is this where I should decide to use E1 and do
    do my setting there?

    I made no other changes in config.g.

    Here is the config.g file
    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Fri Sep 08 2017 10:03:01 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
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X210 Y280 Z200 S0 ; Set axis maxima

    ; Endstops
    M574 X1 Y1 S0 ; Define active low and unused microswitches
    M558 P1 X0 Y0 Z0 H5 F120 T6000 ; Set Z probe type to switch, the axes for which it is used and the probe + travel speeds
    G31 P500 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height
    M557 X25:175 Y25:175 S20 ; Define mesh grid

    ; Drives
    M569 P0 S0 ; Drive 0 goes backwards
    M569 P1 S0 ; Drive 1 goes backwards
    M569 P2 S0 ; Drive 2 goes backwards
    M569 P3 S1 ; Drive 3 goes forwards
    ;M350 X128 Y128 Z128 E16 I0 ; Configure microstepping without interpolation
    M92 X80 Y80 Z80 E333.33 ; Set steps per mm
    M566 X900 Y900 Z200 E5000 ; Set maximum instantaneous speed changes (mm/min)
    M203 X12000 Y12000 Z1200 E3000 ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z100 E3000 ; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 E1000 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 B3988 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4725 C0 R4700 ; Set thermistor + ADC parameters for heater 1

    ; Tools
    M563 P0 D0 H1 ; Define tool 1
    G10 P0 X0 Y0 Z0 ; Set tool 1 axis offsets
    G10 P0 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C

    ; Network
    M550 PTevo Tarantula ; Set machine name
    M552 S1 ; Enable network
    ; Access point is configured manually via M587 by the user
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; 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 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F500 H-1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off

    ; Custom settings are not configured

    ; Miscellaneous
    T0 ; Select first tool

  • administrators

    Your config looks ok to me.The ZA and ZB connectors are wires in series to a single Z driver, so you don't need to refer to them separately in config.g.


Looks like your connection to Duet3D was lost, please wait while we try to reconnect.