Getting the digital step/dir signals on stepper X,Y, Z



  • Hi,

    I would like to use a duet 2 wifi for making a extremely precise (but ultraslow 😉 ) laser resin printer.

    The XY stage will be dome with THK linear rails using ballscrew with 1mm pitch and Z axis too.

    X, Y, Z is all very easy to setup because in that case it is just acting like a cartesian printer.

    I would however like to be able to sense the signals for step/dir on the X axis.
    Allow me to explain. The controller on the board sends step and dir signals to the trinamic drivers and those make sure the motor works.

    But is there a place where I can actually connecta dupont connector and read the real step/dir signal which will probably be 5/3.3vDC ?

    I searched on the 50 pin expansion connector, but there I think only the signals for the EXTRA duex channels can be found ?

    Also, it might seem a stupid question, but I'll ask it anyway.

    Is the Duet 2 wifi capable of driving 5 steppers totally independent of eachother with each their own accelerations etc..... .


  • administrators

    @educa said in Getting the digital step/dir signals on stepper X,Y, Z:

    Hi,

    I would like to use a duet 2 wifi for making a extremely precise (but ultraslow 😉 ) laser resin printer.

    The XY stage will be dome with THK linear rails using ballscrew with 1mm pitch and Z axis too.

    X, Y, Z is all very easy to setup because in that case it is just acting like a cartesian printer.

    I would however like to be able to sense the signals for step/dir on the X axis.
    Allow me to explain. The controller on the board sends step and dir signals to the trinamic drivers and those make sure the motor works.

    But is there a place where I can actually connecta dupont connector and read the real step/dir signal which will probably be 5/3.3vDC ?

    I searched on the 50 pin expansion connector, but there I think only the signals for the EXTRA duex channels can be found ?

    Two options:

    1. (recommended) Use the M584 command in config.g to assign both an internal driver and a driver on the expansion connector to each of X, Y and Z axes. Both drivers will receive step pulses at exactly the same time (within a few nanoseconds).

    2. There are test pads on the underside of the Duet where the step and direction signals for the internal drivers can be picked off.

    Also, it might seem a stupid question, but I'll ask it anyway.

    Is the Duet 2 wifi capable of driving 5 steppers totally independent of eachother with each their own accelerations etc..... .

    Yes, it can drive up to 12 steppers independently, of which up to 9 (or 10 in RRF3) can be axes (XYZUVWABCD)



  • @dc42 said in Getting the digital step/dir signals on stepper X,Y, Z:

    command in config.g to assign both an internal driver and a driver on t

    ok thank you.

    You say drive up to 12 steppers of which 9 can be axes. Out of curiousity, but what are the other 3 then ?



  • @educa said in Getting the digital step/dir signals on stepper X,Y, Z:

    @dc42 said in Getting the digital step/dir signals on stepper X,Y, Z:

    command in config.g to assign both an internal driver and a driver on t

    ok thank you.

    You say drive up to 12 steppers of which 9 can be axes. Out of curiousity, but what are the other 3 then ?

    Extruders for example


  • administrators

    Or additional motors for some of the axes. For example, using 3 Z motors drives connected to separate stepper drivers facilitates automatic true bed levelling. The motors are driven together most of the time, but independently when levelling the bed.



  • Somehow I figured out I need M584 for what I want to do, but

    My machine will have 2 steppers on Y axis, 1 on Z and 1 on X.

    Can I somehow easily configure the duet so that my first Y stepper runs on the Y-driver and then the second Y stepper runs completely parallel in movement, but driven by the E1 driver?

    M584 X0 Y1:5 Z2

    But what with extruder 1 then which is probaly assigned by default to E1 ? Or should I use then

    M584 X0 Y1:5 Z2 E7

    My ultimate goes is this setup

    X axis on X driver
    Y axis on Y and E1 driver (2 motors with each a driver)
    Z axis on Z driver
    NO extruder needed, but I want 1 virtual axis (It might be E0 or E1) which sends its step and dir signals to the expansion header where I can grab them. They will NOT drive a stepper but give signals to some other piece of electronics.


  • administrators

    @educa said in Getting the digital step/dir signals on stepper X,Y, Z:

    But what with extruder 1 then which is probaly assigned by default to E1 ? Or should I use then
    M584 X0 Y1:5 Z2 E7
    My ultimate goes is this setup
    X axis on X driver
    Y axis on Y and E1 driver (2 motors with each a driver)
    Z axis on Z driver
    NO extruder needed, but I want 1 virtual axis (It might be E0 or E1) which sends its step and dir signals to the expansion header where I can grab them. They will NOT drive a stepper but give signals to some other piece of electronics.

    Yes that M584 command will achieve that.

    Are you sure that you want to configure your "virtual axis" as an extruder, and not as an additional axis?



  • Everything you are proposing is well within the capabilities of a Duet 2. It is mostly a matter of choosing the pins you wish to use, and configuring for them.

    It can be slightly confusing that the drivers and/or pins have default labels that appear meaningful. In reality, they are fairly abstract (V2 firmware does have a few assumptions that are hard to abstract. For example. Heater 0 is intended to be the bed and it is fairly hard to move this around). So, yes, it is very possible to have logical X on the driver labeled X, logical Y on the drivers labeled Y and ____ (fill in the blank with almost anything you wish) and so on and so forth.



  • dc42 what would be the difference between defining them as axis and extruder ? Don't they both react the same ?



  • An axis will not move until it is homed (or the gcode to override "move without home" is issued). An extruder does not home.

    An extruder will not move until its associated heater is above the configured temperature (unless the gcode to override "cold extrudes" is issued).

    Both axis and extruder can be specified in G0 or G1, and if other axis/extruders are included in that same command, "coordinated linear motion" will occur (moving each at a speed that ensures they all reach their respective final points at the same instant in time.) So no difference there.

    There are probably more differences and similarities. These are a few that came to mind.


Log in to reply