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

BMSBattery torque sensor

BMSBattery sells a torque sensor for about 50€ (if you don't find on their shop, send them a message ask for it).
You can see it on this video: B.B. Torque Sensor Fatigue Testing

Example of an installed BMSBattery torque sensor:

Connector pins:

Black: GND
RED: +5V
Yellow: PAS signal
Green: torque signal

Some notes:
• PAS signal
◇ min of 0 volts and max of 5 volts
◇ seems to always have a duty_cycle of 50%
◇ 12 magnets on the disc → 24 signals changes for each 1 pedals rotation
◇ the signal just changes when rotating forward and not backwards
• torque signal
◇ min of 0.84 volts and max of 4.56 volts

Yellow: PAS signal
Blue: torque signal
Example of a constant cadence and “constant” force applied to the cranks by the foot - note that the torque signal have max and min values:

Example of no torque value and increase a bit up to full stop pedaling:

Pedaling strong with quick stops, to see the max output voltage of torque signal:

Information take from this forum message:
The functional principle is actually simple, but I needed something until I got it. The centerpiece is an eccentrically drilled sleeve. In the sleeve runs the normal massive ball-bearing bottom bracket axle. The sleeve itself is supported by needle bearings in the sensor housing. The whole thing is turned in such a way that the axis lies in the lowest point of the eccentricity. If you now at the bottom dead center on the crank, nothing happens. Even if you blocked the right crank in the horizontal and then on the left on it, nothing happens. Only when the force is really transmitted over the chain, ie acts in the horizontal, created by the eccentricity a moment on the sleeve and this rotates.
The lever is attached to the sleeve with the magnets, which then uses the Hall sensor to convert the mechanical movement into an electrical signal.
In this principle axle and chainring is rigidly connected, so that there is no "rubber feeling" when pedaling.
Since the chain hoist is dependent on the chainring diameter (lever law), the sensor reacts more sensitively to the small chainring (full scale with approx. 15kg weight on the horizontally standing crank) than the big one (full deflection at approx. 25kg).
To install the sensor in the correct position, one of the four screws for fixing the interior is longer. You have to make a slot in the pedal crank of the bicycle frame to mount the bearing.
The whole camp is not screwed into the thread in the frame, but is just clamped. I think that's a bit windy, but that's probably the case with the bottom bracket BBS01.