I'm attempting to make a simplistic solenoid driver circuit using a standard astable 555 timer configuration with a TIP122 NPN transistor. The problem with the current circuit is that the output is typically high and goes low only for short durations. I'd like to invert this but I'm not sure how.

Sloppy 556 Solenoid Driver

Ideally I would like a high output every 1 second that lasts only for 100ms.

Do I just need to change RC values or utilize the 555 differently?

(The schematic shows a 556, which is what I am currently using. The lamp-looking squiggle is the solenoid and I have added a 1N4001 diode across it in reverse bias.)


2 Answers 2


The 555 can't be reduced under 50% duty (just with resistors, see below) since the discharge resistor has to be at less than half the value of the charge resistor (otherwise the junction of the two cannot reach the low trigger of 1/3 the supply voltage - see datasheet pg.12)
The various ways to do this would be to: either add a diode across the lower charging resistor, or add a second inverting transistor between the output and the TIP122. Or you could use a PNP transistor to drive your load.

Diode option (ignore part number for NPN shown):

diode option


Diode sim

Or something like this:

555 Short High


555 Short high sim

  • 1
    \$\begingroup\$ Varying duty cycle is indeed pretty simple with a diode. Personally I like this set up with a potmeter, which is essentially the same, therefore a comment: bennati.it/rik/ff/ff_file/control555sch.jpg \$\endgroup\$
    – jippie
    Commented Feb 6, 2013 at 7:16

Reading more about various 555 timer circuits, I realized I was already using exactly what I needed: a second timer.

I discovered that what worked best for this application, was to use one timer in astable mode to provide the pulses (interval), and the other in monostable mode to provide the one-shot "high". This allowed me to set both the interval and the amount of time that the solenoid is driven from each pulse.

556 dual timer schematic

The values used allowed me to have intervals from about a half-second all the way up to nearly a minute. The drive or "high" time controlled by the monostable timer (R3 and C3) allows for timings between a few milliseconds to a few seconds.

I added R5, a 1K resistor, later to ensure that the interval wouldn't go below a few hundred ms.

  • 1
    \$\begingroup\$ You basically just made an Atari Punk Cobsole :D \$\endgroup\$
    – naught101
    Commented Jun 28, 2018 at 23:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.