Axiom: a 100kW+ motor controller

marcos said:
Big thanks to tecnologic:
https://github.com/vedderb/bldc/pull/82

With this signal injection we can now make the microcontroller think it is running a PM motor. Will lay the groundwork for algorithm development and deeper automated testing.
u are welcome :)
 
After many many months of hard work, technical discussions, documentation and tests we have come to the point we think we have the best platform for high power motor control.

Before hardware news, the BIGGEST news about this project is the formal presentation of the team that made it possible. Forum legends HighHopes and Arlo1 are deeply involved in the design, we have been working together on getting this control board out, and we founded www.powerdesigns.ca to centralize all the contract work we have been doing together as separate companies.

So what does this means? Arlo1 provides the field experience with his awesome, record-setting builds and tooling while HighHopes provides deep insight, his power systems knowledge and hard math to every design decision, while Maxi and I do what we do best, engineering, CAD, firmware and manufacturing. And remember this is standing on years of Benjamin Vedder's firmware development, to which we are already collaborators.

So, now to the hardware. Its black!



it also comes with in an interesting changelog

[*] Mechanically matched to EconoDual/17mm IGBT modules. No adaptor PCB needed.
[*] Isolated HVDC and phase voltage monitoring integrated on board.
[*] DC Link Capacitor discharge resistor on board. Discharges it when board is not powered.
[*] RF connectors to measure analog signals. This provides simulation-like signal quality, extremely cool for development.
[*] Individual IGBT fault monitoring. You can tell which IGBT faulted.
[*] Individual fault leds for overvoltage, overcurrent and overtemperature.
[*] Individual IGBT temperature monitoring.
[*] An 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 command is detected.
[*] RJ45 ports. These are not ethernet, they provide a shielded, twisted pair wiring in a standard off the shelf fashion.
[*] Dual analog Accelerator inputs.
[*] Dual isolated CANbus interfaces (firmware no there yet for the 2nd interface).
[*] Resolver support.
[*] BiSS absolute encoder support (firmware under dev).
[*] Sin/Cos encoder support.
[*] Supplies a regulated 15Vdc to the gate drivers, and monitors that voltage.
[*] 2 DAC outputs with RF connectors to peek inside the firmware.
[*] 2 Open drain outputs for driving small loads or relays, for a pump for example.
[*] More fuses, more TVS, more EMI filtering.

Here are some high-res images for reference:











An old prototype that can show the isolation cleareances. With newer boards you don't see through the thick soldermask



A sensorless full speed reversal with an IGBT-based powerstage: (yellow trace is the observer phase being output to a DAC channel)
View attachment 2

Many full speed reversals:
SCR30.PNG
This is an exercise on the signal quality of the the board, in practice we strongly suggest to use absolute encoders on high power builds.

Crystal clear signals measured right at the ADC pins, and phase angle sent over the DAC to the scope
SCR14.PNG

Clear fault reporting


Schematic top level:



Click on the image for an interactive BOM viewer




More data, board datasheet and images will be available at www.powerdesigns.ca, as well as schematic and other design files. The build in the pictures is designed for 400V 300Amp continuous operation.

PowerDesigns should provide the assembled boards to anyone interested. We can offer bare PCBs on demand but the risk is so high and I didn't see a successful build when people have to assemble the boards, so its better if we take care of the assembly. Its even much better if we provide the complete motor controller, we are working on providing that option.

This controller will compete in 2019 Hackaday contest so we'll be extremely appreciative if you express your support to the project and us by following and liking it on its project page that we just posted:

https://hackaday.io/project/164932-axiom-400v300a-100kw-motor-controller

Maxi (co-founder engineer at paltatech) and me switched gears some months ago to firmware developing and testing when the hardware design was settled, meanwhile some alpha users start putting some miles on this, not many miles actually, we are still craving for testers and we don't claim it comes without bugs. All the code we provide for these high power applications is carefully crafted for direct integration into the VESC codebase so it stays public and well maintained.

Hardware-wise, we have math for finely setting our trip points, which we can easy tune at will by changing resistors, and the FPGA is a very powerful addition for co-processing and safety functions. We went as far as designing our own DC Link with an OEM, shown in the pictures and still under testing.
Its quite a compact and tidy unit.

This is an awesome platform for research and for high power builds, I don't know of any controller at this power level, with this quality and attention to detail while open to the user to modify the firmware at will.

We have been going on for a long way without external feedback, so I'm eager to hear what you guys think. Just remember this is not meant to be a cheap controller, its meant to drive very expensive and dangerous equipment, so it should be a safe and solid piece of hardware.
 
motherofgod.jpg

The magnitude of engineering, research, and development here is astonishing! This Axiom controller is going to make some serious waves in the EV world. Congratulations to @marcos and team for cranking out this gem. I wanna be like you guys when I grow up.
 
shaman said:
motherofgod.jpg

The magnitude of engineering, research, and development here is astonishing! This Axiom controller is going to make some serious waves in the EV world. Congratulations to @marcos and team for cranking out this gem. I wanna be like you guys when I grow up.
Thanks! You'll be there someday. Or maybe you'll be here?

Yeah this should do some damage out there, in the good sense. There is so much information involved that just can't fit in a single post. Build information, pinouts, tables, images, good practices, plus our already long TODO list of firmware development.
One step at a time!
 
Congrats, impressive work. I trust we will see a fully laminated DC bus. Looking forward to seeing if Arlin can beat his own world record with this controller. And the million dollar question is how much for a fully built inverter?
 
Good job team!

I think you have created something that I would call "the linux version of the motor controller". In theory it can run any motor at any power level. Very cool!

What will be the price asked? I might be tempted, I have been waiting for this update since a while... I expect a very high price tag for this piece of equipment thought... :cry:

IGBT = 3 x 200$
Gate driver = 3 x 100$
Control board = 300+$
Cap= 300+$
Heat sink 100+$
Encoder + current sensors = 150$

So, total is at least 1750$ without counting profits, shipping + R&D (if not taking into account volume & scaling effect on price)

In the future, If if you could scale production and bring the cost down to maybe close to 1000$-1500$ USD for a unit, I think you would sell a shitload of them!
 
kiwifiat said:
I trust we will see a fully laminated DC bus.
One would use a laminated bus to connect the switches to dc link capacitor with minimal ESL. Our capacitor is custom made, mechanically designed so it bolts directly to the IGBT modules, avoiding the cost and assembly of the laminated busbar. We were also involved in the internal design and specification of that cap, but thats another story.

kiwifiat said:
Looking forward to seeing if Arlin can beat his own world record with this controller.
Me too!

ENNOID is on the ballpark with the costs. As far as I know, cheap 100kW drives are $3000+. Higher end ones are more like $5k. Good luck with those tweaking the control loop, improving MTPA or just adapting the comm protocol to fit your needs.
I have a BOM for a complete controller, but only includes materials. Labor, taxes, shipping not accounted yet, we'll get there.
 
Thanks Marcos,

Yes its been an honor to work with these guys for the last few years and for the last year plus on some big contract stuff. I really think we have a perfect team and we owe so much to this forum and the people on it. Working on this stuff is a dream come true.

Yes I have plans for WAY MORE power! Stay tuned for sure.

-Arlin
 
So awesome to see a serious controller option enter the EV hotrod scene!!!

You guys are amazing!!!
 
Ya it's exciting! a good working team, one founded through common interest right here on ES! one of the things we learned along the way is how each of us contributes to the overall project in different ways making the whole a little better than it otherwise would've been. in this light, we like to keep it open source so that future users can learn from each other, tweak the design and improve the firmweare. if you're down with that idea too, please give a :thumb: over on the hackaday competition so we can keep this good thing going https://hackaday.io/project/164932-axiom-400v300a-100kw-motor-controller
 
Hi,

Is it still using the same STM32F4 MCU as the original VESC?

For such an high-end motor controller, I think it could be a good idea to port the VESC code to an AEC (automotive qualified) MCU in the foreseeable future. That could even increase the value of this motor controller. I'm just wondering if there is a way to port the code from the STM32F4 to an SPC5 MCU from ST and to stay compatible with the original VESC codebase?

I think automotive grade MCU are just more rugged to extreme temperature and might be a more reliable solution in the long run.

Any thought on this on your side?
 
ENNOID said:
Any thought on this on your side?

I'm well aware nowdays there are microcontrollers better targeted for motor control applications, with AEC qualification and specific peripherals, we plan someday using one of those.

However the software effort to achieve such product is simply not worth it at the moment, I'm thinking about 1 or 2 full years to have a high performance inverter from the ground up. Who's going to pay for that? And it will not be compatible with the vesc platform because its a wildly moving target, with new features being added every month. Or put other way, the effort to maintain compatibility would be so huge that it wont be economically feasible.

Supporting a new mcu is not something you can do as a lone wolf, its a decision that needs support by the official vesc project. First we need stable interfaces in vesc tool, then we can start developing for new mcus.

Meanwhile, we have a 168MHz cpu with hardware floating point, a ton of memory, a high quality codebase, good support, and an fpga on board to make possible our wildest ideas. Like 7 delta sigma demodulators for example.
 
Woot!

Put some heat-shrink tubing on those current sensor wires, so they stay very very close together. You want the sensor signal to travel very close to its GND return path, with minimal loop area. That loop area will pick up lots of noise when the switching starts.

If during testing your phase current signals aren't clean, use shorter and shielded cables. Any old USB cable will do because they come with twisted pairs inside and they are shielded. The current connectors have 2 GND pins, one for the signal return path, and the other for the shield. I just added this to the datasheet. I would try to make that change before trying to run any PWM.

Also, make sure your current signals are reaching OK the mcu, drive a current through every sensor and check that if current flows into the motor, the ADC pin voltage increases. If you have a wiring issue the current will rise out of control and trip your contactor or fuse, because if you ask the board the is no current flowin'.

Here is a sneak peek of the yet to be released datasheet regarding this.
layour requirements.png
 
Just working through step by step to try and get it all connected to the Mitsubishi drivers.

I have 2 5V connections and a 5VA connection (according to the screen on the Mitsubishi controller) I can see a 5V available on the rev D board, but what is the 5VA about?!

Is there any way I can check the resolver in software without connecting the rest of the board? Keen to establish comms and see that I have each bit working before trying the whole thing?
 
I have 2 5V connections and a 5VA connection (according to the screen on the Mitsubishi controller) I can see a 5V available on the rev D board, but what is the 5VA about?!
Sounds like 5V Analog, its usually a more filtered/less noisy/weaker power rail.

Is there any way I can check the resolver in software without connecting the rest of the board? Keen to establish comms and see that I have each bit working before trying the whole thing?
Go to vesc tool, configure the encoder as this
resolver.png
In FOC->General->Sensor mode make sure you selected "Encoder".
Write motor configuration.

So now your board is using the resolver signal.

Enable RealTime data aquisition.
RT.png
In the RPM tab, when you spin the resolver I think you should see the RPM change.

If you go to the VESC Terminal and type "encoder" you should see the last angle (not in degrees). along more debug information
 
hi,

:bigthumb:
i see it's actually ok only for induction and SPM motors driving, i'm understanding right ?

does this controler will drive also a synchronous electric motor with rotor coil (slip rings) as the one used in renault zoe ?
we are having more and more of this motors in second hand market here,
you can have some info here

i have some old IGBT Toshiba MG300J2YS50, snubers etc. ready,
is it possible to be on beta testing group ?
Phil
 
Sepex motors... thats a strange topology for an OEM, it has 3 phase, a neutral and slip rings for driving a separate field current. You would need a DC/DC converter for the field current, experiment a lot to know which ratios of inverter to field current are good, and figure out why they have a neutral connection. I feel like the time is best invested trying to hack the canbus of that motordrive, you could control the whole thing with a $20 can-usb converter.
If they really went to town with the can bus security then we or someone should take a look into supporting it.

Yes, its possible to join the beta testers, extra chances if you are an engineer or a company :D
 
that sounds a lot like what was commonly used in commercial aircraft. a separate exciter and neutral connected motor. it was done this way so you could avoid using magnets in your motor thus allowing you to instantly disable power generation in case of a fault. the neutral connection was there so you could switch it in and out of the circuit (out during flight, in while on ground). its not a topology that Axiom directly supports mostly because we don't have an isolation transformer of high enough power to drive the separate field (exciter) but theoretically you could do that offboard and have it controlled via Axiom spare I/O. <-- this of course is the reason why Axiom is open source..so you can experiment yourself any wild idea or topology you want to try!
 
Marcos, are you able to provide details on the fault codes?

I have the fault light flashing when I power up the board and I am keen to debug.

I have connected the throttle and I am able to calibrate it and see the throttle input working in the VESC input wizard.

I haven't been out to my motor to check the resolver yet but I have wired up the gate drivers. I don't have an HVDC supply to connect at the moment so I am just checking out all of the low voltage stuff.
 
I'm not an engineer i have just an old electronic high school degree :wink: and some auto-learning since then playing with electronics of our Peugeot, Citroen, Renault etc. EV electronics.

The excitation on the slip ring is very low power as the mosfet controlling it is 73A and the freewheeling diode is 30A, on the data i have it's between 0 to 20A max.
These motors are used a lot on lifts also :lol: i have schematics of the control in fact.

commande courant rotor.PNG

i also have a gen2 prius motor (Internal PM Motor 20kW continuous, 60kw peak) maybe installing this one or even better purchasing a Remy HVH250 motor would be better idea for using Axiom ?
 
marcos said:
Sepex motors... thats a strange topology for an OEM, it has 3 phase, a neutral and slip rings for driving a separate field current.

Sepex also refers to a separately excited field brushed motor.
 
Back
Top