High performance motor control


High performance motor control



Hobby Motors For Robotics

Stepper motors are ubiquitous in hobby robotics projects: If you make a robotics or automation project today, it is very likely you will use them. Almost all DIY projects from 3D printers and CNC mills, to various custom robots and automation solutions use them. However in industrial automation, brushless servomotors have taken over, and it's clear why: They don't lose steps, are much more powerful, efficient, and silent. 

Brushless motors are not unique to expensive industrial automation equipment. In fact, you can get some very powerful and cheap motors at hobby shops. The electronics to drive these motors are also dirt cheap. So how come virtually no non-industrial automation systems use them? 

To be honest, I have no idea. Seriously, a driver that allows this should clearly exist. 
But since it didn't, I decided to make one. 

And you are invited! 
This project is open source, both in hardware and software, and I warmly welcome anyone who wants to join.





Key specs

  • Two motor channels.
  • 24V, designed for more than 100A peak current.
  • DC-DC converter, for brake resistor or energy storage.
  • Encoder feedback for arbitrarily precise movements.
  • Supports power regeneration.
  • Optional use of a high power density battery means you can achieve >1kW peak power output with only a modest power supply.
  • Open source: Hardware, Software


  • USB Serial port -- PC, BeagleBone, RaspberryPi, etc.
  • CAN -- CANOpen and CiA 402 is a possibility.
  • UART -- Arduino, mBed, etc.
  • PWM -- RC Recievers, Arduino, etc.
  • Step/direction -- Existing motion controllers
  • Some general purpose digital and analogue pins


  • Many types of command modes
    • Goto (position control with trajectory planning)
    • Position commands
    • Velocity command
    • Torque command

Please be aware that ODrive is an unfinished product currently in alpha testing phase: the hardware is ready to support all of the above features, but some features are under firmware development.




This is a demo of ODrive v3 with Turnigy SK3 motors, retrofitted onto the LitePlacer, a pick and place machine. The GT2 belts used on this machine limits the admissible torque, and hence we are only able to achieve a peak power of 250W. The motors and the ODrive remain completely cold.

Version 3

Version 2

This is a demo of the 2nd version of the project. The peak power output in these tests were only about 60W.

Version 1

This is a demo of the first version of the project. The mass being moved is 3kg, and the peak power was about 200W. The noise is not from the motor, but from my poor mechanical design which means that the belt teeth rubs against the idler pulley edge.

More info

More info


Ask questions, share your ideas! Join the ODrive community.



Check out the ODrive motor guide. You can also read this post about outrunner motors, and this post about encoders.


  • Motion simulation platforms
  • Heavy duty camera gimbals
  • Camera dolly/slide
  • Cable cam
  • Mobile ground robots
  • Various art projects
  • 3D printers
  • CNC mills
  • Pick and Place machines
  • Polargraphs
  • Robot arms
  • Walking robots
  • Exosuits

Buy me a coffee