0
\$\begingroup\$

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 Arduinos from the one line without affecting the quality of the data bus.

Would I be able to use a 48v power rail with buck converter for each Arduino?

Would I have to isolate each Arduino and rs485 driver (my concern is the length of the wire will create different ground potential and effect the quality of the data bus)?

\$\endgroup\$
3
\$\begingroup\$

If your arduino is doing little more than reading buttons and comnmuniction on the RS485 bus I wouldn't worry too much about the power. At 10mA per Arduino the total consumption would be ~ 1A. Feeding at both ends would half the load. You could even feed in a couple of places in the middle.

Using buck converters would greatly reduce the currents (and the bills), so that would be a good idea if the current would be too high.

RS485 is a safe choice, but do you really need it? I think I would go for a daisy chain, where each Arduino (-nano) sends (UART output) to the next (UART input), modifying the message by insterting its own button data. With 25/100 = 0.25m between adajcent Arduino's this should be pretty reliable.

A nice extra is that the ground potential is only an issue between two adjacent Arduino's.

(I once designed such a system, which did include enumeration and bootloading. IIRC the final configuration used 30 chains of 100 nodes each.)

\$\endgroup\$
  • \$\begingroup\$ Thanks for the reply. How did your system handle dead nodes in the chain? Would it still be feasible to do this with rs485? \$\endgroup\$ – Sam Aug 25 '18 at 13:07
  • \$\begingroup\$ No specific handling of dead nodes. Why wouid a node be (or become) dead? - RS485 can be used for point-to-point, why not, but it would be a bit overkill IMO. \$\endgroup\$ – Wouter van Ooijen Aug 25 '18 at 13:44
  • 2
    \$\begingroup\$ You overlooked the OLED displays. Those will substantially increase power consumption. \$\endgroup\$ – Chris Stratton Aug 25 '18 at 15:07
  • 1
    \$\begingroup\$ "Using buck converters would greatly reduce the currents (and the bills) ..." - How would buck converters reduce the bills? You still need the same amount of power. (Also, in my experience, a non-sleeping Arduino is more like 25-30mA than 10, but that's still very manageable) \$\endgroup\$ – marcelm Aug 25 '18 at 15:30
  • \$\begingroup\$ Keep your GND voltage drop to about 0.1 volt; that is well within the noise margin of digital protocols. Do the same for VDD. And have a capacitor right across the GND/VDD pins of each board, so the surge currents are supplied RIGHT THERE. \$\endgroup\$ – analogsystemsrf Aug 25 '18 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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