0
\$\begingroup\$

I'm trying to figure out the feasibility of setting up some type of differential bus communication for up to 400 devices outdoors. The main constraints are mainly power consumption, complexity, wire count, and whether something like this is electrically possible (with reasonable bus capacitance/speed/pullups).

The other constraint is that each node should be able to connect ad-hoc in an arbitrary position on the bus. Termination resistors are possible if needed. For example:

+----+     +----+    +----+        +----+
|    +-----+    +----+    +--------+    |
| 5  |     | 0  |    | 1  |        | 4  |
+-+--+     +-+--+    +----+        +----+
  |          |
  |        +-+--+    +----+
  |        |    |    |    |
  +--------+ 2  +----+ 3  |
           +----+    +----+

The distance covered between the farthest nodes shouldn't be more than 15 meters. I'm assuming the bus capacitance will be quite large with 255+ nodes. Does it make sense to include a bus repeater in each node? Would this use unnecessarily high power or significantly slow down communications? High speed communication isn't super necessary, for instance 9600 baud would do the trick.

The microcontroller that I'm using is reasonably fast, but has a single USART and limited free IO pins. So I don't think it would make sense to use something like RS422 and pass through data. I'm thinking that RS485 half-duplex would make the most sense, paired with a custom protocol based on Modbus. For this application, it seems much simpler to implement in software than CAN, plus making >8bit addressing possible. Does this make sense, or is it unfeasible?

\$\endgroup\$
  • 1
    \$\begingroup\$ You ask about a bus but then make a drawing of individual connections between devices . Before going the "custom" route (making things more difficult, more work for you) be sure that all existing protocols cannot do the job. Realize that you can make >8 bit addressing possible on any bus as long as you put the address data inside the data packet. Then use software to do the address decoding. All devices will receive the data but only the addressed device will process that data. \$\endgroup\$ – Bimpelrekkie Oct 29 '20 at 15:33
  • 1
    \$\begingroup\$ A 15 m radius and 256 nodes is almost 3 nodes per square meter. Curious about what you are doing that requires that node density. \$\endgroup\$ – AnalogKid Oct 29 '20 at 15:34
  • 4
    \$\begingroup\$ 400+ nodes, ad-hoc networking, it's the year 2020 -- I'd say choose a microprocessor that supports Ethernet, and use that, possibly with POE. \$\endgroup\$ – TimWescott Oct 29 '20 at 16:13
  • 1
    \$\begingroup\$ Is communication bidirectional or unidirectional? Will there be a master? How large is the data that you are moving? \$\endgroup\$ – vini_i Oct 29 '20 at 16:22
  • 1
    \$\begingroup\$ Do you need to support loops, like in node 5? \$\endgroup\$ – Aaron Oct 29 '20 at 16:26
0
\$\begingroup\$

DMX512 can support that many devices. Its main use is for stage lighting control. It’s very, very primitive, relying heavily on manual setup to define devices and addresses (no self-enumeration or discovery.) Uses RS-485, and has a backhaul path that’s not well regarded. Nevertheless it’s popular owing to its simplicity and stage-friendly cabling.

That said, it’s 2020 already. Maybe consider a wireless IoT protocol like LoRa, ZigBee or Bluetooth instead?

\$\endgroup\$
  • \$\begingroup\$ DMX512 supports 512 channels per universe, but 32 unit loads in one segment as per RS485 specs so repeaters/splitters are used. Sure, modern RS485 ranceivers have only 1/8 unit load so in theory up to 256 devices. \$\endgroup\$ – Justme Oct 29 '20 at 19:25
  • \$\begingroup\$ Any multidrop field wiring approach with logic signaling to that many devices (256) is going to have problems. \$\endgroup\$ – hacktastical Oct 29 '20 at 20:58
  • \$\begingroup\$ "Maybe consider a wireless IoT protocol" Maybe not? Does it sound like a good idea to you to place 255+ radio transceivers within a 15 meter radius? That's sheer madness. \$\endgroup\$ – Lundin Oct 30 '20 at 8:41
  • \$\begingroup\$ Like what you get when you have a (pre- social distancing) crowd standing together at a concert? \$\endgroup\$ – hacktastical Oct 30 '20 at 15:58
  • \$\begingroup\$ Doing the math, 15m radius and 256 nodes gives about 2.76 m^2 per device, or about 1.67m (about 5'5") from device to device if equally spaced. Not so unreasonable, if the bandwidth is low. Higher bandwidth will result in more collisions which is always an issue. \$\endgroup\$ – hacktastical Oct 30 '20 at 18:40

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.