Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to drive a stepper motor's driver (QuadStepper) with an LM555 timer circuit, however the logic levels are known to be 5v compatible. While the driver has both 3.3 and 5 volt compatibility, I need to use it at 3.3 volts.

How can I use a 555 Timer (or other simmilar IC) to drive the stepper driver with 3.3. volt logic levels?

EDIT: I only need the timer to drive the step input, all other inputs will be driven from a micro controller.

share|improve this question
This was a entry to the 555 Contest you might be interested. – Dean Aug 8 '11 at 17:55
@Dean, that's really cool. – user3045 Aug 8 '11 at 21:10
up vote 1 down vote accepted


  • Driving that controller board with a 555 is "easy" - just apply a swuare wave to the step input while setting all other inputs high and low as appropriate.

  • BUT if there is also a microcontroller present then no 555 is strictly necessary - consider just using that. ie what are you trying to do. Why 3v3?

While the Quadstepper board that you refer to is probably intended by its makers to be driven with a microcontroller you can drive it, or the A4983 IC that it uses using a 555 timer or similar square wave oscillator plus a few switches or jumpers to set options and control lines. The motor will then drive at one step (or microstep depending on option settings) per oscillator cycle. Direction can be changed with a switch and stepping enabled/disabled by stipping the oscillator feed to the controller.

If you are using a microcontroller (mcu) it is probably not necessary to use an eg 555 as well. That is, it is not hard to generate a square wave signal as part of an mcu's tasks. if you wanted something that you could "set and forget" without involving the mcu you could use a 555 or similar as well and just enable/disable it with the mcu, but this would not be a common choice. But if you are not using a microcontroller at all then the 555 will allow stepping job by itself. You could also use any other source of an appropriate level square wave to drive the stepping line, as described below.

specifically designed to drive any one of 4 stepper motors at one time using a simple square wave signal as the step speed control. A device like a 555 timer can easily be setup to control the stepping speed. The user will need to select direction of rotation, which of the 4 connected drives is active and which of the various provided stepping modes is used.

It is not apparent why you think you need to operate the driver at 3.3V logic levels, as tge stepper motor supply for this driver has an allowable range of 8 to 35 Volt, and the logic supply from 3.0 to 5.5 V, but I will assume that you do need to use the levels that you say.

A4983 datasheet shows that to operate Reset = high, Enable = low.

Refer to the IC datasheet. As shown on page 1, to operate the stepper you place reset high, enable low, set the direction line as required and then place a square wave on the "step" line. The motor will step once for each rising edge of the stepping signal. The actual step carried out will depend on the option settings.

An NE555 will not operate on less than 4.5V. You can opertae it from 4.5V or above as an "astable oscillator" and divide the output voltage down to 3.3V logic levels. eg if you use a 5V supply you divide by 3/5 = 0.6. eg 6k8 from 5V output to 3v3 input and 10k from 3v3 input to ground will provide the required division. (You could also use 680 ohms and 1k or 68k and 100k to get the same division ratio depending on drive level requirements).

You can use SPDT switches to set the levels on the direction, enable, reset lines or, probably better SPST switches with pullup resistors. 10k is probably an OK pullup resistor value.

For the 555 oscillator you can use the 555 astable osllator circuit from here as below or any of the many similar on web examples.

enter image description here

share|improve this answer
+1 Very complete answer, you outdo yourself sir. Yes, the idea is to "set and forget" as you say. Also I want to be able to change the frequency of the stepping via an MCU's analog out (which is not within the scope of this question). I needed to be able to show how this could be done without an MCU for ppl who have no programming experience but still want to experiment. So the answer is to use a voltage divider to get to 3.3 volts. Thanks – user3045 Aug 9 '11 at 16:35

You can't use that driver board with a 555 timer, it requires four inputs from a suitable MCU (see the A4983 data sheet). You might be able to design some logic to drive it from the 555, but it won't be easy.

share|improve this answer
Good catch. Something like the L297 stepper controller might work in between. Output voltage translation would still be needed, but given the low (in electronic terms) switch rate can probably be accomplished with series resistors or resistive dividers depending on the input specs of the board. – Chris Stratton Aug 8 '11 at 18:51
@Leon, I only need the step input from the LM555, all other inputs will come from the Micro Controller. – user3045 Aug 8 '11 at 21:09
I don't see why you need the 555, everything can be done with the MCU. – Leon Heller Aug 8 '11 at 21:48
Note that while use of an MCU was probably envisaged by IC and PCBA designer, thecontroller CAN be driven with an eg 555 with no mcu involved. This was what was asked for. – Russell McMahon Aug 8 '11 at 23:07

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.