Back
MotorcycleDelphi injectionFault codes

Chinese motorcycle with Delphi MT05 injection: read the codes from the engine light, no scan tool needed

M
Max
9 minOctober 23, 2026
Chinese motorcycle with Delphi MT05 injection: read the codes from the engine light, no scan tool needed

Many small Chinese fuel-injected machines, 125s, 250s and quads included, use a Delphi MT05 ECU (or its MT05.2 and MT05.3 developments). Delphi designed it for small single- and twin-cylinder engines, and it has a rare quality: you can read its fault codes without any tool, by counting the flashes of the engine warning light. Before buying a diagnostic tool or paying for an hour of workshop time, it is worth knowing how.

First: does your bike have a Delphi?

The motorcycle maker almost never builds its own injection. Depending on model and year, a Chinese bike may carry a Delphi, Bosch or UAES (Bosch's Chinese joint venture) ECU, or one from another local supplier. Three ways to find out:

  • The ECU label: under the seat or behind a side panel, the unit carries the maker's name and the reference (MT05, MT05.2, MT05.3…).
  • The workshop manual for the model, if there is one, which describes the injection system.
  • The dealer, who knows the ECU used across the range.

The MT05 is documented for example on the Zongshen Cyclone RX3, where an owner published the procedure and the code table, and on many Chinese UTVs and quads (Hisun and derivatives), where specialist forums have used it for years. The procedure below applies only to an MT05: on a Bosch or UAES ECU it will give you nothing, or something else.

The engine light, normally

When you switch on the ignition, the engine light comes on: that is the bulb check and proof that the ECU is powered. Once the engine has started, it should go out. If it stays on, or comes on while riding, the ECU has stored a fault. A light that never comes on, even with the ignition on, is also a clue: dead bulb or LED, or a fault in the light's circuit (which is exactly what code P0650 in the table reports).

Reading the code by counting flashes

The procedure published for the RX3:

  1. Bike stationary, engine off.
  2. Turn the ignition on, off, on, off, on: ON, OFF, ON, OFF, ON, within a few seconds.
  3. The engine light then gives four series of flashes, one per digit of the code.
  4. Count each series: one flash = 1, two flashes = 2… nine flashes = 9, and ten flashes = 0.
  5. If there are two faults in memory, the second code follows the first.

The "P" does not flash: only the four digits are sent. Example: ten flashes, ten flashes, three flashes, one flash give 0031, that is P0031. Note them as you go, on paper or by filming the dash with your phone: more reliable than memory.

Other sources (UTV forums) describe the same thing as "three ignition cycles". If the first attempt gives nothing, try again more quickly.

The MT05 code table

Here is the MT05 "Malf code" table as published with the procedure. The meanings are Delphi's; the "What to do" column is our order of checks, from simplest to most expensive.

CodeMeaning (Delphi MT05 table)Likely causeWhat to do
P0107Manifold absolute pressure (MAP) circuit: low voltage or openConnector unplugged, broken wireMAP connector and loom
P0108MAP circuit: high voltageShort to positive, failed sensorLoom, then sensor
P0112Intake air temperature (IAT) circuit: low voltageWire shorted to earth, failed sensorLoom, then sensor
P0113IAT circuit: high voltage or openConnector unpluggedConnector, then sensor
P0117Engine temperature sensor circuit (coolant or oil): low voltageWire shorted to earth, failed sensorLoom, then sensor
P0118Engine temperature sensor circuit: high voltage or openCorroded or unplugged connectorConnector, then sensor
P0122Throttle position sensor (TPS) circuit: low voltage or openConnector, sensorConnector, then sensor
P0123TPS circuit: high voltageShort, failed sensorLoom, then sensor
P0131Oxygen sensor circuit: low voltageSensor, exhaust air leakExhaust, connector, sensor
P0132Oxygen sensor circuit: high voltageSensor, loomConnector, sensor
P0031Oxygen sensor heater: high voltage (Delphi wording, see below)Sensor heater, loomConnector, sensor
P0032Oxygen sensor heater: low voltage (Delphi wording)SameSame
P0201Injector 1 circuitInjector connector, injector coilConnector, then injector
P0202Injector 2 circuit (twins)SameSame
P0230Fuel pump relay coil: low voltage or openRelay, fuse, loomFuse, relay, loom
P0232Fuel pump relay coil: high voltageRelay, loomRelay, loom
P0336Crankshaft position (CKP) sensor: noisy signalAir gap, poorly shielded wire, damaged triggerConnector, sensor mounting
P0337Crankshaft sensor: no signalFailed sensor, broken wireConnector, sensor test
P0351Cylinder 1 ignition coilCoil, connector, loomConnector, then coil
P0352Cylinder 2 ignition coilSameSame
P0505Idle speed control errorDirty throttle body, air leak, stepper motorCleaning, air-leak search
P0562System voltage lowBattery, regulator, chargingBattery and charging with a multimeter
P0563System voltage highRegulator-rectifierCharging test with engine running
P0650Engine warning light (MIL) circuitBulb or LED, dash loomDashboard, connector
P1693Tachometer circuit: low voltageLoom to the dashboardLoom
P1694Tachometer circuit: high voltageSameLoom

The last two are Delphi-specific codes (P1xxx): do not look up their meaning in a generic OBD list, where it would be different.

The P0031 / P0032 trap

In the SAE J2012 standard, the one behind the OBD lists you find everywhere, P0031 means "oxygen sensor heater, circuit low" and P0032 "circuit high". The Delphi MT05 table gives the reverse: P0031 high voltage, P0032 low voltage. We do not know whether this is a quirk of the ECU or a typo in the published table; we flag it for a practical reason: on an MT05, do not infer the direction of the fault from a generic list's wording. Measure: sensor heater, its supply, its earth. For what it is worth, the RX3 owner got a P0031 simply by unplugging the sensor.

The four codes you see most

P0562: low voltage

Before any other diagnosis, test the battery. A tired battery drops the voltage on starting, and the ECU records it. With the engine running, the voltage should rise: if it does not, follow the charging circuit (regulator, alternator, connector). See checking a motorcycle battery and 6 multimeter measurements.

P0118 and P0113: temperature sensors

A corroded connector is enough to make the ECU believe the sensor is unplugged. Result: wrong mixture, hard hot starting, unstable idle. Unplug, clean, plug back in, clear, and see if the code returns. Our article on hard hot starting explains the link.

P0505: idle

On a small single, a dirty throttle body or a split intake hose quickly upsets the idle. Cleaning the throttle body is often the cheapest fix. An intake air leak is tracked down methodically: see our guide to air leaks.

P0337: no crankshaft signal

This is the code that stops the bike starting: with no position signal, no injection and no ignition. Sensor connector, wire pinched along the crankcase, then the sensor itself.

Clearing the code

A stored code does not necessarily disappear once the fault is fixed. The safest method is still the dealer's diagnostic tool, or an MT05-compatible scan tool. Some owners disconnect the battery for a few minutes to reset the ECU; it can work, but it also wipes the learned values, and the idle may stay odd while the ECU relearns. In every case, clear and test-ride: a code that comes straight back has not been fixed.

Diagnosis: cheapest first

  1. Read the code from the light and write it down.
  2. Battery and charging (P0562, P0563).
  3. Connectors of the named sensor: unplug, clean, plug back in.
  4. Loom: wire pinched, chafed, melted near the exhaust.
  5. Throttle body cleaning and air-leak search (P0505, P0131).
  6. Multimeter test of the sensor or actuator, against the workshop manual values.
  7. Part replacement, last, with the original part number: a "pattern" sensor with the wrong calibration creates another code.

Safety

Work with the engine cold, ignition off, and away from any flame when touching the fuel circuit (P0230, P0201): it stays pressurised for a while after switching off. Never pierce an injection wire with a probe pin without sealing the insulation afterwards, or water gets in. And do not ride with a coil or injector code: a cylinder that does not burn its mixture sends fuel into the exhaust and can damage the catalytic converter.

When to hand over

An ECU that does not respond, codes that change every reading, or a bike still under warranty: go to the dealer. To see who distributes which brand, read who makes what among Chinese motorcycles and parts, warranty and dealer network. If you are shopping for a 125, our Chinese 125 buying guide; for larger capacities with Bosch injection, read the CFMoto engine light.

---

A code missing from the table, a bike whose ECU you do not know? Ask the assistant with the model, the year and the flash sequence.