TSDZ2 OSF for all displays, VLCD5-VLCD6-XH18, LCD3, 860C-850C-SW102.

Last edited:
I added the choice of the fifth level position in the configurator, because with DZ41 it is before ECO, while with EKD01 it is after TURBO.

Choosing BEFORE ECO, the levels are in this order:
1-fifth, 2-ECO, 3-TOUR, 4-SPORT, 5-TURBO.
The fifth level assistance parameter is a % of ECO, so it must be less than 100.
The parameters setting must be done on levels 2 to 5.

Choosing AFTER TURBO, the levels are in this order:
1-ECO, 2-TOUR, 3-SPORT, 4-TURBO, 5-fifth
The fifth level assistance parameter is a % of TURBO, so it must be greater than 100.
The parameters setting must be done on levels 1 to 4.
 
Hi Embrusa,
I used your software on my wifes bike many years ago. Because of it my wife has been able to enjoy effortless cycling in all our countries national parks - a big thank you for that.
I am now considering fitting a TSDZ2 to my bike (My wife is now too fast for me). Can you point me to an uptodate step by step guide for installing your OSF. I have searched Github but I seem to end up in dead ends. The lack of dates on github pages is very frustrating as I never know if I am looking at the latest versions. Any assistance would be appreciated. Never underestimate the pleasure your software has given to so many - Thank you
 
Last edited:
Hi Embrusa,
I used your software on my wifes bike many years ago. Because of it my wife has been able to enjoy effortless cycling in all our countries national parks - a big thank you for that.
I am now considering fitting a TSDZ2 to my bike (My wife isnow too fast for me). Can you point me to an uptodate step by step guide for installing your OSF. I have searched Github but I seem to end up in dead ends. The lack of dates on github pages is very
frustrating as I never know if I am looking at the latest versions. Any assistance would be appreciated. Never underestimate the pleasure your software has given to so many - Thank you
Are these helpful?
 

Attachments

  • TSDZ2 Motor Controller Firmware Programming - Eco Cycles.pdf
    2.5 MB · Views: 27
  • 860C Display Bootloader for Firmware Programming - Eco Cycles.pdf
    1.9 MB · Views: 13
Hello, I've been using the OSF for two months on my old tsdz2, which is almost five years old.
I've tried the hybrid, eMTB, and Torque modes (the Power mode is similar to the mode without OSF if I understand well).
For my 100% MTB use, my favorite is the Torque mode. It seems to consume less battery and is more efficient at low cadences; it's excellent for trials sections.Do you have the same experience?
 
I have two mullet mountain bikes 27.5f-26r & 29f-27.5r with 36V TSDZ2 mid-drives, both are running OSF covering between them 4500miles, my latest is a 29f-29r / 27.5r mountain bike with a 48v TSDZ2(B) which as previous I increased by 20% the Power and Torque Assist Mode values to give me the same feel as on my other bikes, along with Hybrid, so far on this bike have hit just over 1200 miles.
 
Last edited:
Hello, I've been using the OSF for two months on my old tsdz2, which is almost five years old. I've tried the hybrid, eMTB, and Torque modes (the Power mode is similar to the mode without OSF if I understand well).

For my 100% MTB use, my favorite is the Torque mode. It seems to consume less battery and is more efficient at low cadences; it's excellent for trials sections.Do you have the same experience?
I use Hybrid for 100% pavement riding.. Didn't like Power mode. E_mtb would be second choice. My wife uses cadence mode. Effortless pedalling for her.
 
Hi all - finally got around to attempting to flash the OSF firmware to my working APT 860C UART display. Prior to flashing, the display powered up fine, showing the stock APT firmware.

Label on the back of the display:
860C 1.3G04A60 LOM4.50
V5.8 20241130034

I used the official APT USB bootloader connected to my Surface 4 running Windows 10 and the APT Burn Tools v1.3 and serial drivers installed as required. The flash process of 860C_v13_v20.1C.5-bootloader.bin went as expected, finishing at 100% after about 30 seconds or so. Great, or so I thought.

End result: just like my previous 860C display. It won't power up. I can, however, re-flash it.

What's odd is my previous 860C display was already running the OSF firmware, just an older version and needed an upgrade. I figured that original well-weathered and sun-cooked display just coincidentally fried during my upgrade attempt, so I ordered a shiny new display (860C UART). Now I get the exact same behavior: post flash, display won't power up, but can re-flash all I want.

For reference, label on the back of my previously working with OSF display:
P860C V1G0360 AKSM1.0
V5.2 202110140288

To be clear, neither display will power up post-flash. I can re-flash all I want, though.

If I had the stock APT firmware, I would attempt to install that. How strange that this happened twice now.

Questions:
  • Is the flash loader on the display completely independent of the flashed firmware? (i.e. could a bad flash or even incorrect firmware still allow loading a new flash?)
  • Am I attempting to flash the wrong firmware altogether? (860C_v13_v20.1C.5-bootloader.bin)
  • Are these displays just that fragile that any attempt to re-flash can easily result in bricking?
Thanks for any input and things to try.

I'm quickly approaching the event horizon on this where it all ends up in a landfill / recycler. That would be unfortunate, but I have to cut my losses at some point.
 
Hi Embrusa,
I used your software on my wifes bike many years ago. Because of it my wife has been able to enjoy effortless cycling in all our countries national parks - a big thank you for that.
I am now considering fitting a TSDZ2 to my bike (My wife is now too fast for me). Can you point me to an uptodate step by step guide for installing your OSF. I have searched Github but I seem to end up in dead ends. The lack of dates on github pages is very frustrating as I never know if I am looking at the latest versions. Any assistance would be appreciated. Never underestimate the pleasure your software has given to so many - Thank you
The 860C version, where you also have to flash the display, is more demanding.
But the stock display version is easier.
You can find all the necessary information in the Java Configurator manual.
 
Hello, I've been using the OSF for two months on my old tsdz2, which is almost five years old.
I've tried the hybrid, eMTB, and Torque modes (the Power mode is similar to the mode without OSF if I understand well).
For my 100% MTB use, my favorite is the Torque mode. It seems to consume less battery and is more efficient at low cadences; it's excellent for trials sections.Do you have the same experience?
I'll tell you about my experience.
I started cycling and getting interested in OSF 5 years ago.
As an amateur cyclist, I pedaled at a cadence of 50/60. I started with @marcoq version in eMTB mode (which was different from the current one), it was fine for my needs at that time.
When I adopted the OSF 20-beta-1 version of @buba, I didn't feel comfortable, I didn't like the new eMTB, not even Torque and Power satisfied me. So I tried to restore the Boost function at startup that @buba had eliminated. A disaster, unusable.
I had to find another solution.
The first idea was the Hybrid mode, it worked, I used it for a few months with satisfaction, until I came up with the right idea for Startup boost.
If I had immediately found the solution for Startup boost, there would have been no Hybrid mode.
Since then I have only used the Power mode with Startup boost enabled, for me the best.
Startup Boost, is not only an aid to starting, it also allows you to modify the response curve of the torque sensor with respect to the cadence. You can see it in the Startup_boost.xls graph.

On my bikes I then replaced the standard chainring with a 30T one and I learned to pedal at a higher cadence 80/90, I noticed that I struggle less and the motor has a better efficiency, it heats up less and has a greater autonomy.
 
Hi all - finally got around to attempting to flash the OSF firmware to my working APT 860C UART display. Prior to flashing, the display powered up fine, showing the stock APT firmware.

Label on the back of the display:
860C 1.3G04A60 LOM4.50
V5.8 20241130034

I used the official APT USB bootloader connected to my Surface 4 running Windows 10 and the APT Burn Tools v1.3 and serial drivers installed as required. The flash process of 860C_v13_v20.1C.5-bootloader.bin went as expected, finishing at 100% after about 30 seconds or so. Great, or so I thought.

End result: just like my previous 860C display. It won't power up. I can, however, re-flash it.

What's odd is my previous 860C display was already running the OSF firmware, just an older version and needed an upgrade. I figured that original well-weathered and sun-cooked display just coincidentally fried during my upgrade attempt, so I ordered a shiny new display (860C UART). Now I get the exact same behavior: post flash, display won't power up, but can re-flash all I want.

For reference, label on the back of my previously working with OSF display:
P860C V1G0360 AKSM1.0
V5.2 202110140288

To be clear, neither display will power up post-flash. I can re-flash all I want, though.

If I had the stock APT firmware, I would attempt to install that. How strange that this happened twice now.

Questions:
  • Is the flash loader on the display completely independent of the flashed firmware? (i.e. could a bad flash or even incorrect firmware still allow loading a new flash?)
  • Am I attempting to flash the wrong firmware altogether? (860C_v13_v20.1C.5-bootloader.bin)
  • Are these displays just that fragile that any attempt to re-flash can easily result in bricking?
Thanks for any input and things to try.

I'm quickly approaching the event horizon on this where it all ends up in a landfill / recycler. That would be unfortunate, but I have to cut my losses at some point.
If you had the same experience with two displays
something went wrong.
You wrote that before flashing, the display turned on correctly.
But connected to the motor or connected to the bootloader box?
After flashing, did you try to turn it on in both conditions?
I can only suggest you to check if the voltage that reaches the display is correct.

The bin file you used is correct.
The display must still turn on, then if on the controller, it does not find a compatible version of OSF, the boot screen with the error message remains.
 
something went wrong.

Mr.mbrusa, Is everything ok in 20.1C.6(Master) with that parameters?
1744304078923.png

Because I don't feel the assist directly from the start by pushing pedal(wife's bike with ver.TSDZ2-v20.1C.6 (EKD01)... tried 15 and 25 values.

In the Manual we have 2 fields
1744304236808.png
I understood that you put 2 in 1?

P.s. brake sensors are connected and enabled
1744304372542.png
 
Last edited:
If you had the same experience with two displays
something went wrong.
You wrote that before flashing, the display turned on correctly.
But connected to the motor or connected to the bootloader box?
After flashing, did you try to turn it on in both conditions?
I can only suggest you to check if the voltage that reaches the display is correct.

The bin file you used is correct.
The display must still turn on, then if on the controller, it does not find a compatible version of OSF, the boot screen with the error message remains.
Yes, I agree something went wrong - perhaps in the toolchain for flashing. So... one thing that sticks out like a sore thumb: the APT Burn 1.3 program I have appears to have memory leaks. When I click on the button [ ???? Open Port ], its text label changes to some garbled text like this [ `øeû®p Close Port ].

Maybe I have a bad copy of the APT Burn utility. If it's corrupting its own UI text labels, then certainly it is possible it could also corrupt the firmware as it reads it from the file or transmit to the device.

Where might I find a known good copy of the utility?

Thanks for your help! I hope to get this bike up and running again as the OSF software has been so great.
 
ok I've got this working on my puter....
and I've got a 48v motor on a bike with VLCD5 that has been sat there for > 2 years.....
I was a tart and bought a 'ready made bike' in the sales over a year ago.....and I luv it lol
anyways, NOT got a 48v battery (got some 21700 cells but not worked out a diy battery yet) so can I use a 36v battery to get it up and running?
cheers
 
The proven setting has in power mode on the turbo setting a max power of 260 watts is that necesary to keep it from overheating or is that realy conservative?
 
The proven setting has in power mode on the turbo setting a max power of 260 watts....
The assist levels aren't power levels, but percentages of motorassist.
Turbo highest level gives 260% from your effort.
You can set it max. 500%, but the power will be limited by max. power you set in "basic settings"

So if you push with 150W on the pedals, your power with 260% will be 390W, with 100W push it will be 260W
If your max. power is set 500W (preset too) and your assist turbo setting 500%
With 150W push, the power should be 750W, but will be 500W and with 100W push it will be 500W too.

From the configuration manual:
"Set assistance levels according to your needs. Values in percentages, maximum 500%.
For example, applying 100 Watt to the pedals, with 300% assistance, the motor delivers 300 Watt.
These assistance parameters are also used in the high-cadence hybrid mode."
 
Last edited:
The joy did not last long... Today I flashed the ver. TSDZ2-v20.1C.6 (860C/SW102). ... and now my SW102 got
"Wait TSDZ2" msg:
1744344519260.png
After flashing back previous (which was working almost exelent before) ver.TSDZ2-v20.1C.2 ver(VLCD5). - the msg didn't gone(((
(the firmware process completed as usual in both cases "ok, ok, verified" etc.)

I checked the cables - everything is connected... and I've never disconnected the display cable, it's almost new, I've driven about 200km...
p.s. after 1-2 minutes of waiting the "Wait TSDZ2" message changes to "..e: brakes"...
pls help..( what else I can check?

of motorassist.
it should be changed :D
 
Last edited:
You are confusing me.
There is no v20.1C.6 version for 860C-SW102.
The latest version for those displays is v20.1C.5-update-1.
The configurator should not be used and the motor should be flashed with ST Visual Programmer.

The v20.1C.6 version is only for stock displays with Tonsheng protocol.
The configurator should be used for settings, compile and flash.

With 860C-SW102 displays make sure you have used the TSDZ2-v20.1C.5-update-1-860C.hex file on the motor.
If it still doesn't work, probably option_byte is corrupt.
Also try flashing option_byte.hex with ST Visual Programmer.
 
Yes, I agree something went wrong - perhaps in the toolchain for flashing. So... one thing that sticks out like a sore thumb: the APT Burn 1.3 program I have appears to have memory leaks. When I click on the button [ ???? Open Port ], its text label changes to some garbled text like this [ `øeû®p Close Port ].

Maybe I have a bad copy of the APT Burn utility. If it's corrupting its own UI text labels, then certainly it is possible it could also corrupt the firmware as it reads it from the file or transmit to the device.

Where might I find a known good copy of the utility?

Thanks for your help! I hope to get this bike up and running again as the OSF software has been so great.
The Apt Burn Tools labels are as you see them.
You just have to make sure at the end of the update, before unplugging the bootloader box, to click Stop update and Close port.
You didn't answer my question, have you tried turning on the display when it is connected to the bootloader box?
 
Mr.mbrusa, Is everything ok in 20.1C.6(Master) with that parameters?
View attachment 368628

Because I don't feel the assist directly from the start by pushing pedal(wife's bike with ver.TSDZ2-v20.1C.6 (EKD01)... tried 15 and 25 values.

In the Manual we have 2 fields

I understood that you put 2 in 1?
What assist mode are you using?
 
What assist mode are you using?
Power 💪

You are confusing me.
There is no v20.1C.6 version for 860C-SW102.
The latest version for those displays is v20.1C.5-update-1.
The configurator should not be used and the motor should be flashed with ST Visual Programmer.
I'm not very attentive)) but I try to read your instructions thoughtfully) Sorry)
P.s. I am using ST Visual Programmer only, because it did't work via Java Configurator(from my st link-dongle))
and I thought there was something like a Java Сonfigurator for 860C-SW102 too))

With 860C-SW102 displays make sure you have used the TSDZ2-v20.1C.5-update-1-860C.hex file on the motor.
If it still doesn't work, probably option_byte is corrupt.
Also try flashing option_byte.hex with ST Visual Programmer.

SO, I install the "base"/"clean" version ( TSDZ2-v20.1C.5-update-1-860C.hex), and then all settings are - through the display (SW102 or 860C)
Thank you very much for the explanation and your patience 🤝, today I will definitely try to install it!
 
Last edited:
Back
Top