ESC with FOC and sensor - why not

So for a while I was thinking of creating a big ass tilt rotor tricopter with a X8 as a base frame. All good, but which ESC to use? After deciding that I don't really like anything on HobbyKing, I started working on my own. It had to have good quality components, rated for automotive applications (don't want my ESC to fail when flying...), FOC control, CAN/RS232/PWM interface and rotor position sensor input.

So after a couple of months, it is spinning. With a "bit" better micro than an 8 bit Atmel and a 12$ sensor chip we can get instant responses from motor to requests from the control - be it for faster/slower speed, startup from standstill or completely reversing rotational direction. And because it is field oriented control, when motor is decelerated it sends power back to the battery.

Views: 4190

Comment by Jerry Giant on March 28, 2015 at 2:01pm

great job! would you consider to open source it?

Comment by Gerard Toonstra on March 28, 2015 at 7:33pm

Nice man!  They are certainly a lot more quiet and no high-pitched frequencies inbetween. 

Can you elaborate what you mean with "bit" better than 8-bit atmel?

The sensor may be a better choice in the end, because the sensorless implementation is pretty difficult to get right due to the computational complexity, the oscillations and the required calibration of motor parameters. Looking forward to seeing this thing fly and the sound it makes. Keep us updated!

Comment by Jure M on March 29, 2015 at 2:01am

Some day I might open source the code, but currently it is much too messy and there are a few tweaks I want to make before that :).

A "bit" better is Freescale's DSP 56f8037, but to be honest it could use a bit more power - it takes a lot of time to process the algorithms and I still want to have sensorless backup in case that the position sensor fails, and that means that I will probably have to switch to something like this: 56f84763. Why Freescale? I am most familiar with them when it comes to motor control, they have good motor control libraries and they have really good real time debugging tools.

Comment by Andrew Zaborowski on March 29, 2015 at 8:30am

What's FOC?

You can probably get most of these things out of SimonK on an AfroESC.  I get direction reversal, 16-bit throttle, voltage, temperature and RPM / magnetic position over I2C with a modified SimonK firmware.

Comment by Jure M on March 29, 2015 at 9:22am

Field oriented control, basicaly you have to know exact position of the rotor and then you apply such PWMs to all three phases that you get stator magnetic field that is perpendicular to rotor magnetic field = maximum torque. Also when the motor is rotating, you continuously adjust this vector to keep it perpendicular to rotor = smoother torque. And magnetic position is not what I want, I want to have exact mechanical position of the rotor so I can instruct the ESC to park propeller in horizontal position for landing and to keep it there.

Comment by Hans Miller on March 30, 2015 at 12:53am

Get rid of the noise made by motors driven by a standard ESC and I will be another happy customer.

Comment by Harry on March 30, 2015 at 10:58am

This is cool beans.  The explanation of FOC reminds me of a project someone had that involved a single rotor with a geometrically tricked out rotor.  His code needed to know rotor position to know when to alter PWM.  I wish I had bookmarked it.

Comment by Jure M on April 1, 2015 at 11:11am

Playing with acceleration. Got up to 5200 RPM.

Comment by Crispin on April 1, 2015 at 1:25pm

I'm following this with interest. While I grasp slightly more than the basics (I think) of what you're doing and why it is an awesome thing there is a lot that has me wondering. Your video for example - what is the significance? It really is not meant to sound sarcastic of facetious. Does a normal ESC not accelerate a motor that quickly? Does it lose sync?

I'm in awe of how people are creating what on the surface seems like a simple thing (this, ardu* code, precision landing etc) but seems magical to most to grasp the complexities of it yet simple to the people writing it.



(I'll certainly be in line if you ever do a KS on these).

Comment by Jure M on April 1, 2015 at 1:57pm

It's startup from stand still. With normal ESC, you have to align the rotor and then start the rotation blindly, until you get enough feedback. With sensor, you know rotor position and can immediately start the motor with maximum power.

Maybe next video will be comparison of sensored FOC with a 85A standard ESC :).


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service