I have 12 solenoids (12v rated) connected in parallel to two Darlington arrays (ULN2803A). Each solenoid has 88-ohm impedance. The power supply can provide a stable 12V with up to 2A current draw. (See below)

The solenoids are controlled with 20ms impulses. When all solenoids are activated, the current draw does not exceed the maximum (2A) and voltage stays stable (slightly above 12V).

All solenoids are connected with 0.5mm wires with up to 2-meter length.

The problem:

When each of the solenoids is activated, they perform as intended. However, when 6 are enabled at the same time, one of them does not work.

As the solenoid works when activated on its own, there should not be mechanical issues and is rather a lack of power to activate it.

Why would it lack power if the operational voltage is supplied and the power supply maximum current draw is not reached?


  • The inputs to Darlington IC are driven by 3.3V signals from an MCU.
  • It is the same solenoid that fails.
  • If 12 are driven at the same time, then multiple solenoids fail.
  • All of them are relatively same distance from GND.
  • (When 6 are driven, #2 fails)

EDIT2: After re-measuring voltages across the solenoids:

  • When 12 are active - voltage across each is 10.8V
  • When 6 are active - voltage across each is 11.1V
  • When 1 is active - voltage across it is 11.4V

The voltage supplied by the power supply is 12.3V


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ Please add to your question: (1) The logic-level control voltage, 5 V, 3.3 V or whatever. (2) Is it alsways the same solenoid that fails and which one? e.g. Is it the one furthest from the GND pin? \$\endgroup\$ – Transistor Feb 3 '18 at 7:59
  • \$\begingroup\$ @Transistor added extra information to the post \$\endgroup\$ – Arturs Vancans Feb 3 '18 at 8:06
  • \$\begingroup\$ "0.5mm wires with up to 2-meter length" ... really? That seems a tad small to me. \$\endgroup\$ – Trevor_G Feb 3 '18 at 13:00
  • \$\begingroup\$ @Trevor_G each line is used for short impulses (20ms) with a few seconds rest time in between. The temperature seems fine... Unless there is anything else I need to worry about \$\endgroup\$ – Arturs Vancans Feb 3 '18 at 14:56

\$ I = \frac {V}{R} = \frac {12}{88} < 140 \ \mathrm {mA} \$

Six solenoids will draw \$ 6 \times 140 = 840 \ \mathrm {mA} \$.

enter image description here

Figure 1. According to the ULN2003 datasheet you are operating within specifications so that's not your probblem.

If we read on we find a possible clue here.

enter image description here

Figure 2. As the total emitter current rises so does the input on-voltage.

I suspect that what is happening is that the internal chip common GND line voltage is rising with increasing current due to its resistance. As the GND voltage rises then so does the input voltage required to turn on the output transistor. Your 3.3 V control logic is just on the edge of working.

enter image description here

Figure 3. The ULN2003's internals.

I suspect that there is some kind of race going on with your circuit and that, perhaps you are switching them on sequentially even if very quickly. This could be due to your controller code or due to the internals of the ULN2003 and that's why I wondered if the same solenoid was affected. The ones furthest from the GND pin on the chip die would have the highest emitter voltage.


simulate this circuit – Schematic created using CircuitLab

Figure 4. Using an additional ULN2003 as an inverter.

The option of Figure 4 uses the first ULN as an inverter with pull-up resistors to ensure a good drive voltage to the second driver. Since the first one is switching relatively low currents the input on-voltage will be less than 2.4 V (Figure 2) and will switch reliably. The logic will be inverted, of course.

One thing to look out for: since you are having this trouble with one input you may find that the others are barely switching on and that the Darlington transistors are not "hard-on". According to Table 6.6 you should see a maximum of 1 to 1.3 V on the outputs. If this gets higher than that I suspect that the chip will warm up and could get hot to touch.

  • \$\begingroup\$ A great quality answer! I will try the circuit suggested and see the results \$\endgroup\$ – Arturs Vancans Feb 3 '18 at 8:36
  • \$\begingroup\$ While I am still trying to understand Table 6.6, I tried to increase the input signal to 5V (in case if GND is rising) and the issue is still persisting. (I am using sn74hc595 shift register between MCU and Darlington, so I changed the Vcc for it to 5V) \$\endgroup\$ – Arturs Vancans Feb 3 '18 at 8:49
  • \$\begingroup\$ Is it time to add your schematic? \$\endgroup\$ – Transistor Feb 3 '18 at 9:03
  • 1
    \$\begingroup\$ This could explain it. Swap the number 2 solenoid with another and see if the problem moves with it. It may require a higher voltage than the others. You may require a better 12 V PSU and you might get away with 3.3 V logic drive to the ULN2003. \$\endgroup\$ – Transistor Feb 3 '18 at 10:16
  • 1
    \$\begingroup\$ That's the collector-emitter saturation voltage specified in Table 6.5 and that's how low the Darlington transistor can pull the output voltage at a specified current. You've got to allow for that in your calculations so you're already down a volt for your solenoids before the PSU voltage starts to collapse. You could hook a good one and the suspect one up to a lab power-supply and check what voltage they pull in at. While you're at it, and for your own education, see how low you can drop the voltage before the solenoids release. The difference is the "hysteresis". \$\endgroup\$ – Transistor Feb 3 '18 at 10:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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