Milestone 3 Complete

Controlling BLDC Motor for Vehicle with CTUCAN

This is to update on completion of Milestone 3 of the project which involved controlling a motor on the CAN network with CTUCAN device. We would need to have a motor contoller to interface with our CAN bus and control the motor.

The ODrive is a motor control board based on the STM32 microcontroller. It can be used with BLDC motors (brushless DC motors), over a CAN bus to set acceleration, braking, and other parameters for motor control systems.

Hardware for ODrive is available for sale on online shop:

The entire firware and GUI software to interface with Odrive is available on GitHub:


Hardware Requirements

  1. A brushless motor.
  2. Odrive S1
  3. FPGA device with CAN controller/transceiver
  4. A >12V power supply or battery.

Hardware Connections

  • Connect screw terminals representing the motor phases to A/B/C of Odrive S1 Power Pads.
  • Connect the power supply cables to Odrive S1 solder pads that are labelled +/- and Arty A7 board

Since CAN bus is not isolated, use power supply to power both. To run Arty A7 board with same DC source, below accesories can be used :



  • Connect Odrive S1 with FPGA board over CAN bus.
  • Connect motor to Odrive S1 via 3 phase wire.

Complete setup can be illustrated in below daigram


In reality, it resemebles like seen in below image:


Controlling Motor Controller with CAN bus

  • Power up Arty board with CTUCAN driver enabled


  • Use GUI Wizard of Odrive to calibrate the motor.


  • Check if any data is recevied on CAN bus with candump


To make sense of this data we would use CAN Simple protocol provided by Odrive.

Motor should start rotating with torque of 1 turns per second.


Show Comments