Motor controllers

  1. BMSBattery S series
    1. BMSBattery S06S
      1. S06ST (torque sensor version)
      2. S06S-BL (Bluetooth version)
      3. PWM signals
        1. very low speed - 6 steps
        2. low speed up to max speed - sineware
      4. Phase B current signal
      5. Throttle
    2. BMSBattery S06SC
    3. BMSBattery S12S
      1. Programming header
      2. PWM signal at max speed - sineware
      3. Phase B and motor total current signals
    4. BMSBattery bottle battery controller
    5. LCD control panel
      1. LCD protocol
    6. Kunteng mobile app
    7. Bluetooh
      1. DIY Bluetooth module
    8. How to open the controller and solder the programming header
    9. Hardware mods
  2. Other controllers
    1. BMSBattery S06P
      1. various info
        1. 01
        2. 02
    2. Kunteng 18 mosfets motor controller
    3. Lishui motor controllers
      1. LSW-675
        1. Datasheets
        2. PWM signals
    4. JinHui motor controllers
  3. GreenEBikeKit


  1. BMSBattery Q75
  2. BMSBattery Q85
  3. BMSBattery Q100
  4. BMSBattery Q100C
  5. Tongsheng TSDZx mid drive motors

Development tools

  1. Linux
    1. Step-by-step tutorial development tools
      1. Hardware tools to flash and debug the firmware
      2. Tools to build the firmware
        1. stm8-binutils-gdb
      3. Tools to flash the firmware
        1. How to erase and unlock protected read memory
      4. (optional) Tools to debug the firmware
      5. (optional) Tools to debug using serial port
      6. (optional) Tools to see diffs on the source code
  2. Windows
  3. C library
  4. Other tools
    1. Battery voltage boost step-up converter

Motor control

  1. Torque speed
  2. Motor control scheme of S06S controller
  3. BLDC 6 steps
  4. PWM schemes
    1. So, Which PWM Technique is Best? (Part 1)
    2. So, Which PWM Technique is Best? (Part 2)
    3. So, Which PWM Technique is Best? (Part 3)
    4. So, Which PWM Technique is Best? (Part 4)
    5. So, Which PWM Technique is Best? (Part 5)
    6. So, Which PWM Technique is Best? (Part 6)
    7. So, Which PWM Technique is Best? (Part 7)
  5. PWM control and Dead Time Insertion
  6. Low inductance motors
  7. Throttle Control Modes
  8. Phase angle FOC
  9. PWM frequency VS motor eRPM
    1. Max motor speed using FOC
    2. Kelly controllers ultra high speed
  10. Sinusoidal Control of BLDCM with Hall Sensors Based
  11. Self-Learn Hall Sensor Calibration Mode
  12. STM8S105 Alternatives
  13. PID algorithm - negative output values
  14. Regeneration
    1. Regen in SimonK firmware
  15. FOC
    1. Shane Colton documentation and firmware
      1. Firmware
      2. Part 1: Field-Oriented
      3. Part 2: Field-Oriented
      4. Sensorless Pneu Scooter - part 1
      5. Sensorless Pneu Scooter - part 2
      6. Sensorless Pneu Scooter - part 3
      7. Observer
        1. Sensorless - 2011.04.10
        2. Sensorless - 2011.07.05

Datasheets and application notes

  1. STM8S105C6T6
    1. Interrupts
  2. forum messages
    1. 2017.04.25 - Initial forum message
    2. 2017.05.08 - First flash and debug on a dev board
    3. 2017.05.18 - First code flashing and running
    4. 2017.05.20 - more new information
    5. 2017.08.23 - SxxP versus SxxS versus LSW-675
    6. 2017.09.01 - Trying to figure out an algorithm to automatically adjust ui8_position_correction_value
    7. 2017.09.02 - How to do FOC on the BMSBattery S06S/Kunteng STM8 motor controllers
    8. 2017.09.03 - more ideas about zero crossing for FOC
    9. 2017.09.05 - measuring IQ current and manually adjusting position_correction_value
    10. 2017.09.15 - our OpenSource firmware efficiency compared to Lishui 12 FET FOC
    11. 2017.09.19 - measuring motor current
    12. 2017.10.23 - FOC and no FOC comparison
    13. 2018.01.10 - How to measure FOC_READ_ID_CURRENT_ANGLE_ADJUST
    14. 2018.02.20 - Reading motor phase current from the DC link current (shunt)

Torque sensors

  1. BMSBattery torque sensor


  1. STM8S003 board
  2. 2017.12.01 - Regen ebrake like coast brakes
  3. BEMF


  1. 2017.05.22 - Hackaday Links: May 21, 2017

Smart BMS with bluetooth

So, Which PWM Technique is Best? (Part 2)

So, Which PWM Technique is Best? (part 2)

Dave Wilson, Motion Products Evangelist, Texas Instruments

So, which PWM technique is best for your motor control application? In the previous blog, we examined the single-quadrant PWM technique, which is a good fit for extremely cost sensitive motor control applications where you want to control the motor’s speed by varying the duty-cycle of a PWM signal. But the motor can only spin in one direction, and generate torque in that same direction. We also introduced the “H-Bridge” as a springboard to investigate other PWM topologies. In this blog, let’s take a look at how to build a bi-directional speed control power stage by using an H-Bridge. In particular, we will construct a 2-Quadrant Drive since it can produce forward motion with positive torque (quadrant 1), or reverse motion with negative torque (quadrant 3). Again we will choose a DC motor for this discussion, since the concepts are more easily understood with a DC motor.

For Unipolar PWM operation in quadrant 1, Q1 is turned ON continuously while we apply a PWM signal to Q4. You can watch an animation of Unipolar PWM operation in quadrant 1 by clicking here. When Q4 is switched ON, a current path is created from Vbus, through Q1, through the motor, through Q4, and returning through ground. At the end of this PWM state, Q4 is switched OFF. Since the motor winding has inductance, it will fight to keep the motor current flowing in the same direction. An inductor protects its current just like a mother protects her child. It effectively says, “Don’t mess with my current! If you do, I will generate whatever voltage is necessary to keep my current flowing.” As a result, the inductor forces the back-body diode of Q3 to conduct. But since Q1 is always ON, the motor current will return through Q1, not the DC supply. When you think about it, you realize that since Q1 is ON continuously, this circuit behaves exactly like the single quadrant drive discussed earlier with one exception…if you want the motor to spin in the other direction, simply turn Q3 ON all the time and PWM Q2 instead. This results in quadrant 3 operation where the motor is running in reverse, and generating negative torque. You can see an animation of this process by clicking here.

It’s interesting to note that in both quadrant one and quadrant three operation, the bus current is either positive or zero, regardless of which direction the current is flowing in the motor! In other words, this PWM technique cannot regenerate energy. The reason for this is because the inductive flyback current is “trapped” in the top half of the H-Bridge, and never flows back into the DC bus. This can either be an advantage or a disadvantage, depending on your application. If you never have to worry about regenerated energy, then you don’t have to add expense to your design to deal with it. On the other hand, if you want to recover load energy, then this PWM technique is not a good choice for you.