Build Your Own DC Motor Controller

Paul Holmes built his own DC motor controller, saving himself a lot of money on his EV conversion. This is how he did it. It really seems simple enough that I think I could do it, so that's saying something; )

This is part 3 of my interview with Paul Holmes. The first section is how he built an electric car for about 2200 dollars...

...the second section is his electric vehicle parts list.

DIY motor controller

How Paul Got Started on This

Lynne: Paul, not a lot of people tackle the job of building their own DC motor controller. Can you tell me how you started thinking about doing this?

motor controller motherboard

Paul: I saw a really simple dc motor controller schematic for controlling a little fan. It was based on a little 555 timer chip. I studied it for awhile. Before that, I had no idea how motor controllers worked. It seemed pretty simple. I wanted to try to make one for a car that was really simple and cheap too. Around the same time, I found a link to Ian Hooper's DC motor controller project at ZEVA.

He suggested that I use a microcontroller instead of the 555 timer. I had learned the C programming language when I was younger (I wanted to make video games). I downloaded the free compiler, and started working on writing my first dc motor controller software. That was in April/May 2008.


I took a break from it while converting the car over the summer.


Christmas break came along, and I got bored. It was really snowy down here in Olympia! I decided to make a cheap 144v 500amp motor controller. First, I decided to try to make a smaller 72v 50amp controller to test on my electric bike. I bought a dremel for etching the copper pcb. That worked really well! It was pretty easy(ish)!

I had read about a 144v 600amp dc motor controller that Ian Hooper had made. He had posted some pictures of the power section layout. It didn't look too complicated, after lots of thinking and studying the pictures!

He didn't have a control section schematic, so I went to work on that. I decided that I wanted the controller powered by the 12v battery so I could have possible voltage ranges of 0 to 144v. Usually, companies like Curtis use an internal DC-DC converter which limits the input range to like 96-120v, or 108v-144v or whatever. I got lots of suggestions from the list on things like hardware over-current protection. Now we have a control section that is being professionally being made right now by a PCB house. I can make the power section without too much difficulty. In bulk quantities of maybe 20 or 30, I think they will cost like $8 per control board.

You Can Do it Too!

motor controller guts

It's definitely something that anyone could do, then.

Well, a kit is really ideal, I think. People could do a group buy of a blank control board, order the list of parts on Digikey and Mouser, and just plug all the pieces into the control board, and solder them into place. It requires knowing the basics of how to solder, and attention to detail, but it's not too difficult. I think anyone could do that part.

Also, it might be good to have a pre-etched PCB for the power section, and precision holes drilled in the PCB and copper heat spreader. Unless you have a mill, or know how to do it with etching chemicals, that's sort of hard to do at home.

controller capacitors

The good news is, there are people with very good CNC (computer controlled) etching equipment that could do like 1000 boards for power sections per day. I think he would do it cheap. Also, there's another guy that offered to do some for free! I don't want to overwhelm him though. That guy's friend also can do the soldering of the components for the control section for pretty cheap, too!

Sounds like a "bunch of friends in the garage" project.

capacitors closeup

The mosfets and diodes are pretty easy to solder into place. So are the ripple capacitors.

The software is in a usable state. It would be cheaper for people to buy a programmed chip, or they can buy the $80 chip programmer. The ATMega8 microcontroller, which is what I'm using, only costs about $3.50. It also only takes a minute to program it. That would not be a major expense.

Overall, with a little help here and there, and maybe starting with some pre-done parts, I think that just about anybody could do their own DC motor controller!

In bulk, I think it could be done for maybe $250 or $300 for a 144v 600amp controller. In kit form, It might be a bit more, like for etching, drilling, and stuff like that.

DC Motor Controller Characteristics

Here are some characteristics of the current version of the open source DC motor controller:

  • High pedal lockout. If you turn the car on with your foot on the accelerator, nothing happens. The controller allows you to go when you release the pedal. The controller also controls when the main contactor closes. The dc motor controller verifies that there are no hardware problems before closing the contactor. Mosfets generally fail in a short circuit state, so the software verifies that the current is about zero when throttle is zero at startup. There's a connector so anyone can reprogram the microcontroller without having to remove anything (it's called in-system programming, or ISP). There's a serial port for sending information to the user, like current, temperature of controller, or anything! Later I'll add RPM control, so that people can't accidentally over-rev the motor. I already have the part. It is only $6 to add that feature. It can even be turned into a cruise control! Just program it so that the RPM is constant. No big deal, even though it sounds tricky. Programming the micro-controller is pretty easy once you get it. There are so many possibilities.
  • Hardware overcurrent protection. That overcurrent point is selectable from 495amps to 775 amps by twisting a variable resistor. If the controller goes over the current limit, the throttle is cut just a TINY bit and the mosfets get turned off by hardware until the start of the next cycle, which happens in about 1/16000 of a second.
  • Other features will be added later. I will do a synchronous rectification version, which will have much less heat loss, and will be rated for higher power. What you do is replace the freewheel diodes with mosfets, and switch them on and off at just the right time, so they behave like an ideal diode. The mosfets have a continuous current of 130 amps each (but in practice, only maybe 70 or 80 amps each), whereas the diodes can only handle about 50 amps. So, getting rid of 10 diodes and replacing them with 10 mosfets will turn a 500 amp controller into a 700-800 amp controller.
  • For those who are interested in the "Open ReVolt" DC motor controller project, details can be found on this Ecomodder thread.

    Thank you again, Paul!