On a Chinese e-bike, the brand on the frame rarely tells you who made the electronics. The display, though, often carries a reference: S866, KD21C, KD718, EN06, C965, M5… But even that reference is not always enough, because the same housing is sold with several protocols, meaning several languages for talking to the controller. And the error code depends on the protocol. Here is how to find your way without swapping parts at random.
Why the same screen does not show the same codes
The display detects almost nothing itself: it receives a fault number from the controller and shows it. The meaning of that number is set by the protocol. Result: an S866 wired to a controller with an in-house protocol will show "10" for a communication loss, while an S866 sold for a Bafang-compatible kit will show "30" for the same fault. Owners' forums are full of examples.
To identify your family:
- The label on the back of the display: model, voltage (36 V, 48 V) and sometimes the protocol.
- The manual supplied with the bike: the only source that really counts.
- The shape of the codes: two digits between 21 and 30, an E followed by three digits, a number between 0 and 13, or a flashing "info". That is often enough to find the right table below.
Family 1: codes 21 to 30
This is the most widespread family, inherited from the Bafang motor protocol. You find it on KD21C and KD218 displays (notably at Ride1Up), on the C965 sold for Bafang BBS kits, on many Yolin screens (including the YL80C on some Engwe bikes, which writes E021, E022…) and in cargo-bike display manuals. The table below follows the manual of one such display, cross-checked with Ride1Up's documentation.
| Code | Meaning | Likely cause | What to do |
|---|---|---|---|
| 21 | Abnormal current | Short on the motor phases, sustained load (long climb without pedalling enough) | Switch off, wait a few minutes, switch on; check the phases |
| 22 | Throttle abnormality | Throttle held down, damaged cable, loose connector | Switch on without touching the throttle; inspect cable and connector |
| 23 | Motor abnormality (phase) | Motor cable not reconnected after removing the wheel, cut phase | Reconnect the motor connector, clean and properly aligned |
| 24 | Motor Hall signal abnormality | Damaged Hall wire or motor connector not fully seated | Motor connector, axle exit, Hall sensor test |
| 25 | Brake abnormality | Brake lever pulled at power-on, cut-off sensor out of adjustment | Switch on without touching the brakes; check the levers return |
| 30 | Communication abnormality | Cable or connector between display and controller | Inspect the harness; test with a healthy display of the same protocol |
On these systems, 23 and 24 after a tyre change are a classic: the rear motor connector was refitted crooked or not fully home.
Family 2: the S866 "0 to 13"
The S866, a small three-button LCD, comes with many folding e-bikes and kits. In its most common version, its manual defines the following codes (quoted as-is on owners' forums):
| Code | Meaning | Likely cause | What to do |
|---|---|---|---|
| 0 | Normal operation | — | — |
| 2 | Brake | Lever pulled or brake sensor stuck | Check the levers return, unplug the sensors to test |
| 4 | 6 km/h walk assist | Not a fault: assist button held | Release the button |
| 5 | Cruise control active | Not a fault | — |
| 6 | Battery under-voltage | Flat battery, dirty battery contact | Charge; clean the cradle contacts |
| 7 | Motor fault | Phases, Hall, motor connector | Check motor connector and cable |
| 8 | Throttle fault | Faulty throttle or held at power-on | Unplug the throttle to test |
| 9 | Controller fault | Controller faulted | Switch off and on, check its connectors |
| 10 | Communication receive failure | Display-controller cable, controller not powered | Harness, connectors, controller supply |
| 11 | Communication send failure | Same area as 10 | Same |
| 12 | BMS communication failure | "Smart" battery not responding | Battery contacts; have the battery checked |
| 13 | Headlight fault | Lighting shorted or unplugged | Unplug the headlight to test |
Codes 1 and 3 are marked "reserved" or unused. And to repeat: an S866 showing 30 runs another protocol, that of family 1.
Family 3: E001 to E006 (Yolin displays)
Some displays from the maker Tianjin Yolin use different numbering, documented in their manual as "YL-02 error codes":
| Code | Meaning | Likely cause | What to do |
|---|---|---|---|
| E001 | Controller fault | Controller faulted | Switch on again; check connectors and supply |
| E002 | Communication fault | Display-controller cable or connector | Inspect the harness |
| E003 | Hall fault | Motor Hall sensor or wire | Motor connector, Hall test |
| E004 | Throttle fault | Throttle held or faulty | Switch on without throttle, unplug it to test |
| E005 | Brake fault | Brake sensor active at power-on | Check the levers and their sensors |
| E006 | Motor phase fault | Phase cut or badly connected | Phase connector, motor cable |
Family 4: the "info" codes of KT displays
The KT-LCD3, LCD4, LCD5 and LCD8 screens flash a number followed by "info" (01, 03, 04, 05, 06). We have a full article on them, with the P and C settings: KT-LCD3 error codes.
What about the KD718, EN06, M5?
We would rather be straight: for these three references, we did not find an official published manual giving a code table. They are sold by many resellers, often in several protocol versions. Apply the method: look at the shape of the code (21-30, E00x, 0-13), compare with the tables above, and check your bike's manual. A code that fits no family deserves a question to the seller with a photo of the back label.




