TSDZ8 OSF (open source firmware)

I'm waiting for an OSF version for the TSDZ8 that supports the EKD01 or BON2 displays with software compatible with Tongsheng. I really like these displays — they are very convenient for me, and in my opinion, their size is just right to keep the handlebar tidy. Even when using an additional device like a Garmin computer for navigation, the handlebar still looks neat and organized.
I'm also considering the SW102 osf display because of its compact size, although I haven't had the chance to see it in person or use it yet.
 
Last edited:
I'm waiting for an OSF version for the TSDZ8 that supports the EKD01 or BON2 displays with software compatible with Tongsheng. I really like these displays — they are very convenient for me, and in my opinion, their size is just right to keep the handlebar tidy. Even when using an additional device like a Garmin computer for navigation, the handlebar still looks neat and organized.
I'm also considering the SW102 osf display because of its compact size, although I haven't had the chance to see it in person or use it yet.
I also wait very eager for EDK01 because I have two bikes with TSDZ8 and EDK01.
Many thanks to Mtrens for the excellent great work!
I have two questions:
Is there any chance it will be ported to the EDK01?
And have there been any changes in the OSF for throttle control and walk assist mode?
Because in the original version, they are terribly to use.
Thank you all!
 
I put on github a version 0.1.19 for VLCD5 display (and similar displays compatible with original TSDZ8 firmware) that contains the changes I made to 860C version in order to avoid jerking issue.
The link is : GitHub - mstrens/OSF
As before, this version has to be used with the javaconfigurator made by mbrusa.
Please look carefully at the readme (section "Generate the configuration file") because it is important with this version to take care that some parameters must be filled with correct values and that there are differences compared to TSDZ2.


I also put on github a version 0.1.19 for 860c display. There is no major change compared to 0.1.18 except (and this is important) that in 860C Torque sensor menu "Torque offset adj" is not used anymore (is discarded) but the value (kind of offset margin or torque sensor dead zone) has now to be manually included by the user in the field "Torque ADC offset". So this field must now be equal to the sum of:
- the maximum ADC torque sensor value when no weight is applied on the pedal. As the value varies with the position of the pedal, you have to rotate at least on 360° the pedal to find the maximum.
- the margin you want to apply. A value of "10" seems a good start. Adjust based on your preferences.

OSF will not provide assitance when the ADC torque is less that the value you fill in "Torque ADC offset".
Note: this change has been made to have the same logic for VLCD5 and 860C version.

Note: I did not tested those versions! There were quite many changes for VLCD5 version so a bug is not excluded.
 
Last edited:
Humble question - what is the real amperes limit of TSDZ8?
My EKD01 on ori firmware displays over 1500W at max with fully charged 48V battery which gives 1500W/54V =~27,5A.
 
Last edited:
Humble question - what is the real amperes limit of TSDZ8?
My EKD01 on ori firmware displays over 1500W at max with fully charged 48V battery which gives 1500W/54V =~27,5A.
Default is 23A, Ichecked Ekd01 with an ammeter and the power displayed on Ekd01 is about 25-30% higher than the actual power from the ammeter, so if it displayed 1500, you had about 1100W
 
Default is 23A, Ichecked Ekd01 with an ammeter and the power displayed on Ekd01 is about 25-30% higher than the actual power from the ammeter, so if it displayed 1500, you had about 1100W
Did you tested this with OSF also?

In Java Configurator manual it's stated:

1749035431521.png

and I don't know if the value of 18 A is hardcoded into firmware itself and if it does apply also to the @mstrens OSF variant.
 
For all those who have a problem with jerking with 860c, try to upload 15.hex again, but before uploading get an erase chip. I'm also adding my settings that I ride on and I have no problem with jerking. I tested different combinations and it seems that lowering Torque offset adj e.g. to about 10 also helps with jerking, Foc works quite well for me in the range of 23-25. I'm uploading photos of my settings. My observations also worked for other users of OSF 860c, so maybe it will help.
If you have jerkinv, it may be helpful to turn the engine off and on and wait at least 10 seconds for the TQ sensor to calibrate.
I confirm, the method with erase chip and re-uploading OSF to the engine HELPS, finally also my pressure sensor stopped jerking and work really smoothly in OSF version 0.1.15 😁 (on LCD 860c)

Thanks Prozyc & Mstrens, now finally with a clear conscience I can say that - FINALLY TSDZ8 IS BETTER THAN BBS02b (which I have in my other ebike:mrgreen:).

Today I'll upload the newer version and share my opinion, but from what I read in this thread it's much even better than the 0.1.15 :)

Can I upload osf to this display?
On my LCD 860C (>>CLIC<<) it works with software version V13.

PS:
@Rafal88
BUT, there are plenty of versions of this display and I don't know if it will work on yours, I know one thing for sure, it must be a display dedicated for Bafang (UART), those with soft under TSDZ will not work, when trying to upload OSF to LCD 860C dedicated for Tongsheng you may turn it into a brick.
 
Last edited:
I confirm, the method with erase chip and re-uploading OSF to the engine HELPS, finally also my pressure sensor stopped jerking and work really smoothly in OSF version 0.1.15 😁 (on LCD 860c)

Thanks Prozyc & Mstrens, now finally with a clear conscience I can say that - FINALLY TSDZ8 IS BETTER THAN BBS02b (which I have in my other ebike:mrgreen:).

Today I'll upload the newer version and share my opinion, but from what I read in this thread it's much even better than the 0.1.15 :)


On my LCD 860C (>>CLIC<<) it works with software version V13.

PS:
@Rafal88
BUT, there are plenty of versions of this display and I don't know if it will work on yours, I know one thing for sure, it must be a display dedicated for Bafang (UART), those with soft under TSDZ will not work, when trying to upload OSF to LCD 860C dedicated for Tongsheng you may turn it into a brick.

I confirm, the method with erase chip and re-uploading OSF to the engine HELPS, finally also my pressure sensor stopped jerking and work really smoothly in OSF version 0.1.15 😁 (on LCD 860c)

Thanks Prozyc & Mstrens, now finally with a clear conscience I can say that - FINALLY TSDZ8 IS BETTER THAN BBS02b (which I have in my other ebike:mrgreen:).

Today I'll upload the newer version and share my opinion, but from what I read in this thread it's much even better than the 0.1.15 :)


On my LCD 860C (>>CLIC<<) it works with software version V13.

PS:
@Rafal88
BUT, there are plenty of versions of this display and I don't know if it will work on yours, I know one thing for sure, it must be a display dedicated for Bafang (UART), those with soft under TSDZ will not work, when trying to upload OSF to LCD 860C dedicated for Tongsheng you may turn it into a brick.
Apologies for maybe a stupid question- but what means "method with erase chip"?
 
Apologies for maybe a stupid question- but what means "method with erase chip"?
This is an option in the Jflash program with which we upload OSF to the engine, before uploading OSF we select this option to clear the chip as I understand it correctly, in any case it worked for me.

@mstrens
Today I tested version 18 & 19 and unfortunately I get a torque error when I press my foot harder on the pedals:
IMG - CLIC

Probably the reason for this is the max range for "Torque ADC max" is too low, my max range when pedaling hard is ~511-512 but the max I can set is only 500 :(

But other than that OSF works really well, I have temporarily enabled the options to continue on error and the power is given smoothly.

But a little annoying is the flashing "CHECK ENGINE" while driving 😅

EDIT:
video

As you can see I exceed more than 500 without any problem, while driving about ~511 as I pedal hard.
 
Last edited:
This is an option in the Jflash program with which we upload OSF to the engine, before uploading OSF we select this option to clear the chip as I understand it correctly, in any case it worked for me.

@mstrens
Today I tested version 18 & 19 and unfortunately I get a torque error when I press my foot harder on the pedals:
IMG - CLIC

Probably the reason for this is the max range for "Torque ADC max" is too low, my max range when pedaling hard is ~511-512 but the max I can set is only 500 :(

But other than that OSF works really well, I have temporarily enabled the options to continue on error and the power is given smoothly.

But a little annoying is the flashing "CHECK ENGINE" while driving 😅

EDIT:
video

As you can see I exceed more than 500 without any problem, while driving about ~511 as I pedal hard.
Thanks for the feedback.
There was a check in the firmware (copied from TSDZ2 version) that generates a torque sensor error when the value exceeds 500.
In new version (V00_01_20) I will change the check on 500 for a check on 650.
Still in javaconfigurator or in 860C firmware, I expect that it is not possible to fill a value that exceed 500. I have to ask mbrusa to change those 2 softwares. In the meantime, fill 500 as user parameter. You should not get an error anymore. Later on, when you will be able to increase the parameter in the configuration tool, you will normally have to slightly adjust you assistance levels because OSF uses this value to remap internally the torque sensor values to a max of 160.
 
I just put on github 2 new versions named V00_01_20. One is for VLCD5 and the other for 860C.

For 860C version there is only a minor change in order to avoid an error message when torque sensor exceeds 500. The new limit is set on 650.

For VLCD5 version, there are much more changes because I tried to allign OSF on the latest update that mbrusa did in may 2025 for TSDZ2. One important change is that it is supposed to support EKD01 display too.
Please note that:
- I did not tested this version
- there were hundreeds of changes to make and so I can't exclude some bugs
- it uses some new configuration parameters (like TSDZ2) and so to use it, you have to flash not only the firmware but also a new config file generated by the provided javaconfigurator.
Take care that you have now to run the javaconfigurator that is on my website and NOT anymore the one in the mbrusa web site (because I made a change in a .ini file).
- some parameters that could be changed in VLCD5 display and were store in OSF will also be lost.
In fact best is probably to begin with a full erase of the flash memory before installing this version.
 
I also wait very eager for EDK01 because I have two bikes with TSDZ8 and EDK01.
Many thanks to Mtrens for the excellent great work!
I have two questions:
Is there any chance it will be ported to the EDK01?
And have there been any changes in the OSF for throttle control and walk assist mode?
Because in the original version, they are terribly to use.
Thank you all!
As you can see in a post here above, I made a version that should support EDK01 display (in the same way as OSF TSDZ2 mbrusa do).

For throttle and walk assist, I suggest that you test it. In fact OSF is totally different from original firmware so there is no reason it would work the same. Take care that activating throttle and walk assist in OSF requires some setup (see OSF mbrusa manuals)
 
@mstrens
Great that you found a temporary solution to this error 🍻

Thank you very much for the super fast response, later today I will upload the V20 and let you know if it worked👌
 
Last edited:
@mstrens Do you have plans to merge back your changes to mmbrusa repo eventually? It would save you the hassle of keeping your fork updated with his changes in the future
 
@mstrens Do you have plans to merge back your changes to mmbrusa repo eventually? It would save you the hassle of keeping your fork updated with his changes in the future
It is not clear if you question refers
- only to javaconfigurator
- also all changes in OSF firmware.

For the first (javaconfigurator), it could make sense but the drawback is that changes made by mbrusa can have an impact on OSF TSDZ8. Changes have then to be coordinated. This is difficult. In principe, I do not change the source of javaconfigurator. I have just to copy the .jar file and, if required, update a file in folder "Other settings".

OSF TSDZ8 contains many differences compared to OSF TSDZ2 (because the processor is different and some characteristics of the motors are different too). It is not possible to merge the 2 codes into one single program. When mbrusa updates his code, I try to see the changes and if it could make sense for TSDZ8, I try to include them. This is always a difficult (and risky job)
 
Yes, I ment mainly the java configurator, but also 860c and sw102 display code. Especially for displays we' re flashing hexes from tsdz2 repo that might at some point need custom changes.
 
Yes, I ment mainly the java configurator, but also 860c and sw102 display code. Especially for displays we' re flashing hexes from tsdz2 repo that might at some point need custom changes.
I hope I can in the future just continue to use the same javaconfigurator.jar and the same 860C/SW102 display code as TSDZ2.
I copied the javaconfigurator because I had to update the version nr in the "TSDZ8_header.ini" because mbrusa added 2 fields to the generated config hex files for TSDZ8. As new TSDZ8 version uses those fields I had to detect that there was a new version.

In the future, when mbrusa makes a new version of javaconfigurator, I plan to copy it in my github only when I integrated the same changes into TSDZ8 version. In the mean time, users should use the copy on my site.
I do not plan to make my own versions of javaconfigurator or 860C. If some fields would be specifically added for TSDZ8, I plan to ask mbrusa to add them in his versions.
 
I think the experimental settings directory is missing on github
That's right.
I thought the directory would be created by itself, but no.
It is enough to create an empty directory "experimental settings" , then you can run javaconfigurator.
 
The new hex V00_01_20 eliminates(or hides) the torque error problem, nice(y)

Yesterday I didn't have much time to test it but in the days I will go for a longer test drive, but for the moment everything works very well⚡
 
Hello, I'm from Germany and I flashed my TSDZ8 motor and 860c display with the following firmware:

osf_tsdz8_860c_v00_01_19.hex

860c_v13-v20.1c.5-1-860c-bootloader.bin

Can someone explain to me how to correctly set up or calibrate the torque sensor?

With my settings, I'm getting too high human wattage readings.

I also can't get the thumb throttle to work.

Thanks in advance.

Translated via Google Translate
 

Attachments

  • 20250605_213207.jpg
    20250605_213207.jpg
    1.7 MB · Views: 16
  • 20250605_211103.jpg
    20250605_211103.jpg
    1.8 MB · Views: 16
Back
Top