The Tongsheng torque sensor provides a value that is nearly proportional to the weight on the pedal when the weight remains lower than a limit. Above this limit, it saturates and the returned values increase much less quickly when weights increase more.
Tests done with a TSDZ2 showed a limit of 15, 25 or 45 kg depending on the motor.
For TSDZ8, I have found only one test. It gives a limit at 50 kg (where ADC value is about 90% of the max range - for 80kg).
Probably that for TSDZ8 too, the limits varies significantly from motor to motor.
In TSDZ8, the assistance (in all modes except cadence mode) is currently proportional to the ADC torque value (in fact ADC torque value is first filtered, offset is substacted and range is adjusted to a conventional value). Due to the saturation of the ADC/weight curve, this means that the assistance is relatively high for low weight on the pedal and low for high weight. This has an impact also on the calculated human power (non linearity).
The way OSF for TSDZ2 tries to compensate this seems me very complex and not ideal. It was also not implemented in TSDZ8.
I could make changes for TSDZ8 in order to take care in a better (I think) way of the "saturation point" and so to better "linearize" the torque sensor (and get better human power calculation).
For stock display (VLCD5 and similar) version, I could change the configurator in order to let the user defines:
- ADC offset (no weight) (e.g160 )(this field already exists)
- ADC max (max weight) (e.g.430) (this field already exists) and weight used to get ADC max (e.g. 80 kg) (new field)
- ADC at saturation (e.g. 390) and weight to get it (e.g. 50kg) (2 new fields)
Then I would remove other fields:
- torque sensor adv box
- calibrated box
- estimated box
- pedal torque ADC step
- pedal torque ADC step advanced
- pedal torque ADC offset adjustment
- pedal torque ADC range adjustment
- pedal torque ADC angle adjustment
I also suggest :
- to let the user decides if OSF must automatically calibrate the ADC offset at each power on or not. To do so, I would consider that if ADC offset value in javaconfigurator is less than 50, it represents a security margin being internally added to the automatic offset (to avoid that motor starts in some cases). When the value would be above 50, OSF will discard the automatic calibration value and use the configurator value (considering that the user already included a margin). This second option can be useful for motor having an ADC offset that significantly changes depending on the pedal position (but can gives Err 02 if the value is set to low compared to the the automatic calibration value).
- to let the user select if the curve ADC versus weight must remain linear or if it must be more or less difformed in concave or convex way (in order to get relatively more or less assistance at low weight. This requires just one more parameter (already present).
Similar options could be done also for 860C version but in order to avoid having to reflash the display, I would then "misuse" some existing display field and so some field labeling would be incorrect but this could be explained in the Readme doc.
I wait for your comments before making changes.
Thanks for advises.