3

Before I begin I just want to apologize for my mediocre understanding of things electrical and arduino. I know there are a lot of topics similar to this but I'm confused by the term external PSU

Question

Do I need to worry about any sort of issues (loops/grounding) if I use the molex connector to supply power to my arduino uno and continue to use the USB for serial communication at the same time? The source of both would be from the same PSU in my PC.

From what I understand the Uno when powered by DC should not exceed 7.5V for maximum efficiency. So it looks like the 5V from the molex would be more suitable than the 12V and sufficient for my needs of roughly 3.6A (60mA per LED * 60). Since USB can only supply a maximum of 2.0A and Molex appears to supply up to 5.0A from what I've read.

And I would connect it like so 5V molex powered Uno?

Background

Currently I'm using the arduino uno to power a single 5V strip of 30 rgb WS2812B leds, which works great when powered through the USB port, but since I need an additional strip of 30 leds and USB alone cannot supply enough amperage to power both I need a better source of current. I also needed the cleanest solution possible as it's for a PC tower and I don't want to use an external power source.

Edit - Alternative solution

If you have an Arduino board with USB, simply power the Arduino from your PC's USB via a standard cable and the LED strips from the Molex. The only connection between these two would need to be GND and led strip data line. No need to share a 5V between the LEDs and the Arduino

4
  • I think the Molex and the USB should have a common ground (The PC, The mains, etc), but why not just add one just to make sure? Commented Apr 21, 2017 at 14:49
  • USB is rated to supply only 500 mA. Some charging adapters, and occasionally computer USB ports, will supply more, but that should not be counted on unless you're doing the proper detection (which is manufacturer-dependent) to confirm that you can do that.
    – cjs
    Commented Apr 21, 2017 at 15:25
  • Oh, and I'd forgotten, there's also a 500 mA polyfuse on the USB input of the Uno, so even if your USB port can supply more than 500 mA, it makes no difference.
    – cjs
    Commented Apr 21, 2017 at 17:27
  • Post your own solution as an answer, not as an edit to the question.
    – gre_gor
    Commented Apr 22, 2017 at 9:48

2 Answers 2

2

Two important things first:

  1. The Uno 5 V pin and power bus must never be supplied more than 5.5 V or the MCU may die. The DC power input jack (the barrel jack) and the Vin pin, which are connected together, are not directly connected this bus, which is why you can supply higher voltages to that (see below).

  2. You can not simultaneously supply power via both the USB cable and a power supply to the 5V pin/5 V bus because that would directly connect the two power supplies. That's a very bad thing, and probably not just for the Uno. (But there is a trick you can use here to still connect USB data when you are supplying power to 5V; see below.)

Now on to the details.

You can safely connect Vin (the pin or the barrel jack; they are directly connected) and USB at the same time because there's a switch (T1 on the schematic) on the board that will disconnect the USB power line from the Arduino 5V bus if more than 3.3 V is being supplied to Vin.

However, Vin goes through a regulator which, while it has the advantage of safely handling voltages much higher than 5 V, also causes some voltage drop, so you need to supply it with a minimum of 7 V. (6 V might work if there's very little power draw; 5 V almost certainly will not.) The maximum voltage you should supply is 20 V, but it's recommended that you stick to 12 V or less, since higher voltages mean that the regulator can get rather hot.

Unfortunately for you, this doesn't really help with your problem. While you could take the 12 V power off the molex connector, supply it to Vin and run the Arduino itself quite happily with the USB cable also connected, the regulator on Vin is rated for only 1 A, which is considerably less than you need for the entire system.

There are ways to have some parts of the system powered by one power supply and other parts powered by a separate power supply, but they're not trivial (and also beyond my expertise at the moment :-)).

Probably the easiest solution is to connect the 5 V output from the molex connector to your system power bus, which would be supplying both the 5V pin on the Arduino and your external components, and then build a custom USB cable with only the D+ and D- pins connected, dropping the power and ground pins. (You don't need the ground pin because the USB data signal is actually a differential signal: the difference or similarity in the voltage between D+ and D- pins is what determines whether the signal is a 1 or a 0.)

By the way, just to make sure, you do have some separate switching for all those LEDs, right? You're not trying to provide all their power via the Arduino digital outputs? Because, as per section 32.1 of the ATmega328P datasheet, while you are allowed to sink up to 40 mA from any individual data pin, you cannot sink more than 200 mA in total from the chip.

2
  • Wow thank you for such a detailed and well thought out explanation. Really appreciate that since, I know very little. To answer you question about the LEDs I'm not entirely sure how to answer it best. This is the project I'm using as an example for mine. github.com/CalcProgrammer1/KeyboardVisualizer right now there is no switching on my led strips connected to the digital output, ground and the 5V pin that I am aware of. Seems to run fine with just the 1 strip of 30 LEDS so I'm assuming that the strip itself is handling this?
    – Brandonm
    Commented Apr 22, 2017 at 6:51
  • I'm marking you answer as the correct answer. But I have discovered an easier way which wouldn't require a custom USB cable, I could simply power the Arduino from my PC's motherboard USB header via a standard cable and the LED strip from the Molex seperately. The only connection between these two would need to be GND and led strip data line I believe. So I would never need to try share a 5Vs connection between the 2 components.
    – Brandonm
    Commented Apr 22, 2017 at 9:38
0

If you have an Arduino board with USB, simply power the Arduino from your PC's USB via a standard cable and the LED strips from the Molex. The only connection between these two would need to be GND and led strip data line. No need to share a 5V between the LEDs and the Arduino

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.