Blue: CANH, yellow: CANL - this should be a differential signal.
I can’t connect nodes in the workshop. The problem is old, but I always thought it had to do with the connector there, but now that I’ve checked - no wonder, I would be suprised to see it work like this. On the right side is an oscilloscope picture of the CAN bus lines.
I have figured out by now that this difference in the appearance of the two signals has at least partially something to do with the ground difference. As all nodes are supplied centrally, the ground difference builds up along the wire, and gets up to around 1.2 V difference at the furthermost node.
I’ve read a bit about CAN ground, and it seems like many experienced people are suggesting that there is not only no need for exactly the same ground potential, but that there is no need for a ground line at all. I, however, can’t really imagine what the MCP2551 is going to do to pull a bus line, which is already below its ground potential, further down.
Hence, I’m trying to make use of currently unused wires: From the workshop to the laundry, the cable is a main bus line without a CAN pair going back, and there is no 5 V supply, thus there are 4 additional wires which can be used to strengthen the ground potential in the laundry. The cable to the computers doesn’t have a CAN pair back either (and only the 5 V ground is used), so there are 3 additional wires to transport ground potential.
Altough the signal has now improved a bit (and doesn’t jump around on the oscilloscope screen as much), there are still error frames (sadly I didn’t capture the oscilloscope screen for these yet) now and then, and the communication to the workshop still doesn’t work, altough the rest still does talk.
I will have to read up more on how to track down errors. The cable to the pool could also be worthwile for being “modded” with additional ground lines (5 V pair unused to there). Oh, and I’m sure the TV distribution (or the nodes there) would be happy about some huge elcap too.
I can’t mention how glad I am that this is not all happening at a time where much more things are automated - it’s currently a rather convenient field test as I’m able to shut down the whole bus for measurements without having to sit in the dark, being locked out etc.
Edit 2012-11-25: The problem turned out to be in the distribution box in the laundry, which connects different parts of the bus together. There was a loose contact in one of the connectors, which split one of the differential CAN signal lines into two parts. Interestingly, CAN is rugged enough to work most of the time with only one of the two signal lines.