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

I just wanted to say thanks again - the newest f/w runs flawless on my & my wife's bike since a couple 100km's.
Also, parameters showing at startup and during 'lights on' are now consistent and correct.
Thank you @mbrusa !
 
Is it software or hardware problem? Disconnecting brake sensor doesn't fix the problem ?
See this post from mbrusa TSDZ2 OSF for all displays, VLCD5-VLCD6-XH18, LCD3, 860C-850C-SW102.

Hardware problem, i.e. the brake sensor or magnet alignment somehow moved relative to each other such that the brake signal was always active. Working the brake lever had no effect on a signal that's already active. There was no error message. I spent an hour or 2 trying different things none of which worked. Finally noticed the brake cutout symbol (top middle of display), grabbed the brake sensor magnet, jiggled it and voila!, the frozen display cleared itself and everything worked as it should. I repositioned the magnet with new double sided foam adhesive tape so it's less "hair triggered".
 
It is a hardware feature of the TSDZ2 controller.
If the brake sensors are active at power on, communication between the controller and the display is inhibited, nothing works.

With the stock displays (VLCD5, VLCD6, XH18) no message is displayed, it is not provided for in the displays and, since there is no communication, it is not possible to send it from the controller.
You can only notice it from the zero SOC bars and the fact that there is no assistance.

Some more recent stock displays, of Bafang origin, show err30, communication problem. But it is provided for in the display firmware.

The version for 860C displays being programmable, the message "Error brakes or comms" is provided.

With LCD3 no message is provided, the system stops at the boot screen.
In theory a message could be added, but I have no plans to continue development for this display.
Also, the memory is full, there is no space available for any changes.

Thanks for the explanation! So the LCD3 display can not be further developed!

Which display would you recommend I switch to? I'd prefer one that's easy to configure, with a good user manual.
 
I have TSDZ2B with 860C firmware ver 0.20.1c-4 and TSDZ2 firmware 0.21.4. I’ve been running this for several years and love the motor and display, but the firmware has two nagging problems…. The clock does not stay set at correct time and the trip distance and trip time randomly reset to zero during a ride.

I’d love to install new firmware if it would fix these two problems but I don’t want to cause more trouble than it's worth. I would need very detailed step-by-step instructions on how to update the firmware because I'm computer challenged.

Questions… Will newer firmware solve my two problems? Is there a good detailed write-up on how to update firmware? Is it risky to update firmware or should I just live with what I have?
 
I wrote that for me, the cadence mode is an emergency mode, but I don't mean that it should be for everyone.
Everyone uses it as they see fit.

Even if it's a mode that I don't use, it must work well, that's why I modified it, and I will continue if necessary.
Compared to previous versions, the level parameters have changed, before the values entered were proportional to the duty cycle, now they are proportional to the current.
Version 1.C.2 from 2023 running cadence. We like it, Gives my wife's bike (on 48V) effortless pedalling. I am amazed by its smoothness and power. I have run it up to 20 mph, while ghost pedalling in ECO. Should be a crank cadence of 90 rpm. if my math is right. 26" wheel. 14/42 gearing, Wow.

I will have to try the latest version on my bike, although I use Hybrid mode,
 
See #3149 reply from mbrusa. TSDZ2 OSF for all displays, VLCD5-VLCD6-XH18, LCD3, 860C-850C-SW102. Was your brake signal active constantly when you did the test or did you let go of the brake lever after power up, which would have cleared the fault and allow the system to run normally.
User error. I didn't ride the bike, just powered it up with brake lever ON, When I saw the normal screen, I thought it booted, and didn't realize it was suspended, After releasing the brake lever, the system boots. Still didn't ride the bike though.
 
I have TSDZ2B with 860C firmware ver 0.20.1c-4 and TSDZ2 firmware 0.21.4. I’ve been running this for several years and love the motor and display, but the firmware has two nagging problems…. The clock does not stay set at correct time and the trip distance and trip time randomly reset to zero during a ride.

I’d love to install new firmware if it would fix these two problems but I don’t want to cause more trouble than it's worth. I would need very detailed step-by-step instructions on how to update the firmware because I'm computer challenged.

Questions… Will newer firmware solve my two problems? Is there a good detailed write-up on how to update firmware? Is it risky to update firmware or should I just live with what I have?
With the latest version, the random trip reset problem is solved.
There are no software problems with the clock, I get an error of about 5 minutes a year.
Keep in mind that the bike must be used at least once a week, if it is not turned on for a month, the time is lost.

To reprogram the controller and display requires a minimum of manual skill and knowledge.

To flash the display you need a bootloader box, maybe you can still find it ready-made, or DIY
Flash the firmware on 860C 850C using bootloader
To flash the controller you need ST-link-V2 or a clone, AND the ST Visual Programmer software.

The guide is no longer online, there are these old instructions.
TSDZ2 OSF for all displays, VLCD5-VLCD6-XH18, LCD3, 860C-850C-SW102.
 
Maybe I wasn't clear, if it doesn't reset to 54.1V, you need to set a lower value.
Try 53.3V (4.1V per cell) it should work, otherwise decrease it further.
No, everything was clear, I just thought I needed to set the values a little lower than those shown by the multimeter (54.1V when we have 54.3V on the battery). But now I set 53.7V, and it works now :) Thanx!

Starting the assistance without pedaling can depend on many factors, including the assistance mode used and the calibration of the torque sensor.
Try to gradually increase the value of "Torque adc threshold".
Thank you for the detailed explanation!
"Torque adc offset" was 150, but real was 158
"Torque adc max" was 300 or so, and with my weight it's ~260
Torque adc threshold was 10, I set 25.
After the changes, the motor finally started to respond to the pressing (not immediately, but only if you lightly press the pedal, -
which is what I need!). For even greater accuracy, I suppose I need to adjust the parameter with a weight of 25 kg? (I will try to use the scales to weigh suitcases by pulling the pedal from the bottom by 25 kg))
 
Last edited:
... For even greater accuracy, I suppose I need to adjust the parameter with a weight of 25 kg? (I will try to use the scales to weigh suitcases by pulling the pedal from the bottom by 25 kg))
No that calibration is only for a reasonable human value around 25kg.
With ADC zero/max calibration you got the best calibration for the complete torque range.
 
Bummer, I had problems with the latest firmware. The pedal response was quite limited, so I rolled back to 1.C.2. My bike never worked well with OEM firmware, so it may have a torque sensor response that needs more calibration. I cannot do that right now, so perhaps later.

Throttle didn't respond either, but that was user error. Street mode was set with no throttle, and I didn't see it was enabled on startup. That must overide the pulldown menu for start up mode.
 
Last edited:
I did it the lazy way on my 48V TSDZ2B to get it to match my 36V TSDZ2 by increasing by 20% the Power and Torque Assist Mode values to give me the same feel, it worked for me as I was not ready to re-calibrate the torque sensor, been on these settings since January.
 
Great, @mbrusa ! I just uploaded it and it seems to work fine.
Especially great is your new calibration procedure, which works without reprogramming, just via the display!
Maybe I'm stupid :p, but I didn't find any information on how to calibrate the sensor with a stock display now, for example, EKD01 (my wife's bike)...? It doesn't show any data (from sensor), so what should I write here?))

It works only on VLCD5 - VLCD6 - XH18? Not EKD01?

1748083186439.png
Why do I want to calibrate it - because it also doesn't work - Start-up assist without pedaling
 
Last edited:
.... I didn't find any information on how to calibrate the sensor with a stock display.....
Check "Calibrated" and "Estimated" and "Torque sensor adv."
The complete procedure you can find on page 5 of the OSF display manual.

Source
"The complete calibration is done by inserting the values of "Pedal torque adc offset" and "Pedal torque adc max" obtained with the new procedure into the configurator, and enabling "Torque sensor adv.", "Calibrated", "Estimated", all three. This is the recommended procedure."
 
Last edited:
Check "Calibrated" and "Estimated" and "Torque sensor adv."

Source
"The complete calibration is done by inserting the values of "Pedal torque adc offset" and "Pedal torque adc max" obtained with the new procedure into the configurator, and enabling "Torque sensor adv.", "Calibrated", "Estimated", all three. This is the recommended procedure."
In manual I found this
Torque sensor calibration
Torque sensor ADC calibration.
The calibration of the torque sensor is performed at the 0-OFF level, “Set parameter” must be enabled.Turn on the display and select the 0-OFF level, if “Set parameter” is not enabled, turn the lights on and off toenable it, then leaving the pedals free, press the Walk assist button until the ADC value of the torque sensoris displayed and release the button, the displayed value must be entered into the configurator in “Pedaltorque ADC offset”.Subsequently, check the ADC value of the torque sensor with the maximum push applied to the pedal(cyclist standing, on the right pedal in a horizontal position), this value must be entered into the configuratorin “Pedal torque ADC max”.To finish the operation, change level, or continue to the next step
So, I have to first - flash v20.1C.6-update.1, than get this data from the display (does this work on the EKD01 as well?). And then configure it in Java (with no weight and max weight) and reflash again?
 
Last edited:
So, I have to first flash v20.1C.6-update.1, than get this data from the display (does this work on the EKD01 as well?). Then configure it in Java and reflash again?
Yes and no.
If you read the source from Mbrusa it is possible to flash once, but you have to enable before flashing these 3 settings.
But imho it is better to flash, measure ADC values and add them into configurator, flash again

It should be work with all stock display's, but I have no experience with EKD01
 
Last edited:
It should be work with all stock display's, but I have no experience with EKD01
I installed firmware v20.1C.6-update.1 on the bike with EKD01 and the motor stopped responding at all, the 01 error was on (voltage problems).
But the readings from the sensors were displayed, speed and:
"Torque adc offset" 148
"Torque adc max" 215 (as wife was able to press)) )

Next, I flashed the old firmware (factory, with ALL tabs), and then flashed v20.1C.6-update.1 again(but Program tab only) and with the this values entered in the configurator(+ enabling "Torque sensor adv.", "Calibrated", "Estimated", all three.).
I also increased "assist without pedaling threshold" from 10 to 25.

Now the engine starts to react if I press the pedal hard (when starting from a traffic light, for example).
If I just put the foot lightly on the pedal (while waiting at a traffic light, for example), nothing happens.
In fact, that's exactly what I needed (y). Thank you to everyone who helped. 🙏

p.s. Oh, and one more thing: if I turn on EKD01, it shows 0% battery lvl, but then gradually gains to real values 8%... 15%... 45%... 67%.. 100%.. In 1 min approximately.
 
Yes, the motor/bike works as if the battery is empty. I can pedal without issues and the motor makes no noise. Just before the assistance stopped working (a few seconds before), I felt/heard slightly increased vibrations/noise from the motor, higher than usual but no grinding or cracking that would indicate something breaking inside. I thought maybe the hall/torque sensor is broken, but walk assist doesn't work either. Does that exclude a broken hall/torque sensor?

I can open the motor and check if I know what to look for... I have no experience with e-bike motors but feel comfortable opening devices and poking around.
Well, that was easy to find 🤦. Water damage. When I installed it, I had to open the motor to be able to fit it on my bike. Lasted two years and some heavy rains. Does someone know if the tsdz8 has a larger clearance between axle and motor than the tsdz2?
 

Attachments

  • PXL_20250525_081010844.jpg
    PXL_20250525_081010844.jpg
    2.5 MB · Views: 21
Last edited:
Well, that was easy to find 🤦. Water damage. When I installed it, I had to open the motor to be able to fit it on my bike. Lasted two years and some heavy rains. Does someone know if the tsdz8 has a larger clearance between axle and motor than the tsdz2?
I would not give up on this motor already. From the pic it looks like only the very bottom part of the motor and the controller were in water contact. If you are lucky, maybe only the connector plug for the hall sensors is corroded. If that is not the case, it might be worth trying a new controller. They are cheap (aliexpress, pswpower, …)
Good luck!
(If it is not fixable: Don‘t throw it away! Someone can still use it for spareparts. )
 
Hello,

I wanted to ask what is your experience with displays DZ40 and DZ41? I have both and was testing DZ40 on tsdz8 with stock firmware and connected throttle. Was confused that throttle does not work with DZ40, but it works fine with VLCD5 and VLCD6.

I have used ChatGPT trouble shooting and got info that DZ40 and 41 are using not UART communication mode (for VLCD5/6, SW102, etc.), but CAN-bus mode.

Therefore the anwer was "DZ41 just forces the bike back onto Tongsheng’s stock CAN firmware, so flashing the UART-only OSF is a wasted effort—you won’t get OSF features. With a patched bootloader: you must also flash the CAN-bus build of OSF ".

Does this menas that can-bus displays do not function OSF? Or is there a can bus version of OSF available? Could not find info on this?

Thank you in advance
I run two e-bikes using the OSF with Enerpower DZ41 Display (UART Tongsheng TSDZ2 Compatible 6-Pin version) without any problems, one is a TSDZ2 36V and the other a TSDZ2B 48V which I have show the setup on Page 113 of this Thread.
 
Well, that was easy to find 🤦. Water damage. When I installed it, I had to open the motor to be able to fit it on my bike. Lasted two years and some heavy rains. Does someone know if the tsdz8 has a larger clearance between axle and motor than the tsdz2?
Do you know where water came from? Shaft? Wire? Box?
 
I would not give up on this motor already. From the pic it looks like only the very bottom part of the motor and the controller were in water contact. If you are lucky, maybe only the connector plug for the hall sensors is corroded. If that is not the case, it might be worth trying a new controller. They are cheap (aliexpress, pswpower, …)
Good luck!
(If it is not fixable: Don‘t throw it away! Someone can still use it for spareparts. )
Totally agree, myself I would take it apart, clean it out, rusty screws etc put in white vinegar to de-rust, would try a brass rotary brush in a dremel or similar to clean the rust off the motor, then put it all back together with a wipe over with grease or similar with a new controller costing around 30 euros.
 
Last edited:
Totally agree, myself I would take it apart, clean it out, rusty screws etc put in white vinegar to de-rust, would try a brass rotary brush in a dremel or similar to clean the rust off the motor, then put it all back together with a wipe over with grease or similar with a new controller costing around 30 euros.
Thanks for the tips! Yes, I'll give it a try to fix, with the cost of parts (motor, controller) being 1/3 of a new motor. Definitely makes sense to try that.
I have no idea from where the water entered the motor. I need to do some more inspection (had no time over the weekend) and hopefully can find the root cause and am able to fix it.
 
Water damage. When I installed it, I had to open the motor to be able to fit it on my bike. Lasted two years and some heavy rains.
Even in a car, the ECU inside the cabin is almost hermetically sealed. And here are electronics that are outside at a height of tens of centimeters from the ground (puddles, sand, dust, dirt)... :)
All you had to do was at least lubricate the gasket with thick grease, if you don't have silicone sealant. Maybe you have additional bearings also? Are they sealed?

p.s. and, this is offtop..
 
Last edited:
While trying to do the T/S calibration, I only got 110-120 with all my weight on the right pedal. Default value is 172. Probably explains why my motor was so unresponsive with OEM firmware? Give it another few tuning days, I can probably tweak 1.C.6 to my liking, and that would include altering the throttle statement in main.h to have the same response as 1.C.3.

Nonetheless, I have a baseline in 1.C.3 that works for me. The T/S is uncalibrated still, but I've adjusted the Eco and Tour assist levels for what I feel is an excellent response. I'll leave it at that for now.

Thank you, emmebrusa and all the others for enhancing the TSDZ2!
 
Back
Top
OSZAR »