Complete sample config file for using Duex2 with 2 Z motors



  • Hi:

    I'm not strong with GCode, so if there is a config.g file out there that has been set up to use a Duex2 to drive the two Z motors with two end stops (auto level) I would really appreciate the opportunity to review it.

    The information https://duet3d.dozuki.com/Wiki/Duex2_and_Duex5_Features#Section_Commissioning

    Does not provide enough substance for me to understand.

    I have rewired my printer to 24V and have both boards connected. My fans seem to be fine, and the new hot end heater and temp sensor are behaving as they should.

    I have nothing in place to commission the two Z motors that are connected to the Duex2. I have end stops on each Z and they are triggering as expected when manually triggered.

    My config.g file is below:
    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Tue Sep 05 2017 19:39:12 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 X280 Y230 Z230 S0 ; Set axis maxima

    ; Endstops
    M574 X0 Y0 Z0 S1 ; Define active low and unused microswitches
    ; M558 P4 X0 Y0 Z0 H5 F120 T6000; Set Z probe type to modulated, the axes for which it is used and the probe + travel speeds
    G31 P600 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height
    M557 X15:185 Y15:265 S20 ; Define mesh grid

    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards X Axis
    M569 P1 S1 ; Drive 1 goes forwards Y Axis
    M569 P2 S0 ; Drive 2 goes backwards Z Axis (original before Duex2)
    ; Hot end has a Cyclone installed
    M569 P3 S0 ; Drive 3 goes backwards E0 Extruder
    M569 P4 S0 ; Drive 4 goes backwards E1 Extruder
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X750 Y400 Z364.446 E329.37 ; Set steps per mm
    M566 X900 Y900 Z300 E120 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z280 E1200 ; Set maximum speeds (mm/min)
    M201 X500 Y250 Z250 E250 ; Set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E1200 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
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B4138 C0 R4700 ; 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 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 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 S1 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
    M501

    I would appreciate help or a helpful link
    Thanks
    Tim


  • administrators

    The recommended way of using 2 Z motors is to use a single endstop switch and to use M671 + G32 and a Z probe to level the bed side to side after homing. This is documented at https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors. Use the M584 command to specify which drivers your Z motors are connected to.

    If instead you want to use multiple Z endstop switches, then during homing you must temporarily split the Z axis into Z and U and home them together. This method isn't yet documented in the wiki, but several people are using it and I expect one of them will respond in this thread soon.



  • Hi
    Thanks! I will see what I can do with what you have given me. I don't need two end stops.
    I find that documentation a little light.

    I shall try
    Tim



  • Hi:

    Here is my drive section.
    M122 sees the duex2. My two Z drives are connected there.

    On the main DuetWifi board, I obviously have no Z drive connections. ZA is empty, and I put the jumpers on ZB.

    When I look at the Drive Configuration screen on the Web Interface, manually toggling the end stop switches shows the status change for P0, P1 and P2. My Z end stop is currently on the main board in the Z port. If I put it on port E2 on the Duex2, the state toggle does not register.

    When I say that the document seems incomplete, this is an example. I cannot find anything that says where the end stop should be connected for Z when using the Duex2. As you will notice in the ;Drives section below, my M569 code is intended to define the motors attached to the main board. I state which ones in the comments. I am guessing at defining the M584 code based on the example in the link you provided. How does the Z2:3 translate to the E2 and E3 ports on the Duex2. Do I not need a statement to do this?

    There is no doubt that I am missing information or have not configured it properly which is why I am asking for a full example of a config.g.

    I would also like to shut down the probe that is defined in M558. It registers as 1000 on the web interface. It is currently 205mm above the bed and doesn't trigger with shiny metal or a white page of paper. I have a limit switch in place which does change state so I can trigger bed height from that.

    None of my axis motors turn when the printer is powered up an I use the panel due as the interface. The do nothing from the web interface either, except return errors that insufficient axis homed when I try to home any axis.

    Is there a troubleshooting document for use when a Duex2 is intalled?

    Thanks
    Tim

    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards X Axis
    M569 P1 S1 ; Drive 1 goes forwards Y Axis
    ; Hot end has a Cyclone installed
    M569 P4 S0 ; Drive 3 goes backwards E0 Extruder
    M569 P5 S0 ; Drive 4 goes backwards E1 Extruder
    M584 X0 Y1 Z2:3 ;two Z motors connected to driver outputs 2 and 3 on Duex2
    M671 X-165:200 Y200:X330
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X750 Y400 Z364.446 E329.37 ; Set steps per mm
    M566 X900 Y900 Z300 E120 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z280 E1200 ; Set maximum speeds (mm/min)
    M201 X500 Y250 Z250 E250 ; Set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E1200 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout


  • administrators

    This line:

    M584 X0 Y1 Z2:3 ;two Z motors connected to driver outputs 2 and 3 on Duex2

    is incorrect. The driver numbers on the DueX5 are from 5 (labelled E2) to 9 (labelled E6). On the DueX2 you have driver numbers 5 and 6.



  • @timvukman you can find more info about the Duex pinouts via https://duet3d.dozuki.com/Wiki/Duex_wiring_diagrams, there you should see the endstop connections for the 2 drivers that you are using...

    it takes a bit of exploring to locate stuff sometimes, I'd recommend the search box to try and quick find stuff related to your build 😉

    I'd revise also the sections about endstops and z-probes, and learn the difference between high and low registering of said triggers, and don't be afraid to try putting it the other way round in the config! If it seems to work in the hardware (LED's come on, etc), then it is probably correctly connected, but incorrectly configured.



  • Hi dc42
    Thanks for the input correcting M584.

    Should I add jumpers on ZA on the wifi board like the ones on ZB that are there by default since I am not using ZA??

    Hi andymidtf

    I will review the wiring diagrams, but they were not helpful for me. Ok, I can see where the end stop is for E2 and E3, but. I have a single end stop that was connected to Z originally. Since Z is now two motors P5 and P6, should my end stop move to e2 or e3? does it matter which one? Is my Z endstop not still defined by the M574 in the Endstops section of my config.g file? ie. As Z, not e2, e3, P5 or P6?

    There is no descriptive text that would help me get my head around the relationships.

    What would be really helpful for me would be the ability to specify the parameters in the configuration tool and have it spit out the code.

    ie, a box to click that says there is a Duex2 board being used to be one axis of the printer using 2 motors to do so. Click on X, Y or Z for the axis label.

    As for my end stops, I made a less than ideal choice to use Makerbot switches which have three wires with the switch wired to a board. Originally, this was a Tevo Tarantula and it was easy to move the wires so that I could have them turn off the leds on the wifi board when they tripped. Because of the new switches, I had to settle for them doing nothing, or turning on when tripped. At least they do function after screwing around with S0 S1 S0I S1I for far too long. S1 works and until I added the Duex2, I could home everything just fine.

    I will try again now that I have set the M584 properly, but right now, only E0 and E1 motors turn.
    I have been through all of the original documentation, the wiki, and the dozuki. There are some "in progress" documents at the end of the dozuki that provide the level of explanation I need to have to understand what I am doing, but they don't go far enough yet to cover this situation.

    thanks
    Tim


  • administrators

    Do not add jumpers on Za, because if you also have jumpers on Zb then that will short out the driver output.

    Your single Z endstop should still be connected to the Z endstop input. Using M584 to map axes to motor drivers does not affect the endstop connections.

    The wiki page on connecting endstops covers how to connect and configure the Makerbot endstops.



  • Hi dc42

    Thanks for the update. I have not added jumpers to ZA, My Z endstop is still on the duetwifi and I appreciate the clarification on M584 mapping / general mapping.

    I did use the wiki page for Makerbot endstop information when I installed them some time ago. That is how I got them working. I have no issues there.

    Today I am looking at why I have no axis motors working. I upgraded carefully to 24V and added the Duex2 at the same time. Never a good idea to do two things at the same time. I am trying to reverse the Duex2 install to try to get back to a working duetwifi board on it's own.

    I need to go back to the original step by step setup instructions to see what went wrong.

    One of these days I will learn to save config files out to the desktop so I have a path back to where I was

    Another learning opportunity
    thanks
    Tim


  • administrators

    Make sure that your M584 command is earlier in config.g than your M906 command.



  • Ok:

    I have rewired and reset my DuetWifi board without the Duex2, but still under the 24V power supply.

    My axis motors do not operate via the Web interface.

    All new G Code files were created and put on the SD card with the configuration utility.

    For some reason, Wifi is dropping and then not connecting.

    If I go into the Machine Control Panel of Simplify 3D, I can move each axis and home each axis with the Jog Controls via USB.

    Config below

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Apr 12 2018 10:19:25 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Network
    M550 PCustom Cartesian ; Set machine name
    M552 S1 ; Enable network
    M587 S"BELL137" P"xxxxxxxxxxxxx" ; Configure access point. You can delete this line once connected
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes backwards
    M569 P3 S0 ; Drive 3 goes backwards
    M569 P4 S0 ; Drive 4 goes backwards
    M350 X128 Y128 Z128 E16:16 I0 ; Configure microstepping without interpolation
    M92 X750 Y400 Z364.446 E329.37:329.39 ; Set steps per mm
    M566 X54000 Y54000 Z18000 E7200:7200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X60000 Y60000 Z16800 E72000:72000 ; Set maximum speeds (mm/min)
    M201 X500 Y250 Z250 E250:250 ; Set accelerations (mm/s^2)
    M906 X855 Y855 Z855 E855:855 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 X250 Y250 Z220 S0 ; Set axis maxima

    ; Endstops
    M574 X0 Y0 Z0 S1 ; Set active high endstops

    ; Z-Probe
    M558 P0 H5 F120 T6000 ; Set Z probe type to switch and the dive height + speeds
    G31 P500 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
    M557 X25:175 Y25:175 S20 ; Define mesh grid

    ; Heaters
    M305 P0 T100000 B3988 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4725 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; Set temperature limit for heater 1 to 280C

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

    ; Tools
    M563 P0 D0 H1 ; 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
    M563 P1 D1 H ; Define tool 1
    G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
    G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C

    ; Automatic saving after power loss is not enabled

    ; Custom settings are not configured

    ; Miscellaneous
    T0 ; Select first tool
    M501

    I'm still looking into possible reasons.



  • Ignore for now. I will heat up the hot end and retest the movement.


  • administrators

    I suggest you also use M122 to check that you have compatible versions of main and WiFi firmware, preferably both 1.21.



  • @dc42
    Hi and thanks for your input on checking the firmware versions. I had updated the Firmware version to 1.21, but not the Wifi Server and Web Interface.

    All three are now at version 1.21

    I now have a working machine in that with only the DuetWifi connected, I can home all of my axes. I can't really do Z because it physically has two motors and I only connected 1 on the board just to make sure it would work. It does, and the directions are correct.

    Today I will add the M584 code if I can understand the dozuki wiki. Not a board fault, or missing information, just me and my lack of the full knowledge of gcodes and their interaction / order.
    thanks
    Tim



  • @timvukman
    Hi
    I have added the M584 as I understand it.

    ; Drives
    M569 P0 S1 ; Drive 0 (X) goes forwards
    M569 P1 S1 ; Drive 1 (Y) goes forwards
    ; M569 P2 S0 ; Drive 2 goes backwards original (Z) port on DuetWifi
    M569 P3 S0 ; Drive 3 (E0)goes backwards
    M569 P4 S0 ; Drive 4 (E1)goes backwards
    M584 X0 Y1 Z5:6 E3:4 ; Z left is on Port 5 (Duex2 E2) and Z right is on Port 6 (Duex2 E3)
    M350 X128 Y128 Z128 E16:16 I0 ; Configure microstepping without interpolation
    M92 X750 Y400 Z364.446 E329.37:329.39 ; Set steps per mm
    M566 X54000 Y54000 Z18000 E7200:7200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X60000 Y60000 Z16800 E72000:72000 ; Set maximum speeds (mm/min)
    M201 X500 Y250 Z250 E250:250 ; Set accelerations (mm/s^2)
    M906 X855 Y855 Z855 E855:855 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout
    The comments will describe what I am trying to do. I would appreciate verification.
    The example for the M671 is based on three leadscrews and I only have two.

    What I have measured is what the locations would be if the bed were large enough to cover the whole area. I will be getting a larger bed at some point, so I would like to confirm my understanding so that I will be comfortable making changes later.

    M671 X-165:200 Y200:X330 is where the leadscrews would be if my bed was one large plane moving up and down on Z

    Please confirm my M584 / M671 if there is enough information to do so.
    Thanks
    Tim



  • Hi:

    I think I'm ok now.

    X, Y and Z home successfully. Both Z motors appear to be in sync.

    G32 returned an error which I saw flash by, but did not catch.

    It appears as though all of my steps / mm settings on my drive motors are way off.

    My question is if this is because I am now on 24V instead of 12V. Ie, is this expected?

    For others who may follow, here is my config.g file
    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Thu Apr 12 2018 10:19:25 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Network
    M550 PCustom Cartesian ; Set machine name
    M552 S1 ; Enable network
    M587 S"BELL137" P"DAAE9D3D996E" ; Configure access point. You can delete this line once connected
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Drives
    M569 P0 S1 ; Drive 0 (X) goes forwards
    M569 P1 S1 ; Drive 1 (Y) goes forwards
    ; M569 P2 S0 ; Drive 2 goes backwards original (Z) port on DuetWifi
    M569 P3 S0 ; Drive 3 (E0)goes backwards
    M569 P4 S0 ; Drive 4 (E1)goes backwards
    M584 X0 Y1 Z5:6 E3:4 ; Z left is on Port 5 (Duex2 E2) and Z right is on Port 6 (Duex2 E3)
    M671 X-165:200 Y200:X330
    M350 X128 Y128 Z128 E16:16 I0 ; Configure microstepping without interpolation
    M92 X750 Y400 Z364.446 E329.37:329.39 ; Set steps per mm
    M566 X54000 Y54000 Z18000 E7200:7200 ; Set maximum instantaneous speed changes (mm/min)
    M203 X60000 Y60000 Z16800 E72000:72000 ; Set maximum speeds (mm/min)
    M201 X500 Y250 Z250 E250:250 ; Set accelerations (mm/s^2)
    M906 X855 Y855 Z855 E855:855 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 X250 Y250 Z220 S0 ; Set axis maxima

    ; Endstops
    M574 X0 Y0 Z0 S1 ; Set active low endstops

    ; Z-Probe
    M558 P0 H5 F120 T6000 ; Set Z probe type to switch and the dive height + speeds
    G31 P500 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
    M557 X25:175 Y25:175 S20 ; Define mesh grid

    ; Heaters
    M305 P0 T100000 B3988 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4725 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; Set temperature limit for heater 1 to 280C

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

    ; Tools
    M563 P0 D0 H1 ; 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
    M563 P1 D1 H ; Define tool 1
    G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
    G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C

    ; Automatic saving after power loss is not enabled

    ; Custom settings are not configured

    ; Miscellaneous
    T0 ; Select first tool
    M501

    thanks,
    Tim



  • Note:

    My microstepping is shown above as 128. I have changed that back to the default of 16. Now my distances are correct.
    Tim


  • administrators

    This line is incorrect:

    M671 X-165:200 Y200:X330

    Did you mean M671 X-165:200 Y200:330 (I removed the second X)? That would mean your first leadscrew is at X-165 Y200 and the second is at X200 Y330. It's ok for the leadscrew coordinates to be a long way outside the bed.



  • Hi dc42

    Yes, thankyou! That was a typing error on my part. I will correct that right now.

    I'm actually having a different issue which I believe I have figure out, but don't know how to correct.

    When I engage the bed heater, I have a 50% voltage drop. That might be what is causing my heater fault if I have the hot end heating and then try to heat the bed.

    In researching heated beds, I see that they are not all created equal. I see different wiring connections at the bed for some, based on 12 or 24 volt connections. A common arrangement is 3 terminals, where the connections are different for 24V than they are for 12V.

    Since my heated bed came from my Tevo Tarantula, it is wired for 12V. There are 6 wires that go to the bed. 2 toward the center of the bed, 2 yellow in the center of the connector, and two black toward the right side of the bed.

    Red is +12, black is ground and yellow is the temperature sensor. There is a pad glued to the back, which then has insulation and then a foil plate, so if there is a wiring diagram, it cannot be seen.

    I think I should hold up until I get a new heated bed.

    I'm looking at this one (I'd appreciate an ok) https://spool3d.ca/300mm-x-300mm-heat-bed/ as it looks like I should be able to solder it up fairly easily.

    Any chance of converting the old one?

    Thanks
    Tim


  • administrators

    @timvukman, it may be possible to convert the old bed heater. If you post some pictures of it then I may be able to advise you. Someone else who has the same printer may already know the answer.


Locked
 

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