8

I'm working on an embedded project, where I use arduinos as a "sensor shield" for RaspberryPi (I have model B).

The problem is, that the RaspberryPi's USB port is not powerfull enough to drive WiFi adapter and arduino with sensors. The solution is easy, I will power the sensors externally, not through the RPi.

But I was wondering, is it possible to power whole Arduino externally (through Vin) and use the USB only for serial communication.

To clarify, I know how to solve my problem - use some other mean of communication, than USB - GPIO serial, I2C, wireless, etc... I'm just interested if the whole thing will work, with USB cable which has 5V lead cut, for example.

The main issue I can see with this is, that the USB<->Serial chip is powered through USB only, then it will now work.

3
  • Any particular Arduino? Dec 9, 2014 at 9:37
  • I'm using Nano v3 and Mini, but I'm looking for general solution preferably.
    – jnovacho
    Dec 9, 2014 at 11:47
  • The general solution is to stick to bare MCUs, since each board's power circuitry is slightly different. Dec 9, 2014 at 11:56

3 Answers 3

8

If you provide power to the Arduino through Vin this will disconnect USB power through the MOSFET switch.

2

There are a couple of alternative solutions to the question that I think are worth mentioning.

  1. Use a data only USB cable or manually cut the VCC and GND wires of the cable.

  2. Remove the USB poly fuse from the arduino board.

  3. Connect external power to one of the input pins to measure the voltage. This measurement can then be used to determine if the external power is connected and is providing sufficient voltage. If it does the USB power should not be use anyways, otherwise an if statement can be used to disable the code that turns devices that draw power. USB power will still be used to power the arduino board itself. It also has a limitation in that because the power supply could provide insufficient current it could draw the remaining required current from USB.

3
  • Suggestion #1 didn't seem to work for me, which was really confusing. I'm working with a 3D printer scenario running Marlin on the Arduino. When I power on the printer/power supply, everything connects like it should when using an unmodified cable. But, when I try the cable without the VCC & GND wires, nothing will connect. Could the RAMPS board not be powering the serial bus or something? Kinda scratching my head on this one.
    – Erutan409
    Apr 21, 2017 at 13:41
  • 1
    Only cut VCC and keep ground connected. AFAIR it won‘t work with GND connected
    – Nitek
    Jul 15, 2018 at 5:55
  • The FTDI chip requires power from the USB side to operate so suggestion 1 will not work
    – Rob Jolley
    Apr 17, 2019 at 12:59
0

Just cut the VCC line (usually red) in the USB cable.


There are four wires in a USB cable:

  • Ground
  • VCC
  • Data +
  • Data -

You cannot send data along without a reference ground as you need a potential difference. Hence you must keep the ground connected and just snip the power line (red VCC).


Note that this is not usually necessary as VIN is favoured over USB power.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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