Index
- BMSBattery S series
- BMSBattery S06S
- S06ST (torque sensor version)
- S06S-BL (Bluetooth version)
- PWM signals
- Phase B current signal
- Throttle
- BMSBattery S06SC
- BMSBattery S12S
- BMSBattery bottle battery controller
- LCD control panel
- Kunteng mobile app
- Bluetooh
- How to open the controller and solder the programming header
- Hardware mods
- Other controllers
- BMSBattery S06P
- Kunteng 18 mosfets motor controller
- Lishui motor controllers
- JinHui motor controllers
- GreenEBikeKit
- Torque speed
- Motor control scheme of S06S controller
- BLDC 6 steps
- PWM schemes
- So, Which PWM Technique is Best? (Part 1)
- So, Which PWM Technique is Best? (Part 2)
- So, Which PWM Technique is Best? (Part 3)
- So, Which PWM Technique is Best? (Part 4)
- So, Which PWM Technique is Best? (Part 5)
- So, Which PWM Technique is Best? (Part 6)
- So, Which PWM Technique is Best? (Part 7)
- PWM control and Dead Time Insertion
- Low inductance motors
- Throttle Control Modes
- Phase angle FOC
- PWM frequency VS motor eRPM
- Sinusoidal Control of BLDCM with Hall Sensors Based
- Self-Learn Hall Sensor Calibration Mode
- STM8S105 Alternatives
- PID algorithm - negative output values
- Regeneration
- FOC
Datasheets and application notes
- STM8S105C6T6
- Endless-sphere.com forum messages
- 2017.04.25 - Initial forum message
- 2017.05.08 - First flash and debug on a dev board
- 2017.05.18 - First code flashing and running
- 2017.05.20 - more new information
- 2017.08.23 - SxxP versus SxxS versus LSW-675
- 2017.09.01 - Trying to figure out an algorithm to automatically adjust ui8_position_correction_value
- 2017.09.02 - How to do FOC on the BMSBattery S06S/Kunteng STM8 motor controllers
- 2017.09.03 - more ideas about zero crossing for FOC
- 2017.09.05 - measuring IQ current and manually adjusting position_correction_value
- 2017.09.15 - our OpenSource firmware efficiency compared to Lishui 12 FET FOC
- 2017.09.19 - measuring motor current
- 2017.10.23 - FOC and no FOC comparison
- 2018.01.10 - How to measure FOC_READ_ID_CURRENT_ANGLE_ADJUST
- 2018.02.20 - Reading motor phase current from the DC link current (shunt)
2017.12.01 - Regen ebrake like coast brakes
2017.12.01 - Regen ebrake like coast brakes
The main idea was to implement regen ebrake, having influence from:
- the way we brake on fixed gear bikes
- the way we brake on bikes with coast brakes
- the way we drive electric cars with “one pedal driving”
How does it works?
- ebike rider can pedal forward as usual or stop pedaling for rest
- when ebike rider want to ebrake for reducing speed (without using mechanical brakes), needs to rotate backwards the pedals
- one full rotation of the pedals equals to 24 points and I implemented in a way that 5 point of backwards rotation gives the full ebrake power, while 1 point gives 1/5 of the full ebrake power and so on
I recorded a video of myself where I did ebrake so strong that I almost did fall...
Technical implementation
The BMSBattery torque sensor can't detect backward rotation of the pedals. When they rotate backwards, the PAS of torque sensor stays always at positive.
I added a PAS to inside on the torque sensor:
Note that the disk with magnets inside the torque sensor, has 12 magnets equally spaced giving a signal like PWM 50% duty_cycle: 24 signal changes for each full rotation of pedals.
That way I got 2 PAS signals, the one from the torque sensor and the other that I added and with that I can detect backward rotation of the pedals and count the number of ticks the rider rotates the pedals backards:
I counted 5 pedals backwards ticks and increased the current every tick at a rate of 1/5*max regen current.
When running the pedals backwards, the torque signal should be zero. When the rider start rotating forward and doing torque on the pedals, the regen current is set to zero.
Code on PWM cycle:
Braking will apply max regen current