VESC FAQ | What is FOC Field-oriented control


Vector control, also called field-oriented control (FOC), is a variable-frequency drive (VFD) control method where the stator currents of a three-phase AC electric motor are identified as two orthogonal components that can be visualized with a vector. One component defines the magnetic flux of the motor, the other the torque. The control system of the drive calculates from the flux and torque references given by the drive’s speed control the corresponding current component references. Typically proportional-integral (PI) controllers are used to keep the measured current components at their reference values. The pulse-width modulation of the variable-frequency drive defines the transistor switching according to the stator voltage references that are the output of the PI current controllers.[1]

FOC is used to control the AC synchronous and induction motors.[2] It was originally developed for high-performance motor applications that are required to operate smoothly over the full speed range, generate full torque at zero speed, and have high dynamic performance including fast acceleration and deceleration. However, it is becoming increasingly attractive for lower performance applications as well due to FOC’s motor size, cost and power consumption reduction superiority.[3][4] It is expected that with increasing computational power of the microprocessors it will eventually nearly universally displace single-variable scalar volts-per-Hertz (V/f) control.[5][6]

What does this mean for electric skateboards? So far the most obvious change is the sound that comes from a motor. check this video out:

It should also make a big difference for hub motors, but there is no evidence of this yet. Also it is meant to be more efficient, but also there is no data yet for this.


Its also worth noting that V4.10 VESC will be compatible with FOC, Because FOC is implemented in the software you just need to upgrade the firmware of the vesc.

I am not sure that it will work on older version of VESC yet. will confirm later.

Should work with v4.8 (and newer) which is what Vedder is testing w/ in this video. He hasn’t actually tested w/ v4.10 but says he expects it to be even slightly better than v4.8 he’s using.

1 Like

This looks awesome! But we’ll have to be capable of loading firmware onto our VESC if we hope to update (when It comes out) to this feature, right?

Yeah you will need to update firmware… but that’s easy, you do it directly from the BLDC tool.


Awesome. FOC is enough incentive for me to finally try installing the boot loader onto my VESC so I can apply firmware updates.

I assume that v4.8 and v4.10 are hardware versions. Is there a guide to help identify which version of VESC I’ve got?

It’s written on your PCB.

1 Like

How epic is this? For people who aren’t familiar with motor control techniques, this is very advanced. It makes an all ready efficient control method (trapezoidal commutation) look basic. Mr Vedder you are a very smart person.

For anyone who wants to understand more on what FOC is, I found these articles give a good overview in regards to BLDC motors.

I might write a new Thread on how an ESC works if people are interested? I’ll start with an overview/summary and go into more detail if people want to know more.


Hi Pato ! thanks for the links. I Will definitely be interested in a thread explaining how the VESC works !

@Pato I would also be interested in a summary!

Thx @elkick . I found it on my PCB. Bah! I’m using hardware version 4.7. @sl33py is it confirmed that only 4.8+ will support FOC? This is the downside of early adoption!

FOC will work on 4.7 too according to Benjamin.


W00T! Thanks @elkick !

1 Like

Agreed- the esc info thread sounds awesome

I’d love to see that too. Hope you make it soon!

Ok will hopefully have a “How an ESC works” thread in the next few days!


Don’t all go rushing to upgrade to the lasted version of FW just because of FOC Vedder is still optimising but to get it working takes a learning curve to get the correct motor parameters, Vedder has sent me the FOC firmware and Iv been spending a lot of time getting my parameters correct! Not every one will have the equipment to do so! So for those who don’t think they can do it just hold on to your panties Vedder will make the motor detection incorporate this soon!

For those who can do it make a good video of how to for the rest of us lol! I’ll try doing the same once I’m competent I haven’t made any mathematic mistakes;)

Wow, that’s really cool. I didn’t know there were other ways to drive a brushless motor. It’s amazing how much quieter it got. This could be useful when riding around at night around the neighborhood as to not disturb people sleeping.

Could you update us when he makes it work with motor detection. Or could you tell me where to look for the information. Thanks

How bout you guys start posting the parameters for the motors you’ve already tested i.e. the enertion 190kv motors are — --- — etc…


1 Like