Not as serious as a reprap tantrum, my RS485 bus is not behaving very well. If I terminate it properly, it doesn't work at all, and if I don't terminate it at all, then it works, but charging at more than 10A causes a lot of extra characters to appear. Termination has two functions, first, it absorbs the energy in each character as it hits the end of the bus. Without terminators the pulses bounce off the end of the bus and travel back the way they came, causing interference. The second function of the terminators is to hold the bus in a relatively low impedance state, so any stray energy (say that created by the electric and magnetic fields generated by the charger) that gets onto the bus is absorbed without causing spurious characters.
Without terminators, I'm seeing extra characters, but with a 2 metre bus, I don't have problems with reflections.
So why doesn't it work with terminators? It turns out the transmit enable circuit cannot predict the future. With no cells transmitting, the bus floats, and both wires sit at 0 volts. When a cell enables it's transmitter, one wire rises to about 4V and the other to about 1V. This is how the bus should look when we send 0xFF:
And here is how it looks when the EVD5 sends 0x55:
Note the difference in the first transition, the the inverting line should go from high to low, but it goes from 0 to low. This is because the transmitter is enabled during the start bit, rather than a sensible time before the start bit.
I tried enabling the bus with a very short pulse (arrowed) before sending a character (note inverting is on the bottom trace instead of the top like above):
This almost worked, but I couldn't avoid framing errors -- the receiver sees the pulse and gets confused. I need to wait long enough for the receiver to assume the start pulse was not the start bit of some random character, but the transmit enable circuit times out and disables the bus before this happens.
There are two possible solutions, capacitive termination, and increasing the baud rate. More on this later.