The network is half duplex RS-485 network that uses stereo audio cables to connect the nodes. The Web Server computer is connected to the network via USB->Serial adapter and a modified node card. The network looks like this:
The laptop/Web Server is the master on the network and all communication is from master -> node and from node -> master. In this system there is no need to talk between nodes. The Network Interface (which is a modified Arduino/node) manages the transmit/receive line. With the RS-485 interfaces you must assert TRANSMIT on the node before you send and drop it to receive data.
The top trace shows the TRANSMIT line and the middle shows the master transmitted data, the bottom purple trace shows the received data at a node.
The data packets on the network are ASCII characters/HEX data and the packets look like:
There can be up to 32 nodes on the network (RS-485 limitation) and we can run up to 300' of network length. Address 0 is the broadcast address. Any packet sent to 0 will be acted on by all the nodes. (Very handy for arming all of them simultaneously). The nodes have fixed addresses programmed into their EEPROM's and when replying from a broadcast will backoff sending the reply a time based on their address value. (Prevents packet collisions, unfortunately the RS-485 chips don't allow you to do carrier sense like ethernet).