I am currently working on a project that requires a 12V RGB led strip controller. basically this is the controller:

RGB LED strip controller - 12V

Please note that I am using a raspberry pi 2 and that the pins in this diagram does not exactly match mine, but the principle remains the same.

I built the controller on a breadboard and everything went great. I then transferred the components to a proto board and connected it to my power supply. Nothing was booting.

Upon rechecking, I noticed that I accidentally swapped the input of the 12V power supply applying positive to ground and ground to positive. Hence, I pushed 12V+ into the ground pin of the pi. All my other components are also connected to the same ground pin. These components are:

37.xxx mHz timing crystal, DS1307 chip, MCP3008 ADC chip and Force sensitive resistors

When I fixed the wiring, the Raspberry pi booted as it should and it seems like everything is working except for the Force Sensitive resistors (problem could be with the FSR or the MCP3008 ADC chip or my brilliant soldering skills on the proto board which I think might be the main problem) and the LED strips (problem here can be the transistors or once again my soldering. I already tested the strip and that works). It also seems that my RTC module that I built with the crystal and DS1307 chip works and keeps time. This is also running on the same ground line as what the 12V+ was applied to. So I don't think the ground pin will be damaged.

My question is this: By swapping around the 12 v as in the diagram below, could I have damaged the transistors (which can take up to 16V, but thats when it goes into the right input I guess) or the ground GPIO pin on the PI? I might be wrong but when swapping these two terminals accitentally, is the circuit actually complete for the 12V as it is going into the transistors?

Can I test if the ground pin (or any other pin for that matter) has been damaged by applying an led and resistor between 5V and that particular GND pin and if the GND pin is damaged, will the LED light up? I can also use my DMM to read the voltages.

If anybody has some tips around how I can test this, or know if I certainly did kill my precious ground pin, please let me know. Your valued input is highly appreciated.

  • 1
    You can't damage the "ground pin" there is no such thing. You may have blown the 3 GPIO pins. This is a poor circuit anyway, without series resistors in the base pins you would be shorting the GPIO even if you hadn't wired it in reverse.
    – Milliways
    Commented Dec 15, 2015 at 7:53
  • 1
    Next time, use a buffer. Anyways, set all GPIO pins to high and use your DMM to carefully test each pin (Don't short out the pins. Touch one pin at a time. - on ground, + on the suspect pins). Test the ones that you used first. I think you blew them.
    – Aloha
    Commented Dec 15, 2015 at 9:16
  • @PandaLion98, Im fairly new to this so the term buffer does not mean much to me in this sense. any links to tutorials/more information about this? Commented Dec 15, 2015 at 9:33
  • @Milliways, To improve the circuit, do I just add 3 resistors between the pin and the transistor? Which value would be appropriate when working with 12V? Maybe a capacitor to prevent voltage spikes? Commented Dec 15, 2015 at 9:34
  • 1
    @JoachimPrinsloo As an electrical engineer I can say this is poor design, but I can't responsibly answer your question without proper detail of the components see elinux.org/RPi_GPIO_Interface_Circuits
    – Milliways
    Commented Dec 15, 2015 at 10:49

1 Answer 1


It sounds like you were lucky in that the Pi appears to still work.

To test the GPIO use either my gpio test (requires pigpio) or wiringPi's pintest utility.

These test the basic GPIO functions.

  • I already use your pigpio library for pwm to control my strips. Great work on that by the way. I will definitely test the pins with your script. Just a quick question through, I see in the video that it tests the non user pins as well. will it list those non user pins under failed if the test fails? Also, does your script results list the pins board number or BCM number? Commented Dec 15, 2015 at 9:36
  • The script doesn't touch the non-user GPIO, it skips them, only user GPIO will be failed. The script uses Broadcom GPIO numbers.
    – joan
    Commented Dec 15, 2015 at 11:42
  • So here is an interesting development. The gpiotest shows that nothing is blown and all the gpio pins are working fine. That sounds like one out of a million. I will conduct some more tests tomorrow. If I walk away from this and everything works fine you can be sure that I learned an expensive lesson very inexpensively. Commented Dec 15, 2015 at 20: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.