Hi there.
I am trying to communicate with microcontroller and OdrivePro via CAN.
However, it does not work.The communication with my other Odrive v3.6 works fine, so I think the problem is on the OdrivePro side, but I have no idea what the cause is. The heartbeat should be sent, but when I checked with an oscilloscope, there is no signal. I am looking forward to your answers.
Thanks!
Hi Shohei, do you have the termination resistance set correctly? The behaviour of the CAN should be the same as ODrive 3.6 - 250kbps default, sends heartbeat and encoder messages as node 0.
Thanks for the reply.
The dip switch of the terminating resistor is ON. These settings should also be correct as shown below.
“can”: {
“encoder_rate_ms”: 0,
“heartbeat_rate_ms”: 100,
“is_extended”: false,
“node_id”: 0
},
“can”: {
“config”: {
“baud_rate”: 250000,
“protocol”: 1
}
},
“config”: {
“enable_can_a”: true,
},
These are taken from json files.Is there something wrong with these settings?
Nope, those look fine. You should be getting a heartbeat at 100ms. Can you check which firmware version you’re using?
I cannot check version. odrivetool dfu does not work. However, I wrote the latest farmware with STM32CubeProgrammer before, so it should be 0.6.4.
Hi. Could you share the photo of your wiring? Is it possible that problem in wires connection? Are you sure that you have common ground between ODrive Pro and mcu (or where you send commands)?