# Let two LEDs blink with Raspberry Pi

I have written a simple Python program which runs on a RPi to make an LED blink. For that I connected my RPi using GPIO 23 with the anode of the LED, and before going back to ground, I added a resistor with 220 ohm. So far, this works.

Now I would like to make two LEDs blink, so I just thought to add a second LED and put them in series. Unfortunately, exactly nothing happened. So I have a number of questions:

1. Why does nothing happen? Are the 3.3 volts of the RPi too little for two LEDs and a 220 ohm resistor?
2. Is it even correct to put the LEDs one after the other, or would I need to put them in parallel?
3. How do I calculate the correct resistor, if I don't know the data of the LEDs? What would happen if I simply remove the resistor? Would I risk damaging the RPi?
• What's the forward voltage for each LED? Commented Oct 28, 2018 at 16:36
• As said, I do not know anything about those LEDs. How do I find this out if I don't have a data sheet? Commented Oct 28, 2018 at 16:39
• Measure the voltage across it when it's lit. Commented Oct 28, 2018 at 16:42

To answer your first question, yes. 3.3V is not enough to forward-bias two LEDs, which typically need somewhere around 2V each for red LEDs and more for other colors.

For the second question, putting them in series is entirely reasonable, and often preferred as it prevents current crowding (where one LED with a slightly lower forward voltage "hogs all the current").

As for the third question: You'd have to measure the forward voltage of the LED. Many, if not most, multimeters can measure the forward voltage of a diode, but few (at least that I've seen) can measure voltages as high as most LEDs. Not using a resistor will damage your LED, your rpi, or both, and is not recommended.

To measure the LED forward voltage, try the following circuit:

simulate this circuit – Schematic created using CircuitLab

This will give you an idea of the LED forward voltage. If you hook up this circuit and the LED doesn't visibly turn on (which may happen for high-current blue or white LEDs), try changing to a 100Ω resistor.

A better circuit would involve an active current source, but this one is probably good enough for your purposes.

• @GoloRoden It's generally recommended that you not mark answers as accepted until it's been at least 24 hours, to give other people a chance to post answers. Someone else might have a better answer than me! Commented Oct 28, 2018 at 18:52

220 Ω is a bit on the high side.
If blue, green, or white use a 50 Ω for 10 mA.
If red, orange, or yellow use a 100 Ω for 10 mA.
If driving them with a GPIO pin, use one pin for each LED.

There apparently is no datasheet for the RPi's processor, the BCM2837.
So I figure 10 mA is a safe current.

I searched for a datasheet but to no avail.
I did find many others looking as well.

The Cortex peripheral GPIO pins are weak. No one seems to know how weak.

Below is the "best" I could find. It's on the BCM2835 not BCM2837.

The GPIO pins are connected directly to the BCM2835 chip at the heart of the Raspberry Pi. These provide only a 3.3V output level, and are not capable of supplying much power. More importantly, if they are damaged through misuse the Pi itself will need to be replaced.

So, if you are connecting anything more than a small LED to the GPIO output, you should use an additional circuit to boost the voltage and/or current.
Source: RPi GPIO Interface Circuits

So what's a "small LED"?
Broadcom sells some high efficacy indicator LEDs. Possibly to be used with the BCM2837 GPIO. Broadcom has a 11° green LED with a luminous intensity of 57,000 mcd.
High efficacy means the LED do not need much current to be fairly bright.

The Safe Approach

This are the recommend circuits, form the above source, for driving a load with the RPi:

This is what I would recommend putting in the "load" box.
You could use the +3.3V (3V3) rather than 5V.