Index

About the project

  1. about this documentation in HTML
  2. License

Development tools

  1. Linux
    1. Step-by-step tutorial development tools
      1. Tools to build the firmware
        1. stm8-binutils-gdb
      2. Tools to flash the firmware
        1. How to erase and unlock protected read memory
      3. Hardware tools to flash and debug the firmware
      4. (optional) Tools do flash and 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 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 S12S
      1. Programming header
      2. PWM signal at max speed - sineware
      3. Phase B and motor total current signals
    3. BMSBattery bottle battery controller
    4. LCD control panel
      1. LCD protocol
    5. Bluetooh
      1. DIY Bluetooth module
    6. How to open the controller and solder the programming header
    7. 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

Motors

  1. BMSBattery Q75
  2. BMSBattery Q85
  3. BMSBattery Q100
  4. BMSBattery Q100C

Torque sensors

  1. BMSBattery torque sensor

Datasheets and application notes

  1. STM8S105C6T6
    1. Interrupts

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. Regeneration
    1. Regen in SimonK firmware

Various

  1. Endless-sphere.com 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
  2. STM8S003 board
  3. 2017.12.01 - Regen ebrake like coast brakes

Clipping

  1. 2017.05.22 - Hackaday Links: May 21, 2017

Smart BMS with bluetooth

(optional) Tools do flash and debug the firmware


The following instructions are to install and configure the tools needed to flash and debug the STM8 firmware.

Install Eclipse
Install Zylincd plugin
Configure OpenOCD
Configure Flash and Debug
Some notes


Install Eclipse



Go to Eclipse site and download Eclipse Neon: http://www.eclipse.org
Why Eclipse Neon version and not the most recent version? Because we will be using Zylincdt plugin that works on Eclispe Neon version but not on the most recent version.

Install Zylincd plugin



On Eclipse, got to Help -> Install new software... and the next link as the source for the plugin, as seen on next picture: http://opensource.zylin.com/zylincdt

images/30-1.png

Website of the plugin: http://opensource.zylin.com/embeddedcdt.html

Configure OpenOCD



On Eclipse, go to “External tools -> External tools configuration..." and add a new launch configuration, using the following data seen on the next image (adapt for your specific folder names):

images/30-2.png

If you have the hardware connected and the motor controller powered on, run the configuration you just created and you should see the following on the Eclipse console window:

images/30-3.png


Configure Flash and Debug



On Eclipse, go to “Debug -> Debug configuration..." and add a new Zylin Embedded debug (Native) configuration, using the following data seen on the next images (adapt for your specific folder names):

images/30-4.png

images/30-5.png

images/30-6.png

images/30-7.png


With OpenOCD running, run the flash and debug configuration you just created and you should see the following on the Eclipse console window:

images/30-8.png

Now you can use the options on Eclipse menu Run to run, halt, step, view and edit memory variables, etc, as seen on the next image:

images/30-9.png


Some notes



Ubuntu 16.04 and Eclipse Mars menu problem

My OS is Ubuntu 16.04. I downloaded Eclipse Version: Mars.2 Release (4.5.2) and I had a problem with the main menu not showing.
I solved it by running Eclipse with UBUNTU_MENUPROXY=0 and the menu is visible but now I have another problem. Some of the options in the menu don't work.
For example the Window->Preferences only shows the General page and I can't select any other option.

images/30-10.png

Try to start Eclipse after editing your eclipse.ini file and tweaking the launcher entry like this:
--launcher.GTK_version
2
Example file:
-startup
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.GTK_version
2
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.7
-XX:MaxPermSize=256m
-Xms256m
-Xmx1024m

See: http://stackoverflow.com/questions/36822242/eclipse-doesnt-work-with-ubuntu-16-04/36859485