The Tongsheng TSDZ2 is the best-selling Chinese mid-drive kit after Bafang: a crank motor with a torque sensor, in 36, 48 or 52 V, fitted to thousands of converted hybrids and touring bikes. Its recent sibling, the TSDZ8, follows the same idea with a brand-new controller. The catch: the same "E02" does not mean the same thing depending on the display and, above all, on the firmware running in the controller. Before reading a code, you need to know what is running in your motor.
Step zero: stock or open-source firmware?
The TSDZ2 has a quirk: a community project ("OSF", Open Source Firmware, on endless-sphere and GitHub) has rewritten the controller software. Plenty of second-hand kits have been reflashed. Three clues:
| Clue | Stock firmware | Open-source firmware (OSF) |
|---|---|---|
| Display | Stock VLCD5, VLCD6, XH18 | VLCD5/VLCD6/XH18 (mbrusa version) or 860C, 850C, SW102 (casainho version) |
| Menus | Limited settings | Hidden menus through the lights button, assist modes "Power / Torque / Cadence / eMTB / Hybrid / Cruise" |
| Codes | Seller's paper manual | OSF manual table (below) |
The OSF documentation states it plainly: "the errors and related codes listed in the original display manuals are no longer valid" once the open firmware is installed. If you bought the bike used, ask the seller. A colour 860C on a TSDZ2 almost always means open firmware.
Open-source TSDZ2 firmware codes (VLCD5, VLCD6, XH18)
This is the best-documented table, because it comes straight from the source code (the project's main.h file) and the user manual published with it. It applies to mbrusa's version 20.1C.
| Code | Meaning | Likely cause | What to do |
|---|---|---|---|
| E01 | Battery over- or under-voltage | Battery parameters entered wrongly in the configurator, flat battery | Check the real voltage, correct the thresholds in the configurator |
| E02 | Torque sensor | Pressure on the pedals at power-on, sensor drift, mechanical fault | Switch off, switch on with feet off the pedals; recalibrate |
| E03 | Cadence sensor | No pulses while pedalling | Check the connector; sensor probably faulty |
| E04 | Motor blocked | High current with no rotation: motor or wheel jammed | Find the tight spot before restarting |
| E05 | Throttle, or current drawn at power-on | Faulty or badly calibrated throttle; controller drawing current at rest | Switch on again; if it persists, reflash the controller |
| E06 | Motor overtemperature | Long climb at high torque | Ride in a gentler mode; only exists with a temperature sensor fitted |
| E07 | Overcurrent | Current spike | Switch off and on again |
| E08 | Speed sensor | Sensor dead or magnet too far away | Move the magnet closer (a few mm), check the cable |
| E09 | EEPROM write or motor check | Memory write failure, or motor turning without pedalling | Switch on again; check for "phantom pedalling" |
On the XH18, some codes show differently, flashing: flashing E06 = E01, flashing E03 = E05, flashing E04 = E07, flashing E08 = E09. On the EKD01 display, the cadence sensor shows as E13, the throttle as E10 and speed as E14. If you see one of these, it is not a different fault, it is the same table with different numbering.
Two important rules of the open firmware: an error cuts assistance in every mode, and you must switch the display off and on after each error. For a failed sensor (torque, cadence, speed), the manual provides an "assist with sensors error" option (menu E04 at TURBO level) that lets you get home by picking a mode that does not use the faulty sensor. It is a get-you-home mode, not a permanent setting.
860C, 850C, SW102: plain-text messages
With casainho's colour firmware, the screen does not show a bare code but "e:" followed by a number and a label. According to the display source code:
| Display | Meaning | What to do |
|---|---|---|
| e: 1 Motor init | Motor not answering at initialisation | Check the motor-display cable, compatible firmware versions |
| e: 2 Motor Blocked | Motor blocked | Find the tight spot, freewheel, jammed chain |
| e: 3 Torque Fault | Torque sensor | Switch on without pressing the pedals |
| e: 4 Brake Fault | Brake sensor | Check the cut-off brake levers |
| e: 5 Throttle Fault | Throttle | Unplug the throttle to test |
| e: 6 Speed Fault | Speed sensor | Magnet, cable, sensor position |
| e: 7 Low Volt | Low voltage | Charge, check the battery |
| e: 8 Comms | Communication | Connectors, display cable |
| Temp Shutdown | Thermal cut-out | Let it cool |
An "e: config" means the configuration could not be sent to the motor: in practice, often a display firmware and a motor firmware of versions that do not talk to each other.
And with stock firmware?
This is where it gets messy, and we would rather tell you. Tongsheng does not publish an official list online. The original VLCD5 manual, as quoted on owners' forums, lists among others: ERR-02 motor Hall fault or motor short circuit, ERR-03 controller fault, ERR-04 throttle fault, ERR-06 switched on with feet on the pedal (coaster-brake version), ERR-08 low battery alarm. But other guides published online give a different table, where E01 would be the throttle and E02 the brake sensor.
Practical conclusion: with stock firmware, trust the paper manual supplied with your kit, and test causes from cheapest to most expensive rather than replacing a part on the strength of a code. An E02 that disappears when you switch on without touching the pedals is not a dead motor.
The two failures found on almost every TSDZ2
The nylon gear
The first reduction stage of the TSDZ2 is a large blue nylon gear. It is quiet, but it is the motor's sacrificial part: at high torque, on a loaded bike or on a steep climb at low cadence, it eventually strips its teeth. Typical symptom: no code, the motor hums or spins but drives nothing, sometimes with a clack. The gear is sold as a kit, and metal versions exist (longer-lasting, noisier). Removal needs a crank puller and patience, not exotic tools.
The torque sensor
The TSDZ2's torque sensor is both its strength and its weakness. It drifts over time: resting values change, until they trigger E02 on open firmware. The OSF manual provides an on-the-road calibration from the display ("Pedal torque ADC offset" with pedals free and "ADC max" at maximum effort), which you then save to memory. Before ordering a sensor, redo this calibration, and always switch the bike on without a foot on a pedal: that is the number-one cause of E02.




