USB PowerControl Version 2 for Raspberry Pi and Arduino

This board comes in two versions.  USB PowerControl and USB PowerControlNE.   The only difference between the boards is the sense of the ENABLE line.   The ENABLE line is Active High on the USB PowerControl and Active Low on the USB PowerControl NE.

The USB PowerControl board is a USB to USB solid state relay.  It is is a digitally controlled power switch for your Arduino or Raspberry Pi.  It is a Pi On and Off switch.

Anything you can plug into a USB port can be controlled with USB PowerControl. It’s easy to hook up. You connect a control line (a GPIO line or the output of a LiPo battery) to the LIPOBATIN line and if the line is LOW (< ~3.3V) the USB Port is off. If it is HIGH (above 3.8V) the USB Port is turned on and you have 5V of power to the USB plug.

We have now added a Grove Digital Input that allows you to control the USB PowerControlV2 using two GPIO Lines (one enable and one control line) to switch on and off from a Grove Digital Port.   The Grove Enable Line, when high, disables the LIPOBATIN line and makes control of the device under the Grove Control Line.   When the Grove Enable Line is low, the LIPOBATIN line controls the relay as in the original USB PowerControl.   The Grove Enable Line is pulled down by a 43K resistor so if it is disconnected, the USB PowerControlV2 is compatible with the original USB PowerControl.

Comments are now closed.   Please go to the Product Support Forum at the top of the page.


How to Buy SwitchDoc Labs Products

United States and Worldwide: SwitchDoc Labs Store 

Another Choice Within United States: (Free Shipping with Amazon Prime!)

 Note:    For the latest information and specifications, go to the product page on


Application Note Published *Secrets of the USB PowerControl!*   Turn your raspberryPi/arduino on and off using this solid state relay.  Use a GPIO line, use a WatchDog timer, use a different voltage level to trigger the relay.

This board was initially designed to sit in-between a Solar Power Controller (such as SunAir/SunAirPlus) and a Raspberry Pi / Arduino. The input to the board was designed to come directly from a LiPo battery so the computer won’t be turned on until the LiPo battery was charged up above 3.8V. We provide a hysteresis circuit so the board won’t turn on and then turn immediately off because the power supply is yanked down when the computer turns on (putting a load not the battery).  This really happens!!!!  You kill Raspberry Pi SD Cards this way.

The software for this device is simple. You use one GPIO line to turn it on or off (or connect it directly to your LiPo battery for automatic control!). It controls the 5V line that powers a USB device plugged into the female USB A power end of the board.

The  Grove Digital Input allows you to control the USB PowerControlV2 using two GPIO Lines (one enable and one control line) to switch on and off from a Grove Digital Port.   The Grove Enable Line, when high, disables the LIPOBATIN line and makes control of the device under the Grove Control Line.   When the Grove Enable Line is low, the LIPOBATIN line controls the relay as in the original USB PowerControl.   The Grove Enable Line is pulled up by a 43K resistor so if it is disconnected, the USB PowerControl is compatible with the original USB PowerControl.



USB PowerControlNE has an active low ENABLE line that is pulled high by a 43K Ohm resistor.



  • Can Switch the Power to any plugged into the Female A USB port
  • On/Off Controlled by a single control line Implements Hysteresis on Control line
  • Enable and Control Lines on Grove Connector
  • Grove Connector with Enable and Control Inputs
  • 3.8V/3.3V Turn On/Off Voltage on Control Line 3.3V Turn Off Voltage on Control Line
  • Over Current Protection
  • Thermal Shutdown
  • Reverse Current Blocking
  • Can be connected to GPIO Pin or directly to LiPo Battery
  • Supports both Arduino and Raspberry Pi
  • Has Dual USB ports – no more cutting USB cables
  • Will work with SunAir and SunAirPlus Solar Power Controllers

USB PowerControl Product Specifications

Do I have Version 1 or Version 2?


Version 2 Looks like this:


You can download the current Full VERSION TWO USB PowerControl Product Specification here.





Version 1 Looks like this:

IMG_2860 copy 2

You can download the current Full Version ONE USB PowerControl Product Specification here.




Block and Application Diagrams

USB PowerControl Application Diagram
USB PowerControl Application Diagram
USB PowerControl Block Diagram



  1. What is the pass current capability of the solid state switch used? Will it handle 2 Amps?

  2. Found the answer 🙁 it was no. I need one which used a different pass controller than the Fairchild FPF2123

  3. I am attempting to use an Arduino to control USB power to a Raspberry Pi running from a lipo solar battery setup. Question: Should it be possible to feed 5V from the Arduino to the “lipo batt” pin on the board to trigger a high signal (power on)? I setup a breadbord/sketch to test this but am having trouble getting the board to power on. If I “tap” my 4.9V wire by hand to the “lipo batt” pin I can power on. When I wire it through a breadboard, bringing the pin to 4.9V I get no luck. I’m pulling my hair out and looking to confirm that this setup should work. Thanks in advance.

    • Hi Frank,

      Yes, connecting the LipoBat to 4.9V will turn the USB PowerControl on. Anything above ~3.8V will turn the board on. We regularly drive the LiPoBat line with a GPIO from the Arduino.

      Do you have a voltmeter? See what you are actually applying on the LiPoBat pin. Something is miswired, or possibly you don’t have a common ground. You can always trust your mother, but you can never trust your ground.


  4. Hi SDL,
    Thanks for the quick reply! This info helps, now I know it should be possible. I do have a volt meter hooked up and am reading 4.9V on the “Lipo Batt” pin. I was wondering about a common ground a possible issue, however I’m not sure where to attach it on the USB Power Control board. I only have one wire from the Arduino going to the USP Power board. I see three pins that I can solder to on the USB Power board, the Lipo Bat, 5V and Ground,. The 5V and ground being in a different spot on the board. Can/Should I setup a wire to this ground pin on the USP Power board back to my Arduino? (How do you setup the ground?) Should I be using the 5V and Ground pins instead of the Lipo Batt pin?

    What a super cool and useful chip, thanks for making this product available.

    • Thanks for the compliment. We use this board all the time. We have a new app note coming out for the USB PowerControl Board next week.

      LipoBat is the correct pin to wire up to your GPIO output. Connect up the GND pin on the USB PowerControl board to the GND pin on the Arduino. You must have a common ground between the boards. Not all USB plugs are grounded by the way. Check it with your Voltmeter (set to resistance and see if GND is connected).


  5. We bought 3 of these from amazon but none works. I have tested with my digital multimeter, Input side USB shows 5V/1.1Amps, but the output side USB shows 0V/0Amps for all the 3 i bought. Can you please help.

  6. If I attach the USB power controller directly to a Voltaics V44 battery (at full charge), and the power controller connects to the Raspberry Pi, it won’t switch on.

    I have connected the LIPOBATIN pin to the 5v GPIO pin on the RPi and the ground pin on the controller to a ground GPIO pin (not sure if that was necessary), and it never comes to life.

    Is it possible for the controller to sit between a battery and the RPi, and if so, what have I done wrong?


    • Hi Geoff,

      Not sure what you are doing wrong. The V44 just supplies 5V and you’ve checked that?

      Remove the V44 from the system and plug in a normal USB cord and see if it works.

      Also, you need to have a common ground in the system. Make sure that you have done that.



  7. Hi there,

    So I’m using the same configuration that Geoff is using above and put the 100K resistor to put the USB chip on by default, however when the Raspberry Pi turns on, it shuts off every 15 seconds or so. Do you have any idea what could be causing this?



    • Kyle,

      Without see a schematic, I would be very suspicious of your power supply for the Raspberry Pi. Low voltage, lots of ripple, not enough current, something like that. The one that is going through (we assume) the USB PowerControl.



  8. Hi again,

    You were right about the current lack. Even though I’d drawing 5V from the battery and through the USB, the current is very low (~2mA). The battery has a 2.4A output, so I’m curious to why the current draw is so low. Any ideas?


    • Kyle,

      It sounds like There is something wrong with the battery. Can you just plug in a 5V power supply in place of the 5V battery and see if your system works?



7 Trackbacks / Pingbacks

  1. Turning the Pi On and Off - WeatherPi Solar Power - SwitchDoc Labs
  2. Figuring Out When to Shutdown your Solar Powered Raspberry Pi - WeatherPi - SwitchDoc Labs
  3. Energy: Final Project – PiLapse | Made by Craig
  4. Secrets of the USB PowerControl - Application Notes - SwitchDoc Labs
  5. Secrets of the Solar Powered SunAirPlus Controller - Application Notes - SwitchDoc Labs
  6. Tutorial: Part 4 -Building a Solar Powered Raspberry Pi Weather Station - GroveWeatherPi - SwitchDoc Labs
  7. Guest Blog - Solar Powered OurWeather Station - SwitchDoc Labs

Comments are closed.