Mixing CAN Motor Controllers

We just purchased sone of the Spark Max controllers, and are wondering a few things about CAN as we wait for them to arrive.

  1. With the new 3rd party and Rio settings, there seems to be no unified CAN address settings window. Is this true?

  2. I know it is okay to have two devices of different types with the same address on the same robot (both a talon and the pdp can coexist on a zero address peacefully), but can two devices of the same kind do so if they are different makes or models (E.X. could a Spark Max and a Talon work while both have an address of 1)?

As I write this, I see this practice may be tempting fate, or at least Murphy.

~Mr. R^2

Iirc different devices on the CAN network that are not of the same type can have the same ID

According to the FRC CAN addressing spec [1], the message address is the concatenation of the device type, device manufacturer, and device address. So you should be OK with multiple devices of the same address as long as they have different manufacturers and/or types.

OTOH, there are 64 device IDs available, so we tend to make them globally unique so that reference to “motor controller x” is unambiguous, rather than possibly requiring someone to ask, “Do you mean Talon SRX controller x or Spark Max controller x?” (Or worse, not realizing that they need to ask that question and pulling/altering/whatever the wrong motor controller.)

[1] https://wpilib.screenstepslive.com/s/currentCS/m/cs_hardware/l/915134-frc-can-addressing