About the project

  1. about this documentation in HTML
  2. License


  1. BMSBattery S06x
    1. LCD control panel
      1. LCD protocol
    2. S06S
      1. PWM signals
        1. very low speed - 6 steps
        2. low speed up to max speed - sineware
    3. S06P
      1. various info
        1. 01
        2. 02
  2. BMSBattery S12S
  3. BMSBattery bottle battery controller
  4. GreenEBikeKit
  5. Kunteng 18 mosfets

Datasheets and application notes

  1. STM8S105C6T6
    1. Interrupts
  2. Alternatives

Development tools

  1. STLinkV2 - Flash/program/debug hardware
  2. Flash and debug connector on S Series controller
  3. Debug OpenOCD and Eclipse
    1. stm8-binutils-gdb
  4. Flash programming
  5. C library
  6. Various resources
    1. Printf example

Motor control

  1. Motor control scheme of S06S controller
  2. BLDC 6 steps
  3. 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)
  4. PWM control and Dead Time Insertion
  5. Low inductance motors
  6. Throttle Control Modes


  1. 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
  2. How to unlock proteced read memory
  3. STM8S003 board
  4. LOG
    1. 2017.06.19 - SVM current waveforms


  1. 2017.05.22 - Hackaday Links: May 21, 2017

Smart BMS with bluetooth

LCD protocol

S-LCD to S12S controller communication protocol hacked

S-LCD to S12S controller communication protocol hacked
images/7-1.pngby obelix662000 ยป Wed Oct 14, 2015 11:42 pm
I've successfully decoded communication protocol between LCD3 display and S12S controller (both available at in both directions. Please see attached files. Attachments images/7-2.png S12SN_to_LCD3.txt from S12S to LCD (1.04 KiB) Downloaded 278 times images/7-3.png LCD3_to_S12SN-1.txt from LCD to S12S corr1 (2.65 KiB) Downloaded 131 times

Linked file: S12SN_to_LCD3.txt

Linked file: LCD3_to_S12SN-1.txt

flangefrog wrote:
Great work. When were the packets sent between the devices? Were they sent every 100ms or so, or for lcd to controller communication were they just sent when a button was pressed? Any special packets sent on start-up?
Continiously, about 10 times a second in both directions. Actually this is not important, everything works fine with any rate since LCD an S12s rememeber last state.


I have an S06S, the protocol is the same.
Regarding the S12SN to LCD3 communication protocol:
B2: is the controller voltage. I have a 24/36 V controller with a 36 V battery and B2 reads 36 in my case.
B6: B0 is not included in the CRC
B8: Value is 4x controller current instead of power. The display calculates the power from this value devided by 4 multiplied with the LCD supply voltage. So if B8 is 16 and the supply voltage is 30 V then the LCD shows (16/4)*30 = 120 W. If you supply the LCD with 40 V and the same value for B8 then the power shown is 160 W.