Expansion board selecting Tool - change from extruderTool to regular

  • Hey All!

    So we know about T commands and selecting the tool before extruding.

    For the expansion board though, we are trying to test move a motor with simple commands like "G0 X100" but obviously instead of moving the X motor which is on the main board we want to accomplish this from a motor connected to the expansion board (Duex5).

    For example, when we have a tool change between the two extruders on the main board (E0 and E1), we run a macro. Part of the macro requires us to use one of the stepper drivers on the expansion board to move a motor (this movement is just to shift our carriage basically–the details do not matter but this is what we want to accomplish).

    However, it looks like all the stepper drivers on the expansion board are E's for extruders (E2->E6). But we have 2 problems:

    1.) We don't want to run the stepper drivers on the expansion board as extruders, as extruders only extrude if the specified temperature is reached. We want it to just MOVE like the XYZ motors.

    2.) We have tried sending T commands to select the appropriate tool and then using E commands but we are unable to select the tool and thereby we cannot move the motor connected to the E driver slots (example: T6 to select E6 which has a stepper driver connected to it, and then G0 E50 brings an error of that no tool is selected)

    Any suggestions?

    Thank you guys very much!

    Last minute added question:

    3.) I know that by default the extruder wont extrude if the temperature isn't reached. But is there a way to disable that for testing purposes? We just want to move the extruder without it waiting for the temperature, so when we send T0 and then G1 E50 it would just move the motor INSTEAD OF bringing up an error saying how the temperature hasn't been reached.

  • administrators

    It sounds to me that you might be better off defining those additional motors as axes rather than extruders.

    If you do want to run them as if they are extruders, you can use M302 P1 to allow cold extrusion. Alternatively, associate them with tools that have no heaters using M563 commands.

  • Thank you for the reply!
    Some follow up questions

    1. How do we define the motors on the expansion board as axes instead of extruders?
    2. If we do run them as cold extrusion, how would this differ from running as axes ie advantages/disadvantages?

    Thank you in advance!

  • administrators

    To define additional axes, see M584 in the GCode wiki page.

    Axes typically have homing switches (or use stall-detect homing) and after homing them you move them to absolute positions. Axes are independent of tools, unless you use X or Y axis mapping in your M563 commands. Extruders don't have homing switches, you can only move them if you first select a tool that uses them, and because they are not homed they understand relative movement best.

  • @dc42 Hope you are doing well

    So in our config.g file we added this line to set the E2 drive to become an axis:

    M584 X0 Y1 Z2 E3:4 U5

    This sets the (formerly) E2 drive on the expansion Duex5 to be the U axis, and this shows up fine in the DWC under "Additional Axes."

    However, when we send a gcode command to test the motor (G1 U50, for example), the motor will vibrate but will not spin.

    Do you have any suggestions?

    Thank you in advance.

    EDIT: I won't be around the printer till tonight, but I might have not defined the endstops of the U axis, I know I did all the other stuff like motor current and all that. Will check back.

  • administrators

    If a motor vibrates but does not spin, this generally indicates one of the following (in decreasing order of likeliness):

    1. Bad crimp connection in the motor cable;
    2. Motor phases not paired;
    3. Trying to move the motor too fast, or with acceleration too high, or with steps/mm too high;
    4. Motor overloaded mechanically (too much friction or load to let it turn);
    5. Partially-blown stepper motor driver;
    6. Faulty motor.


    We were able to resolve this particular issue and want to share what we did.

    So we had this following code in our config file:

    M584 X0 Y1 Z2 E3:4 U5

    But we had it at the end of the file. Once we placed it at the top of the file (literally before anything else) it worked and we were able to move the motor as normal.

    For more details, see this link: https://forum.duet3d.com/topic/3604/homing-in-u-axis/6

  • administrators

    I'm glad you solved it. Your M584 command creates a new axis U, so it needs to be before all other commands that refer to U.

Log in to reply