Getting Into IMPs: Prius A/C IPM Motor

Recently I bought a little BMX bike. Obviously it will not stay pedal powered for long.


Over winter break I’d been thinking a lot about what motor to put on it. I had a few 6374 SK3s kicking around, which seemed good but would be just slightly underpowered for a bike. The calculations I did suggested that it would make it to 20 mph no problem, but lack the power to wheelie, somewhat of a disappointment considering it is a BMX bike. Also unfortunately, my little skateboard controller was not powerful enough to drive an SK3, although it would have been possible with extreme heat sinking. I thought of a lot of weird heat sink setups to try and make this controller work. However, not only was I kind of screwed in the power department, but also the switching frequency department. SK3s are seven pole pair motors, so for a given mechanical RPM, the electrical RPM is seven times higher, which means that you have to switch faster, but then your gate drive can’t keep up, etc.

After being annoyed at these problems for a while, I began to think of other options. One option which surfaced was rather interesting: a Toyota Prius air conditioner motor paired with a JaredTroller, a controller based on the Fairchild FNA25060 brick. The Prius A/C compressor is an IPM about the size of a melon motor, so I figured it would be a very good amount of power, and because it is an IPM the power can be well utilized throughout the speed range of the motor. This setup has a few drawbacks, mostly the 200v required to run it, and also the need to build a new motor housing completely from scratch. However I figured it would be a good project and I’d get a really good traction power system out of it, which could be used for a large number of applications: Mopeds, Gokarts, fast electric bikes, 220lb battlebots, etc.

So, here we go!

First step: Acquire motor. In a normal car, the A/C compressor is powered off the gas engine via a belt. However in a hybrid car, the gas engine is not always running, meaning that the air conditioner compressor needs its own motor. I asked Bayley which hybrids he recommended and where to buy their air compressors. Bayley found a 2006 Toyota Prius compressor on in a junkyard in Somerville, so less than 24 hours later I had it in my hands. It was really dirty.


Next up was disassembly. The bolts were kind of rusty and soft so I had to do a fair amount of angle grinding to “assist” in unscrewing the bolts. The compressor consisted of a pretty cool looking scroll pump and an equally as cool cycloidal reduction to drive it. The entire unit was submerged in some type of strongly smelling oil.


I removed the pump parts and got out the rotor. About what I expected. Pretty cool!


I couldn’t wait for a new housing so I slapped on my skateboard controller and gave it a whirl. It ran!


Next up was making a real housing for the motor. I *vvveeerrrryyyy carefully* bandsawed a couple slits in the casing (trying very hard not to nick the stator) and pried on it with a flathead. Stator fell right out.



The stator and rotor next to an SK3. As you can see its a fair amount larger.


A lot of the dimensions on this motor were irregular, probably FEAed very hard. The only thing that was regular was the stator OD at 85mm. The rotor OD is 51 and something mm.


Alright, motor acquired.

Step two: design a nice housing for it. This motor is unique in that the end turns are MASSIVE compared to all the other motors I’ve seen. Copper has extremely high thermal conductivity, so by cooling the end turns, you can effectively cool the entire copper mass in the motor. However this is difficult because the end turns do not have uniform dimensions, they are just bunches of wire. Initially I planned to thermally grease the end turns and have them touch the end caps of the housing, however this ultimately proved somewhat annoying because the end turns are so non-uniform. There was also the very real worry of them shorting all 200v straight into the casing, which would be not very good. So I decided to go with air cooling, and did the math to make sure it would work (which it will… with a LOT of fans, lol). This is also nice because I will be able to just stick my finger in the cooling holes to see if the motor is hot, rather than feeling the outside of the casing and thinking its cool when the motor could possibly be roasting inside the casing.

Here is the most recent version of the housing.

1. whole

2. cutaway

The blue thing is a magnet encoder.

3 back cutaway

Blue is the rotor.

stator n rotor 1

stator n rotor 2

I have asked Misumi for a sponsorship to cover the cost of the housing- we’ll see if this works out!!

In parallel to designing the housing, I also designed a board for the Jared-brick. I found out it was Bayley, not Jared, who originally found the brick,  but the name stuck anyways.

JaredTroller Final

Controller specs:

  • 200-300v operating range. Can be run at less volts but it will be less efficient.
  • 20-35 amps continuous, depending on size of heatsink.
  • 20kHz switching frequency

Controller Features:

  • STM32F303K8 microcontroller which I used successfully on the skateboardtroller.
  • CAN transceiver: Hopefully this controller will talk over CAN with some other nucleo.
  • INA181 current shunt amplifiers which worked great on some of my older ESCs.
  • Three 2mm JST pin headers. From bottom to top they are: Encoder (SPI or quadrature on TIM3), Programming, and Accessory, which includes CAN, a generic analog input, and generic analog output.
  • Two massive linear regulators for the 5 and 15v powah.
  • Four massive 500v 4.7uF film caps that I found in MITERS.

I put in a masssssssiiiivveeeee digikey order last night for all the parts, hope they get here before the weekend.

Next up: Assembly!

Sneak peak: