I'm trying to power up to 100 Arduinos that will be spread across a 25m wall using a single power line.

The idea is each Arduino will have a few a few buttons, leds & an oled screen and will all communicate to a master server using rs485.

====[A0]====[A1]====[A2]====[A3]====[A4]== ... ==[A99]

I've already followed this brilliant post http://www.gammon.com.au/forum/?id=11428 to implement the data connection using an rs485 bus.

However I'm struggling to understand how I could power multiple Arduino's from the one line and not introduce surges/ground loops from the difference in group potential caused by the long power line.

Would I have to isolate each Arduino and rs485 driver? Or is there a simpler solution?

  • 1
    Try electronics.stackexchange. It might be better to have a higher voltage power rail, and have a buck-converter on each Arduino, but I don’t have any experience with this. – Gerben Aug 25 '18 at 12:11
  • Sam's question on Electronics Stack Exchange: electronics.stackexchange.com/q/392642 – per1234 Aug 25 '18 at 17:07
  • please define single power line .... it means more than one thing – jsotola Aug 25 '18 at 18:31

You are already using a differential signalling system that doesn't care about ground levels, so you don't need to worry about that side of things.

As for power distribution - a strategy known as point of load regulation is what you want. That is where you supply a higher voltage (but lower current) power feed to one, or in this scenario more likely a group of, boards and regulate that power down using a switching regulator to a lower voltage (5V) and higher current.

This has the advantage that:

  • You are only worrying about small groups of Arduinos, not the whole lot
  • You can use thinner wires to feed in the power to a group
  • You get less losses from wire resistance at high currents

For 100 Ardunos you may want to have maybe 10 to a group with a 3A switching regulator for each group, giving an average of 300mA per board (depending on your current needs, of course - you may want less per group and more groups to give more average current per board).

In that example you'd have a total output current limit of 30A in 10 sections at 5V. That equates to (P=V×I) 150W. So a 200W 24V power supply would be adequate.

At 24V, 150W would demand 6.25A (plus some more to account for the efficiency of the regulators, so call it 8A - hence the desire for a 200W supply).

For 3A you need at least 24AWG wire - but preferably considerably thicker - maybe 18AWG. The 8A for the 24V would need minimum 15AWG, preferably bigger - although you don't need that size all the way to the end of your chain of regulators. If you had each regulator wired directly back to the power supply individually that would only need thin wires (absolute minimum 30AWG, which is tiny - though to keep losses to a minimum you'd want more like 20AWG).

So for simplicity and to reduce your wire costs, just stick to one size all the way through so you're buying only one gauge of wire (so you get a bigger discount for buying more). You could quite easily use:

  • 18AWG direct from the PSU to each POL regulator (24V, 0.8A)
  • 18AWG from each POL regulator to all Arduinos in a group (5V, 3A)

Of course, this is all using numbers plucked out of thin air, and you'd need to adjust it to fit your specific project, but you get the idea - higher voltage to a group, regulate to 5V, then 5V to each Arduino in the group. You don't need to care about grounding etc because you're using RS-485.

  • Despite being differential, RS485 does care about ground levels, to the point of not saturating the receiver(s). Given enough amplitude, ground bounce will introduce bit errors. – AaronD Aug 25 '18 at 16:46
  • @AaronD You'd need pretty massive ground bounce... One of the advantages of RS-485 is that you don't need to care about ground voltage differences at the different nodes. Hell, you don't even need a separate ground connection if you have a common ground somewhere around the system. The spec of RS-485 is -7V to +12V, and since this is working at +5V, it would be very hard for any ground bounce to get anywhere near that kind of level... – Majenko Aug 25 '18 at 16:49
  • 1
    I second @AaronD on this. This is not necessarily a ground bounce, as you call it, but a DC offset between the grounds that may or may not be there depending on the power distribution strategy. Such an offset could possibly saturate the RS485 transceivers, so the point remains. RS485 does care about ground levels. – Vladimir Cravero Aug 25 '18 at 18:22
  • With this much power I’d also add some fuses to the system. Shorting a 200W supply isn’t fun. It will also prevent the whole system from going down if only a single Arduino fails. – Gerben Aug 25 '18 at 21:11
  • Indeed. Although one per Arduino may be overkill. One per POL regulator may be a more realistic proposition... – Majenko Aug 25 '18 at 21:20

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