I am really happy to say that I think the firmware is now at about 70% of completeness
I am being riding with my EBike, with a Q85 motor 328 RPM, 24V battery, S06S controller, LCD3 and torque sensor. I also tested with other hardware combinations before, like: Q100 motor, 48V battery, S12S controller, LCD5 and throttle.
Some things missing:
- developing and testing for direct drive motor with regen (I will develop and test with the BMSBattery motor Q11 48V 1KW rear drive motor + S12S controller)
- possible improvement on FOC efficiency
- documentation of user cases, like how to connect a hardware pack, configure and install the firmware for: 24V battery pack + Q85 motor + S06S controller + LCD5 + torque sensor
- implementing other minor things like PAS, external speed sensor, etc.
Today I just finished the torque sensor control and I did a ride and tested with the following hardware combination:
- 24V battery
- Q85 motor 328 RPM
- S06S controller
- torque sensor
The torque sensor controls the motor this way:
1. if LCD P3 = 1, the pedal torque * (assist level / 2) will define the motor current/torque
2. if LCD P3 = 0, the humam power on the crank * (assist level / 2) will define the motor current/torque
In 2., as human power depends on the pedal cadence value and it is zero at startup, there is no motor assistance at startup, unlike on 1. With the time we can change this behavior if we like.
I am trying to make code modular so it will be easy to enable/disable options of the control modes, inside the ebike_app_controller (). This way, will be possible to select which control mode the user wants, the max pedal cadence, etc, using the Java tool.
Here is the ebike_app_controller ();
And will call torque_sensor_control_mode ():
And today I took from my bicycle mechanic, the direct drive BMSBattery Q11 motor on the 26'' wheel. On the picture, the other small motor is a BMSBattery geared motor Q85 that will but placed on that 16'' wheel for the ebike of my son, that has already installed a torque sensor: