Here’s my problem:
I’m using the Odrive Pro with 2 other Arduinos on the same CAN bus. With one Arduino, I send the command over CAN. It used to work, but it no longer works. The second Arduino normally simply send get messages to the Odrive (eg. Get_Encoder_Estimates) to register some data.
The CAN parameters of the Odrive are as follow:
odrv0.config.enable_can_a = True
odrv0.axis0.config.enable_watchdog = True
odrv0.axis0.config.watchdog_timeout = 1
odrv0.axis0.config.can.node_id = 1
odrv0.can.config.baud_rate = 500000
For trouble shooting, I set the second Arduino to listen and print the data that is on the CAN bus. Effectively, I can see all the appropriate messages such as :
In the setup loop()
Clear error messages : 0x038 - Buf empty
Set_Controller_Mode : Msg Id: 0x02B - Buf: [1 0 0 0 1 0 0 0]
Set_Input_Torque : Msg Id: 0x02E - Buf [0 0 0 0 0 0 0 0]
Set_Axis_State: Msg Id: 0x027 - Buf [0x08 0 0 0]
In the void loop()
Set_Input_Torque : Msg Id: 0x02E - Buf [w x y z 0 0 0 0] // the 4 first bytes vary as the command varies
The 120 ohm resistance is activated on the Odrive as it is at one end of the bus.
I’ve no idea of what could possible be the cause.
Here’s a screenshot of what the Arduino reads on the bus. Everything seems to be juste fine to me. Maybe a pair of fresh eyes with and other brains will help !