Axiom: 100+kW Motor Controller

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

Public Chat
Similar projects worth following
For the first time in history, Axiom provides clear, wide open access to the precise control of large 3 phase motors. And it couldn't be more timely, billions are spent accelerating the incoming era of electric vehicles, with massive EV fleet growth, and so many small and big companies competing to have a dominating role in the future of transportation.

It is put together by Marcos -MIT TR35-, endless-sphere forum legend HighHopes, 1/4 mile EV WORLD 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! Making the schematic, BOM, and code available for everyone to experiment and improve, its the ideal platform for vehicles, research and industries

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 we want to be part of the boldest, most spectacular builds, 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.

The new wave of EV companies have been tied to proprietary motor drives, we provide our customers with a chance to deeply integrate the motor drive into their systems, offering a unique chance of verticalization within their product. This saves costs, and improves the quality and integration of their vehicles.

Opening up Axiom also showcases the quality of our work and makes our team a desirable contractor, there are not many people in the world with the set of skills and knowledge to produce a high performance drive unit.

Axiom is also made possible thanks to the VESC base platform growing steadily to the point we can 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 hence the switching losses.

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 and getting to know your machine. 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...
Read more »

Axiom schematic top level Rev0.png

Axiom Rev0 schematic top level

Portable Network Graphics (PNG) - 3.76 MB - 04/29/2019 at 11:41



Axiom Rev0 Control Board Pinout

Adobe Portable Document Format - 6.05 MB - 04/22/2019 at 23:40


  • 3 × FF600R07ME4B11BOSA1 650V 600A IGBT module
  • 1 × PD-Axiom-Rev0 Powerdesigns Motor Control Board, Compatible with VESC platform
  • 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%

  • Design Decisions Philosophy

    Sonny Lloyd5 days ago 2 comments

    You can have it good, fast, or cheap. Pick any two. Good and fast, it will be reliable but expensive to design. Fast and cheap, probably going to end up with something that causes fires rather than drives an EV. Cheap and Good is possible but it’s going to take some time to deliver. Obviously there are many design decisions made along the way of producing a final schematic and bill of materials for a high performance full up motor controller. But how are those decisions made? That is the focus of this log post.

    And it turns out.. it's not that hard. During the initial project meeting EV Power Designs asks the client what are their top three priorities. Cost, weight, volume, performance, reliability, protection from obsolescence, manufacturability, time to market and so on. OK, I lied. It's hard; because after all don’t we want it all? Pick only three? This simple question tends to bring out a lot of discussion about the client’s expectations, desires, goals and general philosophy. The client gets to hear about how each design objective will influence the actual product so there is an appreciation both ways. Client and consultant get an opportunity to better understand the project but more importantly, each other. From this conversation, the three .. yes only three.. top priorities will eventually be ascertained.

    Here is an example of how narrowing down the product development philosophy to three key drivers can help with decision making.  Let's say the three most important goals are Weight / Volume / Cost (typical for new power electronics design where time to market is not a key factor). How does this impact the decision for torque control, arguably the most important function of a motor drive? Depending on the power level there are a lot of different design paths that will lead to lower weight, volume and cost but at all power levels it's possible to reduce the phase current sensor count from three to two. The motor load is still 3-phase, but the current in only two of three phases is measured for control purposes.  The current sensor required for high performance motor drive is relatively expensive because it must be high bandwidth and low error so removing one out of the system saves a lot of cost. And the thing is rather large and heavy because of the internal ferrite core, so weight and volume come down as well. It's a win… win and win. but. As my old professor used to say, you never get a free lunch in engineering. There is a small price to pay to have higher performing op-amps that are now required for adequate design purposes, and with only two sensors the system will never be aware of circulating currents and thus never have the ability to eek out some more performance by nulling out the circulating current. Or in other words… with only two sensors, the system just became lower performance.  Thankfully, in this example, performance wasn’t one of the top three design goals.

    We applied this same philosophy to the Axiom control board design process. What three top priority goals should we have? Performance, reliability and versatility. 

  • Dear Judges

    Marcos Chaparro08/06/2019 at 20:21 0 comments

    Dear Judges

    It’s tough to get through hundreds of projects, here is some help!

    i. Is this a unique solution to a particular challenge facing the world today?

    There are lots of motor controllers out there, good, bad and ugly.

    There are few motor controllers capable of moving a car.

    There are no open source motor controllers capable of moving a car and pushing the boundaries and reach of electric vehicle technology like Axiom does.

    And the world certainly needs to get good at this, motors are driving our civilization and comprise most of the energy usage, we need to accelerate our motor control tech. The best way to drive the technology forward is to open it up to the world, open source, and let all the clever and hyper interested people join together in one reliable, high power, high performance, flexible platform we’ve called Axiom.

    ii. How thoroughly documented were the design process & design decisions?

    I’m sure you’ve already read the project logs and really appreciate the magnitude of our work. The core work of the Axiom project is the schematic, bill of materials and main processor firmware; all open source. Although it only took a few weeks to generate the schematic and bill of materials, they are based on nearly two decades of intense professional design for high performance electric vehicles as well as commercial and military aircraft. In fact, the team members came together on a side project (managed by Arlin Sansome) to help with some of the motor control technology elements to push the boundary beyond reasonable limits, directly into world record breaking limits. Needless to say there is a wealth of experience on the team which allows for generating working schematics in a short period of time.  The design itself is heavily documented. Simulation using Matlab/Simulink and PSpice helps to define circuit functional basics to system integration. MathCAD/Smath was used for much of the advanced analysis such as electrical stress, component sensitivity and tolerance analysis. 

    iii. How ready is this design be taken to market?

    Several individuals, companies and universities are already stretching the muscles of their Axiom drives. We have been selling beta boards and complete controllers for a few months now to get early feedback while simultaneously building up some operational hours to prove out the design. We are expecting to take the product to market in 2020 for turn key 100kW motor drive power.

    iv. How complete is the project?

    Axiom is a complex convergence of mechanical engineering, electrical engineering, thermals, firmware, software, safety, racing, distributed work, user interface, artwork and the will to meet the most challenging requirements.

    The Axiom control board product is already complete, working to control a limited number of high powered motor drives all over the world and will be available with all the bells and whistles in a complete high power, high performance, full up motor drive in 2020.


    i. Concept- Is the project creative, original, functional, and pushing boundaries? Does the project benefit society in some way?

    Axiom sports a creative assembly to simplify the production, it's been proven by many customers, not to mention the thousands of smaller controllers out there using the same VESC software we use and contribute to, and it is fueling the boldest high power applications not only electric vehicles but also turbogenerators, HVAC systems, ROVs and more.

    If Axiom succeeds in its quest, the whole world will become better at spinning motors -one of the major energy consumers-. Pushing the boundaries is exactly where the Axiom product positions itself. An earlier version of the hardware broke the world record for fastest front wheel drive car on the ¼ mile¹. In fact, Arlin is currently working on the next iteration using Axiom to reaching higher and pushing boundaries further² 

    ... Read more »

  • New feature: GUI CANbus support

    Marcos Chaparro07/18/2019 at 22:19 0 comments

    Because we can have nice things

    Consider your regular dayjob (or dayhobby) of using an Axiom-based controller. You are likely dealing with a silly amount of current, or voltage, or both, and you have to *work* with that while being safe. It is also likely that you need to work on more than one motor drive at a time, for example when you have an AWD dual motor honda CRX, or a one-motor-per-wheel setup with torque vectoring, or you are just stress testing 10 drive units in a test facility and you want them in a network.

    In those cases, the good'n old USB interface of the vesc platform just doesn't cut it because a compromised isolation barrier in one controller will expose your computer to unsafe voltages.

    For those cases we equipped every Axiom board with a couple of isolated CANbus interfaces: its the safest way to interface with a motor drive, providing a second isolation barrier with super low capacitive coupling for highest noise immunity.

    And when you need to address several controllers, well, CANbus is the perfect protocol as it allows to send or receive commands from any node in the network. Within milliseconds you can send torque commands to 4 controllers in the bus.

    But there was a missing piece in the VESC platform: you couldn't directly connect to a CANbus with the VESC Tool GUI.

    Until now!

    Native CANbus support for VESC Tool

    See here our Pull Request that adds native support for a can interface. You can discover all VESC's in the network, connect to one and perform firmware updates, realtime data acquisition, high speed sampling, motor detection, parameter config, etc, everything from the GUI.

    This works nicely on linux. For windows support you may have to wait, code it, or hire someone to code it for you ;-)

    It opens the door for proper instrument clusters

    Something we want to address is data display. Whether its a sportsbike, a car, a plane or a jet boat (yes Axiom is already serving all those applications!) the human interface needs to be pretty, with Qt libraries we can do much better than a hacked gauge display

    With VESC Tool codebase being capable of accessing the bus, it is now much easier to install a Beaglebone or a RPi in the vehicle with an industrial monitor and run a nice instrument cluster like this example from the internet that I compiled a couple of years ago on my old laptop.

    Both VESC Tool and this example are based on Qt5 libraries. We hope to see some nice VESC displays in the future thanks to this

    In-house CANbus<->USB adapter

    And here is the icing of the cake: every Axiom controller will come with a compatible CANbus<->USB adapter, using the open source candlelight firmware, and with perhaps the nicest build quality out there:

    A few highligths:

    • Aluminum shell. We machine it alongside the IGBT phase bars as they are of similar thickness
    • UAVCAN compliant CANbus connector (SM04B-GHS). Its also the same used by Axiom
    • Nicely embedded dipswitch to enable 5V bus supply, bus termination resistors and bootloader mode. This replaces the sloppy pin header jumpers.
    • All the performance and features of candlelight firmware that now works out of the box with VESC Tool

    I ordered some boards to assemble in-house, if they turn out good we can send a batch for mfg. Being the coolest CAN<->USB converter out there it should sell well, not only to Axiom users.

    Note that the boards are panelized, with tooling strips that provide fiducials and alignment holes for the stencil and production line. By panelizing myself I make sure the long edges will not be V-grooved, I want them routed for a smooth finish. Also note the proper contact between pcb GND and the aluminum shell for better shielding. 

    As usual... stay tuned!

  • Deep Dive: "Shoot-through" Safety Feature

    Sonny Lloyd07/15/2019 at 02:50 0 comments

    “Shoot-through” is the name given to a failure event when two adjacent switches in a voltage source inverter are ON simultaneously thus short-circuiting the supply, as shown in Figure 1. This failure mode can easily become catastrophic especially in motor drive application where the DC link capacity is rather large and has more than enough stored energy to cause a fire if the shoot-through event is not extinguished within a very short time, typically 10µs for a rugged IGBT (other switch technology can be more sensitive and require even faster response times).

                                             Figure 1: Shoot-through Event

    It is interesting to note that the vast majority of the short-circuit current does not come from the traction battery back but rather the inverter’s DC link capacitor which has a very low impedance path between it and the power switches. This means that any current sensor between traction pack and the capacitor will not “see” the fault current and therefore cannot detect the fault. In fact, since there are no current sensors at all in the short-circuit path it makes detecting this type of fault challenging.

    To detect a shoot-through event the gate driver (external to Axiom control board) employs a power switch “desaturation detection” circuit. The gate driver will immediately shut down the local IGBT when a desat fault is detected. When this first IGBT is shutdown the high fault current is extinguished before it becomes catastrophic and the Axiom control board will be notified so that its firmware can work to immediately shut down the other five switches, thus disabling the drive completely. Desaturation detection is a simple circuit, but its simplicity can often be mistaken for simple to design. The circuit must be 100% reliable in a high noise environment, be extremely fast acting and sufficiently stable over a very wide temperature range. Each component in a desaturation detection circuit is carefully considered and the PCB layout is similarly critically analyzed.

    Now that the shoot-through event has been summarized, along with detection and shut down method, the next question is why would a shoot-through event even happen in the first place? Surely the control scheme is such that the processor would never issue ‘ON’ command simultaneously to two adjacent switches. No doubt this is the case.. but for unproven firmware, with well over 100,000 lines of code, its possible that a firmware bug may exist .. and its possible that such a bug could lead to errant command signals. More likely however is that noise from high voltage and high current switching gets coupled back into the control board causing unpredictable erratic behaviour, including causing a shoot-through.

    Since the shoot-through event has the capability to be destructive it is well worth the designers time to invest an effort to prevent, however possible, the mis-firing of PWM signals. Axiom accomplishes this goal in several ways. The microcontroller firmware is based on proven code, used by thousands of users in a wide variety of applications. Despite this, Axiom makes use of an FPGA which monitors the IGBT gating commands to ensure, double ensure that the microcontroller does not issue errant PWM signals.

                                  Figure 2: Overlap Protection Logic Circuit

    The idea of this circuit is to allow the microcontroller to turn on its associated gate driver, either the top or the bottom, but never the top and the bottom simultaneously (shoot-through!).

    The logic truth table is deciphered as:

                           Figure 3: Overlap Protection Logic Circuit Truth Table

    In earlier revisions...

    Read more »

  • Episode IV: A New Hope

    Marcos Chaparro07/06/2019 at 16:02 0 comments

    Arlin is giving a new life to his 88's Honda CRX

    It may be not a DeLorean or a TIE fighter, but it sure will be a memorable craft.

    So this is how a new EV conversion begins:

    With a donor car!

    The plan is to install an electric drivetrain on the front wheels and another one on the rear wheels, if all goes right it will become our monster flagship, the perfect marketing recipe to spread our work around the globe.

    (images from the owner's manual).

    The used car was a good deal and the motors are really cheap as they came from damaged cars, the real challenge is to afford some good batteries capable of delivering this kind of power.

    Conversion work started last week, on Arlin's own car.

    There have been prior Episodes to the CRX saga that you are missing, you can find them digging in endless-sphere forums ;-)

    Arlin was recently interviewed to let people know where he is at, and here are a couple of lines from the interview:

    Why did you choose a Honda CRX for your conversion project?

     A few reasons.

    • It’s light weight
    • Low coefficient of drag
    • Honda’s are easy to work on
    • Cost
    How long or how many hours were put into the build, from removing the first internal combustion engine (ICE) component to driving with battery power?

     The mechanical conversion portion for the FWD was about 80 hours of work.  But the development and tuning of the custom 3 phase motor controller was 10s of thousands of hours of work.  People really don’t understand how hard it is to develop the motor controller. It’s like 2x as hard as the battery and 5x as hard as any other part on the car!

    For more insights, head to the complete article:

    This is his second CRX build, his original record CRX is currently decommissioned, but if in the future you run into a 80's honda charging electrons, chances are you're looking at an all-out earth-shattering monster.

    That old CRX wasn't running a VESC-based controller but a Lebowski-based one and it pulled more than 300hp out of that drivetrain using mostly donated or handcrafted parts. Everything learned form that car is being applied to our Axiom motor drive:

    If you like what we do, any kind of help is super useful to get the car done. Parts, used motors, batteries, IGBTs, cables, experience, everything helps as this is really pushing the limits of a small team with a limited budget.

    Busy times for our mechanic-in-chief!

  • Mechanicals, part 1

    Marcos Chaparro07/01/2019 at 16:19 0 comments

    Assembly basics

    For several months we got the electrical assembly figured out, and its good and simple for evaluation (Imagine a company looking forward to introduce this controller into its production line).

    This greatly reduces the assembly time, and its literally a bolt-on solution to these high power IGBT modules.

    The point of this basic, enclosure-less assembly is to let customers test this system on their dynos, with their motors. Its purposely open framed for easy access to testpoints, coax connectors and LEDs; it must be easy to work with.

    This same concept is helpful for one-off builds, as those will likely require some debugging and double checking of everything.

    Fully enclosed version

    As cool as it is, its certainly not enough to convince a big customer, they need a few basic items to take Axiom seriously:

    • An enclosure, and most important the assurance we can customize it to their mechanical requirements
    • IP67+ ratings
    • Marketing material

    Enclosure design

    We chose to make a fully parametric enclosure design, in order to easily make changes to support different mounting arrangements. Due to EMI and IP ratings the material is most likely aluminum, and since upfront tooling costs of a CNC job are way lower than plastic injection or die cast, its not unreasonable for a customer to spawn a new design. For a large production, aluminum die cast is an option, but you really need volume to make it the lowest cost option (thanks Eric for this tip at the mentorship session).

    The design is of course made in FreeCAD, a multiplatform, open source, no hassle and powerful MCAD tool. It also has a particularly good integration with KiCad.

    We had some requirements for the enclosure:

    • IP67 (actually aiming for IP6K9K) with off the shelf o-rings
    • Full shielding for easier EMC compliance
    • Integrated liquid cooling
    • Experience told us that High Voltage connections must be on the same side
    • Easy service
    • Compact
    • Nice looking for marketing

    To get the enclosure looking like this, we made custom busbars for the phase outputs, a custom laminated dc busbar to reach the DC link with minimal EMI inside the enclosure, proper sizing for the coolant ports and keeping in mind this has to be machined in a 3 axis CNC, so there is some design for manufacture going on here like minimizing the milling surfaces to 4 (top surface, bottom surface, HV connectors side, los voltage signal side).

    Integrated liquid cooling would be a major cost saver here, as the coldplate we currently list in the BOM costs around $300, we could have the whole enclosure made for that money. Its also an awesome place to spend Axiom's award of $500 for finishing first in the Hackaday Prize Bootstrap stage.

    Lid off! showing some internals:

    Have you heard about semi-transparent aluminum? Me neither, this is just a CAD transparency setting.

    Going for a tidy and minimalist design:

    The mechanical design is not ready, "Mechanical, part 2" will be about the design of the enclosure belly, which is responsible of the cooling performance of the motor drive because it includes the coolant channels and pin fin design below the IGBTs, which requires optimization of pressure drop vs thermal flow from IGBT to the coolant. If anyone knows how to do this FEA in FreeCAD, it would be most welcomed!

    Its really cool that fully open source tools like KiCAD and FreeCAD get you this far into product development.

    The great news is that we are arriving to the final exterior look and feel, that means we unlocked a major road block for marketing development!

  • Powerstage validation

    Marcos Chaparro06/20/2019 at 20:27 4 comments

    Double pulse testing

    Here is some test results we had a while ago when doing double pulse tests to validate the powerstage and our custom DC Link. You can't skip this if you are making a motor controller.

    First of all, we coded some handy functions and commands to perform a double pulse test from the VESC Tool GUI.

    This way from the command line I can easily and accurately set the timing with the controller fully assembled. Otherwise you would need a signal generator, remove the control board, prepare the wiring to the gates, and change the wiring to test each of the 6 switches.

    A test setup is something like this:
    You want to observe the switching characteristics of the drive at peak current load. To do that you keep the top IGBT in OFF state (Our powerstage will keep the top gate at -9Vdc)
    * Turn ON the bottom switch and let the current through the inductor increase to the desired test current (dwell time).
    * Turn OFF the switch and observe the voltage overshoot
    * Wait a minimum amount of time and turn ON the switch (rated current is still flowing through the body diode of the TOP switch)

    We have some handy support math to calculate the construction of the inductor, the required inductance and time required to reach a set current.

    A test bench looks something like this:

    Note that voltages are measured with differential probes to avoid damaging the oscilloscope, and measurement happens directly at the IGBT terminals

    On the top left you can see the inductor for the test. We communicate to Axiom through the isolated CANbus interface so the laptop is isolated from the device under test.

    Double pulse test result at 375V 450A:

    And zoomed in:

    Yellow trace is Collector voltage (to measure overshoot), green trace is phase current, orange trace is TOP IGBT gate (to observe miller effect).

    The overshoot is caused by the inductance of the path between the silicon switch and the DC Link capacitor. This includes the internal IGBT module wiring, the connection to the DC Link and the internal DC Link ESL. We tested other DC Link and ours performed better during this testing. Overshoot can change wildly if your DC Link is not carefully designed; we have a 100V overshoot, imagine how bad can it become if the DC Link ESL is left unchecked.

    Overshoot must stay below the IGBT rated voltage, which is 650Vdc minus some buffer %. If we were operating at higher DC bus voltages we can either test snubbers, slow down the turn OFF time or just use a 1200V rated IGBT.

    Miller capacitance between gate and collector of the TOP switch will try to turn ON that switch when its supposed to be off. We check that the gate sits at -9Vdc and miller can only pull it up to -7Vdc, thats good. You get a shoot through + fire if Miller is able to turn ON the TOP switch.

    Something really good about double pulse test is that you can measure the switching losses, and we have access to a very good rogowski current probe but its only capable of measuring 300A and we are more interested into the 500A to 800A range. We did measure emitter current but the sensor can't properly track the slewrate. Maybe next time.

    Double pulse testing is something *every* controller design should have endured, you don't know how the powerstage works until you observe it.

  • Let's talk about the FPGA...

    Marcos Chaparro06/14/2019 at 11:29 0 comments

    In the early days...

    Axiom originally started with discrete logic that was in charge of 2 specific tasks:

    • Shoot-through elimination
    • Fault latching

    Avoiding shoot-through

    A shoot through happens when both TOP and BOTTOM switches in a leg turn ON at the same time, creating a dead short across the 400Vdc input.

    If that would happen and no protections were in place, your vehicle would become a ball of fire. We want to make sure a '1' is never commanded on both top and bottom switches at the same time, even in case of a firmware bug or microcontroller damage.

    This was our hard solution to a hard problem:

    Input pulldowns make sure the signals stay in '0' while the microcontroller is under reset and during GPIO initialization. If you follow the logic, it will set both top and bottom to '0' when both inputs are '1'.

    This takes 3 logic ICs (U5, U6 and U7) plus bypass capacitors, but it had the extra benefit of level shifting the signals from 3.3V to 5V for higher noise immunity.

    Latching faults

    When a fault happens, we don't want to rely on the firmware to keep things safe. In this context a fault can mean 2000+ Amps flowing close to the microcontroller with very high, and possibly damaging levels of EMI.

    With that in mind, our analog signal chain has comparators that will trip a fault when a voltage, current or temperature signal goes beyond design limits, like this example: (Temperature signal path is simpler than voltage and current)

    The problem here is that the comparator will only assert a fault while the fault is present and then return to the normal state. With the temperature it can be a few seconds, but in case of voltage and current, those are likely microseconds and we can't afford to miss that signal.

    Enter discrete fault latching:

    This bit of schematic was taken from an ancient forum post of our power electronics guru, it latches a fault until the CLR_OC_Fault is cleared, and we had a latch circuit for current and another for voltage because we need to know why it faulted in the first place. We leaved overtemperature unlatched because it was quite a lot of parts, this discrete solution already takes 7 ICs.

    Let's talk about the FPGA...

    Despite there are many FPGA manufacturers out there, there is one that is special.

    They all require you to install gigabytes worth of software just to create the simplest logic, but in case of the ice40 family, there is a interesting open source effort to reverse engineer their logic and create an open source toolchain, just like gcc, but for FPGA's. Its called Project Icestorm.

    And now that we have a backend, 2 other projects emerged to make it more user friendly:

    Icestudio allows you to easily draw your logic circuit, like their example from their frontpage:

    Yes, its that easy and the whole software package only takes a few megabytes! And it won't bother you with licenses, activation, sign ups, ads, newsletters.

    I chose the ice40up5k, its not automotive grade but its low cost, and at 5k logic cells it has potential to fit some promising logic. I ran the awesome risc-v core in our Axiom board and developed delta sigma demodulation on this fpga, its good stuff.

    Shoot through elimination, FPGA-style

    Remember the discrete implementation? Axiom board recreates that hardware inside the FPGA

    And we can easily simulate the behavior by just typing "apio sim", icestudio creates a testbench template for you.


    In a similar way, we can implement a latch circuit like this

    Note that now we do have a temperature fault latch, this time for free.

    With apio we can again simulate the behavior of the block:

    And because I have the ice40up5k evaluation board, I can actually measure the...

    Read more »

  • Highest power VESC bike?

    Marcos Chaparro06/13/2019 at 22:30 2 comments

    Laying rubber at 700Amps

    Meet Hackey's team using an early version of Axiom to have some fun! As much as we love emissions-free vehicles, this ain't one, but its certainly the hackiest build out there!

    Now lets do a quick recap:

    As you may notice in the video, they built an old version of Axiom, the one we released here. Main differences with the latest and greatest revision competing for the Hackaday Prize are these:

    • Discrete fault protection logic was upgraded to an FPGA (with an open source toolchain!)
    • Improved voltage sensing
    • Greatly improved packaging, wiring and ease of assembly
    • More safety features

    They use the same 650V 600A Infineon EconoDual modules we showcase in our project description. If you take a look at the datasheet they are rated for continuous 600Amps DC (no switching!) at 60°C, and 700Adc at 25°C.

    The user interface of most FOC controllers sets peak current. So when you set 700A, its actually 700Apk, (496Arms). Its crazy current, but still manageable for short periods.

    A fun thing to note is that they are using only a 70V battery and getting 52kW of power, but their IGBTs are perfectly capable of going all the way up to 400Vdc, so it could be way past 200kW!  Yes, thats 270hp!

    In a bike!

    Granted, a very special battery would be required, safety and turn-off overshoot needs to be carefully handled (a cool log about this critical part will be posted soon).


    ImageLiquid cooling!
    ImageI actually don't know how that coldplate was made, pretty sure it wasn't CNC machined.

    This isn't the highest power Axiom out there, but its a cool one that sorted out a ton of challenges on a very short budget. Its also one of the few not under an NDA!

    We are hoping to see them tidying up the wiring and securing down everything to make it safer, and its cool to see that the design still works even with long wiring and the old 2-board approach.

    Axiom is literally empowering people from all around the world to achieve a 100kW-class motor drives, because we need and we want electric vehicles around us.

    Stay tuned!

  • Waterproofing

    Marcos Chaparro06/05/2019 at 23:36 0 comments

    Going for IP67

    Something I learned through the path of enclosure design after our last mentor session with Eric Weinhoffer, is the nitty gritty of enclosure sealing.

    So our target customer needs a water resistant motor drive, and to be on the safe side we will spec it for IP67 or better (requires testing at 1 meter deep for 30 minutes). If your case is a single piece with no connectors, easy peasy. If you have signal connectors you need IP67 rated connectors. That's okay, we can get those easily from digikey.
    600Amp connectors? Well those are harder to find but industry usually seals the thick conductors with cable glandes, so we'll go that way.
    Hum, last step is sealing 2 perfectly flat surfaces. Sounds easier than it is, you need a rubbery compressible material between those surfaces, we all know that. What I didn't know, despite I've been a mechanically oriented EE is how clear the rules are and how deep the knowledge is about seals.

    I've seen plenty of custom made gaskets for electronics enclosures, but after a light reading it was evident that the easier and cheaper way to seal is using off the shelf o-rings.
    Enter Parker, the age old o-ring industry leader, with an old and extensive handbook that has perdured for decades instructing us engineers to design proper sealing into our products.

    Step 1: Read The Fantastic Manual

    The Parker O-Ring Handbook is a 50 year old piece of literature that surprisingly hasn't changed that much over the decades. Its on the boring side for an electrical engineer, until you get to the practical design charts:

    Step 2: Determine O-Ring diameter

    So if we are going for an enclosure that needs to prevent liquids on the outside from entering, your O-Ring inner diameter needs to be the same length as the inside diameter (if the groove were circular.

    In a sort of rectangular enclosure, we need to know the line selected in green here:

    In reality, you will roughly estimate the required O-Ring diameter based on that green line length and it will obviously won't match the off the shelf o-rings, but now you have a ballpark that lets you know which o-ring cross section you will use.

    In our case (oh the pun) I could narrow it down to part# 2-279 or 2-280. They only differ in the Inner Diameter (329mm and 355mm). Now the groove needs to modified so it either measures 329 or 355mm to match one of those o-rings. Our enclosure initially had 340mm, so either we make it smaller or larger to get a match.

    Step 3: Groove profile

    Given a 2-279 O-ring, we know its cross section, that's all we need to know to design the groove, if you work with the free and awesome FreeCAD and followed the first image, it will look like this:

    The fillets on the top are required to avoid pinching and damaging the O-ring, and the draft angle would be 0° if you are CNC'ing your enclosure or up to 5° if you are diecasting. Depth and width are given by the tables.

    Step 4: Check radiuses

    In the second image you can see there is some wiggling in the groove, that's an old trick to increase the available volume inside the enclosure. You can do it on the corners or to surround a bolt, which makes for thinner, lighter and less massive enclosures.

    But here's the catch: according to the handbook, you can't bend an O-ring with a radius sharper than 3 cross section widths. In our case that would be a 10mm radius, less than that would compromise the sealing. Ideally you want to use x6 widths.

    This means that if you want your O-ring to closely surround your enclosure bolts, you are probably going fail the radius check and inevitably fall into a custom made sealing gasket. That was a wow moment, when I realized the exact limit between using an easy off the shelf O-ring and a ton of hours spent into the design and supply chain of a custom gasket.

    Axiom enclosure is not done yet, but this...

    Read more »

View all 19 project logs

Enjoy this project?



t.tirupathi wrote 2 days ago point

wow... Amazing project! Can I get gerber files for this board to try it out. Thank you.

  Are you sure? yes | no

Marcos Chaparro wrote 2 days ago point

Hi! Well, I tried selling bare PCBs but no one suceeded assembling them without any quality issue, and a single bad solder joint can compromise the safety of expensive parts, not to mention the risk of life.

The DC link discharge circuit for example, break it and you can get shocked.

Or get 1 component wrong and we'll be spinning in circles forever debugging your drive (I spend a lot of time hand-holding our beta testers!)

So now we only provide fully assembled and fully tested boards.

We have good news though, the full Axiom schematic was released to our newsletter subscribers, soon it will be posted here

  Are you sure? yes | no

t.tirupathi wrote a day ago point

Thank you for your reply. Where can I purchase the fully assembled and tested boards?

  Are you sure? yes | no

Marcos Chaparro wrote 19 hours ago point

Contact us from powerdesigns website if you want to apply to be a beta tester. Cheers

  Are you sure? yes | no

grTavares wrote 05/23/2019 at 19:58 point

Wow... Amazing project! I will try to learn a bit from you.

  Are you sure? yes | no

Piotr Błądek wrote 05/23/2019 at 14:17 point

Good job guys! Only thing Im wondering, is automotive grade of components used, and project as a whole (as far as I remember STM32F4 didn't come with any ISO26262 support, ASILx, or even AECQ100), for DIY EV its not a problem, but for any professional stuff it is. Do you have any plan to support automotive applications with your solution?

  Are you sure? yes | no

Sonny Lloyd wrote 05/23/2019 at 16:00 point

That's an excellent question Piotr, and your observation is correct.  We already have a design, currently in draft, which supports automotive application using  qualified parts and processor (not STM32F4).  It has other features too that Axiom doesn't have, more suitable for that style of customer but it lacks the amazing GUI that VESC has, and also its not open source.  

  Are you sure? yes | no

ve2hrj wrote 05/16/2019 at 11:36 point

This is great project, I’m interested to create something like that, but your project is way more advance!

I did notice that you use regular IGBT N-Channel of about ~700A, how about using GaN?

Would it be possible to adapt your board for that?

That would be a very big improvement on efficiency, I think.

  Are you sure? yes | no

Marcos Chaparro wrote 05/16/2019 at 14:57 point

Gallium Nitride is better suited for lower power applications. GaN technology comes with very low voltage gates (<5V IIRC) and most importantly a lack of high current off the shelf modules. Also they are normally-closed devices, you really don't want that in a high power half bridge. You wont find a 500A GaN because parasitics would turn itself on.

GaN is not the only wide bandgap technology out there, we have Silicon Carbide that has large gate voltage threshold for better tolerance against Miller self turn-on (which gets much worse at high dV/dt), its normally open, and industry has been making SiC modules for quite a long time now.

Having said so, we carefully chose our parts and design rules so Axiom can manage next-gen devices like Silicon Carbide that make for more compact and more efficent drive units. Basically by minimizing capacitive coupling between high voltage and control logic domains.

  Are you sure? yes | no

arbydarby wrote 04/20/2019 at 01:18 point

this needs to win, fabulous 

  Are you sure? yes | no

c.Invent wrote 04/19/2019 at 17:09 point

Let me just say this: this project is nothing short of amazing and I honestly think it deserves to win.

  Are you sure? yes | no

Maxi wrote 04/19/2019 at 21:49 point

Thanks for your support

  Are you sure? yes | no

Sonny Lloyd wrote 04/16/2019 at 02:09 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 04/16/2019 at 04:24 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

Sonny Lloyd wrote 04/16/2019 at 14:20 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 04/15/2019 at 21:54 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 04/16/2019 at 02:28 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 04/16/2019 at 03:19 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 04/15/2019 at 20:33 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 04/16/2019 at 02:08 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

Sonny Lloyd wrote 04/16/2019 at 02:15 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 04/16/2019 at 12:47 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