Axiom: 100+kW Motor Controller

High Power, High Performance 400V 300A 100+kW Motor Controller fully compatible with VESC

Similar projects worth following
At the heart of the electric vehicle is the motor controller capable of delivering torque quickly and precisely over a wide speed range, on demand set by the driver or the vehicle control system.

This project, for the first time in history provides clear, wide open access to a key driver of our civilization: the control of large 3 phase motors. Making it available for everyone to experiment and improve upon, its the ideal platform for vehicles, researchers and industries.

It is put together by Marcos -MIT TR35-, endless-sphere forum legend HighHopes, 1/4 mile EV record holder Arlo1, highest-engineering-grades Maxi, and using, improving and accelerating the cult-following work of Benjamin Vedder with a stream of new firmware code to make humanity better at spinning motors!

It’s not only a feature rich high performance controller, it also comes in a power dense package. The best part of course is the hardware and firmware are open source!

This project was released in endless-sphere forum, and it has quite some history, and previous hackaday coverage.

Here is the forum thread where the discussion takes place:

What is it?

It is a 3 phase motor controller. It takes a DC voltage and using PWM generates 3 sinewaves for driving a motor, conceptually similar to those small ESC for drones and bikes. The difference is that this particular setup can safely work with a 400V battery, flowing 300A all year long.

Our work has been focused in the control board, which is capable of driving way more than 400V and way more than 300A, those are defined by the powerstage (IGBTs, DC Link Capacitor, etc)

We chose EconoDual IGBT modules because its a popular package, they come in many voltage and current levels (from 600V to 1700V, and from 100A to 800A), from many brands, in both IGBT and SiC technology and with available off the shelf gate drivers matched for them.


Because there is no other open platform capable of driving a 100kW-class motor. All you can get are proprietary controllers with high markups and no way to tweak them to your needs, and more importantly, you don't get to see the inner workings to evaluate if the quality is up to your standards, both in software and hardware.

Also, it is made possible thanks to the VESC base platform growing steadily to the point we can help to take it for the first time to the next level, from a hobby tool to a full EV-capable piece of technology.

How it works?

As we said, long story short, it takes your battery voltage (HighVoltageDC) and using PWM creates 3 sinewaves spread 120° for driving a motor. Actually, it uses Space Vector Modulation (SVM), which reduces the amount of switching required and makes it possible that the sinewaves peak to peak voltage is 15% higher than the battery voltage, thats 15% more power right there.

Despite VESC supports driving motors in both trapezoidal and Field Oriented Control control modes, our boards only work in FOC. Its just better suited for the application.

FOC is about aligning your sinewaves with the actual field inside the motor, and controlling the machine with a vector signal composed on a torque-generating current in quadrature with the flux (Iq), and a flux-generating current (Id). There are lots of good resources about this topic, and you can see the actual lines of code performing the transformations here.

Along with a control loop, you need a user interface to configure the motor parameters, and it will be your tool for debugging problems. Hats off to Benjamin's VESC Tool:

Now that you have some software in place, a high power application will need some very particular hardware:

Here is our take at this

  • Mechanically matched to EconoDual/17mm IGBT modules. More compact, fewer assembly steps, less wiring and crimping, no adapter parts.
  • Isolated HVDC and phase voltage monitoring integrated on board, direct connection to the IGBTs for cleaner signal and faster assembly.
  • DC Link Capacitor discharge resistor on board. Safety requirement, discharges it when board is not powered.
  • RF connectors to measure analog signals. This provides simulation-like signal quality, extremely good for development.
  • Individual IGBT fault monitoring. You can tell which IGBT faulted.
  • Individual fault leds for overvoltage, overcurrent and overtemperature.
  • Individual IGBT temperature monitoring.
  • A Lattice iCE40 FPGA, using an open source toolchain for sinthesis and HDL development.
  • The FPGA is continuously monitoring all fault inputs. If any fault is asserted, all PWM activity is shut down.
  • FPGA supervises the PWM generated by the MCU. Shuts down PWM if a shoot-through...
Read more »

  • 1 × PD-Axiom-Rev0 Powerdesigns Motor Control Board, Compatile with VESC platform
  • 3 × FF600R07ME4B11BOSA1 650V 600A IGBT module
  • 3 × 2SP0115T2A0-06 Gate driver for FF600R07ME4B11BOSA1
  • 3 × ISB-425-A Busbar Hall Current Sensor
  • 1 × PD-C600VDC-650UF10A Powerdesigns DC Link Capacitor, 600Vdc 650uF +-10%

  • Motor Simulation and Sin/Cos Encoder Support

    Marcos Chaparro4 days ago 0 comments

    Today some code we developed for the VESC platform was merged into the master branch, reaching thousands of current VESC users.

    Motor simulation inside the firmware is a critical step in our path to having the greatest controller out there.

    • It help us to develop new control algorithms. For example Field Weakening, MTPA (Maximum Torque Per Amp), new flux phase observers, etc, without risking to damage expensive hardware.
    • It opens the door for deeper automatic testing. We are now a script away of being able to check that the code can actually run a motor. It sounds easy enough, but with many commits getting merged, and so many hardware configurations to support, this kind of hardware in the loop will detect problems way sooner, and way cheaper!

    It runs in cpu time, you can halt the debugger, take a look, and resume operation. Or you can perform  slow code coverage tests to ensure you have exercised all the lines in your code, often required by some industries.

    Here is a screenshot of a motor startup being simulated:

    The virtual motor is modelled as an IPM machine, and is engaged from the VESC Terminal inside the GUI.

    More details in our Pull Request

    The other piece of code we authored is Sin/Cos encoder support. These encoders provide absolute rotor angle feedback, no need to wait for indexes. They provide 2 sinewaves in quadrature, and by reading that signal the code can calculate the rotor angle.

    Medium power motors are commonly using this kind of feedback. Zero bikes use them for example.

    Here is the signal input:

    And resulting phase measurement:

    Here is the Pull Request, and the line of code that calculates the angle

  • Launching Social Media!

    Marcos Chaparro6 days ago 0 comments

    Finally, Axiom has a website!

    Head to for more info and to get in touch.

    And we have a brand new facebook page

    And twitter!

    Stay tuned!

View all 2 project logs

Enjoy this project?



slloyd wrote 3 days ago point

Yes you're right Zachary.  There's a lot a platform like this can do and its not that far from a perfect match to the other application you're brainstorming.  Of course, being open source, YOU have all the power to make the changes you want to see  :)

  Are you sure? yes | no

Zachary Drew wrote 3 days ago point

I do, I will, and this is what's so exciting to me about stuff like this! I keep seeing this pattern in technology repeating itself over and over again. Things are a little too purpose built, usually for good reason, but as technology improves those reasons disappear. Look at the disconnect between e-bike and e-board motor controllers. It's my impression VESC hasn't taken off with e-bikes because of the 60V limit imposed by the TI DRV8301. Now TI just came out with the 100V DRV8350 so the source of that disconnect seems to be going away.

Another place I see this is in HVAC. Need a big system? Build a big system. Need a small system? Build a small system. Need AC? Install an air conditioner. Need heat? Install a heater. Except they are all (or should be) doing the same thing: transferring heat from one place to another and the most efficient way to do that with electricity is the heat pump which are reversible with a single reversing valve. Now we go fractal: The heat pump guys will then ask you if you doing air-to-water, air-to-air, air-to-ground, etc... and I just want to scream "is it too much to ask to design a plate-to-plate, modular sized heat pump, mass produce them in obscene numbers so they are cheap, if I have a big system I will use a lot of them, if I have a small system I will only use one?" And now we'll go ouroboros: The compressor will be designed for your specific grid (110V/220V, 50hz/60hz) even though modulating DC inverting compressors are the clear path forward (ha, we're back to motor controllers again!) Next will come the question of the alphanumeric soup of refrigerants to which again there is a very clear answer: CO2 except the R&D for that has been weirdly slow across all these fiefdoms of HVAC. Sure, it's harder to run refrigerant at several thousand PSI but guess what? It eliminates many of the sources of all these little disconnects, and the components are dramatically smaller and ultimately cheaper. Now instead CO2 refrigerant has made great inroads into retail commercial refrigeration. DC inverting compressors are the norm in mini-splits. But want a window unit with a DC inverting CO2 compressor? Guy at the bigbox store: how about this 80 pound window unit that hasn't had a design update since 1998 except for when the face-plate injection mold tooling wore out nine years ago so they gave the model a facelift,  and five years ago, when blue LEDs got cheap so they changed the LCD backlight color to "good luck sleeping with this blinding blue LED shining in your face, while this ancient compressor cycles on and off to hit the temperature set point, while your back hurts from installing it in the window, and, oh, sorry about the larger-than-necessary electrical bill coming next month, and sorry to your kids when the refrigerant leaks out because it has a global warming potential 1000x worse than CO2, but hey, exotic patented synthetic refrigerants are big business."

My apologies for that rant, it's been building up for a while.

  Are you sure? yes | no

slloyd wrote 2 days ago point

no worries, we feel the same.  its why our product exists, to allow for some flexibility as needed!  by the way, we have a motor controller based on the 100V DRV8350 chipset though it hasn't been published (yet).  It was meant for 1 to 10kW systems in high G-Force application.

  Are you sure? yes | no

Zachary Drew wrote 3 days ago point

This is incredible work! This feels exactly like what's needed for VESC to take over the DIY EV world and beyond. For example, if a DIYer wanted to heat a cold battery pack using the motor/inverter ala the Tesla Model 3 method this should allow that! Going even further, with some added components I believe this could allow the motor inverter and IGBTs to pull double duty as a pure sine wave inverter. Park the vehicle, switch the inverter from traction mode to inverter mode and you've got a huge power wall on wheels.

The u.FL connectors for simulation-quality in-circuit measurements and the FPGA shoot-through protection is brilliant!

  Are you sure? yes | no

Marcos Chaparro wrote 3 days ago point

Thanks! You can artificially heat up the drive unit by setting an Id current (it doesn't produce any torque), its a simple command,

You need some contactors and an inductor/transformer + filtering to smooth the 3 phase voltage in order to supply a house. But as far as the board is concerned its 1 command away as well, it was added recently! 

  Are you sure? yes | no

Zachary Drew wrote 3 days ago point

Usually a big inductor too! Though I have been wondering if there are specific DC/AC voltage ratios to minimize the cost, weight, and conversion inefficiencies. And maybe it could go the other way, is there a specific voltage ratio to maximize charging efficiency? Imagine if a single piece of hardware could be the motor driver, DC charger, and vehicle to grid energy controller. I'm only slowly beginning to understand how all these things works and I keep seeing similarities... everything is just some kind of inverter which has left me wondering if it's just lack of imagination that is holding back the convergence of these technologies or if there is a specific first-principles reason that prevents it. 

  Are you sure? yes | no

Nicholas DiVitto wrote 3 days ago point

Wow! Simply beautiful, and definitely what the DIY EV community needs. Is there induction motor support, or just BLDC? 

  Are you sure? yes | no

Marcos Chaparro wrote 3 days ago point

It can make an ACIM spin, there are commands to generate a fixed frequency 3 phase.

Full Field Oriented Control of ACIM is in the TODO list, should happen soon! It would need a small tweak of the control loop and a new phase observer.

  Are you sure? yes | no

slloyd wrote 3 days ago point

I should add that we are REALLY motivated and excited to explore the parameter detection methods that make ACIM possible because if you're willing/capable of rewinding the motor yourself to better match your EV battery you can save a LOT of money and end up with a pretty decent performing motor.  that's a real plus for extreme DIY'ers like you and me.  I know.. industrial motor's don't lend themselves well to EV application.. but .. if the old motor is selected properly, rewound yourself with intention .. i think you'd be surprised what you can get out of it for a fraction of the cost :)

  Are you sure? yes | no

Nicholas DiVitto wrote 2 days ago point

Awesome! I've been following this project for a little while and its really cool to see how it has matured. Keep up the great work!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates