Arduino power backfeed

On a recent Arduino project I had encountered issues with power backfeeding from the Arduino into other areas of my project. Since there wasn’t much on the net about this issue I thought I’d write about what I’d encountered and the various solutions.

The Problem

drinkbot_power_setup

So, there’s a control board that is powered by an ATX power supply, this distributes power to the Arduino and the various components that require more voltage/current than the Arudino can supply. The control board also allows for control of the components independent of the Arduino. The control board feeds the Arduino 5v on the vin pin.

And this all works fine. Except when the Arduino is connected to a computer via USB and power from the ATX supply is switched off. Here, the vin in starts giving out 5v feeding back into the control board and from them on to some of the components. The danger is that the backfeed could draw more than the Arduino or USB port can provide and fry one or both of them.

There are a lot of articles out there talking about powering Arduino from various external power sources, but very few mention that backfeeding can be a problem. So here’s a run down of the various solutions I encountered.

Solutions

The simplest is to use a diode, 1N4001 will do nicely, between the control board and the Arduino. However, the voltage drop across this would take the voltage to the Arduino below 5v, and the Arduino won’t work. So I’d need to power the Arduino off the ATX’s 12v rail. However, my power supply often supplies above 12v, which isn’t good for the Arduino. A couple of diodes in series should ensure that the Arduino never gets more than 12v.

I didn’t go with that one as I’m lazy and the control board is already built to work with 5v. But what if you need to protect from either reverse polarity or backfeeding and the voltage drop you can accept is small? Well you could use a Schottky diode, which has a lower drop. But even that was too much for my project.

Another possibility is to use a USB cable with the power line cut out. This way I could monitor the serial output of the Arduino and update the sketch without it receiving any power from the USB port. I’ve seen this solution used on Raspberry Pi projects, where backfeeding can be an issue.

A friend suggested keeping the control board at 5v and installing a diode, but then using a rail-to-rail op amp to make up the lost voltage after the diode. In a similar vein, I considered using transistors to create a diode with a zero, or minimal voltage drop (see: http://jeelabs.org/2012/05/30/zero-voltage-diode/ and http://www.instructables.com/id/Reverse-polarity-protection-for-your-circuit-with/). But I’m still lazy and both of these seem overly engineered solutions to the problem.

The solution I used was to install a simple cut off switch between the Arduino and control board. Which means I can simply switch off power supply to the Arduino when I want to control the components myself or if it’s being powered by something else. It’s not foolproof. If I’m not careful there is the potential to forget to use it. But, I didn’t have to destroy a USB cable, rebuild my control circuitry or make some complex additions.

Let me know in the comments below if you’ve ever encountered backfeeding with Arduino and how you solved it.

Advertisements

~ by Jay on January 24, 2015.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

 
%d bloggers like this: