Home        Store        Learn        Blog

Custom FOC Thruster Controller

Hey all!

Would like to share a project I’ve worked on for awhile! It’s a custom FOC thruster controller integrated right into the T200, improving on the Basic ESC R3. I’ve got all the details here on the GitHub repo, but here’s a quick summary:

  • Sensorless Field-Oriented Control (FOC) / sinewave control
  • Up to 14V input, 250W
  • Control and telemetry over CAN
  • Improved efficiency from 5-20%
  • Acoustic noise reduction
  • Better low speed control and acceleration
  • About $35 USD per full controller all-in (Plus hours of assembly work!)

The controller itself is a circular-shaped PCB with a diameter of about 38mm, no bigger than a poker chip. I designed a custom aluminum mount, which sits the controller at the back of the thruster. An extra o-ring in the mount seals off a programming port as well in case the microcontroller code needs to be updated.

In all I’ve worked on this project for about 2 years, and it was a great learning experience plus a lot of fun. In the end, I implemented it on six thrusters for my engineering senior design AUV project. It worked great on the AUV, as the superior low speed operation allowed for super-smooth control.

Happy to discuss the project in more detail or hear from anyone about their own motor controller projects!



This is super cool - really impressive work Mark!

Always fun to see circular PCBs, and your phase current plots are a really nice display of what is vs what could be! Efficiency tends to enjoy smooth changes, so no big surprise that your design improves efficiency over a decent portion of the range. I’d be intrigued to see an equivalent plot for the higher RPM region (e.g. does the BasicESC get smoother, does your FOC controller get choppy, or is something else at play?).

On the voltage front, I notice that your controller is limited to 14V input (compared to BasicESC max 26V, and T200 max 20V), and 250W power (compared to 280-290W from the 14V plot of our T200+BasicESC performance charts). Is there anything in particular that’s holding back your design from handling higher voltages and power, or was that just not a requirement for your project? :slight_smile:

I’ve shared this with our engineering team. No doubt it’ll spur some internal discussion, and hopefully some more questions for you too :slight_smile:


It’s a little bit of both! I’ve attached some plots of the controllers operating around 2800 RPM. The Basic ESC seems to get a bit more smooth, while the FOC controller is slightly distorted from a perfect sinewave. With the same input voltage, FOC requires overmodulation to achieve the same upper RPMs. This basically puts it into the same trapezoidal control scheme as the Basic ESC, so it makes sense why they match efficiencies so closely in that range.

The big thing holding back from higher voltages are the input capacitor ratings. Our capstone AUV was designed to operate at around 12.6V max, which was it’s 3s8p battery’s max voltage after charge. The 3 big caps you see on the front of the design are the bulk input capacitors, and I ended up selecting the minimum voltage caps I could in order to maximize the input capacitance. The caps I selected are rated for 20V and have 150uF each (450uF total), so they should be safe up to 14V (maybe higher!). It’d require more testing to see if you could get away with less on-board capacitance and achieve a 26V input rating, its a tricky thing to nail down. Also once you start pushing above 20V, the onboard MOSFET’s voltage rating of 30V might come in to play, and you’d need to select a whole new FET to get around that.

In terms of power, 250W was the design criteria I used when looking at MOSFET selection, etc. I got the controller up to 200W in-water no problem, and from a touch test it was still cool immediately after hauling the thruster up to check. The aluminum mount serves as a great heatsink. It would have been fun to push this controller to failure, kind of ran out of time and didn’t want to lose a thruster unit before our capstone testing was complete :sweat_smile:

Awesome. Glad to answer any more questions! :grin:

1 Like

Interesting to know, and well-displayed in the plots - thanks! :smiley:

So mostly “not in requirements” then, rather than “tried hard but couldn’t achieve it because of X technological reason” kind of thing. Fair points all around on the suggested approaches to increase the input capacities, and the possible pitfalls/difficulties with those approaches :slight_smile:

Indeed - makes sense. That likely also makes it more of a challenge to for example integrate this kind of ESC directly into the thruster design itself, but it would definitely help with keeping the electronics cool.

Haha, alas, unfortunately the time and resources aren’t always available for testing to catastrophic failure. Definitely fun when the chance is available though, as long as it’s an intentional test…

1 Like