Showing posts with label KHB72701. Show all posts
Showing posts with label KHB72701. Show all posts

Thursday, October 15, 2015

Great Service from Kelly Controller

Bricked Controller

Well after attempting a firmware upgrade on my Kelly KHB 72701 controller, the master FW failed to program and the controller was frozen.  The team at Kelly offered to reflash my controller if I sent it to them.  I used USPS Global Express service, I was able to send the dead controller to Kelly and it arrived in about 4 business days.  Global Express is a partnership with FedEx so the box moved by USPS across the ocean but was then handed off to FedEx for the local delivery in China.  Full tracking information from both USPS and FedEx was available online.  The team at Kelly, reflashed the unit and shipped it back (2 day service from China) to me for no charge, which is quite generous since the unit is over 2 years old and a year out of warranty.  The controller arrived in great shape and came right up.  I wish all companies had this level of customer service.

Noise on the Ground

Well the new controller highlighted a problem I had with my timing advance circuit.    I'm not sure if some wiring clean-up exposed this or the new firmware has slightly different timing for the phase signals from the motor.  Either way, my timing advance system stopped working and started causing the controller to report either a non-spinning motor or a hall-phase error.  Bypassing the timing advance board cleared the problem, so it was obvious where the problem was centered.

After some sniffing around with a scope, I found there was a lot of noise on the phase sensor signals from the motor.  I could see the phase signal but a high-frequency 2V noise was riding on top of the low-frequency motor phase signals when the motor was spinning.  Looked a lot like the high-voltage PWM from the controller, though I never measured the frequency to confirm.

Two realizations:
  • The case of the controller is tied to the high-voltage motor signals through large resistors to drain residual charge once the controller is turned off.  The team at Kelly suggested that if the case was tied to chassis ground, it could be introducing some noise on the 12V ground.  Isolating the controllers case from chassis ground (with a rubber mat) improved the noise quite a bit, but there was still an issue with phase signals.
  • More digging revealed a wiring issue.  Originally, I had used the ground signals (RTN) from controller as the ground for the hall sensor in the motor.  I suspect the controller was passing some noise through the ground lines to the hall sensor.  Switching the hall sensor ground to be the sourced from the timing advance system (a good chassis ground) provided a significant reduction in the noise on the hall sensor signals.  I suspect the Kelly Controller is more tolerant of noise or has some high frequency input filters which my timing advance circuit does not.
After these two changes, the timing circuit is operational again and the controller is reporting All-Good.  Now to re-optimize the timing settings based on the new firmware.  After driving the car without the timing advance active, it will be much more fun to have it operational again given the noticeable performance boost.  More testing this weekend....



Monday, August 17, 2015

Kelly KHB 72701 Controller Settings

Kelly Controller Settings - Screen shots

The following are screen shots of the current settings in the controller.  These are delivering optimal performance with the Motenergy ME0913 motor and timing advance system.







Saturday, August 15, 2015

Power Brakes, kind-of....

New Brake Sensor

The 500 psi brake sensor worked well.  I was able to replace an existing 3/16 union with a T brass connector.  After adding a new value to the digital dash, Can Bus enabled Arduino to show the value the brake sensor A/D in the Kelly KHB 72701 controller, I realized the Mini's brake pressure goes up to about 300 psi.  The 500 psi sensor under heavy braking would generate about 2.1 volts (~110 on a 0-255 scale).  This equates to about 220 psi.  A 300 psi (0V-5V) sensor is available, so after installing this narrower scale sensor, the A/D is now reporting from 25-200 (on the 8 bit scale).  25 corresponds exactly to 0.5V which is the sensor's 0 psi value.  I could only find one reference to the actual PSI ratings on the Classic Mini brake system.  This site reports an upgraded brake system operates up to 330psi.  See here MiniMania

Pressure-transducer-or-sender-300-psi-stainless-steel-for-oil-fuel-air-water
300 PSI Stainless Steel Sensor 5V supply (0.5V- 4.5V output)
Brake Sensor installed in the brake line from the Master Cylinder



With the new sensor functioning it was time to tweak the Regen settings on the Kelly Controller.  After some experimenting, the following values provide reasonable braking with the motor providing most of the braking ahead of the mechanical brakes.  It feels like power brakes, since the amount of force needed on the brake pedal is noticeably less for the same slowing power than what is needed with the mechanical brakes alone.


  • ABS - Disabled - When this was on, the controller would pulse the regen as the car approached a stop.
  • Regeneration - Enabled
  • Brake switch - Enabled - When this is off both the switch and the sensor are ignored.
  • Release Throttle Starts Regen - Disabled - Most agree it is better to coast than to have Regen occurring when your foot is off the accelerator
  • Regen current by Brake Switch On - 5% - This is minimal value and represents how much braking is applied as soon as the brake is pressed.  A relay has been installed from the original Brake Light switch on the pedal to provide the ground signal expected by this input on the controller.
  • Max Regen Current - 70% - Not quite sure but this does scale the Regen.  At 100%, minimal brake pressure was too much braking.  So this seems to affect the transfer function from the sensor, and the best I can tell, it impacts the slope of the linear function.
  • Brake Sensor Type - 0V-5V
  • Brake Sensor Starting Point - 10%  - I think this is close to a value of 25 (10% of 255) 
  • Brake Sensor Ending Point - 70% - This should equate to about 180 (out of 255) or about 210 psi, which is fairly high pressure on the brake pedal.
The Max Current, starting point and ending point are all part of the equation that the value from the sensor is put through to determine the amount of Regen the controller applies.

A few observations
  1. Under heavy braking, the Regen cuts off as the motor slows to about 800 RPM.  It is abrupt but since the brake is already being applied, it is easy to simply increase the mechanical braking to compensate.  
  2. Under normal braking, as the motor slows to about 300 RPM, the Regen shuts off.  This is noticeable but not offensive since the car is almost at a stop anyway, less than 5 MPH.
  3. Sensor controlled regen is the only way to go.  The Kelly controller provides very smooth Regen and it is natural to use the brake pedal to control it.

Timing Breakthrough

Ever since adding the Timing advance circuit between the Motenergy ME0913 motor and the Kelly Controller, a strange behavior developed.  After coasting at speed, when the throttle was re-applied, the motor would attempt to slow the car.  Felt like regenerative braking but the controller did not register any current being generated, there was just a noticeable slowing effect until the throttle was close to matching the car's speed.  When the timing was set to zero-advance, this was not observed, however, when the timing was being advanced, the slowing effect was clearly present.

3 lines of code later, a 1 second delay was added to the timing advance activation triggered by a connection to the micro-switch on the throttle.  The micro-switch signals as soon as the throttle is slightly depressed.   When the throttle is completely off, the timing circuit goes into bypass mode.  As soon as the throttle starts to move, a 1 second timer is started, which at the end of, the timing advancement is engaged.  This 1 second delay gives the Kelly Controller time to sync up with motor while the throttle is being fully applied.  This delay solved the problem and the slow-down effect is no longer felt.  I may try to tweak the 1 second timer to see if a shorter time accomplishes the same results but at 1 second, there is no observable delay in motor power or performance.

A Distance Test

With the Regen and timing working well now, it was time for a range test.   Headed out in 3rd gear (the only gear to use for 0-50 MPH around town driving) and covered 21.5 miles 

Below is a screen shot from the Digital Dashboard GPS  app on my phone.  The area graph at the bottom is speed and the line graph is altitude.  There was a large climb near the end which is when one of the cells started to drop.  The rest were holding steady between 3.0 and 3.1 volts but one cell was down to 2.7.  This cell is also the first to fill-up during charge cycles so it is clearly degraded from the over-discharge event from several months ago.  I suspect that there was still a few more miles in the pack so after I swap out this one weak cell, it will be time for another range test.  

Tuesday, June 30, 2015

It's been a while... Small Improvements

Bad Luck

The Motenergy ME0913 motor started making a strange sound one day.  Kind of a brushing sound at low speed.  Careful listening indicated it was coming from the center of the motor.  Upon removing the fan cowl, a small bolt fell out.  It appeared to come from inside the motor.  Then with a flashlight, I saw a second bolt sitting on the interior coils.  This raised the mystery factor even further.  Then looking into the motor, I could see two empty holes in the center rotor where it attached to the hub that secured it to the main shaft.  There were still two bolts in place.  These are M6x12 flat head Philips bolts.  Well with a tweezers and a screw driver and some thread lock, two new screws went back in, the other two were tightened and the motor re-assembled.  Good advise from John at Motentery to not pull apart the motor housing/casing without first marking the alignment between the two halves since this assures the coils are aligned.  Luckily, I didn't have to separate the casing.

This reduced the brushing sound but there is still something not right.   One of the bolts that was fairly bent up and I suspect it dislodged one of the magnets in the rotor which is now rubbing as it spins.  Not too terrible sounding but not quite right.

Good news

Well with the motor back together, the timing advance circuit is working very well.  Currently, the circuit is advancing the timing from the motor as follows

<300 rpm - 0 degrees
300-600 rpm - 10 degrees
600-1200 rpm - 20 degrees
>1200 rpm - 40 degrees

This is in addition to some mechanical advance achieved by rotating the fan cowl.  The mechanical advance is limited to keep reverse functional since electric reverse is a nice feature for EVs.

The motor is running smooth but the 20-40 degree shift is barely detectable as a slight motor miss.  The next goal is to add a few more steps to lessen the amount of incremental shift per rpm band.

Regen

After some additional testing with regen, it has become evident that variable regen is a must and the best way to control this is tying into the braking system.  Found this stainless steel 500 psi pressure switch:
 stainless steel 500 psi Pressure transducer or sender for oil/fuel/air/water

The goal will be to tee this into a brake line and use it to signal the magnitude of regen for the Kelly KHB 72701 controller.  Using a switch on the brake pedal was too jarring since the controller was all or nothing with its regen efforts.  With this transducer, a 0.5V - 4.5V signal will be provided to the controller indicating the level of break pressure being applied.  By tweaking the controller, it should be able to supplement the mechanical brakes quite well and transparently.