Active low stepper pulse

Hi, I'm making a new 3D printer. I already had some high power NEMA's with corresponding drivers and wanted to hook those up to a RAMPS 1.4 set instead of the usual A4988 drivers. These drives take an active low pulse signal. This meaning that the pulse is always high, so 5V, exept when the pulse hits it goes to low, 0V, for a few µseconds. Can the repetier firmware deliver this? Im not afraid to fiddle around in the arduino code but have no clue were to search without messing everything up.

Many thanks in advance.


  • Search the code for step and unstep. There you can change the high with low and vice versa for the step signals.
  • I too am experimenting with Wantai drivers to replace the polulu & equivalent onboard drivers.

    Can you be more specific with STEP & UNSTEP?

    I can only find reference to UNSTEP in Extruder.h, HAL.ccp and Motion.cpp.


  • Talking about 0.92.3 there is step/unstep in Extruder.cpp for extruder steppers. Then for xyz moves we have

    and in motion.h

    inline void startXStep()
    inline void startYStep()
    inline void startZStep()

    these are all stepper routines.

  • Thanks for pointing us in the right direction, it will be an interesting exercise. 
  • edited January 2016
    Wanted to first say thanks for the absolutely awesome firmware, host, and configuration tool!  I'm now using it to operate a diy cnc tube plasma cutter, and with the optoisolators being used for step and direction signals for the drivers, need to have the step signal active low.  I'm not real up and up with this programming language, so would greatly appreciate any further help/details to make the step signals for my x y and z axises active low.  By the way, I'm using a Mega 2560 board.
  • @jjurban55 That is easy. In manual tab add

    #define START_STEP_WITH_HIGH 0

    and all steps are done on low signals instead. Requires 0.92 version!

  • Wow thanks for the fast response and if it would be that easy that would be awesome.  I added

    #define START_STEP_WITH_HIGH 0

    to the manual tab for the Firmware Configuration Tool, but doing that seems to cause no step signals to be sent out from the Arduino.  Any ideas what I might be missing?

    Thanks again,


  • I will recheck if all parts use it. If I had forgotton one place so it alternates it would stay low.
  • Checking all occurences of X_STEP_PIN i see that signal is either set 


    so that seems the right logic. No exceptions found. So I have to assume it still toggles steps. Normally it also does not really matter if it toggles on high or low as we always see both signals per step. Do you maybe also need to invert enable signal?

Sign In or Register to comment.