EBike Controllers

From Endless Sphere Wiki
Jump to: navigation, search

Go back to Electric Bicycles

Why do I need a controller

A motor controller converts the battery DC-voltage to a form that can be used by the motor. This is 3-Phase AC for BLDC motors. For DC-Brushed controllers go to Brushed Controllers .

Read this first, from the TRA: Liveforphysics 2010 Then try to understand this thread: Infineon controllers for Dummies...

Controller Characteristics

LVC = Low Voltage Cutoff

This function cuts your battery to protect it from over discharging.

Typical default LVCs:

  • 21V for 24V controllers
  • 31.5V for 36V controllers
  • 42V for 48V controllers
  • 62V for 72V controllers

Hall sensor

Some motors use hall sensors to measure the position of the motor,[1] these motors are called "sensored". Motors without a sensor are called "sensorless". The controller needs to suit whether the motor is sensored or sensorless. Sensorless controllers can run almost all sorts of motors, but they cannot produce much torque at stall and can loose signal at high current levels. Sensored operation is preferred at higher power levels. More sophisticated controllers only run sensored at low speeds, at higher speeds they switch to sensorless operation to gain better efficiency and smother operation.

Current limit

All EV controllers limit Current in some manner. Current is measured with a shunt resistor in series or a Hall current sensor in series to the battery. The problem with crushed gears or burned phase wires is, that most cheap controllers only use a battery current limit but no phase current limit. Phase current and motor torque are dependent, you can calculate the motor torque from the phase current by using the motor torque constant. So if there's no phase current limit, there's also no torque limit.

Here are some curves that show the differences between phase current limit, battery current limit and no current limit:

Error creating thumbnail: /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
motor torque without current limit vs. rpm

no limit

This one has no limit at all. Torque and current are quite high at stall, this can damage the gearing, battery, controller and the motor itself.

Error creating thumbnail: /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
motor torque curve if battery current is limited

battery current limit

This one has a battery current limit, it produces most torque at stall (1) due PWM current amplification . Then it quickly falls since the back EMF voltage rises and so less phase amps can flow. The controller keeps the battery amps constantly at it's limit during full acceleration. At some point, the back EMF voltage is so great that phase amps and battery amps get equal (2). Now the controller does not limit the current anymore and torque falls even faster. If the motor keeps accelerating further there is a point where it does not produce torque anymore (3) since the back EMF voltage is equal to the battery voltage.

Error creating thumbnail: /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
motor torque curve if phase current is limited

phase current limit

This one has a phase current limit, since phase amps and produced torque are equal, the torque curve is completely flat till back EMF voltage rises and phase currents do not need to be limited anymore, since the motor limits itself.

Error creating thumbnail: /bin/bash: /usr/bin/convert: No such file or directory Error code: 127
motor torque curve if both phase and battery current are limited


This last curve shows the torque curve of a sophisticated motor controller that uses both phase and battery current limit.

  • At low rpm, torque is limited to save the MosFET switches in the controller, as well as phase wires and gears
  • At medium rpm, battery current is limited to save controller and the battery from overheating
  • At high rpm there is no need for any limit. The motor limits itself due back-EMF

Controller Modifications

http://www.endless-sphere.com/w/index.php/Major_Controller_modifications_(mods)_and_upgrades Modifying the shunt as described by John in CR 2011.


Testing controllers

Testing Mosfets as described by rkosiorek 2010.

Specific controller information


Infineon controller http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=10312 http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=14798 http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=9191 http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=5713 http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=13638 http://endless-sphere.com/forums/viewtopic.php?f=2&t=8317 http://www.endless-sphere.com/forums/viewtopic.php?f=4&t=7440 http://endless-sphere.com/forums/viewtopic.php?f=16&t=7361 http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=39222

Keywin controller

Xie Chang controller http://endless-sphere.com/w/index.php/Brushless 'Mods for Changing Input voltages for Infinieon /Xie Chang based controllers

Different vendors

Open Source controllers

Because OpenSource matters (and if you don't know why, please read Wikipedia about this subject).

Flexible OpenSource EBike motor controller firmware

Project page: https://opensourceebikefirmware.bitbucket.io/

This OpenSource firmware/embedded software runs on the BMSBattery S/Kunteng KT EBike motor controllers.
The main advantages of this controllers are:
1. sine wave/"FOC": motors run silent and very efficient
2. cheap: starting at 20€
3. widely available: many online shops sell them and ship to worldwide
4. various sizes e powers: from 0.25kW up to 5kW (72V, 70A, 24 mosfets)
5. supports LCD and Bluetooth mobile app
6. schematic available: important if you want to mod/hack, repair or even build your own controller
7. generic brushless motor controller: can work as a generic brushless motor controller and be commanded by an Arduino or other similar external microcontroller board. This feature is only available when using our OpenSource firmware.

The main advantages of our flexible OpenSource firmware/embedded software are:
1. sine wave/"FOC" max efficiency: motors run silent and very efficient and is possible to tune a parameter to get the best efficiency possible for a specific motor
2. flexible and OpenSource: more than customization, any feature for some specific need can be easily implemented and for free (no need to pay any commercial license)
3. throttle, PAS and torque sensor: all of them are supported
4. LCD3 and LCD5: all of them are supported
5. regen/ebrake: works very well on the direct drive motors
6. motor torque controller/motor current controller
7. motor speed controller
8. generic brushless motor controller: using the UART connection (the same that is used for the LCD and Bluetooth module), this controller can work as a generic brushless motor controller. Can be commanded by an Arduino or other similar external microcontroller board.

Any reviews on the open-bldc.org controller? [2]

For RC and robotics targeted open hard and software BLDC controller, that if it could be scaled could be very attractive because of the tiny PCB... [3]

Hybrid Open/Closed Source controllers

The Lebowsky controller described in this forum uses an open hardware but closed software approach. It might some day evolve to fully open source if somebody writes code for the microcontroller (PIC) and liberates it under an open license. Lebowsky Controller: [4]

Is the Barmal controller partially open source or not? [5]

If this effort is open source its use of the Ti-DSP which might use proprietary algorithms might make it partially closed... [6]

Proprietary/closed source controllers

Different vendors (alphabetical order, not exhaustive): Crystalyte Europe, Ebikes.ca, Emissions-Free , -methods crystalyte , -methods wide range


Controller watt ratings unless otherwise noted are continuous duty cycle ratings, not peak ratings. To determine peak ratings multiple max amp rating times voltage. IOW's a 48V 1000W controller with a max 30A rating will draw 1500W at 50V (30x50).