Bonk DTC docs
12-01 Confirmed

No.1 primary injector circuit malfunction

The No.1 primary injector circuit did not respond as commanded, the pattern of an open or shorted circuit.

Manufacturer
Honda
Platform
PGM-FI (Keihin, Renesas M32R)
Models
CBR600RR
Years
2003-2022
Subsystem
No.1 primary injector circuit
Hex
0x1201

Confirmed. Confirmed: how the ECU detects this was traced in the firmware and matches the standard Honda meaning of the code.

What it means

The ECU switches each injector on and checks that its circuit responds. When the No.1 primary injector circuit stays open or shorted, this code sets and that cylinder loses its fuel delivery.

Conditions

Detection conditions

  • The ECU drives the No.1 injector and checks the circuit responds.

Sets the fault when

  • The circuit stays open or shorted long enough to count.

Clears the fault when

  • Fix the underlying problem, then clear the stored codes with a diagnostic tool or the manufacturer’s reset procedure. If the fault is still present, the code returns the next time the ECU detects it.

Parts involved

  • No.1 primary fuel injector and its wiring

Symptoms & likely causes

Possible symptoms

  • FI (check-engine) light on
  • Misfire or rough running on that cylinder
  • Possible hard starting

Likely causes

  • Open or shorted injector coil
  • Break or short in the injector wiring or connector
  • ECU injector driver fault (rare)

Diagnostic guidance

Measure the injector coil resistance and check its wiring and connector for opens and shorts.

How the ECU decides

A simplified view of the logic behind this code: a short C snippet with a plain-English summary. It shows the real decision the ECU makes without the low-level detail.

For an output like an injector, coil, or sensor heater, the ECU switches the circuit on and checks that it actually responded. If the circuit is open or shorted for long enough, it sets the code and stops driving that output.

C How an injector / coil / heater circuit sets a code
// Command the output on, then confirm the circuit responded.
turn_on(output);
if (circuit_response(output) == BAD) {   // open or short
    bad_count++;
    if (bad_count >= limit)
        set_fault();
}
Reverse-engineered interpretation · CBR600RR ECU reverse-engineering analysis

When the ECU confirms a fault, it saves the code and turns on the FI (check-engine) light. For a serious fault it also runs the engine on safe default values (limp-home) so you can still ride, with the light on.

C How a confirmed fault is stored
// Once a fault is confirmed, remember it and warn the rider.
if (fault_confirmed) {
    store_code(code);      // kept until the codes are cleared
    fi_light = ON;
    if (fault_is_serious)
        limp_home = ON;    // safe defaults so you can ride home
}
Reverse-engineered interpretation · CBR600RR ECU reverse-engineering analysis

Related codes

Sources

Every technical claim on this page traces to the research below. Source labels are sanitized; no local research paths are exposed.

  • firmware

    2005-2006 Honda CBR600RR ECU firmware

    Factory PGM-FI firmware for the 2005-2006 CBR600RR. Primary source of truth.

  • analysis

    Firmware fault-code table extraction

    Reads the list of codes the ECU can store directly out of each firmware.

  • reference

    HondaECU project (open-source Honda ECU tool)

    Community reference mapping Honda PGM-FI codes to their meanings.

  • analysis

    CBR600RR ECU reverse-engineering analysis

    Independent analysis of how the ECU detects, stores, and reports faults.

Content version 1.0.0 · last reviewed 2026-07-14