I am able to control an RGB LED strip using Raspberry Pi, using 3 x TIP120.

However, I would like to add multiple strips, maybe about 7 to 10 RGB LED strips. I will use 12V 30A power supply.

I am wondering why the light is not so bright when I connect 2-3 series of RGB LED strip.

Do I need to use 3 x TIP120 for each RGB LED strip?

Any suggestions is appreciated.

Thank you!

EDIT: enter image description here Image from http://popoklopsi.github.io/RaspberryPi-LedStrip/#!/

I used that tutorial related to this question.

  • \$\begingroup\$ Can you add a circuit schematic? \$\endgroup\$
    – Jim
    Commented Oct 26, 2016 at 15:56
  • \$\begingroup\$ I added an image @Jim \$\endgroup\$
    – Zach
    Commented Oct 26, 2016 at 16:01
  • 1
    \$\begingroup\$ Zach, that is NOT a circuit diagram. That is a wiring diagram. Fritzin can also produce a circuit diagram. Please post a circuit diagram. (It may be called schematic diagram. I don't use Fritzing so I can't tell you for sure what Fritzing calls it.) \$\endgroup\$
    – JRE
    Commented Oct 26, 2016 at 16:07
  • \$\begingroup\$ Hi Zach, welcome to EE.SE! Please give a link to the LED strips you are using. (If you can't add the link to the question due to new-user restrictions, please post it as a comment. Someone will insert it into the question.) \$\endgroup\$
    – bitsmack
    Commented Oct 26, 2016 at 21:07
  • \$\begingroup\$ 30Amp and breadboard = no workie \$\endgroup\$
    – Wesley Lee
    Commented Oct 27, 2016 at 19:01

2 Answers 2


A TIP120 is already a darlington with a reasonably high beta... if you're having trouble saturating it with the GPIO output of an Arduino, adding another transistor is just going to raise the Vbe drop another 700 mV and make the problem worse, not better.

You don't say how large a resistor (if any) you are using between the Arduino and the base of the TIP120, but using a lower value there would probably help.

The ATMEL datasheet specifies the minimum tolerable voltage for a "High Level" output as 2.3V ... typical value is probably going to be never more than one diode-drop below Vcc - or 2.6 at the very best.

While the datasheet for the TIP120 says the maximum Vbe is 2.5 volts, a much more typical value is going to be on the order of 1.7V ... To drive the transistor into saturation, you're going to need at most 5mA , well within the current limit for a GPIO pin.

A solution that adds parts count, would be to invert your logic, drive the base of the TIP120 with 12V through a suitably sized resistor ( around 2K would be adequate ) and use a small signal PNP driven by the arduino to "turn off" the base current. Schematic forthcoming.

schematic of arduino driver


The circuit in question is designed around N-channel MOSFETs. You are instead using NPN Bipolar Junction Transistors (BJTs).

Although both of these types of transistors can be used to switch power, they behave very differently from each other. One example is that MOSFETs don't have any significant gate current. A BJT, on the other hand, needs a current-limiting resistor placed before its base. Without this resistor, the current through the base can destroy the transistor (or the GPIO pin which is driving it).

Another issue with your specific transistor is that it has a 2.5V turn-on voltage (called \$V_{BE}(on)\$ in the datasheet). This is how much voltage needs to be applied to the base just to start current flowing through the transistor. Since the RPi outputs 3.3V (which isn't much higher than the threshold) the transistor may not "turn on" all the way. This may have compensated for the lack of current-limiting resistors!

Finally, when choosing a BJT (or MOSFET), make sure that its current capacity is sufficient. I don't know how much current your LED strips require, but make sure that you do the math :) The TIP120, incidentally, is good for 5A.

Short version: use an appropriate MOSFET instead of the TIP120's.

  • \$\begingroup\$ Alternative version, make some simple driver circuits. 2n3904 to drive the TIPs. \$\endgroup\$
    – Passerby
    Commented Dec 28, 2016 at 23:47

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.