Consider a network (CAN) of devices connected in a star formation from a main board, with multiple devices on each arm of the star. Currently each device is “told” which arm it is on using on-board jumpers or switches. Everything is cabled up using 4-core wire to RJ12 (6 pins) board connectors .
Like the idea of being able to configure boards at a distance such that a device could be swapped from one arm to another - or a new device brought in - and it would automatically “know” which arm it was on and adopt the appropriate behaviours. How about if use 6-core cables in the RJ12 connectors? In addition to GND, +24v, CAN_H, CAN_L there will be CONFIG1, CONFIG2. On each arm of the star, CONFIG1 could carry a different voltage (set by resistor bridges adjacent to connectors on the main board). 6 arms could be represented as 0, 1, 2, 3, 4, 5v respectively. Any given device would use it’s microcontroller ADC to read the voltage on CONFIG1, (comparing with it’s internal voltage reference) and then the device would self-configure accordingly. In order to ensure that there is never a voltage present on the ADC before the microcontroller has powered up, presumably the config-input should be separated with a MOSFET that turns on only after the device has powered up.
QUESTION: is this going to work reliably? Will voltages transmit reliably over the network and, if so, what level of granularity (6 levels over 5v, or more, or less) would be reasonable? Will there be some kind of EMF interference (a device turning on nearby) such that desirable to take average over time? Or is there just a much better way of doing this? All feedback appreciated!