• Howdy! we're looking for donations to finish custom knowledgebase software for this forum. Please see our Funding drive thread

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

Have you got the correct graphics drivers installed?
Also have a look here, just check the "How to install OpenJDK" to make sure that all the libraries etc are installed. I have used Ubuntu for years and sometimes it has been a bit hit and miss getting everything to work. My bug at the moment is the latest VMplayer which doe's not like my current version of Ubuntu which is 22.04.4 LTS so have used Virtualbox instead.

 
If you used a deb package for installation you can check the dependencies etc using the following command, just replace package with the deb file name in the terminal. Just click on "activities" top left, then middle top in "type to search" put in terminal.
$ dpkg -I package.deb
 
PS Not an expert with Ubuntu, just played with it for years, prefer it to Windows.
 
Sorry, actually looked at the tar.gz file to see it is a build and compiling job, just look at the graphics driver in the first instance, it if your have a genetic driver or nvidia etc drivers installed.
 
mbrusa, great, had similar problem with Google Earth, Ubuntu is great, but one picks up these little nuggets of information as one uses it. I keep a text file with all these bits of information for future reference. The other thing I like is that I can reinstall it in approx twenty minutes by keeping the "Home" folder on a separate drive. Early days with Linux that was a godsend.
 
Hi all,

Yesterday i managed to communicate with my new controller (i'm using ST link v2 clone). I successfully uploaded emmebrusa firmware 20.1C.2-update-3 (settings on image). after that i turned on display 850C (tsdz protocol) and i got 30H error that does not want to go away, i have then connected old controller and error is still there. I tried to upload default 48v settings to the new controller, but no success.

Wires seems to be ok. I haven't checked the continuity with multimeter yet though. i do not know what is wrong with it, Is that possible that bricked the display while flashing new firmware?


another question is regarding my old controller, i managed to flash it few times in the past with the same emmebrusa firmware, and it works, however i was no longer able to communicate with it (that is why i bought new one, as i wanted to install cooling mod but i could not play with setting anymore). There is 0v on GDN and SWIM. is there any way to fix it so i can communicate with it again?
Or at least is it possible to read out current settings somehow?

best regards,

EDIT: i checked the wires with multimeter, all 6 pins are OK


Zrzut ekranu 2024-05-22 171210.pngZrzut ekranu 2024-05-22 171230.png
 
Last edited:
I bought this item: https://www.aliexpress.com/item/1005006139674088.html
I made sure it had Bafang UART in the name.
It is hardware version 1.3 and I was able to flash it using the bootloader method. Works great.
Thanks for the info¡¡
I´m willing to install OSF in my tsdz2 coupled with a 860C display but I can´t manage to find the "bootloader method". Could you please point me in the right direction? 😅
Thanks in advance and best regards
 
I am not the expert but I believe 30H is comm error, meaning display and controller can't talk which is usually a connection or cable issue between them, I hope not a brick job. I would recheck the wiring, if it worked originally it should still work. I have been programing my spare bagged up controller purely with the (ST link v2 clone) programming cable plugged into it and my laptop and yes nothing else, it's the four wire configuration using the 5v pin.

Have you answered your own question if you cannot communicate with the controller(s) via the programming cable.

Boot loader method Release Firmware open source TSDZ2-v20.1C.5-beta-1-860C · emmebrusa/TSDZ2-Smart-EBike-860C
 
Last edited:
I am not the expert but I believe 30H is comm error, meaning display and controller can't talk which is usually a connection or cable issue between them, I hope not a brick job. I would recheck the wiring, if it worked originally it should still work. I have been programing my spare bagged up controller purely with the (ST link v2 clone) programming cable plugged into it and my laptop and yes nothing else, it's the four wire configuration using the 5v pin.

i have disconnected everything and connected again. when i moved wires on the controller 30H disappeared. i was able to check some settings. i tried walk assist, i hold motor running for about one min. (it was running slow) then it suddenly stopped, display switched off itslef and that was it.... can't turn it back on. dead. controller was a bit warm in touch.
what is intresting it still connects with st link.

so now i have to controllers, old one that can't be flashed anymore but still works (30H also gone) and new one that does not work but can be flashed...

it looks like 850c + tsdz2 + OSF does not work for me. i have had problems with this set up since begining ;/

i've lost hope that i will ever get what i want.
 
Did you buy a pre programed 850c with the tsdz2 as a set or as separate items as I believe the 850c is possibly no longer compatible. See following quote "If you're using an 850c that already uses the Tsdz2 protocol you can use the emmebrusa's fork of OSF. This allows you to keep your 850c as is and just need to flash the motor firmware. 850c if I recall isn't compatible with latest OSF nowadays due to not having enough memory for the newer display firmware, if you wanna also use OSF as the display, 860c is usually the recommended screen (the one I also use)." Could you try the controllers with a standard display if you have one that uses the OSF.
 
Did you buy a pre programed 850c with the tsdz2 as a set or as separate items as I believe the 850c is possibly no longer compatible. See following quote "If you're using an 850c that already uses the Tsdz2 protocol you can use the emmebrusa's fork of OSF. This allows you to keep your 850c as is and just need to flash the motor firmware. 850c if I recall isn't compatible with latest OSF nowadays due to not having enough memory for the newer display firmware, if you wanna also use OSF as the display, 860c is usually the recommended screen (the one I also use)."
It was a set from PSWpower. Back then i did not know that there are two different versions of 850C, the one from Tongsheng with their protocol and the Bafang one. I Thought i'm buying Bafang display, so the plan was to flash it with Casainho firmwere. Then turned out i got the one with TSDZ protocol.
no longer compatible
i'm confused because github page states that:

"This fork is based on the TSDZ2-v0.20beta1 adapted for Tongsheng protocol displays, like stock VLCD5, VLCD6, XH18 or other displays with the same protocol and 6-pin Tonsheng connector, SW102, DZ41 from Enerprof or 850C for TSDZ2. With these last displays, the visualization of data and errors must be checked..

Could you try the controllers with a standard display if you have one that uses the OSF.
like VLCD5? i can get one from my friend.

Do you suggest that controller could come back to live with standard display? i mean it is still flashable but when plugged in nothing happens as if it was dead.
 
Thanks for the info¡¡
I´m willing to install OSF in my tsdz2 coupled with a 860C display but I can´t manage to find the "bootloader method". Could you please point me in the right direction? 😅
Thanks in advance and best regards
Hi,
There are some old instructions here:


And I found the Apt Burn Tools here: Apt-Burn-Tools V1.4.exe
 
If the controller is dead it's dead, myself I would try the OSF for the VLCD5 on it before throwing it just to satisfy myself and also to prove it is taking the programing correctly with no errors or even just put the standard firmware on it.
 
It was a set from PSWpower. Back then i did not know that there are two different versions of 850C, the one from Tongsheng with their protocol and the Bafang one. I Thought i'm buying Bafang display, so the plan was to flash it with Casainho firmwere. Then turned out i got the one with TSDZ protocol.

i'm confused because github page states that:

"This fork is based on the TSDZ2-v0.20beta1 adapted for Tongsheng protocol displays, like stock VLCD5, VLCD6, XH18 or other displays with the same protocol and 6-pin Tonsheng connector, SW102, DZ41 from Enerprof or 850C for TSDZ2. With these last displays, the visualization of data and errors must be checked..


like VLCD5? i can get one from my friend.

Do you suggest that controller could come back to live with standard display? i mean it is still flashable but when plugged in nothing happens as if it was dead.
By purchasing the 850C display (Tonsheng protocol, 6-pin connector) in a complete motor kit, it works with the latest OSF version for stock displays.
I have had confirmation from other users.
Purchased separately, I can't guarantee this, although all Tonsheng protocol displays should work, perhaps with some limitations.
There are some precautions to follow.
Always flashes when the display is off.
Never disconnect the display connector with the display turned on. The display may be damaged.
It is possible to connect a different display to the controller than the one chosen in the configurator, the motor still works, there could only be problems in displaying the data and errors.
 
Last edited:
Update to my post #2078 regarding the "Cleaning failed" error message.
The problem is resolved. There was an incorrect TSDZ2 open-source firmware loaded on my laptop which had missing files. Fixed now and the controller has been flashed successfully.
Hello I'm experiencing the same issue. I flashed the motor with an older version of the configurator with success. Then I updated the configurator to the "update 3" version and now getting the cleaning failed error. How did you fix yours?
 
Hello I'm experiencing the same issue. I flashed the motor with an older version of the configurator with success. Then I updated the configurator to the "update 3" version and now getting the cleaning failed error. How did you fix yours?
If you use win32, you need to replace some files w/ the 32bit versions (which are available in a zip folder). I am not at my PC, so can not give you the location. Maybe sesrch for zip files within the github download. Good luck
 
Hello I'm experiencing the same issue. I flashed the motor with an older version of the configurator with success. Then I updated the configurator to the "update 3" version and now getting the cleaning failed error. How did you fix yours?
It is in the Wiki: "With 32-bit Windows systems, replace the files in the \tools\cygwin\bin folder with those in the bin_32.zip file."
In the next release I added a 32 or 64 bit system check, to choose the corresponding version of cygwin.
 
Last edited:
Hi mbrusa,

There is some serious magic going on with 20.1C.5-beta-1-860C... I've seen my energy consumption going down, and I even had to reduce my assist levels a little ! The motor also seems to be less struggling at high cadence and everything feels smoother... I assume this is due to mspider65's v15.. Would you mind explaining some of it ? I'm amazed that years later, there are still improvements that can be made on this motor/firmware !

Also, there is one option I still don't really understand : the 'Torque range adj'.. What is that amplification of the range exactly, and how to use it ? The manual says : "The range value is fixed at 160 (133 with 0, 186 with 40)". So let's say I have a range of 140, should I set it at around 8 ? And what would this do ?

One last thing : the new "smooth start" feature... I assume this is a sort of opposite of the startup boost, in order the protect the drivetrain when starting from zero speed. Does that mean it should not be used together with the startup boost ? (unless maybe the startup boost is used at zero cadence instead of zero speed).
Edit : I didn't realize the startup boost is for power mode and smooth start for torque/hybrid mode..
 
I have a TSDZ3 + VLCD5 running OSF version 1-20.1C.2-update-3. The OSF is running great and is a tremendous improvement over the stock firmware. However, I have an issue with the state of charge (soc%) displaying a nonsense value.

At first, with a freshly charged battery, the VLCD5 would show a soc% of 62.4 when booting up. Then I realized that I accidentally set the units in the Java Configurator to km/h, while I have the VLCD5 set to miles/h. As a quick test, I changed the VLCD5 units to km/h, and sure enough, the soc% now displayed 99.9, an increase matching the 1.6X km-to-miles conversion factor.

I prefer to read miles/h on the display, so I updated both the Java Configurator units and the VLCD5 units to miles/h and reflashed the firmware to the motor. Now, with a freshly-charged battery, the VLCD5 displays a soc% of 10.1. I tried lowering the Reset SOC voltage to a full volt below the full charge value in case the soc% wasn't resetting, but it still displays 10.1. If I change the units on the VLCD5 and the configurator back to km/h, the soc% will again properly display 99.9, with the same battery.

Any idea what's going on? Soc% seems to display properly in km/h, but not in miles/h on my VLCD5. I'm stumped. Thanks in advance!
 
I think that in addition to changing from km/h to miles/h, you also enabled "Set parameter on startup".
With "Set parameter" enabled, when the lights are turned on, the status of the first parameter to be modified is displayed (10.1 is a likely value).
Only after 5 seconds is Soc% displayed.
If you want to see Soc% immediately when you turn on the lights, you need to disable "Set parameter on startup".
 
Hi mbrusa,

There is some serious magic going on with 20.1C.5-beta-1-860C... I've seen my energy consumption going down, and I even had to reduce my assist levels a little ! The motor also seems to be less struggling at high cadence and everything feels smoother... I assume this is due to mspider65's v15.. Would you mind explaining some of it ? I'm amazed that years later, there are still improvements that can be made on this motor/firmware !

Also, there is one option I still don't really understand : the 'Torque range adj'.. What is that amplification of the range exactly, and how to use it ? The manual says : "The range value is fixed at 160 (133 with 0, 186 with 40)". So let's say I have a range of 140, should I set it at around 8 ? And what would this do ?

One last thing : the new "smooth start" feature... I assume this is a sort of opposite of the startup boost, in order the protect the drivetrain when starting from zero speed. Does that mean it should not be used together with the startup boost ? (unless maybe the startup boost is used at zero cadence instead of zero speed).
Edit : I didn't realize the startup boost is for power mode and smooth start for torque/hybrid mode..
Hi Yanis.
Yes, the new version actually works very well, consumes less and operates very smoothly and regularly up to high cadence.
The main merit is the mspider65 v15 version, but it's not just a copy/paste, I changed something.
When I have more time, I'll explain in detail.

With calibration, the torque sensor range, whatever value it has, is remapped to 160, 'Torque range adj' allows you to change this value.
What is it for?
I'll give you an example, you wrote that you had to reduce all levels of assistance.
If you decreased 'Torque range adj', it is equivalent to decreasing all levels in all modes, changing only one parameter.

As for "Smooth start" you already understood., it is the opposite of "Startup boost".
"Startup boost" applies only to Power mode, while "Smooth start" applies to Hybrid and Torque, and also to Cadence mode.
In Cadence mode, I consider the assistance parameter equivalent to "Pedal torque delta", therefore the same functions can be applied.
 
I think that in addition to changing from km/h to miles/h, you also enabled "Set parameter on startup".
With "Set parameter" enabled, when the lights are turned on, the status of the first parameter to be modified is displayed (10.1 is a likely value).
Only after 5 seconds is Soc% displayed.
If you want to see Soc% immediately when you turn on the lights, you need to disable "Set parameter on startup".
Thank you, @mbrusa, for your quick response. I did experiment with the "Set parameter on startup" setting a few weeks ago, but I decided to turn it off. I double-checked this morning, and this setting is unchecked in my configuration. I also verified that when I turn on the light, I only see two values: the 10.1 displays first, and then five seconds later, the battery voltage is displayed (which is correct--in my case, 40.9 volts for a fully-charged 36-volt battery).
 
Hi there guys, I am thinking now of having a go at reprogramming a Bafang 860c display to go with a TSDZ2 drive. Simple question what do I need to program the display and how, happy to make the adapter etc, seen this Release Firmware open source TSDZ2-v20.1C.5-beta-1-860C · emmebrusa/TSDZ2-Smart-EBike-860C and have a copy of this Apt-Burn-Tools V1.4.exe but it's a case of putting the two together. Many thanks all.
My Boardman MTB with the VLCD5 and TSDZ2 OSF upgrade on it is running great but would like to try the 860C on my other Boardman MTB which has a VLCD13 on it as the 860C will give me more options.
 
Thank you, @mbrusa, for your quick response. I did experiment with the "Set parameter on startup" setting a few weeks ago, but I decided to turn it off. I double-checked this morning, and this setting is unchecked in my configuration. I also verified that when I turn on the light, I only see two values: the 10.1 displays first, and then five seconds later, the battery voltage is displayed (which is correct--in my case, 40.9 volts for a fully-charged 36-volt battery).
@mbrusa, I've been using my VLCD5 with the wheel diameter set to "26" in the hidden settings, which is the actual diameter of my bike wheels. Per your manual, I tried setting it to the largest diameter available for better display resolution, which would be "30." Now, the Soc% is displayed as 9.9 with a full charge instead of 10.1. The battery voltage continues to properly read 40.9.

I just went for a 10-mile ride in Turbo mode and drained a couple of bars from the battery indicator. When I returned, I turned on the lights and checked the Soc%. Now it says 6.5. I believe that is actually 65%, off by a factor of 10. The Watt-hours consumed is displaying 11.8. I believe that should be 118 Watt-hours, also off by a factor of 10. My battery capacity is configured as 374 Wh, and the battery capacity calibration is set to 90%. So if the Soc is 65%, that means 35% was consumed. 374 Wh * 90% calibration * 35% consumed = 118 Wh consumed.

It looks like the Soc% and Wh consumed are being displayed at 1/10th their actual value?

[EDIT]

This is strange. I just reflashed the controller, toggling the "Set parameters on startup" from ON to OFF, and now the Soc% appears to be scaled correctly (not off by a factor of 10). The Wh consumed is still displaying at 1/10th its actual value, but now I realize that must be intentional due to the limitation of the VLCD5 display, which can only go up to 99.9 while Wh consumed will normally be over 100 (so 118 Wh will be displayed as 11.8).

One thing I noticed when I returned to the Configurator is that I was only getting four fields for the Cell Voltage in the Advanced tab; the VLCD5 should have six fields for the six-bar battery indicator. So I toggled the display type to VLCD6 and then back to VLCD5, and then the group of six Cell Voltage fields were activated again. That was the only other setting I changed before flashing.

I hope this information is useful. Thank you.
 
Last edited:
Back
Top