All devices on a CAN bus are always in parallel. Yes, even if you daisy chain your motor controllers together, they are still wired in parallel, just with tiny branches of near zero length. But the problem with daisy chaining your can bus is that a single failure takes down every motor.
Switching to parallel wiring, if done correctly, can increase your sanity. I’m a bit sick of the kinds of messages in So many dead robots in Playoffs that claim that parallel can is impossible, too hard to do, or impossible over CAN FD.
Here’s how 4096 Ctrl-Z has wired their drivetrain can bus for the past 2 years with great success. Our drivetrain for '22 and '23 has been 4 WCP SwerveX modules with Falcon500’s and a CANcoder on each. We also have a Pigeon 2 imu. They are on a Canivore CAN FD bus. We run a main CAN trunk around the drivetrain and make a branch for each device. The branches for the cancoders and pigeon are 10-12 inches long. The branches for the falcons are ~20 inches long (we didn’t want to snip off the second set of can wires off each motor since they aren’t user replaceable, so we just bundle them up).
We call this “parallel can with branches”. Mike Copioli called it “parallel pigtails”, which I think sounds more fun.
Now, we have had can failures. In the past two years, we’ve had a motor disconnect due to another robot reaching in yanking out exposed can wires. We’ve had a motor disconnect just due to poor wiring. In both cases, just the one motor dropped off the can bus. The rest of the drivetrain worked perfectly fine. And, in the DS console, we get error messages for exactly 1 can device, not for 13! How useful.
For connectors, the only 2 connectors we use for CAN are weidmuller (without ferrules) and lever nut. We moved away from all crimps (pwm and ferrule) as they were too error prone for us.