TSDZ8 OSF (open source firmware)

Dont worry try it in power assist mode. Ive also just tried and it works perfectly smooth...
I've just added a little improvement to react more quickly to a full-stop / start.
New version can be downloaded here: Dropbox

I've just tested this version with several settings and it was running smootly across all modes. :)
I really hope this works as well on other motors...

I've been testing my own latest version on a long trip today. That included roads, gravel, trails... flat, steep... - quite everything.
And it worked so nice in all conditions. :)
I think there is still a little bit of jerking at very low currents, but i can not feel it on my legs, i can just barely hear it. So it is completely fine for me.
Other than that, this firmware now meets all my expectations. It is super powerful when i need it, it is responding super quick when i need it, and it just feels very natural like a bosch motor! :)
My current version uses a averaging of the adc torque value over 40 values. It might even be useful to have this configurable => lower averaging array size = quicker response / higher averaging array size= smoother response.
If someone wants to try my firmware and settings.
firmware: Dropbox
settings: Dropbox

I am running a 52v Battery, so adjust as required...

1749393296308.png
1749393327340.png
1749393338311.png
 
Hello, where can I download the Parameter Configurator 5.4 for Open Source Firmware TSDZ2 v20.1C.6 and TSDZ8?

I would like to try out the katana1234 firmware. Do I also need a project file for the configurator?

Will the firmware work with an 860c display?

How do I proceed?
So far, I've only ever flashed firmware without config.hex.

Regards
 
I just put a version 0.1.21 on github but only for for 860C. I could change VLCD5 version later on if this one is succesful.
The challenge is always to reduce jerking and to provide the best feeling.
In version0.1.20, assistance is calculated based on the max of current torque sensor value, max during current 360° pedal rotation and max during previous 360° pedal rotation.
This seems me the best theoretical solution to have fast reaction and still to take care that the torque sensor values can differ a lot depending on the pedal rotation (at least on some motors) even if the weight is constant.

In version 0.1.21, I tried to apply the logic mspider implemented to take care that the human torque varies over one pedal rotation. This logic is explained here:
So basically, it saves the last torque values. The number being equal to the number of values over one rotation.
In normal cases, the assistance is based on the average (and so cyclic effect should be neutralised).
Still, to get faster reaction, if current torque value differs from the previous value in the same pedal position), then current torque value is used instead of the average.

In folder "files_to_flash" you can find both versions and so compare them if you want.

Please note that some parameters have to be changed in your config (on 860c display) to keep the same general feeling.
In 0.1.20, assistance is based on the max value of the torque over one pedal rotation.
-So, in pedal torque ADC offset you have to find the max value provided by the sensor with no load over one pedal rotation (and then to add a margin - e.g. 10)
- the assistance values you fill for the different levels will take care of the max value of the torque over one pedal rotation.

In 0.1.21 assistance is based on the average and not the max.
It means that the torque values used will be lower.
- So pedal torque ADC offset should now be lower (to avoid increasing the "dead zone")
- the assistance values you fill for the different levels should be higher to get the same feeling.

Note : at this stage, I did not implemented the logic proposed by Katana because:
- I wait for more feed back from other users
- the number of values used to calculate the average is fixed and so does not fit exactly one pedal rotation (and so the cyclic variations of the TSDZ8 torque sensor it self and those of the human power)
 
Hello, where can I download the Parameter Configurator 5.4 for Open Source Firmware TSDZ2 v20.1C.6 and TSDZ8?

I would like to try out the katana1234 firmware. Do I also need a project file for the configurator?

Will the firmware work with an 860c display?

How do I proceed?
So far, I've only ever flashed firmware without config.hex.

Regards
Katana should better reply but I think that currently he made only a version for VLCD5 (and similar like EDK01). So not for 860c.
He could (I presume) easily make a version for 860C.
To use his version (with VLCD5) you have to follow the explanation in the readme of my github (for VLCD5 version) but use the HEX file he provided instead of the HEX file I provided. You have to generate your config HEX file with the javaconfigurator (see readme)
 
Katana should better reply but I think that currently he made only a version for VLCD5 (and similar like EDK01). So not for 860c.
He could (I presume) easily make a version for 860C.
To use his version (with VLCD5) you have to follow the explanation in the readme of my github (for VLCD5 version) but use the HEX file he provided instead of the HEX file I provided. You have to generate your config HEX file with the javaconfigurator (see readme)
Thats correct.
Currently i will not provide firmwares for the 860c for a few reasons:
- I do not have this display so i cannot even test it
- I don't want to deliver and maintain an alternative firmware, i just want to show an alternative working approach that can be merged into the existing firmware

@mstrens Stupid question: So the 860c display is really only compatible with the 860c firmware? Or is it just lacking the config functionality on the display then?
 
Note : at this stage, I did not implemented the logic proposed by Katana because:
- I wait for more feed back from other users
- the number of values used to calculate the average is fixed and so does not fit exactly one pedal rotation (and so the cyclic variations of the TSDZ8 torque sensor it self and those of the human power)
Thanks for pointing that out. :)
I am also absolutely curious about other people reporting their thoughts...
I really hope that i runs as well on other motors.
Personally, i finally have a superior version to the original firmware.
 
Thats correct.
Currently i will not provide firmwares for the 860c for a few reasons:
- I do not have this display so i cannot even test it
- I don't want to deliver and maintain an alternative firmware, i just want to show an alternative working approach that can be merged into the existing firmware

@mstrens Stupid question: So the 860c display is really only compatible with the 860c firmware? Or is it just lacking the config functionality on the display then?
In the 860c version, many of the parameters filled in the display are not transmitted to the controller. It is e.g. the display itself that select the value to be used for the assistance based on the selected type of assist and on the selected level. This single value is transmitted to the controller to calculate the assist. So the 2 versions are verry different over the communication protocols.
It is not possible to use one OSF version with the other display.
 
Great to see ongoing development. Can anybody tell me if OSF for VLCD5 with the thumb throttle has cured the off/on throttle response? I need a usable throttle for 500m section of narrow dirt track/footpath on my shopping trips. Thanks in advance.
 
I just tested firmware 0.1.21 and noticed that no human watts are shown on the display, and the motor wattage was only around 50 watts at the highest support level.
Is it possible there's a bug or I did something wrong?
Regards
 
I just tested firmware 0.1.21 and noticed that no human watts are shown on the display, and the motor wattage was only around 50 watts at the highest support level.
Is it possible there's a bug or I did something wrong?
Regards
You are right. There is a bug. I just realized that I forgot to copy some lines of code.
I will fix it immediately in a version 0.1.22 (to be published in a few minutes)
 
V_00_01_22 is uploaded.
I did not test it but I hope it is OK.
Thank you very much for your great work. I'll test the new firmware tomorrow; unfortunately, I don't have the time today.

Is it actually possible to calibrate the torque sensor with a weight on the pedal?

Best regards
 
...
Personally, i finally have a superior version to the original firmware.
Today I did a ride of about 20km with EKD01 and OSF_TSDZ8_V00_01_20_SmoothTorqueBetaV2.hex. Forest, dirt roads, asphalt.
I didn't notice any jerking, the ride was completely fine.
From Mstrens with EKD01 I tested the latest firmware v.13, so I can't compare this with its later versions.
I also can't currently say that this FW is better than the original.
The only thing better than test3 FW is that it is possible to change the assistance modes.
 
Thank you very much for your great work. I'll test the new firmware tomorrow; unfortunately, I don't have the time today.

Is it actually possible to calibrate the torque sensor with a weight on the pedal?

Best regards
There are 3 parameters that are related to calibration:
- torque ADC offset (no weight) . This has to be measured with no weight but rotating the pedal over 360°. As version 0.1.22 uses average values, you should take (min + max) /2 and then add some margin (e.g. 10)
- torque ADC max (max weight) : This has to be measured with full load (all human weight on one pedal - e.g. 80). Ideally, this should be done for several pedal positions but this is not possible in practice. This will not have a big impact.
- torque ADC step : is used to calculate human power and so assitance in e.g. power assist mode. I do not know how to find this value for TSDZ8. For TSDZ2 mbrusa proposes some methods (e.g. measuring ADC torque with a weight of about 25 kg) but this is based on the way ADC values change when weights vary. I do not know at this stage if the TSDZ8 torque sensor has the same "curve". Please take care that mbrusa let you enter the ADC value and the associated weight (around 25) and then calculate a value that you can enter. This calculation is not valid for TSDZ8 (at least in version like 0.1.22) because mbrusa uses as max range the difference between max and offset ADC while TSDZ8 fix the range to 160.
 
Today I did a ride of about 20km with EKD01 and OSF_TSDZ8_V00_01_20_SmoothTorqueBetaV2.hex. Forest, dirt roads, asphalt.
I didn't notice any jerking, the ride was completely fine.
From Mstrens with EKD01 I tested the latest firmware v.13, so I can't compare this with its later versions.
I also can't currently say that this FW is better than the original.
The only thing better than test3 FW is that it is possible to change the assistance modes.
thanks for sharing your results. I am glad the firmware worked well for you.
To achive a "better than stock" behavior, you definitely have to play with the settings to adjust it to your preferences ;)
 
Great to see ongoing development. Can anybody tell me if OSF for VLCD5 with the thumb throttle has cured the off/on throttle response? I need a usable throttle for 500m section of narrow dirt track/footpath on my shopping trips. Thanks in advance.
 
Over the weekend I rode a little more on the 0.1.20 software (860C) and it's really good, I didn't notice any jerking or anything like that, the ride was smooth and pleasant, I rode with a buddy who has a BBS02b in his MTB and I gave him a ride on my ebike, he was really surprised how well it works, the friend said that if he was making another e-bike he would base it on TSDZ8 or similar :cool:

PS: in the middle of the ride we got hit by a strong storm⛈️and TSDZ8 as well as BBS02b passed the ride in extremely unfavorable weather conditions, the strong rain did not impress them at all 👌

Batteries from ChamRider and PSWPower also worked well, you can say that in the rain you can be calm, my battery (ChamRider Samsung HL2 casing/48V 20Ah) had a cover, but a buddy's battery from PSWPower (19.2Ah/casing HLMax) went without a cover in the rain and also everything with it OK.
 
Last edited:
Hello, I've just tested the firmware OSF_TSDZ8_860C_V00_01_23.hex

I briefly tested it and noticed that with the settings described, the motor was constantly jerking and I could barely achieve any motor power.

ADC torque sensor empty 360° rotation
197 + 201 / 2 + 10 = 209
20250609_100230.jpg


I've now found the following settings work well:
20250609_110128.jpg


The motor only delivers power at minimal pressure, and I can't reach the set 1000 watts.
20250609_110143.jpg20250609_110150.jpg
 
I've been testing my own latest version on a long trip today. That included roads, gravel, trails... flat, steep... - quite everything.
And it worked so nice in all conditions. :)
I think there is still a little bit of jerking at very low currents, but i can not feel it on my legs, i can just barely hear it. So it is completely fine for me.
Other than that, this firmware now meets all my expectations. It is super powerful when i need it, it is responding super quick when i need it, and it just feels very natural like a bosch motor! :)
My current version uses a averaging of the adc torque value over 40 values. It might even be useful to have this configurable => lower averaging array size = quicker response / higher averaging array size= smoother response.
If someone wants to try my firmware and settings.
firmware: Dropbox
settings: Dropbox

I am running a 52v Battery, so adjust as required...

View attachment 371344
View attachment 371345
View attachment 371346
Hi! Thanks for sharing your experience — your firmware sounds really great!

Would it be possible for you to also compile a .hex version for a Rated capacity: 20AH, Voltage: 48V, Charging Voltage: 54.6V, Discharge cut off voltage: 36.4V, Continuous discharge current: 30A
battery and upload it to Dropbox? I’d love to test it on my setup.

Also, one more question:
Will your settings work with the B02N display (I believe it’s the same as EKD01)?

Thanks in advance! :)
 
Last edited:
Thanks for the feed back on version 23...
I can confirm that in v0.1.23, the motor was not providing smooth assistance. I only did a quick ride without playing with the config, but the assistance was way worse than in v0.1.20, which seems to be working quite smoothly. I have not tried the v0.1.24 yet.
 
Hi! Thanks for sharing your experience — your firmware sounds really great!

Would it be possible for you to also compile a .hex version for a Rated capacity: 20AH, Voltage: 48V, Charging Voltage: 54.6V, Discharge cut off voltage: 36.4V, Continuous discharge current: 30A
battery and upload it to Dropbox? I’d love to test it on my setup.

Also, one more question:
Will your settings work with the B02N display (I believe it’s the same as EKD01)?

Thanks in advance! :)
Hi, there is no need to compile a hex for a specific setup. You have to create you own setup using the Java Configuration Tool. That is what everyone, except for the 860c users, has to do either way. :)
I am not sure if anyone tested the B02N yet, but it will most likely work because it is the same hardware as the EDK01.
 
Back
Top