Hello there!
I'm designing a home automation system for long term so I'd like to make wired connections between nodes.
What is the most optimal connection type and protocol for this kind of systems?
I alrerady looked at CAN but 8 bytes per message is not always enough.
I'm thinking of writing my own protocol with RS485 but I don't know how to implement collision avoidance. I'd really appriciate someone's help with that.
I'm open for alternatives but I need it to be as cheap as possible (no 3$ transciever for a 2$ device and so on...)
The max length of the bus would be about 100m and I'd like to have about 100 devices connected.
Hi,
Nick Gammon (The Arduino-famous one, not the Artist) has a great description of using RS485 for this:
While you're there, you can learn a lot from that whole section:
I can line up with connecting the ideas wired == long-term. I wanted the ability to bootload over the wired bus also so I ended up with three transceivers that are combined to form a full duplex multi-drop bus and a half-duplex management bus. The setup can be switched to a point-to-point mode for bootload of a selected device. It is part of my never-ending projects, there is always something to add or a new chip to try. This link shows how I connect a single board computer to the bus.
The simplest implementation that I tried with a new transceiver might also be good to look at.
For me, the top priorities are that no matter how messed up the software is I don't want to see smoke. I don't want to invent bootloaders or uploader tools. I don't want to add push to talk to my known good UART drivers. I don't want the upload to be blocked by another device on the bus... I guess it is a long list so I best stop.