On Tue, Sep 18, 2018 at 08:11:58AM -0500, Brian Greenberg wrote:
As I have previously mentioned, I have a '15 Nissan Leaf, which uses both the CAN0 and CAN1 buses. Everything that should work, works quite nicely when the OVMS (V3.1) module is plugged in on its own. (Although it did take a couple of attempts to find an OBD2 splitter that had all of the needed pins connected....) However, when I add a second OBD2 device (a Bluetooth dongle to feed the Leaf Spy Pro app) the OVMS module appears to lose the CAN1 bus
How reproducible is that? I am wondering if it possible that just moving the plugs around introduced some intermittent fault, because exactly that happened to me! I currently have two devices conected with a splitter and both busses work fine on both devices (OVMS and PiCAN2 from SKPang).
-- vehicle status events like door locks and headlight state stop updating almost (but not quite) entirely.
OVMS gets most of its metrics (including those you mention) by passively listening to data already flowing on the bus, so this shouldn't be affected by anything LeafSpy is actively doing.
I suspect that both OVMS and Leaf Spy do at least some active polling for status, but my (limited) understanding is that the devices *should* coexist.
Yes, they should. I imagine that if both devices happen to poll the same address at almost exactly the same time, then one or possibly both might get confused, but that should be rare, and won't disrupt other traffic. LeafSpy does frequent polls for several parameters with long replies, but OVMS currently only polls once a minute to get better-resolution battery state, and once every 16 minutes to get the VIN, so the possibility of conflict is quite small.
Any thoughts on what the issue may be? Two possibilities that I have thought of are that, with the OBD2 splitter cable, the high speed CAN bus is formed into an unsupported star, instread of straight serial, topology.
I would start by suspecting the wiring. If you swap the dongle and OVMS to use the opposite ends of the splitter cable, does it make a difference? Is the bluetooth dongle looking at CAN0 or CAN1? Does it have anything connected to the pin for the bus it supposedly isn't using?
The other is that the OVMS module may not be properly terminated -- the schematic and board show that the 120 ohm resistors that terminate the CAN bus are included, but not connected by default -- there are three sets of jumper pads that can be shorted to enable the respective terminators. Would soldering a wire across the J5 (CAN1) jumper help? (And why isn't termination enabled by default? Just curious....)
The car already provides the necessary bus termination; I guess the option is provided on OVMS for applications where it is on its own separate bus that has no other termination.