It all started with a donation by Sevcon. They gave some people at MIT some motor controllers, but they were difficult to turn on, and don't work with very many motors, so the controllers eventually trickled down to MITERS. The controllers are 80V controllers, though they will drive motors from 44 to 116V. It is one of the most robust motor controllers I've ever seen - the battery inputs are protected against reverse battery connection, and the phase outputs are protected from phase to phase shorts at any time and phase to battery shorts at power on. They're current limited to 600 amps for 1 minute, meaning you can get 48 kW at 80 volts, or 66 kW at 110 volts. While this is a lot of power, it's at a relatively low 80 V. Most motors (like the common hybrid car motors) like to be run at 400 V or so.
All that said, this controller has a few serious drawbacks:
Here are a few pictures from Dane showing the insides:
Bayley, who enjoys searching the internet for interesting motors from cars, found the first car part for this project: a nice 'eAssist' induction motor from a Buick LaCrosse for around $100 that was roughly sized to work on this controller. It claimed to be a 15kW motor, but it can do much more for a short period of time. It's also nicely sealed and comes with a resolver and is water cooled.
We started by building a test load for the motor: a supercharger from some Buick:
Dane ordered a collection of connectors and pins to plug into the Sevcon. Over the course of roughly a week, Peter, Dane, Bayley, and I managed to trick the controller into spinning the induction motor.
We don't fully understand everything there is to understand about these controllers, but the some of the knowledge we gained in the process might be useful to others. This next section is formatted more as a list of helpful information. The debugging process is too boring to blog fully.
The startup sequences is initialized by providing low current fused (5A I think) power to the logic board. If it decides to enter the 'operational state', it will precharge the bus capacitors then turn on a contactor to provide power to the DC bus. The controller will try to enter 'operational state' unless it was manually transitioned to 'preoperational (preop)' before being turned off. If there is an error, the controller will go into preop automatically, but it will still attempt to go into operational the next time it is turned on. Going into operational state when the controller is not properly configured can dump a huge amount of current into the motor without the motor spinning or applied throttle, so be prepared! We used an 80V 25A power supply, which often current limited and browned out the controller during testing. It doesn't take long for 2 kW to heat up even a large motor, so external cooling is recommended during testing.
We had issues with a 'smart' contactor that lowers the coil voltage once powered on. The sevcon contactor driver will go into an overcurrent state and prevent the controller from entering operational mode. The sevcon also has adjustable settings for contactor voltage, as well as the ability to lower the contactor voltage after a few seconds if you don't want to burn out your contactor coils.
The controller requires three switches: forward, seat, and throttle. These must be mapped from the software.
The sevcon connects to the computer through an IXAAT USB to CAN adapter and is programmed with DVT. The DVT installer can be found on the internet if you look hard enough.
We emailed Sevcon's engineering department and they and gave us software called MOTOR-WIZARD, which installs firmware on a device to allow it to characterize a motor and generate configuration files for the specific motor. Unfortunately, MOTOR-WIZARD flashes new firmware onto your motor controller that replaces the default firmware. We didn't have a copy of the original firmware for our controller, so installing MOTOR-WIZARD permanently turns the controller into a motor characterization device. If you only have one controller, this will be a problem - you can't use a MOTOR-WIZARD flashed controller as a normal controller.
DVT, the software to configure the motor, comes in many different flavors - there's a generic customer version DVTC, several versions customized for specific customers with specific device support and customized window titles, and DVT engineering, which has the most settings. It doesn't look like license codes are different between software versions, but your license code is tied to a single computer. License codes can be obtained from sevcon technical support for a single computer in some cases, but are only valid for lower 'customer' access level.
The highest possible license is 5, which is the SEVCON engineering level. This lets you change every setting of the controller, including ones that are stored in device configuration files (.dcf's) that might go and blow up your controller if they are incorrect.
Both the license check and access level are inside of a compiled .dll. The license check is not obfuscated in any way, so a determined individual could probably patch a few instructions to get full access...
This controller needs an encoder, so we added one
Unfortunately, this encoder was high resolution and generated quadrature signals in the 100's of kHz range, which was too fast for the slow TI brand DSP on the Sevcon logic board. I wrote some simple firmware to divide the encoder and ran it on a nucleo dev board. The 3.3V digital pins weren't enough to drive the sevcon outputs, so I added some random transistors from MITERS
Amazingly, this worked, and we spun up the supercharger. Video
