Boards are available
ODrive v3.5 boards are available at the ODrive Shop.
Key specs:
- 2 motor channels, designed for >100A peak current.
- 1 DC-DC converter channel
- For powering the system with an arbitrary voltage power supply, or
- Use of a brake resistor
- 24V bus voltage
- USB, CAN, UART, PWM, and step/dir interface (read more below)
- Encoder feedback for arbitrarily precise movements
- Supports power regeneration
- Use of a high power density Li-Po battery means you can achieve >1kW peak power output with only a modest power supply.
- It will feature various optimal control strategies and motion profiles.
- Permissive licence on both hardware and software: You use this project in anything you like, even commercial products (as long as you attribute this project's contributors).
Demos
The design is based on two earlier prototypes.
Here are some very simple demos with v2. The peak power output in these tests were only about 60W. The new version (v3) will be able to deliver much more power.
Below is a demo with v1. 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.
Join the discussion!
Check out the ODrive Community.
Stay up to date
- Sign up to the ODrive Newsletter
- Follow on Twitter or Facebook
Motors
Check out the ODrive motor guide. You can also read this post about outrunner motors.
Interfaces
- 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
Protocols
- G-code parser for interfacing with existing automation tools
- Many types of command modes
- Goto (position control with trajectory planning)
- Position commands
- Velocity command
- Torque command
Architecture
The drive is designed to be able to deliver incredibly high peak power, more than 1kW per motor channel. However, power supplies that can deliver this kind of power are expensive. Also, when the actuator is being decelerated, there is energy absorbed. Most power supplies do not like having energy dumped back into them.
The solution: Put high-power energy-storage on the DC bus. A battery like this one can deliver around 3kW. These types of batteries also have a fairly high charge rating, and if the regeneration is only over a couple of 100 milliseconds, they can probably handle a fair bit more than specified. Thus, they should be able to handle the full range of regeneration power in most robotics applications.
This means we have a variable voltage DC bus, that fluctuates with the battery's state of charge. So the way we power the system is via a DC-DC converter. There is another upside to this as well: we can use any voltage power supply and just convert it to the bus voltage. I expect most people will use an inexpensive ATX power supply (specifically the 12V rails). In many robotics applications the motion consists of several discrete movements, only some of which are high power. In this case, we can have access to a very high peak power, but only require a very modest power supply.
Another thing that's nice about using a battery for stabilising the DC bus, is that if multiple of these drives reside on the same bus, there is no fighting over the regulation of the bus voltage: a single board can have the DC-DC connected to a PSU, and the rest of the boards in the system can just use the bus. If fact, you can even skip populating the DC-DC on the slave boards.
The system is also capable of using a brake resistor to dump the regenerated energy instead of a battery to absorb it. This is a simpler and possibly safer setup, and is also what the project will use in the first instance, until the battery storage feature is ready.
Applications
So this project is good for some things, but not everything.
You should use this drive in your project if:
- You need high power: >1kW peak power per channel!
- You need high precision: Encoder feedback control means that the precision is as high as your encoder's precision, which can be very very high.
- You need reliability: Encoder feedback ensures that the drive recovers from positioning errors: no more missed steps.
You should not use this drive in your project if:
- You need high torque, but don't care about speed, and you don't want to use any gearing. If this is the case, steppers are probably better for your project
- If you are interested in very tiny motors and robots, then you should check out these awesome micro robots instead!
If you need industrial grade motor reliability and ruggedness, you shouldn't use hobby motors. But the drive electronics and software should, when mature, be able to perform reliably.