re. field buses. > Many of them are vastly over-spec'd to cater for every situation. As I often say, a covered arse gathers no dick. Designing it to cope with every situation means everyone can commit to using it. There's always the possibility that your pointy-haired-boss will ask for more and if the net _you_ chose runs out of capacity before your competitors, _you'll_ be blamed. > RS-485 is a good physical level i/f but is restricted to a master/slave proto col. Profibus uses it well. Protocols are not as simple to cook up as they can appear . There's far more than "how to pass a message". There's "what to put in the messa ges, when to send them, which device to send them to, bus termination, fault handling etc" You have to think of every possible way to f*** it up, and a way to handle it. What if a node fails to respond? How do you fail-safe? If a new node appears, when does the system look for it? > I would suggest something like CAN that has the ability to interrupt. CAN is okay, it has a robust arbitration scheme. It's a _bit_ like I2C, in that arbitration is done bit by bit. A key word is Deterministic. You can guarantee that every collision will be arbitrated and resolved. No unknown number of backoffs and retries. You don't want that kind of shit happening in your BMW on the autobahn, or aircraft, or car building robot factory. CAN is a foundation protocol. You still have to build on top of it, just as Honeywell's SDS DeviceNet does. SDS has neat features: you can ask sensors for their maker's name, program a physical location label into its EEPROM, etc. "Interrupts" and "Determinism" don't go well together. Remember, you have got to be damn sure that things will happen in a guaranteeable sequence. Someone's life or livelihood may depend on it. Maybe yours. > Then you can use an affordable cable and still get an acceptable response rate . The message rate may be lower, but the bits may still be at very high baud so you will need good cable and terminations. Termination is as essential for CANbus as pullups are to the I2C bus.