TapHome modules communicate via proprietary protocol, over RS485 physical layer.
The basic principle is to provide collision-free reliable and prompt communication between central control unit and modules.
RS485 physical layer
Bus connections must be powered by the same potential, because there is neither galvanic, nor optical isolation. While RS485 is based on voltage difference between A and B wires, it provides high protection from noise even on long twisted pair of wires.
Core provides 3 bus connections. Maximum number of modules on each bus is 30. Altogether 90 modules on one control unit.
Topology and wiring
Up to 1200m in special conditions
AWG 20 - 22, Twisted pair
Shielding is usually not neccessary but nice to have, in case there is unexpected problem with noise
Daisy chain, Tree
Daisy chain is optimal for long distances, tree can be used up to 600m, and star is also acceptable. Ring topology is prohibited.
Termination resistor (between A and B wires)
100 Ohm at the most distant point of the bus
In most cases, communication works well even without termination resistor, but is much more prone to noise.
Max number of modules (connected on 1 bus)
In good conditions (minimum noise, short wire distance, daisy chain topology), there can be up to 100 modules connected on 1 bus
TapHome Bus protocol
TapHome Bus protocol is based on round robin principle, where Core is master, and all connected modules are acting as slaves. In standard operation, module can only send response to a query. This provides a few benefits:
Collision-free communication Similar performance regardless of number of changes that are being transmitted Immediate error detection
Average packet size … 40 bytes => 3ms Round robin duration for 90 modules … 270ms
Start byte (0xAA)
Broadcast / unicast
Action: Module-specific actions / Universal actions (Get Status, Get Description, Get general configuration, Get Uptime, Can broadcast, Identify LED)
Baud rate … 115200 bps Parity … None Start bit … 1 Stop bit … 1 Data bits … 8