Professional Documents
Culture Documents
Necessary Hardware:
-Power Supply: 36-48V recommended, depends on the motor used, higher voltage
recommended for Motors with high winding resistance.
For the power, 500-800W should be plenty for standard motors, you can calculate it by
multiplying power supply voltage by max motor current.
-Motor: industrial servo motor (Small Mige, Mitsubishi HF-SP102 or similar)
-Encoder: SPI encoder compatible with ODrive or any standard ABZ encoder, see
https://docs.google.com/spreadsheets/d/1OBDwYrBb5zUPZLrhL98ezZbg94tUsZcdTuwiVNg
VqpU/edit#gid=0
-Main board: OpenFFBoard/STM32F407 board
-Odrive: you can use chinese single drive Odrive clone. It’s important to use a board with an
integrated braking resistor circuit.
Example photo of compatible Odrive Clone (AUX terminals being used for braking resistor):
-Braking resistor, recommended 50W, 2Ohm?
Configuration guide:
It’s recommended to replace shunt resistors on the ODrive board. By default ODrive is
designed to be used with higher currents than used by industrial servo motors.
I used 3mOhm resistors.
Green resistors next to capacitors are the one to be replaced
-After changing the resistors you have to build and flash new firmware to the ODrive Board:
Use official guide to build the new firmware:
https://docs.odriverobotics.com/v/latest/developer-guide.html
You have to change resistor value before building the firmware in the file below:
OdriveFirmwareDirectory/Board/Include/board.h
Example for 3mOhm resistor (300e-5f):
-Connect the motor, encoder and braking resistor to ODrive terminals and proceed with the
setup.
Use official Getting Started Odrive guide to setup the Motor
https://docs.odriverobotics.com/v/latest/getting-started.html
-After basic setup we have to configure the board to work with OpenFFBoard by executing
following commands in odrivetool
odrv0.can.config.baud_rate = 1000000
odrv0.save_configuration()
odrv0.reboot()
-By default ODrive will probably shut down almost immediately while used with
OpenFFBoard, to avoid that, we have to disable some of the safety features.
odrv0.axis0.controller.config.enable_overspeed_error = False
odrv0.axis0.controller.config.enable_vel_limit = False
odrv0.save_configuration()
odrv0.reboot()