Last year we ran CAN with the cRIO serial gateway. It performed OK, but there were a few reliability issues due to overloading the CAN bus and we lost the entire CAN bus a couple times due to wiring.
This year we’re trying the 2CAN. It’s a very nice upgrade for any team using the serial gateway.
This weekend we ran a bunch of tests on a robot under load: removing bus termination, disconnecting/reconnecting cables from Jaguars, power cycling Jaguars, and traffic flooding. The 2CAN performed extremely well. It has about 10x the bandwidth of the serial gateway and we were unable to overload it with reasonable code. (Later we’ll try unreasonable C++ code, but I have no way to measure CAN traffic yet so today’s testing wasn’t quantifiable.) 2CAN is very tolerant of bus problems. A 4 node bus ran fine without termination (simulating a faulty Jaguar daisy chain). A 10 node bus limped along without termination–enough messages were received that our robot was still functioning even with the high error rate. The 2CAN web dashboard gave us the location of the cable failure in every case (the node right before the break always enumerated).
One thing that I didn’t anticipate is how easy it is to upgrade and re-ID all our Jaguars using the 2CAN web dashboard. We plugged them all into a single CAN bus and re-assigned IDs in a couple minutes. Once they all blinked happy, we upgraded the firmware one after the other.
I don’t know how much (if any) of the reliability improvement is due to the new Jaguar firmware. We’re going to stress test the Jaguars later this week. I also hope to try out some C++ ideas for catching power cycles.
Anybody else having good experiences with CAN Jaguars?