ANOTHER LONG POST: This post describes 3 weeks of testing that was done with the newly built controller power board.  This is the power board that I wrote about in this post.  We are planning to use this (or at least try it) in the truck if all our testing works out.  For the controller logic board, I am using the Stellaris microcontroller evaluation board for the brains, a partially built DIY controller (see this post) for the analog circuitry, and a plug board for a half-bridge low-side/high-side driver.  So even though the power board is looking good, this whole system is still very much a prototype.  I am working on a circuit design and board layout for the logic part of the controller, but it will be a while before that is finished.

Testing of the power board was done in 3 steps:

  • tested on a bench with a bench supply and limited current
  • tested on the Kart with the battery pack but with no load on the Kart
  • tested using the new controller power board to drive the Kart

Bench testing the new power board with ADC motor
Bench testing the new power board with ADC motor


Testing 1 - Bench Supply

We started off by using a 12V, 20A bench supply, with a small motor for the load.  After connecting everything and enabling the controller, I slowly increased the PWM duty cycle on the output until the small motor began to turn.  This all worked pretty much as expected.

The next step was to try to large ADC FB1-4001A motor that I purchased for use in the truck.  This motor had been sitting on the bench for a few weeks now and so far we have not tried to do anything with it.  So the first thing we tried was just to hook up 12V directly to this and see the motor spin.  We used a 12V battery instead of the power supply.  Except for some sparking when the jumper cable were attached, this worked well too.  The motor sat there spinning, almost completely quiet.  We didn't have an RPM sensor so I don't know how fast it was spinning but it wasn't very fast.

So now that we established that the controller will run a motor with a 12V supply, and that the ADC motor will turn with 12V, we decided to hook up the new controller to the ADC motor.  We are still supplying it with the 12V bench supply.  This gives us a current limit so we know we won't cause any disastrous damage if something goes wrong.

Bench test setup of ADC motor
Bench test setup of ADC motor

This photo shows the bench supply (in the background), the power board (with all the capacitors), the Stellaris eval board and plug board, and finally the ADC motor.  We are using an oscilloscope to monitor the gate drive signals.

We finally got this setup to run, but with a few stumbles.  Initially we had a current meter in series with both the power supply, and the line to the motor so that we could measure both currents.  Both of the current meters have a 10A limit.  As we started to increase the PWM duty cycle, we eventually hit the 10A limit on the meter that is monitoring the power supply.  This was at about 20% duty cycle, and the motor is not yet running.

So we removed that meter from the circuit and connected the power supply directly to the controller.  As we started to increase the power, one thing I noticed is that the motor current was a little higher for the same duty cycle.  So I suppose just having that meter in the circuit was affecting how much power was going to the motor.

skinny" wires that get hot
skinny" wires that get hot

Now, as I kept increasing the power, the big motor was still not turning so we checked out the voltages at the controller and at the motor.  It turns out, because we were just using relatively small gauge lab clip leads to the connect the motor, these were presenting significant resistance and there was about a 1.5 volt drop across each lead.  This means we were losing about 3V before it even gets to the motor.

Controller with jumper cables
Controller with jumper cables

Since it seemed like the motor was just on the verge of turning, we decided to continue a little longer with this setup.  So after increasing the power a little more the big motor started turning.  This was pretty exciting.  At about that point we smelled something burning so we shut it all down.  There was nothing hot on the controller and we eventually found that the wires were getting hot enough that the plastic connectors on the end were actually starting to smell.  Next step --> jumper cables!

After replacing the lab clip leads with jumper cables we were now able to get the motor to spin with less power input from the controller.  We ran it up to what we estimated was the limit for the bench supply (no direct measurement on supply current), and then we ended this test.

Here is a video, quicktime movie about 5 mins:

CONTROLLER BENCH TESTING VIDEO


Testing 2 - Kart on blocks

A week later we were ready to try to use the new controller to drive the Kart motor from the battery pack.  By this time I added the throttle pot to the firmware so that we could adjust a potentiometer instead of pressing a button a gazillion times in order to change the power output.

We set up the power board and the prototype logic circuitry (same as the week before) on a block behind the Kart, and the Kart was up on blocks.

Controller setup for testing with the Kart
Controller setup for testing with the Kart

This time we are supplying 48V to the controller from the Kart's battery pack, and 12V to the controller from the lowest battery in the pack.  The first time I enabled the controller, there was some excitement because the motor turned on at full power.  You can see this if you watch the video linked below.  The way the controller logic is supposed to work, I press a button to enable the PWM outputs, and they are supposed to be at 0% duty cycle when this happens.  Due to a mistake on my part the PWM outputs were on full when I enabled.  No harm done but it did startle us.  Also it shows that the controller can take a full power turn on without smoking!

After getting past that little surprise, we had it up and running.  In order to add a load we pressed on the brake pedal.  The Kart has a disc brake that can provide a lot of stopping power.  We measured the battery current with a clamp-on current meter.  We adjusted the brake and the controller power level to achieve 50A and let this run for 1 minute. At the end of this time we checked the heatsink and MOSFETs to see if they were hot, but they were just a little above ambient.

Another successful evening.

Here is a video, quicktime movie about 2.5 mins:

CONTROLLER KART TESTING VIDEO


Testing 3 - Driving the Kart

Now for the fun part.  We are going to try to use the controller to drive the Kart.  Also, we can compare the performance against the off-the-shelf Curtis controller that was being used in the Kart.

We mounted both the power section and the logic board on a wooden mount at the back of the Kart.  This should hold everything in place so we can drive it.  Even though the logic board and gate driver plug board has fly wires, I used zip ties to hold all these down, so we feel like it is secure enough for testing.

Controller power and logic boards mounted to the Kart
Controller power and logic boards mounted to the Kart

Kart view showing controller mounting
Kart view showing controller mounting

We started off with the Kart on blocks to test the throttle control.  We integrated the potentiometer that is part of the Kart throttle pedal into the controller board electronics.  What we found is that there is a pretty big dead band as you move the pedal before the motor starts running.  This happens because you have to get a certain minimum duty cycle on the PWM before it will run.  It seemed to be around 10% in this case.  Another problem with the pedal is that before it hits full on position, the ADC input voltage saturates.  That means we do not get the full range of the pedal as throttle input.  Finally, I had limited the power level to 50% duty cycle, but after the full range input.  This means that less than half of the pedal travel was used to control the duty cycle.

Based on this testing, we decided to make some adjustments to the firmware to improve the pedal sensitivity.  The main change that I made was to just use the full input range to represent half of the output range.  This means that we get almost the full pedal travel as input, at least until it hits the ADC saturation level.

I should also mention that since the previous week and the accidental full-power turn on, I reworked some parts of the firmware to make sure that cannot happen again. Besides adding code to carefully control the turn on/off corner cases of the PWM outputs, I also made sure that the output can not even be enabled unless the pedal is at zero input.

Joe is updating the firmware to improve pedal response
Joe is updating the firmware to improve pedal response

After that, we were ready to roll.  I don't have photos but if you watch the video linked below, you can see all of us driving the Kart.  The consensus was that this controller seems to provide more power than the Curtis controller.  We drove it quite a bit and there was no sign of trouble, and it didn't get very hot.  I initially drove it with the 50% limit, but after that the other guys wanted it set to 100% so I made another change in the firmware to take out the 50% limit.

Here is a photo of Bill after driving the Kart.  Bill is the, umm, aggressive Kart driver of the crowd.

Bill happy after testing the new controller on the Kart
Bill happy after testing the new controller on the Kart

This is very exciting, I can't wait until we can get the ADC motor into the truck and start testing the truck.

Here is a video, quicktime movie about 5 mins:

CONTROLLER KART DRIVING VIDEO

This is a good one. If you only watch one of the videos from this post, you should see this one.


Comments

There are no comments yet.

Add a comment
You can use markdown in your comment. No personal information is collected or retained. Your email address will not be posted. This site uses static comments via email. That means there is no third party tracking you. I will get an email from you and I will see whatever email address you sent it from, which I don't care about. The email contents will then be converted to a static comment and appear here.