Yasa/Makani controller teardown

axialflux

1 mW
Joined
Sep 7, 2020
Messages
18
A couple of friends and I just bought a large pile of Yasa motors at Makani's going-out-of-business auction.
Makani was a Google X company that spent a lot of money on wind power kites:
https://www.youtube.com/watch?v=uBZayX1QlZQ
before people realized perhaps that wasn't such a great idea.

The motors are similar to and larger than the Yasa 750 R:
https://www.yasa.com/yasa-750
which is an axial flux motor rated at 790Nm peak torque, 200kW peak power.

Here's a teardown of one of the Makani controllers we got with these motors.
The interior structure looks printed on an SLA printer.

With the processor card removed, the film caps and gate drivers
are visible, as are DC/DC power supplies in the box at the top right:
opencase.jpg


Here's the control card, front and back:

control_front.jpg

control_rear.jpg


The processor is a TMS320F28377S, curiously that processor does not have TI's magic instaspin FOC firmware.
There's also a TMS570, which is an ARM floating point MCU for transportation applications.
On the backside, a couple of Avago fiber optic ethernet transceiver modules.

A dense array of snubbers on a board that screws directly to the half bridges:

snubbers.jpg


Bus layout with Hass 300-S current transducers on 3 phases and DC.
The bus seems to be nickel plated copper.
It seems odd the current sensors are connected to the control board as single sided
(i.e. not differential) signals.

bus.jpg


The half bridges seem to be Cree/Wolfspeed CAS325M12HM2 SiC (a spendy $1375 each at Digikey)
though rumor has it these are custom parts rated to 1700V:

halfbridge.jpg


The Makani custom gate drivers screw directly to the half bridges, with an array of small snubbers.
There exists a Cree/Wolfspeed CGD15HB62LP Dual-Channel Isolated Gate Driver
reference design for these half bridges. The reference design gate drivers are driven with a differential signal,
and there is also a CGD12HB00D 2-Channel Differential Transceiver reference design for the gate drivers to enable
retrofitting single-ended systems. I wonder why not an optical link? That seems it would be easier than converting
to differential and back from the PWM to the gate driver mosfets.

gatedriver.jpg


Lacking schematics and firmware for the control card, I am planning to drive the
power section of this using a LAUNCHXL-F280049C unless anyone suggests a better idea.
 
Wow, nice teardown and nice score. This is insanely interesting! Here are some of my thoughts:

I saw that each film cap is rated to 1100V, so unless they are connecting caps in series that limits their max working voltage to 8-900V (due to thermal derating; it's 80% VRated at 80C). 1100V also lines up nicely with the SiC FET rating. Assuming the 18x20uF caps are connected in parallel, they're running just over 360uF of DC link capacitance.

The ceramic bus caps are connected 4x in series, 10x in parallel. You can see the blue balancing resistors. Better hope none of those caps cracks, I could see that eventually causing a cascading failure.

Looks like they're using TMS320 for motor control and TMS570 for communications/housekeeping.

Their TMS320 has some very nice features for motor control, including an FPU, trig unit, fancy 16-bit ADCs, and a sigma-delta filter. These teams don't need InstaSPIN and this processor has the power to let them do whatever control they want, including more advanced control schemes like DTFC.

The TMS570 has the ethernet MAC in this system. It's hooked up to a 1:2 port ethernet switch, probably for redundancy. Both microcontrollers are ISO26262 ready which is usually a requirement in safety critical applications. The TMS570 is pretty popular among embedded teams because it's one of the only ARM MCUs in the safety market.

I've used HASS 300-S in one of my designs, but I had a small problem with noise in the current sensor causing noticeable motor hiss at 0 current. Not sure if the noise was inherent to the sensor or picked up from switching. I fixed that problem by moving to a more carefully designed shunt based solution.

I'm surprised they went with differential PWM signaling while also using single-ended current sensors. It's definitely important to protect against noise induced switching artifacts but current sense is also important.

The Cree half bridges are very nice. That ceramic baseplate has insanely low thermal resistance (0.1K/W) and doesn't need an insulator. I bet that saved their thermal guy a lot of work.
 
Thanks for the observations.

I've been able to make the huge Yasa/Makani motors spin using a LAUNCHXL-F280049C with
a BOOSTXL-DRV8320RS. Had to completely disable OCP, the filtering on the BOOSTXL-DRV8320RS
is crappy and I was getting a lot of false positive OCP faults from the BOOSTXL-DRV8320RS glitches even at powerup
at higher voltages from the lab supply.

Am running the tiny power stage immersed in dielectric fluid for a bit more cooling.
Here is is, stable at 10 rpm with 18 W from a DC supply, sensorless:
http://rp.to/7t01q

Yeah, they were running their controllers at something like 1000V.
Turns out the custom Makani gate drivers are not differential, although the Wolfspeed reference design is.

And an ex-Makani engineer told me they were seeing only 1A of noise on the single-ended Hass current sensors,
which seems low to me. I presume they mean after some digital filtering.

And Makani just open sourced all their code, including motor firmware, I have not yet studied it:
https://github.com/google/makani/tree/master/avionics/motor
 
We have a lot of these motors and controllers.
Am pondering what vehicles to put them in... and how many in each.
 
I have one of the Yasa motors from Makani and a Protean. Watching this thread closely to see what you / we can do with them!
 
Check out the design doc by Andrew Goessling for this inverter here starting page 147:
https://storage.googleapis.com/x-prod.appspot.com/files/Makani_TheEnergyKiteReport_Part2.pdf

A few things:

The SiC modules are 1700V rated and the 1100V caps are put in series to handle the voltage.
The ceramic DC link caps are J-lead so they should be fairly resistant to cracking failure. Total capacitance is 5uF per leg.

Makani was "stacking" 4 inverters for a total tether bus voltage of 4800V. Expected bus voltage per inverter is 1200V, but they were designed to withstand up to 1600V in a motor/inverter failure scenario. Pretty interesting topology and the control logic to regulate motor load is found in stacking.c


Still looking over their codebase. Looks like all the motor control was done on the TMS570! Design switching frequency is either 15kHz with FOC running cycle-by-cycle or 30KHz with FOC running every other cycle.
 
axialflux said:
Am running the tiny power stage immersed in dielectric fluid for a bit more cooling.
Here is is, stable at 10 rpm with 18 W from a DC supply, sensorless:
http://rp.to/7t01q

Nice progress! Interested to see what you plan on doing with these motors. ~32kg mass, ~200kW peak could make a lot of fun stuff 8) . Only problem is you need insanely high bus voltage to get max power out of these things. Since power is proportional to voltage (at a fixed motor current) a 72S pack will only get you to ~50kW peak. I'm making some assumptions here but the loss of power is a bit unfortunate.

Looks like the YASAs really are meant to be oil cooled- page 46 shows the wet stator design which requires a dielectric coolant. Kind of a pain.

Just curious, does stuff like this sell for cheap at auction in the Bay? I feel like I'm missing out on a lot of fun..
 
Great find on that inverter design document.

I agree that high voltage will be needed to get high torque from the motor. Rs is about 100 mOhm (Instaspin motor id returns 73 mOhm for one of my motors), so even low voltages enough to push a lot of current into the motor.

Am thinking about what kind of batteries to use. I have lots of experience with Tesla S modules, but need something with more series and less parallel connection for the applications I have in mind. Anyone have any ideas? I think as a hack I'll just put some cheap ebike 48V modules in series, easy enough to charge them in parallel and probably not too pricey.

The cooling is easy for me, my neighbor in Sausalito is https://www.engineeredfluids.com and I have free access to gallons of their dielectric juice. I might be able to provide some for the cost of shipping to anyone with a sufficiently interesting project for these motors.

Cheap at auction? Yes. We bought their 40' dyno container, with 16 Yasa/Makani Gen2 motors
and controllers (6 Ozone, 6 older) and a 650kW Satcon inverter, for $6500.

More than makes up for the cost of everything else here. And then there's the environmental benefit of keeping Google's expensive trash out of the landfill!
 
Hey Fictive:

Where did you find the pointer to that Makani document?

In particular, what would be really nice to have are schematics and pinouts for the Ozone controller. With that I could just use the existing controllers and I wouldn't have to be screwing around with the TI Instaspin magic, as educational as that is.
 
Axial, the docs are here: https://blog.x.company/sharing-makani-with-the-world-the-energy-kite-collection-ea49398df78c

Unfortunately it doesn't look like they released every single internal document. I wasn't able to find any controller source files, but if you just want to use the firmware it's 100% possible to reuse their codebase and hack the thing to work. Probably wouldn't take more than a few days to rip out the stuff you don't care about. TMS570 compilation is free with Code Composer Studio. There are also open source toolchains that support the processor. If you really want to roll your own code you could determine which processor pins are being used from the codebase as well.

I'm also happy to share what I find after I get a chance to look at the code again.
 
I am a little undecided as to the best way to proceed. Prior to their release of the motor controller firmware, I began to drink the TI Instaspin-FOC koolaid.

But now perhaps I should invest in a TMS570 JTAG probe:
https://www.ti.com/tool/TMDSEMU110-U
and try to get the Ozone controller board to work with a hacked version of their firmware. I do worry that without a schematic, debugging if it doesn't just work could be problematic.

And I'd prefer to communicate with a motor controller via CAN rather than their (to me) exotic optical fiber ethernet, which might be the best approach to talk to an array of motors but I only need to control one or two at a time.

BTW, I think I have enough info to use the Makani gate driver cards. Am happy to share that info if you or anyone else cares.

So the hardware I need to build to interface a LAUNCHXL-F280049C to the gate drivers, and read the phase voltages and current sensors is pretty minimal: some isolated voltage measurement and some filters. The TI board emits the PWMs needed to drive the Makani gate drivers, and reads 3 current and 4 voltage signals.

With this approach, I could also reuse the other 8 pre-Ozone APEI motor controllers that came with the 8x8 dyno.
Adapting the LAUNCHXL-F280049C to the Makani power stage gives me a path to develop this further, whereas the closed-source Ozone controller hardware does not.
 
Great stuff. How about some pics of the motors. Sounds like they might be a bit too big for a motorcycle.
 
On the subject of the HASS 300-S current transducers (3 phases and DC) used in the Makani Ozone controller:

An ex-Makani engineer told me they were getting < 1 A noise, and I wondered how that is possible given they are single ended. The answer is on p.168-169 of https://storage.googleapis.com/x-prod.appspot.com/files/Makani_TheEnergyKiteReport_Part2.pdf

They use a common mode choke to passively attenuate common node noise coupled from the phase. The specific part they use for this is: Epcos B82792C2475N365

Here's the schematic: current_sense.png
 
Serious piece of kit there. I'd be interested to see what an Axiom with 1200V switches could do with it - last I read the control board isolation was good for 800V bus. Are the spinning cases integrated into the motor or is there a shaft behind them? The example motor you linked is an in-runner that could, in theory, be stacked, but these look significantly more difficult to stack together or integrate with a transmission for traction duty.
 
SRFirefox: The Makani SiC half bridges are 1700V, not 1200V. I was originally very keen to try an Axiom control board with the Makani power stage. And then Arlin told me the expected price of an Axiom would be $6500 (!). For that price I can buy a Rinehart, a Sevcon Gen 4 Size 10, or any other controller. And a TI LAUNCHXL-F280049C is $30, and does pretty much everything the Axiom does except for some optoisolation. Most of it on chip. So thanks but no thanks on the Axiom. IMHO, motors should be driven with realtime control system hardware, not a zillion interrupts on a general purpose micro. But what do I know?

Yes, on the Makani Yasas, the entire CNC aluminum case spins (i.e. outrunner). There is a splined hole in the center and plenty of places to bolt to the spinning cases as was done for the Makani dyno coupling. Transmission? Not needed: 3250 rpm on a 16" tire is 100 mph, enough for me. I am planning to run 2 of these where a differential would be, each driving an IRS half shaft. Should be fast enough that stacking is not needed.
 
I managed to get our Makani motors spinning by building a very simple metacontroller - i.e. controls the Makani controller -that broadcasts omega setpoint messages on the POF network used by the Makani Ozone controllers. (I'd tell a joke here about UDP, but not everyone would get it...)

Here's a video:
http://rp.to/z1ohz

In the little black box is a Pi 3 with an ADS1110 for A/D of the Prius throttle pedal, a Fiberfin POF to ethernet converter, and a couple of power supplies. The open source Makani code made this easy.
 
And if anyone wants the code and design files for my Makani Metacontroller, it is here:
https://github.com/VaslavTchitcherine/Makani-Metacontroller

I really wanted to get the Makani codebase (at least the parts I needed to use) running on ARMv7, and spent some time trying to port all of the motor controller code. It got kind of unpleasant when I dug down to pack_aio_header.py being generated by clang2py.

So instead of porting all the motor controller code, I simply instrumented the low-level _SendInternal() in aio.py to dump the
commands it was sending out on the AIO network, and found I could easily replay these commands, and then edit them to specify omega. So my throttle.py is a tiny script with few dependencies.

I hope this is useful to someone, it is to me!
 
Hi all,
I'm beginning my first ev conversion project so my knowledge in this is extremely limited.
Long story short, I purchased a YASA/Makani motor on Ebay. It is a perfect fit for my 63 Corvair Rampside but the electronics are a black hole.
Any insight would be appreciated. If there are any consultants out there, I would be happy to engage their services.
....help me please.....RAMPSIDE YASA EV CONVERSION.PNG
 
After a bit of software and junkyard work I managed to get two of the Yasa motors working in my VW bus.
vwbus.jpg
Direct drive using Porsche 930 CVs, battery pack is 10 modules from a Tesla S.
buspack.jpg
More than 800 Nm of torque from each motor:
Not dynoed yet, motor simulator plots from Johnny Sun ex-Makani:
plot1.png

It's rather quick.
 
axialflux said:
After a bit of software and junkyard work I managed to get two of the Yasa motors working in my VW bus.
vwbus.jpg
Direct drive using Porsche 930 CVs, battery pack is 10 modules from a Tesla S.
buspack.jpg
More than 800 Nm of torque from each motor:
Not dynoed yet, motor simulator plots from Johnny Sun ex-Makani:
plot1.png

It's rather quick.
Hello Axialflux
Could you help to share the source of those simulation results from Jonhnny Sun?
 
Sorry for the super late replies.

AmitG: I have one spare motor/controller I would consider selling. You can reach me at:
clarkpark@colo.to

vanhoivanbinh: Johnny Sun is at <jsun9679@gmail.com>
I trust he does not mind me posting his email address here, as he indicated it was OK to include
it in the documentation for the code I wrote for speed or torque control of these motors:
http://rp.to/og55j
 
Here's a teardown of one of the Makani controllers we got with these motors.
The interior structure looks printed on an SLA printer.

With the processor card removed, the film caps and gate drivers
are visible, as are DC/DC power supplies in the box at the top right:
opencase.jpg


Here's the control card, front and back:

control_front.jpg

control_rear.jpg


The processor is a TMS320F28377S, curiously that processor does not have TI's magic instaspin FOC firmware.
There's also a TMS570, which is an ARM floating point MCU for transportation applications.
On the backside, a couple of Avago fiber optic ethernet transceiver modules.

A dense array of snubbers on a board that screws directly to the half bridges:

snubbers.jpg


Bus layout with Hass 300-S current transducers on 3 phases and DC.
The bus seems to be nickel plated copper.
It seems odd the current sensors are connected to the control board as single sided
(i.e. not differential) signals.

bus.jpg


The half bridges seem to be Cree/Wolfspeed CAS325M12HM2 SiC (a spendy $1375 each at Digikey)
though rumor has it these are custom parts rated to 1700V:

halfbridge.jpg


The Makani custom gate drivers screw directly to the half bridges, with an array of small snubbers.
There exists a Cree/Wolfspeed CGD15HB62LP Dual-Channel Isolated Gate Driver
reference design for these half bridges. The reference design gate drivers are driven with a differential signal,
and there is also a CGD12HB00D 2-Channel Differential Transceiver reference design for the gate drivers to enable
retrofitting single-ended systems. I wonder why not an optical link? That seems it would be easier than converting
to differential and back from the PWM to the gate driver mosfets.

gatedriver.jpg

Hi AxialFlux,
Would it be possible for you to reupload the pictures of this teardown? I am unable to view them, even on a different computers! :(
Thanks, I'm egger to see the inside of these components!
 
Back
Top