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

I've just swapped the 36V 250W Bafang BBS01 motor on my handcycle for a 36V 250W Tongsheng TSDZ2B and much prefer the feel though going from an 850C to a VLCD5 display is a big step backwards.
Installing OSF TSDZ2-v20.1C.6-beta-0 and using hybrid mode makes riding even better but I was getting an E07 error when cranking through 25kph. I updated to the latest beta-1 today and they've gone. Using beta-0 I wasn't sure that the assist was cutting out at 25kph but that also seems to be fixed with beta-1.

There were a couple of issues getting the beta-1 to work, on Windows I had to create a 'tmp' directory in the 'tools\cygwin_64' directory to clear the errors reported during the 'Cleaning files...' phase.
I also had to comment the following line (84) of the 'Makefile' as this was stopping the compile from working.
cp $(ODIR)/$(PNAME).hex $(ODIR)/../$(PNAME).hex
 
I've just swapped the 36V 250W Bafang BBS01 motor on my handcycle for a 36V 250W Tongsheng TSDZ2B and much prefer the feel though going from an 850C to a VLCD5 display is a big step backwards.
Installing OSF TSDZ2-v20.1C.6-beta-0 and using hybrid mode makes riding even better but I was getting an E07 error when cranking through 25kph. I updated to the latest beta-1 today and they've gone. Using beta-0 I wasn't sure that the assist was cutting out at 25kph but that also seems to be fixed with beta-1.

There were a couple of issues getting the beta-1 to work, on Windows I had to create a 'tmp' directory in the 'tools\cygwin_64' directory to clear the errors reported during the 'Cleaning files...' phase.
I also had to comment the following line (84) of the 'Makefile' as this was stopping the compile from working.
cp $(ODIR)/$(PNAME).hex $(ODIR)/../$(PNAME).hex
Yesterday I deployed TSDZ2-v20.1C.6-beta-1, the compilation on windows 10 went without problems.
 
Not sure if it has been reported that the throttle isn't working with the latest versions. As I now got myself the SW102 display I installed "TSDZ2-v20.1C.5-860C" on my tsdz2b, and also updated the display to match. With the throttle enabled nothing happens when I use it. I also checked in the Technical menu under throttle which displays 0 when I press on the throttle. After a reboot the option gets changed back to disabled.

It's also the same for "TSDZ2-v20.1C.6-beta-0 VLCD5-VLCD6-XH18" as I did try that first with the EKD01 display. As that was the first time using OSF I just moved back to a stable version thinking it was just because it was beta still. So the throttle worked fine on "TSDZ2-v20.1C.2-update-3 VLCD5-VLCD6-XH18"

Guessing if I go back to last stable for 860c the throttle will work. I'm happy to test if needs be. Just now I'm use to using the motor I plan on removing the throttle anyway. However I'm happy to test fixes if you plan on fixing it.

Not sure if it makes a difference. I'm using the 1T4 cable for tsdz2/b to run the display.

I also want to thank you for all the great work you have done. The eMTB makes riding my bike crazy fun, and crazy fast.
 
Last edited:
This error:

>>> Programming PROGRAM MEMORY
(API) ERROR : Cannot communicate with the tool.
Wrong tool selection or check tool power supply or check that a previous session is closed.
<<< Programming PROGRAM MEMORY fails
I have the same error message. I did backup beforehand and it worked so the connection seems to be ok. Only the flashing process failed. What could cause this?
 
Not sure if it has been reported that the throttle isn't working with the latest versions. As I now got myself the SW102 display I installed "TSDZ2-v20.1C.5-860C" on my tsdz2b, and also updated the display to match. With the throttle enabled nothing happens when I use it. I also checked in the Technical menu under throttle which displays 0 when I press on the throttle. After a reboot the option gets changed back to disabled.

It's also the same for "TSDZ2-v20.1C.6-beta-0 VLCD5-VLCD6-XH18" as I did try that first with the EKD01 display. As that was the first time using OSF I just moved back to a stable version thinking it was just because it was beta still. So the throttle worked fine on "TSDZ2-v20.1C.2-update-3 VLCD5-VLCD6-XH18"

Guessing if I go back to last stable for 860c the throttle will work. I'm happy to test if needs be. Just now I'm use to using the motor I plan on removing the throttle anyway. However I'm happy to test fixes if you plan on fixing it.

Not sure if it makes a difference. I'm using the 1T4 cable for tsdz2/b to run the display.

I also want to thank you for all the great work you have done. The eMTB makes riding my bike crazy fun, and crazy fast.
I don't have a throttle, but with 860C virtual throttle works. Virtual throttle has the same permissions as the real one. So it should work. Are you sure you have enabled everything needed? With 860C-SW102, it must be enabled in the "Bike" menus and possibly in the "Street mode" menu, in the "Motor temperature" menu Feature must be set to Throttle, also in the "Torque sensor" menu Coast brake must be disabled (for safety).
 
I don't have a throttle, but with 860C virtual throttle works. Virtual throttle has the same permissions as the real one. So it should work. Are you sure you have enabled everything needed? With 860C-SW102, it must be enabled in the "Bike" menus and possibly in the "Street mode" menu, in the "Motor temperature" menu Feature must be set to Throttle, also in the "Torque sensor" menu Coast brake must be disabled (for safety).
Dam I missed the temperature one. Throttle is now working fine. Thanks.
 
Hi all, can you tell me what the problem could be, a friend when starting pedaling the motor runs normally, but if at the moment of movement stop pedaling and then start again, the motor just shuts down, the screen shows 0 power.
 
Hi @mbrusa;
is it possible to use an *.ini file I created with your Firmware ...C6-beta-0 and copy & use it with ...C6-beta-1?
Or are there any changes within the ini file structure or other incompatibilities?
As always - thank you!!
 
Hi @mbrusa;
is it possible to use an *.ini file I created with your Firmware ...C6-beta-0 and copy & use it with ...C6-beta-1?
Or are there any changes within the ini file structure or other incompatibilities?
As always - thank you!!
Hi @endlessolli.
The ini files of the 6-beta-0 and 6-beta-1 versions are identical, you can swap them without problems.
While the ini files of the 2.x versions are compatible, they can be used with the 6-beta-1 version, keeping in mind that the new parameters not present in the 2.x versions, are assigned default values, so they must be checked.
 
Hi all, can you tell me what the problem could be, a friend when starting pedaling the motor runs normally, but if at the moment of movement stop pedaling and then start again, the motor just shuts down, the screen shows 0 power.
Can you tell me what version you are using and if this happens often?
 
Hi, i'm trying to setup TSDZ2B with a 860C display, however my 860C is stuck on "Wait TSDZ" and then "error rx line" when it is powered on. I believe that this display can be prone to failures (removing battery power when switched on etc), but is there any other reset or diagnostic steps that i can take?

I'm using the latest firmware (TSDZ2-v20.1C.5-860C) from the repo. I beleive that the motor is flashed with latest firmware and working.

I have tried the following:
  • bought SW102 and flashed with latest firmware, display and motor works as expected
  • Tested motor with VLCD5 display and corresponding firmware and works as expected
  • Reflashed 860C with 860C_V13-v20.1C.5-bootloader.bin
  • Reflashed 860C with 860C_V13-v20.1C.5-beta-1-bootloader.bin
  • Swapped RX and TX lines (get error Error brakes or comms)
  • Reflashed motor options file with my backup, also tried with a copy of default from forum (option_stock.hex)
  • Tested display wired directly to the motor, not using the long display cable
  • 860c Display can be accessed with + & - and Power, menus and button all work as expected
  • 860c is giving 48V on the Vin line from display when powered up
Is there any way to test or simulate the motor so that i can test the RX and TX line of the display?

Thanks
 
Last edited:
Hi @endlessolli.
The ini files of the 6-beta-0 and 6-beta-1 versions are identical, you can swap them without problems.
While the ini files of the 2.x versions are compatible, they can be used with the 6-beta-1 version, keeping in mind that the new parameters not present in the 2.x versions, are assigned default values, so they must be checked.
I wanted to say thanks again. The C6beta1 runs reliable in my and my wife‘s bike since a couple 100km‘s.
I can recommend this to everyone: With the C6 versions our 2 Motors run notacibly quieter and seem even more agile than with C2 and prior versions.
Thanks @mbrusa. It is amazing how much you (together with prior work from other contributors) improved this little motor with your firmware!
 
May have been asked before, will the Enerpower DZ41 Display work with the latest TSDZ2 OSF.
 
May have been asked before, will the Enerpower DZ41 Display work with the latest TSDZ2 OSF.
As long the DZ41 does work with stock fw, it does too with the java version of osf.

But..... it could be that there are small differences with the known stock displays, so maybe you must experiment with some settings, like the choice of display or batteriebars.
 
OK will give it go, it is a UART TSDZ2 compatible unit, still to check if the controller is programmable. should be OK as this 48v TSDZ2B has a replacement controller from China.
 
...check if the controller is programmable. should be OK as this 48v TSDZ2B has a replacement controller from China.
The Tsdz2 controller hardware from Enerpower was always different and never programmable.
 
Elinx, many thanks, but brought the DZ41 from Amazon, the TSDZ2B was brought as a new returns unit with what ended as a blown up controller, brought a controller cheap off Alliexpress fitted it and it now works, will plug the laptop in a try programing it.
 
I wanted to say thanks again. The C6beta1 runs reliable in my and my wife‘s bike since a couple 100km‘s.
I can recommend this to everyone: With the C6 versions our 2 Motors run notacibly quieter and seem even more agile than with C2 and prior versions.
Thanks @mbrusa. It is amazing how much you (together with prior work from other contributors) improved this little motor with your firmware!
Yes, the new version works really well, still some small details to fix, but I'm satisfied.
You already wrote it, a big thank you also to all the other developers who contributed to the project,
 
Hi, i'm trying to setup TSDZ2B with a 860C display, however my 860C is stuck on "Wait TSDZ" and then "error rx line" when it is powered on. I believe that this display can be prone to failures (removing battery power when switched on etc), but is there any other reset or diagnostic steps that i can take?

I'm using the latest firmware (TSDZ2-v20.1C.5-860C) from the repo. I beleive that the motor is flashed with latest firmware and working.

I have tried the following:
  • bought SW102 and flashed with latest firmware, display and motor works as expected
  • Tested motor with VLCD5 display and corresponding firmware and works as expected
  • Reflashed 860C with 860C_V13-v20.1C.5-bootloader.bin
  • Reflashed 860C with 860C_V13-v20.1C.5-beta-1-bootloader.bin
  • Swapped RX and TX lines (get error Error brakes or comms)
  • Reflashed motor options file with my backup, also tried with a copy of default from forum (option_stock.hex)
  • Tested display wired directly to the motor, not using the long display cable
  • 860c Display can be accessed with + & - and Power, menus and button all work as expected
  • 860c is giving 48V on the Vin line from display when powered up
Is there any way to test or simulate the motor so that i can test the RX and TX line of the display?

Thanks
You have already tried everything that could be tried.
I fear that this 860C is damaged.
You could try, if you have an oscilloscope, to analyze the data on the TX and RX lines.
 
I have 860c display with last software on a tsdz2 motor.
My voltage percentage in the upperleft of the display does not
match the voltage of my battery. I know one is in percent and the other is in volt, but when i have 45 volts, i have 0 % on the display. My cut off voltage is 38 volts since i have 48 v battery. Is there a way to have the upper left display show 0 % at 38 volts and 100 % at 54 volts at full charge.
 
I have 860c display with last software on a tsdz2 motor.
My voltage percentage in the upperleft of the display does not
match the voltage of my battery. I know one is in percent and the other is in volt, but when i have 45 volts, i have 0 % on the display. My cut off voltage is 38 volts since i have 48 v battery. Is there a way to have the upper left display show 0 % at 38 volts and 100 % at 54 volts at full charge.
In the SOC menu, the Calculation item is set to Auto by default (recommended).
So the % does not indicate the voltage but the residual battery capacity, calculated with the used Wh.
To obtain an accurate %, a calibration is recommended.
Enter the nominal battery capacity in "Battery total Wh", then with a charged battery, discharge it (almost) completely, read the value of "Used Wh" and enter it in "Battery total Wh", in this way the % will be very accurate regardless of the voltage.
It is possible (but not recommended) to set SOC->Calculation to Volts, in this case the % is calculated with reference to the voltage, however it is less accurate than that calculated with Wh, the values are acceptable between 80% and 20%, outside this range the error can be very high.
The % is calculated between the values of "Reset at
voltage" and "Low cut-off".
However, consider that there is no linear correspondence between the % and the voltage. The calculation uses the discharge table of Lion Panasonic GA cells, other cells may have different curves.
Also keep in mind that with a discharged battery the voltage will never reach the “Low cut-off” value (in your case 38 Volts).
Without load, the voltage will be at least 2 or 3 Volts more.
 
Hi,
I am currently converting another bike with tsdz2b and wanted to install OSF on it (VLCD6).
The first time the programming worked (latest git), but in the VLCD6 menu I always had to switch the light on and off again (E02 flashing) in “no support” mode, i.e. zero bars, in order to get into offroad mode.
I was then able to switch to offroad mode in mode 1, i.e. 1 bar, by switching the light on and off. However, after the engine was switched on and off, I had to carry out this procedure again. So I switched the light on and off in mode 0 and then switched the light on and off in mode 1.
I then tried to save the setting in mode 0, but I can't remember exactly what I pressed on the display. In any case, I now have a problem:
As soon as I switch on the display, it now only shows a battery bar (when the battery is fully charged) and I get neither the km/h nor any assistance from the motor.
I have now tried to reflash the firmware (with the default settings), but I get errors when flashing:
(API) ERROR : Error on Option Bytes (complementary bytes). Reprogram Option Bytes of device
<<< Programming PROGRAM MEMORY fails

Have I somehow bricked the controller?

Edit:
Ok, I programmed an old stock option byte hex with ST Visual Programmer onto the controller and than the flashing to OSF worked again! So the problem is fixed.
 
Last edited:
There's something up with OSF and wiping/ corrupting option byte. I had the same as the poster above me other than I didn't make any changes or programing. In fact everything been good since I last posted. Just, I went to go out yesterday to find the dreaded long wait and then e: brakes message on my SW102. I also tried my EKD01 with the error 03 which is also communication/connection fault. As it has been mentioned before in posts that it could be damaged/ bad wiring I bought new cable to find the same problem. Then I seen the post above me and went to read option byte in STVP but got an error saying "option bytes (complementary bytes). Reprogram option bytes of device" so I did. Now everything is up and running again.

I seen someone mention that OSF doesn't program that part. Even so it dose make changes to it once you power up the motor. My stock backup has AFR3 = part as TIM_BKIN, OSF changes it at every boot to TIM_CH2. Guessing that only works if it's there in the first place. Seems to need a working option bytes before it can alter it. I say every boot as I just read it after booting up the motor, it's back to TIM_CH2 even though I used my stock backup to get it working again. It's a value of 00 00 20 00 00 00 00 00 00 vs stock 00 00 28 00 00 00 00 00 00.
 
Back
Top