---
title: "Harley Davidson Diagnostic Codes: Full DTC List & Fixes"
slug: "all-harley-davidson-diagnostic-codes-bobberbrothers"
description: "Every Harley DTC explained - P, B, C and U codes by system. Pull them yourself through the gauge cluster (no scanner needed on 2004+) and find the fix here."
pubDate: 2022-07-01T00:00:00.000Z
canonical: https://bobberbrothers.com/pages/all-harley-davidson-diagnostic-codes-bobberbrothers/
---
When your Harley throws a check engine light, you need answers fast. This is the complete reference for every Harley Davidson diagnostic trouble code (DTC) we could track down - organized by system so you can find what you need without scrolling through a wall of text.

We built this list from factory service manuals, dealer documentation, and years of wrenching on our own bikes. Bookmark it. You will be back.

## How Harley Diagnostic Codes Work

Harley Davidson uses the standard OBD (On-Board Diagnostics) code format across all EFI-equipped models. Each code starts with a letter that tells you which system is affected:

- **P = Powertrain** - Engine, transmission, fuel, ignition
- **B = Body** - Security system, turn signals, switches, lighting
- **C = Chassis** - ABS, brakes, suspension
- **U = Network** - Communication between modules (ECM, speedometer, ABS, security)

The number after the letter tells you more. If the second digit is **0**, it is a generic/standard code. If it is **1**, it is a Harley-specific (manufacturer) code.

Older carbureted and Evolution models used simpler two-digit codes before Harley adopted the OBD format.

---

## How to Enter Diagnostic Mode on Your Harley

The method depends on your model and year. Here is how to pull codes on the most common setups.

### Sportster, Dyna, Softail (2004-2017 with Speedometer/Tach)

1. Turn the ignition switch to OFF.
2. Push and hold the odometer reset button.
3. While holding the button, turn the ignition to ON (do not start the engine).
4. Release the button when the background lighting comes on.
5. Push the odometer reset button once to cycle through each module and its stored codes.
6. The display shows the module abbreviation first, then any stored codes.

### Touring Models (2004-2013 with 4-Button Gauges)

1. Turn the ignition switch to ON (do not start the engine).
2. Simultaneously press and hold both trip reset buttons until the word "diag" appears.
3. Use the buttons to scroll through each module and its DTCs.

### All Models with Screamin' Eagle Pro Tuner or Dealer Tools

1. Plug the diagnostic cable into the 4-pin or 6-pin data link connector under the left side cover.
2. Use Digital Technician II (dealer tool), TTS Mastertune, or Screamin' Eagle Pro Street Tuner software.
3. Navigate to "Read DTCs" to view current and historic codes.

### Carbureted Models (Pre-EFI)

Older carbureted Harleys flash codes through the check engine light. Turn the ignition on without starting the engine and count the flashes. A pause separates the tens digit from the ones digit.

For more on sensor-related issues, read our guide on [symptoms of a bad crank position sensor on a Harley](/pages/symptoms-of-bad-crank-position-sensor-on-harley-davidson/).

---

## Early EFI Models (1995-2001) - Two-Digit Codes

These apply to Harley-Davidson models equipped with the Magneti Marelli EFI system, used on select touring models from 1995 through 2001.

### Engine Management

| Code | Description |
|------|-------------|
| 21 | Engine Temperature Sensor Circuit Low |
| 22 | Engine Temperature Sensor Circuit High |
| 23 | Throttle Position Sensor Low Voltage |
| 24 | Throttle Position Sensor High Voltage |
| 25 | MAP Sensor Circuit Low |
| 26 | MAP Sensor Circuit High |
| 27 | Injector Circuit Malfunction - Front Cylinder |
| 28 | Injector Circuit Malfunction - Rear Cylinder |
| 31 | Front Cylinder No Combustion |
| 32 | Rear Cylinder No Combustion |
| 33 | System Voltage Low |
| 34 | System Voltage High |
| 35 | Idle Speed Control Error |
| 41 | Front Oxygen Sensor Circuit Low |
| 42 | Front Oxygen Sensor Circuit High |
| 43 | Rear Oxygen Sensor Circuit Low |
| 44 | Rear Oxygen Sensor Circuit High |

### System Codes

| Code | Description |
|------|-------------|
| 51 | EEPROM Error |
| 52 | ROM Error |
| 53 | RAM Error |
| 54 | System Relay Malfunction |
| 55 | Serial Data Link Error |
| 56 | Password Error / Security |
| 61 | CKP (Crank Position) Sensor Error |
| 62 | VSS (Vehicle Speed Sensor) Error |
| 63 | Tach Output Error |
| 64 | Cam Position Error |

---

## Evolution Models (1984-1994) - Two-Digit Codes

### Basic Diagnostic Codes

| Code | Description |
|------|-------------|
| 11 | No Engine RPM Signal |
| 12 | No VSS Signal |
| 13 | MAP Sensor Error |
| 14 | Battery Voltage Low |
| 15 | Engine Temperature Circuit |
| 16 | Throttle Position Error |
| 17 | Bank Angle Sensor |
| 18 | System Relay |
| 19 | Security System |

### Evolution-Specific Codes

| Code | Description |
|------|-------------|
| 71 | Carburetor Adjustment Required |
| 72 | Ignition Timing Error |
| 73 | Low Fuel Pressure |
| 74 | Starting System Error |
| 75 | Oil Pressure Warning |
| 76 | Neutral Switch Circuit |
| 77 | Side Stand Switch Circuit |
| 78 | Clutch Switch Circuit |
| 79 | Turn Signal Circuit Error |

---

## P-Codes - Powertrain (EFI Models)

These are the most common codes you will see on any EFI Harley from 2001 onward.

### ECM Memory and Communication

| Code | Description |
|------|-------------|
| P0605 | ECM FLASH Memory Error |
| P0603 | ECM EEPROM Memory Error |
| P1600 | EFI Module Processor Internal Error |
| P2107 | EFI Module Processor Internal Fault |
| P1009 | Incorrect Password |
| P1010 | Missing Password |

### System Relay

| Code | Description |
|------|-------------|
| P1001 | System Relay Coil Open / Low |
| P1002 | System Relay Coil High / Shorted |
| P1003 | System Relay Contacts Open |
| P1004 | System Relay Contacts Closed |

### Battery and Voltage

| Code | Description |
|------|-------------|
| P0562 | Battery Voltage Low |
| P0563 | Battery Voltage High |
| P0641 | 5V Reference 1 Out of Range |
| P0651 | 5V Reference 2 Out of Range |

### Crankshaft Position Sensor (CKP)

Problems here are one of the most common reasons a Harley won't start or stalls at random. See our full breakdown: [Symptoms of a bad crank position sensor on a Harley Davidson](/pages/symptoms-of-bad-crank-position-sensor-on-harley-davidson/).

| Code | Description |
|------|-------------|
| P0335 | CKP Sensor Circuit Malfunction |
| P0336 | CKP Sensor Range / Performance |
| P0337 | CKP Sensor No Signal |
| P0373 | CKP Sensor Intermittent |
| P0374 | CKP Sensor Sync Error |

### MAP Sensor

| Code | Description |
|------|-------------|
| P0107 | MAP Sensor Open / Low |
| P0108 | MAP Sensor High |
| P0106 | MAP Sensor Range / Performance |

### Temperature Sensors

| Code | Description |
|------|-------------|
| P0117 | Engine Temperature Sensor Low |
| P0118 | Engine Temperature Sensor High |
| P0116 | Engine Temperature Sensor Range / Performance |
| P0112 | Intake Air Temperature Voltage Low |
| P0113 | Intake Air Temperature Voltage Open / High |

### Throttle Position Sensor (TPS)

| Code | Description |
|------|-------------|
| P0120 | TPS1 Range Error |
| P0122 | TPS1 Low |
| P0123 | TPS1 High / Open |
| P0220 | TPS2 Range Error |
| P0222 | TPS2 Low |
| P0223 | TPS2 High / Open |
| P2135 | TPS Correlation Error |

### Twist Grip Sensor (TGS) - Throttle-by-Wire Models

| Code | Description |
|------|-------------|
| P2122 | TGS1 Low / Open |
| P2123 | TGS1 High |
| P2127 | TGS2 Low / Open |
| P2128 | TGS2 High |
| P2138 | TGS Correlation Error |
| P1270 | TGS Validation Error |

### Vehicle Speed Sensor (VSS)

| Code | Description |
|------|-------------|
| P0501 | VSS Low |
| P0502 | VSS High / Open |
| P0500 | VSS Circuit Malfunction |

### Oxygen Sensors

| Code | Description |
|------|-------------|
| P0131 | Front O2 Sensor Low |
| P0132 | Front O2 Sensor High |
| P0134 | Front O2 Sensor Inactive |
| P0151 | Rear O2 Sensor Low |
| P0152 | Rear O2 Sensor High |
| P0154 | Rear O2 Sensor Inactive |
| P0130 | Front O2 Sensor Circuit Malfunction |
| P0150 | Rear O2 Sensor Circuit Malfunction |

### EFI Motor and Throttle Body

| Code | Description |
|------|-------------|
| P2100 | EFI Motor Circuit Open |
| P2101 | EFI Motor Circuit Range / Performance (Actuation Error) |
| P2102 | EFI Motor Circuit Low |
| P2103 | EFI Motor Circuit High |
| P2119 | EFI Motor Throttle Body Range / Performance |
| P2176 | EFI Closed Position Not Learned |
| P1514 | Air Flow Fault |
| P2105 | EFI Forced Engine Shutdown |

### ECM Operating Modes

When the ECM detects a serious problem, it enters a reduced power or limited mode to protect the engine. These codes tell you which mode is active and why.

| Code | Description |
|------|-------------|
| P1510 | EFI Limited Performance Mode |
| P1511 | EFI Power Management Mode |
| P1512 | EFI Forced Idle Mode |
| P1513 | Reduced Power - Battery Voltage |
| P1514 | Reduced Power - Engine Temperature |
| P1515 | Reduced Power - Oil Pressure |
| P1516 | Reduced Power - Throttle Position |
| P1517 | Reduced Power - Security |

### Ignition System

If you are chasing misfire issues, also check your plugs. Here is our [Harley Davidson spark plug cross reference](/pages/harley-davidson-spark-plug-cross-reference/) chart.

| Code | Description |
|------|-------------|
| P0351 | Ignition Coil Primary Circuit Malfunction - Front |
| P0352 | Ignition Coil Primary Circuit Malfunction - Rear |
| P1351 | Front Ignition Coil Driver Open / Low |
| P1352 | Front Ignition Coil Driver High / Shorted |
| P1354 | Rear Ignition Coil Driver Open / Low |
| P1355 | Rear Ignition Coil Driver High / Shorted |

### Combustion and Fuel System

| Code | Description |
|------|-------------|
| P1353 | Front Cylinder No Combustion |
| P1356 | Rear Cylinder No Combustion |
| P1357 | Front Cylinder Combustion Intermittent |
| P1358 | Rear Cylinder Combustion Intermittent |
| P0171 | System Too Lean - Front Cylinder |
| P0172 | System Too Rich - Front Cylinder |
| P0174 | System Too Lean - Rear Cylinder |
| P0175 | System Too Rich - Rear Cylinder |
| P0300 | Random / Multiple Cylinder Misfire Detected |
| P0301 | Front Cylinder Misfire Detected |
| P0302 | Rear Cylinder Misfire Detected |

### Fuel Injectors

| Code | Description |
|------|-------------|
| P0201 | Front Injector Circuit Malfunction |
| P0202 | Rear Injector Circuit Malfunction |
| P0261 | Front Injector Open / Low |
| P0262 | Front Injector High |
| P0263 | Rear Injector Open / Low |
| P0264 | Rear Injector High |

### Fuel Pump

| Code | Description |
|------|-------------|
| P0230 | Fuel Pump Relay Circuit |
| P0231 | Fuel Pump Secondary Circuit Low |
| P0232 | Fuel Pump Secondary Circuit High |

### Exhaust and Emissions

| Code | Description |
|------|-------------|
| P0444 | Purge Solenoid Open / Low |
| P0445 | Purge Solenoid High |
| P1475 | Exhaust Actuation Position Error |
| P1477 | Exhaust Actuator Open / Low |
| P1478 | Exhaust Actuator Shorted / High |

### Idle and Cruise Control

| Code | Description |
|------|-------------|
| P0505 | Idle Control System Malfunction |
| P0507 | Idle Control System RPM Higher Than Expected |
| P0508 | Idle Air Control Circuit Low |
| P0509 | Idle Air Control Circuit High |
| P0577 | Cruise Control Input High |
| P0572 | Brake Switch Low |

---

## Ride your own way. We make gear for the garage and the road.

**[Check out our t-shirt collection](/collections/t-shirts/)** - built for riders who wrench on their own bikes.

---

## B-Codes - Body (Security, Switches, Lighting)

### Turn Signal Module (TSM) and Hands-Free Security Module (HFSM)

**TSM** = Turn Signal Module. **HFSM** = Hands-Free Security Module (fob-based system on 2007+ models).

| Code | Description |
|------|-------------|
| B1121 | Left Turn Output Fault (TSM/HFSM) |
| B1122 | Right Turn Output Fault (TSM/HFSM) |
| B1123 | Left Turn Output Short to Ground (HFSM) |
| B1124 | Right Turn Output Short to Ground (HFSM) |
| B1125 | Left Turn Output Short to Battery (HFSM) |
| B1126 | Right Turn Output Short to Battery (HFSM) |
| B1127 | Accessory Output Fault (HFSM) |
| B1128 | Accessory Output Short to Ground (HFSM) |
| B1129 | Accessory Output Short to Battery (HFSM) |

### Security System

| Code | Description |
|------|-------------|
| B1134 | Starter Output High |
| B1135 | Accelerometer Failed |
| B1136 | Accelerometer Tip Test Error (HFSM) |
| B1141 | Ignition Switch Low / Open (TSM/HFSM) |
| B1142 | Smart Security System Internal Fault |
| B1143 | Security Antenna Short to Ground (HFSM) |
| B1144 | Security Antenna Short to Battery (HFSM) |
| B1145 | Security Antenna Open (HFSM) |
| B1131 | Alarm Output Low (HFSM) |
| B1132 | Alarm Output High (HFSM) |

### Switches and Sensors

| Code | Description |
|------|-------------|
| B1151 | Bank Angle Sensor Short to Ground |
| B1152 | Bank Angle Sensor Short to Battery |
| B1153 | Bank Angle Sensor High |
| B1154 | Clutch Switch Input Short to Ground |
| B1155 | Neutral Switch Input Short to Battery |
| B1156 | Ignition Switch Circuit Intermittent |
| B1157 | Handlebar Lock Circuit Malfunction |
| B1158 | Security System Communication Error |
| B1159 | Security System Antenna Circuit Intermittent |
| B1160 | Vehicle Speed Input Error |

### System Voltage (Body Module)

| Code | Description |
|------|-------------|
| B0562 | Battery Voltage Low (Body Module) |
| B0563 | Battery Voltage High (Body Module) |

---

## C-Codes - Chassis (ABS)

These codes come from the ABS module. If your ABS light stays on, one of these is stored.

| Code | Description |
|------|-------------|
| C0565 | Rear Wheel Speed Sensor Circuit |
| C0560 | Front Wheel Speed Sensor Circuit |
| C0563 | Wheel Speed Sensor Correlation Error |
| C1014 | ECU Internal Fault |
| C1023 | Hydraulic Pump Motor Circuit |
| C1024 | ABS Solenoid Valve Relay |
| C1025 | Front ABS Solenoid Valve |
| C1026 | Rear ABS Solenoid Valve |
| C1095 | ABS Module Voltage Low |
| C1096 | ABS Module Voltage High |
| C1100 | ABS Switch Circuit |
| C0051 | Vehicle Speed Signal Missing |
| C0055 | Rear Wheel Speed Sensor Open |
| C0056 | Rear Wheel Speed Sensor Short |

---

## U-Codes - Network Communication

When modules stop talking to each other over the serial data bus, you get U-codes. Common after battery disconnects or loose connectors under the seat.

| Code | Description |
|------|-------------|
| U1016 | Loss of ECM Serial Data |
| U1064 | Loss of TSM/HFSM Serial Data to ECM |
| U1097 | Loss of Speedometer Serial Data to ECM |
| U1255 | Serial Data Error |
| U1300 | ECM Serial Data Low |
| U1301 | ECM Serial Data High |
| U1040 | Loss of ABS Serial Data |
| U1041 | ABS Serial Data Error |
| U0100 | Lost Communication with ECM |
| U0121 | Lost Communication with ABS Module |
| U0140 | Lost Communication with Body Control Module |
| U0155 | Lost Communication with Instrument Cluster |

---

## Common Codes and What to Do About Them

These are the codes we see most often in the garage. Here is what they usually mean in practice.

### P0131 / P0151 - O2 Sensor Low

Your oxygen sensor is reading lean or has failed. Common after an exhaust swap. If both front and rear throw this code, check for an exhaust leak at the header gaskets before replacing sensors.

### P0562 - Battery Voltage Low

Your charging system is not keeping up. Test the battery first (should be 12.6V+ at rest). Then check the stator and voltage regulator. This code also pops up if you have a parasitic drain killing the battery overnight.

### P1353 / P1356 - No Combustion

One cylinder is not firing at all. Start with spark plugs and coil connections. If the plugs look fine, check the [crank position sensor](/pages/symptoms-of-bad-crank-position-sensor-on-harley-davidson/) - a failing CKP sensor can cause one cylinder to drop out.

### P1510 - Limited Performance Mode

The ECM cut your power to protect the engine. This is always a secondary code - something else triggered it. Read all stored codes and fix the root cause first.

### P2135 - TPS Correlation Error

The two throttle position sensors disagree with each other. On throttle-by-wire bikes this puts you straight into limp mode. Usually caused by a failing TPS, loose connector, or corroded pins.

### B1142 - Smart Security System Internal Fault

Your security module has an internal failure. Try disconnecting the battery for 30 minutes, then reconnect and re-learn the fob. If it comes back, the HFSM module likely needs replacing.

### U1255 - Serial Data Error

Generic communication fault between modules. Clean and reseat all connectors on the data bus (under the seat, behind the side covers). Check for corroded pins.

---

## How to Clear Diagnostic Codes

There are three ways to clear codes on a Harley.

**Method 1 - Through the Gauge Cluster**

1. Enter diagnostic mode (see instructions above).
2. Navigate to the module showing the code.
3. Push and hold the odometer reset button for 5+ seconds.
4. The display shows "clear" to confirm.

**Method 2 - With a Diagnostic Tool**

Connect your Digital Technician, Screamin' Eagle Pro Tuner, or TTS Mastertune. Select "Clear DTCs" for each module. This is the most reliable method.

**Method 3 - Battery Disconnect**

Disconnect the negative battery cable and wait 30 minutes. This clears stored codes in most modules, but not all - the security module retains codes through power cycles on some models.

**Important:** Clearing a code does not fix the problem. If the underlying issue is still there, the code will come back within a few ride cycles. Always fix the root cause first.

---

## What Tools Do You Need?

You can read basic codes on most Harleys without any tools - just the gauge cluster method above. But if you want to dig deeper, here is what works:

- **Free / No tools:** Gauge cluster diagnostic mode (works on 2004+ Sportster, Dyna, Softail, Touring)
- **Screamin' Eagle Pro Street Tuner ($300-400):** Reads and clears all codes, plus lets you flash tunes
- **TTS Mastertune (~$400):** Full diagnostic access, data logging, tuning
- **Digital Technician II (dealer tool):** The factory tool dealers use. Expensive, but does everything
- **OBD-II adapter + phone app (limited):** Some generic OBD-II Bluetooth adapters work on 2021+ models with the standard OBD-II port, but older Harleys use a proprietary 4-pin or 6-pin connector

For most home mechanics, the gauge cluster method handles 90% of what you need. If you are tuning or doing major work, a dedicated Harley diagnostic tool is worth the investment.

---

## Decoding Your VIN

Your VIN tells you the exact model year, engine type, and factory configuration - all of which affect which codes apply to your bike. Use our [Harley Davidson VIN lookup](/pages/harley-davidson-vin-lookup/) tool to decode yours.

---

## FAQ

**How do I know if my Harley has stored diagnostic codes?**
If your check engine light is on, there is at least one stored code. But codes can also be stored without the light coming on - these are called "historic" codes. Enter diagnostic mode to check.

**Can I ride with a check engine light on?**
It depends on the code. Codes like P1510 (Limited Performance Mode) mean the ECM is actively cutting power - you can ride, but the bike will feel gutless. Codes like P0131 (O2 sensor) won't affect rideability much but should be addressed soon. If the bike is running rough, misfiring, or overheating, stop and diagnose before riding further.

**Why did my code come back after I cleared it?**
The underlying problem is still there. Clearing codes does not fix anything - it just resets the warning. The ECM will set the code again once it detects the same fault.

**Do I need a dealer to read Harley diagnostic codes?**
No. Most codes can be read through the gauge cluster for free. See the "How to Enter Diagnostic Mode" section above.

**What is the difference between current and historic codes?**
Current codes are active right now. Historic codes were set at some point but the ECM has not seen the fault recently. Both are worth investigating - a historic code that keeps coming back points to an intermittent problem.

**Do diagnostic codes work the same on all Harley models?**
The P, B, C, and U code format is standard across all EFI Harleys (2001+). But the method to enter diagnostic mode varies by model family and year. Older carbureted and Evolution models use simpler two-digit codes.

---

## Sources

- [Harley-Davidson Service Information Portal](https://serviceinfo.harley-davidson.com/) - factory service manuals and electrical diagnostic manuals for all EFI model years
- [SAE J2012 - Diagnostic Trouble Code Definitions](https://www.sae.org/standards/content/j2012_201907/) - industry standard defining the P, B, C, and U code format used across all OBD-equipped vehicles
- [NHTSA Technical Service Bulletins](https://www.nhtsa.gov/vehicle-manufacturers/manufacturer-communications) - federal database of manufacturer-issued technical service bulletins including Harley-Davidson DTCs
- [On-board diagnostics - Wikipedia](https://en.wikipedia.org/wiki/On-board_diagnostics) - background on the OBD-II standard, P/B/C/U code categories, and standardized scan tool protocols underpinning Harley's diagnostic system
- [ThunderMax - How To: Harley Diagnostic Codes (PDF)](https://www.thunder-max.com/techdocs/HarleyDiagCodes.pdf) - step-by-step ignition + odometer-reset procedure for entering diagnostic mode, reading current vs historic DTCs, and clearing codes across Sportster, Touring, and Softail platforms

---

## Keep Reading

Here are more references that go hand in hand with diagnostic codes:

- [Symptoms of a Bad Crank Position Sensor on a Harley Davidson](/pages/symptoms-of-bad-crank-position-sensor-on-harley-davidson/)
- [Harley Davidson Spark Plug Cross Reference](/pages/harley-davidson-spark-plug-cross-reference/)
- [Harley Davidson VIN Lookup](/pages/harley-davidson-vin-lookup/)

*If you want the bigger Harley picture, our [Harley-Davidson history guide](/pages/harley-davidson-history-guide/) walks every engine, model, and era from the founding to current production.*