Professional Documents
Culture Documents
BLHeli Programming by TX SiLabs Rev10.x
BLHeli Programming by TX SiLabs Rev10.x
BLHeli Programming by TX SiLabs Rev10.x
Normal operation:
This procedure is used for PWM input signal.
Power up:
Once
Once
The maximum throttle in this interval sets the ”arm” target for the governor.
Once
Once
Once
Once
Once
Once
Infinite
Infinite
Once
Once
Once
While measuring
Once
This beep sequence indicates that max throttle has been stored
While measuring
Once
This beep sequence indicates that min throttle has been stored
At this point throttle calibration values are stored. You may remove power from the ESC, if
you just wanted to do a throttle calibration and not enter programming mode.
Once
Once
Once
…etc…
Once
…etc…
If the throttle stick is moved to zero during one of the above sequences, the parameter value
of that function is selected and stored. And you will hear this sound:
Once
If the throttle stick is moved below max (but not to zero), the current parameter will be
skipped, and programming will proceed to the next parameter. This way it is possible to
access the later parameters without going through all the beeps.
It is generally a good idea to go to full throttle again before selecting a parameter, to make
sure you have selected the right parameter.
Throttle is read in the 1 second pause between the function/parameter beeps.
If the throttle stick is never moved to zero, the ESC will load the defaults and then reset itself
after the last parameter value of the last function. This is a convenient way of setting all
parameters to defaults.
If power is disconnected during the programming sequence, then no changes are done to the
programmed values.
If for some reason there is an error in the eeprom/flash write operation (e.g. due to loss of power or low voltage), defaults will be loaded.
If for some reason there is an error in the eeprom/flash write operation (e.g. due to loss of power or low voltage), defaults will be loaded.
If for some reason there is an error in the eeprom/flash write operation (e.g. due to loss of power or low voltage), defaults will be loaded.
In the governor “tx” mode, the throttle value while running sets the speed target for the governor.
In this mode, the throttle curve when flying should be flat.
In the governor “arm” mode the maximum throttle seen during the arming sequence will set the speed target for the governor.
Note that governor “arm” mode is not supported for PPM input signal.
In the governor “setup” mode the governor target is stored in the ESC. It’s default value is 70% (about 4800rpm on mCPX with a 6pole motor
and an 8T pinion). The value can be changed with configuration software.
In governor “arm” and “setup” modes, the throttle curve when flying does not influence headspeed.
Throttle curve can be set to a V-curve for the desired main to tail mix (this mix is in the mCPX 3in1).
Throttle must be above 20% in these modes. Values below 20% will cause spooldown.
Governor range sets the available range of speeds that the governor can operate on.
- For the high range, throttle values from 25% to 100% will lead to governor targets from 70000 to 208000 electrical rpm
- For the low range, throttle values from 25% to 100% will lead to governor targets from 20000 to 89000 electrical rpm
The low range is primarily intended for low pole count motors (e.g. 2-pole inrunners).
The low voltage limit sets the voltage at which motor power is reduced.
Motor power is reduced while at this voltage, but only temporarily, and full power is resumed if the voltage rises again.
Low voltage limiting can also be disabled.
In the closed loop mode, the throttle value while running sets the rpm target of the motor.
Closed loop P gain sets the proportional gain for the rpm control loop.
This setting controls the gain from speed error to motor power.
Closed loop I gain sets the integral gain for the rpm control loop.
This setting controls the gain from integrated speed error (summed over time) to motor power.
Closed loop mode sets the range of speeds that the control loop can operate on.
- For the high range, throttle values from 0% to 100% linearly correspond to rpm targets from 0 to 200000 electrical rpm
- For the middle range, throttle values from 0% to 100% linearly correspond to rpm targets from 0 to 100000 electrical rpm
- For the low range, throttle values from 0% to 100% linearly correspond to rpm targets from 0 to 50000 electrical rpm
When closed loop mode is set to off, the control loop is disabled.
Tail/multi gain scales the power applied to the motor for a given input.
Beware that a low tail/multi gain will also limit the maximum power to the motor.
Tail idle speed is the speed of the motor during the delayed stop.
The startup method selects which method is used to start the motor.
Stepped method first runs the motor as a stepper motor at a given power, rpm and acceleration. This is done for an rpm range selected by the rpm
parameter. Normal running begins after this.
Direct startup method runs the motor using back emf detection from the very start. In this mode power is given by the throttle used, but limited to
a maximum level. This maximum level can be controlled with the startup power parameter.
Startup power, rpm and acceleration are parameters that control the startup of the motor for the first initial rotations only (about a second or less).
Startup power sets the power applied to the motor in this phase.
Beware that setting startup power too high can cause excessive loading on ESC or motor!
Startup rpm is used for stepped method only, and sets the rotational speed with which the motor is started.
Startup acceleration is used for stepped method only, and sets the rate at which the motor is accelerated.
If required, these parameters can be used to optimize motor startup for different motors and loads.
Commutation timing can be adjusted in three steps. Low is about 00, mediumlow 80, medium 150, mediumhigh 230 and high 300.
Typically a medium setting will work fine, but if the motor stutters it can be beneficial to change timing.
Some motors with high inductance can have a very long commutation demagnetization time. This results in motor stop or stutter upon quick
throttle increase, particularly when running at a low rpm. Setting timing to high will allow more time for demagnetization, and often helps.
The throttle change rate parameter is an additional mechanism to avoid demagnetization problems. Setting this parameter to a low value will
result in slow changes in motor power. Which of course is not desirable in order to have a responsive motor, but in some cases it can be required.
This parameter determines how many steps motor power is allowed to increase for each new received input pulse. Full motor power is 255 steps.
So, e.g. for a 400Hz input rate and a throttle change rate setting of 2, motor power can change 2 steps every 2.5ms. Which means that zero to full
power will take (255/2)*2.5ms=319ms, which is really slow. On the other hand, the default setting of 255 means that motor power can change
from zero to full power instantly.
High pwm frequency is around 20-25kHz, and low pwm frequency is around 8-12kHz.
One benefit of using a low pwm frequency is that the step from almost full power to full power becomes smaller. On the other hand, 8kHz is in
the audible frequency range, and also there is a step in power when the motor rotation frequency is equal to the pwm frequency.
Pwm damped mode adds loss to the motor for faster retardation. Damped mode always uses high pwm frequency.
If one of the damped modes is selected, then the damping strength can be varied.
If damping is highest, loss is added in all pwm cycles.
If damping is high, loss is added in 7 out of 9 pwm cycles.
If damping is medium high, loss is added in 3 out of 5 pwm cycles.
If damping is medium low, loss is added in 2 out of 5 pwm cycles.
If damping is low, loss is added in 1 out of 5 pwm cycles.
If damping is very low , loss is added in 1 out of 9 pwm cycles.
Damped mode may result in uneven running at low speeds on some motor/ESC/voltage combinations.
This can be seen on high electrical rpm systems, with high damping force and an ESC with slow switching fets.
If this is a problem, reduce the damping force or use an ESC with faster switching fets.
The input pwm polarity setting can be used to inverse the throttle behaviour. This is intended to be used with receivers that provide negative
pwm (at least some Walkeras do). When using PPM input it must be set to positive.
The demag compensation is an alternative way of combating the issue. First of all, it detects when a demag situation occurs.
- Then there is no info on motor timing, and commutation proceeds blindly with a variable advance.
- In addition to this, motor power is cut off some time before the next commutation.
- As a third countermeasure, commutation timing is set to high during the demag event.
These two mechanisms are used to a varying degree as shown below, selected by the demag compensation parameter:
Demag compensation 1 2 3 4
Blind commutation advance 15 15 7.5 7.5
Power off time 0 7.5 7.5 15
The values are in degrees. A motor electrical revolution is 360degrees, and a commutation cycle is 60degrees.
As shown in the above table, power off time will depend upon the selected commutation timing.
Generally, a higher value of the demag compensation parameter gives better protection.
If demag compensation is set too high, maximum power can be somewhat reduced.
Programming parameters that can only be accessed from configuration software (BLHeliSetup, BLHeliTool):
- Throttle minimum and maximum values for PPM input (will also be changed by doing a throttle calibration).
- Governor setup mode rpm target.
- Beep strength, beacon strength and beacon delay.
- Programming by TX. If disabled, the TX can not be used to change parameter values (default is enabled).
- Re-arming every start. If enabled, a new arming sequence will be required for every startup, not just the first after poweron (default is disabled).
- High/low BEC voltage for ESCs that support it.
Max throttle
during arm
0% Time
For a main motor esc running with PWM input, throttle is monitored during the arming sequence. The maximum value of throttle is recorded.
If governor arm mode is selected, this value will be used as the governor speed target when the motor starts running.
When running, the throttle input has no effect, as long as it is not below 20%.
Also, if 100% throttle is detected during the arming sequence, the ESC starts entering programming mode.
The main motor has a soft spoolup of about 5 seconds for full power (longer for code before rev9.2). The spoolup is done in three phases, in order
to be soft enough for the heli not to move, particularly before tail rpm is high enough to give some tail authority. In the first phase power is limited
to the startup power for about one second. Then the power limit is slowly increased over the next three seconds. And in the final phase the power
limit is increased more rapidly, until full power is available.
If the esc is armed and sees zero throttle for a given time, it beeps beacon beeps, which are about 1 beep per second
PWM is accepted as 12kHz, 8kHz (mCPX v1), 4kHz, 2kHz (several Walkeras) and 1kHz (mCPX v2). 12kHz is only accepted from Rev10.4.
PPM has a default throttle range of 1150us-1830us, and accepts rates from the normal 50Hz up to several hundred Hz.
Available throttle calibration range for PPM is from 1000us to 2000us, and the difference between minimum and maximum throttle must be more
than 520us. If a calibration is done where the difference is less than 520us, the maximum will be shifted so that the difference is 520us.
Thermal protection:
The ESC measures temperature within the MCU and limits motor power if the temperature is too high.
Motor power is limited in four steps:
- If the temperature is above 1400C, motor power is limited to 75%.
- If the temperature is above 1450C, motor power is limited to 50%.
- If the temperature is above 1500C, motor power is limited to 25%.
- If the temperature is above 1550C, motor power is limited to 0%.
Note: The above is valid for rev4.1 and up. For rev4.0, these limits were 850C to 1300C
It is implemented differently for ESCs that support full damped mode and those that do not.
The table below shows which phases are being used for braking. In this context, the three motor terminals are named DrivenH, DrivenL and
Comparator. X’es in the table below indicate phases that are shorted.
Fully damped enabled Not fully damped enabled
Damped Light Damped Damped Light Damped
DrivenH X X X Not supported
DrivenL X X Not supported
Comparator X X Not supported
When the DrivenL terminal is used for braking, active freewheeling is also implemented.
Then losses due to braking are counteracted by the reduced losses of active freewheeling.
When the Comparator terminal is used for braking, damping force should be reduced, in order to allow for comparator information to be read in
some of the pwm of cycles. Otherwise the motor will run jerky, particularly at low throttle.
Maximum speeds:
Approximate maximum speeds for the various settings are:
Maximum speed
Non damped, open loop 200 000 eRPM
Non damped, closed loop 160 000 eRPM
Damped light, open loop 180 000 eRPM
Damped light, closed loop 125 000 eRPM
The maximum speed is reduced with damping and closed loop, since timing margins and MCU processing load is then higher.
These numbers will vary somewhat between ESCs.