Problems when changing CAN baudrate and/or CAN ID

For the CAN-bus to work all devices on it need to have the same baudrate and different CAN IDs. If both of those conditions are not fulfilled the CAN-bus will be unreliable and often not work at all.

By default all our devices have CAN baudrate 500 kbps. The default ID is are

  • Nanolog, RMCore, WCore, Link: 2
  • BMS: 3
  • Display: 4
  • ESC: random, but not 2, 3 or 4

Due to the random ESC ID you need to check for collisions and change ID accordingly before connecting them together on the CAN-bus

Note
Changing CAN baudrate has to be done on each device individually without having other devices connected over CAN as having different baudrates on the same bus will make communication on that bus stop working completely. VESC Tool has a function that allows changing CAN baudrate on all devices at once; it can be found at the top of the CAN Tools page. Once the update is done using this method it will be stored in the non-volatile settings on each device.

Note
All our devices remember the CAN ID and CAN baudrate across firmware updates. This allows reaching all devices on the CAN-bus on the same baudrate and ID as before even after a firmware update.

Note on motor controllers with an ESP32
Our motor controllers that have an integrated ESP32 (Maxim, Maxim+, Pronto, Duet) have the USB and wireless interfaces connected to the ESP32. When changing baudrate on the motor controller it will no longer be reachable on the CAN-bus from the ESP32. To resolve this, the VESC Express page can be used to change to the same baudrate on the ESP32 – this should make the motor controller appear on the CAN-bus again. The same is true for overlapping IDs – if the motor controller ID is changed to the same as on the ESP32, the ID of the ESP32 can be changed in the VESC Express page to a different one to make the motor controller appear on the CAN-bus again.