BLDC drive algorithm
The block commutation algorithm, also known as six-step discrete electronic commutation or trapezoidal control, is a simpler method of motor control typically used for brushless DC (BLDC) motors with trapezoidal back-EMF. This technique involves energizing only two of the motor's three phases at any given time. In block commutation, the current flowing through the motor is switched between different phase pairs in a specific six-step sequence. This switching pattern creates a rotating magnetic field that causes the motor to rotate in a controlled manner.
While Field-Oriented Control (FOC) is often considered superior in terms of efficiency and smooth operation, especially at low speeds, block commutation remains widely used in many applications due to its advantages:
- Robustness: Due to its simplicity, block commutation tends to be more resilient to certain types of disturbances or system parameter variations.
- Possibly higher reliability in harsh environments.

bcf [-]
The parameter is located in /driver/ folder.
Block control flags. They tune the sensorless startup of the block commutation, i.e. how the back-EMF is evaluated before the drive locks onto the spinning motor. Once the motor runs synchronously, the flags have no effect.
At high startup current the back-EMF reading can be distorted by magnetic saturation and by the current still flowing in the measured phase. A distorted reading produces false zero-crossings, so the motor twitches, starts in the wrong direction or does not start at all. The flags select a startup back-EMF evaluation variant that is robust for the given motor type.
- The right setting is a property of the motor, not of the load. A light load often hides a wrong setting, while a heavier or higher-inertia load (bigger blade, propeller, blocked rotor) exposes it as a failed or reversed start. Once a setting works on a motor under its heaviest load, use it on every drive with that motor.
- Start with
bcf= 0. If a surface-magnet motor fails to start under load, trybcf= 2. Reservebcf= 4 for IPM motors (see motor types); do not combine 2 and 4. stalloffpairs best with a moderate startup current, seestartc. If the start still fails, lower the startup current before changing the flags again.- Verify every change with a cold start, a warm start, a low battery and both directions of rotation.