Control 24V BLDC MOTOR (Brake, Encoder)

Hello there this is my first post :slight_smile:

I came here from this video in 7:20 minute.

I have 6 of those motors and i would like to make them to do cooperating movements for a robotic arm.

I am looking around how could i control those motors and i found the ODrive. I never heard again the ODrive, so i am looking for information about this.

I am thinking to use the ODrive to control a motor and Arduino Platform for the software.
It’s possible to do this?

How many ODrives should i have for 6 of the motors that i mention?

Thank you for your time :slight_smile:

1 Like

Yes, of course :slight_smile:

ODrive is presently (until v4 comes out) a dual-axis drive, so you’d need 3.
V4 will be single-axis, designed to minimise your wiring by placing the drive directly on the back of each motor.

1 Like

Hello towen,

Thank you for your reply. I make an order for 1 Odrive to test my motors. If i made this work i am gonna order 2 more Odrive.

I have a question here… :thinking:

My encoder has 14 cables.

Two cables for 5V and GND.
Six cables for ABZ and A- B- Z-.
Six cables for UVW and U- V- W-.

Odrive has only ABZ input…

What about this?

How I’ll make the connections?

Thank you for your time :slight_smile:

Thank you for your reply :slight_smile:

If you have +/- wires for each signal, then you have an industrial-style encoder with differential signals, designed for noise immunity over long distances.
ODrive takes single-ended signals. You can convert the signals with an RS-422 receiver chip like this one:

https://www.digikey.com/catalog/en/partgroup/rs-422-rs-485-differential-line-receiver/22802

1 Like

It is possible to use only ABZ wires(for tests)?

Do you mean, can you get away without an RS-422 receiver?
Maybe.
Some encoders will work if you connect all of the negative signal wires to GND, but it is definitely not guaranteed.
Try it. :slight_smile:

You don’t need to connect the UVW wires - these are the Hall sensors. They are not needed if you have ABZ.

So, I was ordered and a RS-422 receiver ( cheap things :stuck_out_tongue: ).

I will connect the A+ and A- on the input of the RS-422 receiver and then the output (from datasheets) I will connect on the A pin of ODrive? ( Same with B and Z )

There is something else should I do for this connection?

This is my first time that I will try to control a motor and now I am trying to learn things about them.
I completely understand what the ABZ do here but…

What the purpose of UWV?
I am trying to search online but I am confused :sleepy:

These are the Hall sensors. They are like a very low-resolution encoder, used by more simplistic drives. They have six states which repeat for each pole-pair, so their resolution is only 6 * N_pole_pairs counts per turn.
It is possible to run a brushless motor a bit like a brushed motor, using nothing more than Hall sensors and MOSFETs. The Hall sensor detects which phases need to be energised to form a basic six-step commutation sequence.
However, with six-step commutation, there is no torque control, so it is less efficient, less precise and less controllable than it can be with Field-Oriented Control (FOC).

FOC is a more advanced control scheme, using the precise position of the rotor and a PWM inverter to align the field so that it always produces a torque proportional to current, and it requires a high-resolution encoder.

The short answer is that Hall sensors (UVW) can be used for coarse control of a motor (e.g. for E-bikes etc) whereas FOC is more precise and can be used for motion control and precise positioning in robotics applications, but it requires a high-resolution encoder.

If you have both ABZ (incremental encoder) and UVW (Hall sensor), on both motor and drive, then ABZ is usually superior.
Some drives can accept both simultaneously. ODrive doesn’t officially support that.

The UWV hall sensors in servo motors are used to track the stages of communication so you don’t have to calibrate the motor from the start. Moving the motor to calibrate isn’t really feasible for most servo applications so a simple hall commutation encoder takes care of that. Then the actual FOC calculation is done with the incremental encoder.

Note that you need to disable the brake first to move the motor. Which needs 24V so you need a relay for this.

1 Like