Skip to content

Harley Diagnostic Codes: DTC Lookup Guide

Harley Diagnostic Codes: DTC Lookup Guide

A warning lamp gives you a starting point, not a parts order. A Harley diagnostic trouble code records what a control module detected at a particular moment. The same code can be triggered by a failed component, damaged wire, loose terminal, weak battery, poor ground, or a fault elsewhere in the circuit.

That distinction saves money. A rider may notice a check-engine lamp after a cold start, a stumble over bumps, or a fault that appears only after washing the bike. Those details help separate an intermittent connector problem from a repeatable sensor or mechanical fault.

This page explains how to use Harley-Davidson diagnostic codes without applying one model’s procedure or code list to every motorcycle.

Our rule when a warning lamp appears: record the evidence first. Clearing a code or disconnecting the battery before writing down the module, status, and conditions can erase the best clue you have.

Start With Four Pieces of Information

Before looking up a code, record:

  1. The complete DTC, including its letter and every digit.
  2. The module that reported it, such as ECM, BCM, ABS, or an instrument module.
  3. Whether the display marks it current or historic.
  4. The full model, model year, market, and installed equipment.

Do not shorten P0562 to 562, and do not discard the module name. Different modules can monitor related circuits, and a generic web list may attach the wrong meaning to an incomplete code.

If the motorcycle’s identity is uncertain, use the Harley VIN lookup guide to establish the model year and model family. Then select that exact vehicle in the Harley-Davidson Service Information Portal.

What the First Letter Tells You

The leading letter identifies a broad system family:

PrefixGeneral familyTypical reporting systems
PPowertrainEngine control, throttle, fuel, ignition, emissions
BBodyLighting, security, switches, body control
CChassisABS, wheel-speed monitoring, chassis control
UNetworkCommunication between electronic modules

This is classification, not diagnosis. P does not mean the engine itself is damaged, and U does not prove that a control module has failed. A network code may result from voltage loss, a connector fault, damaged data wiring, or a module that stopped communicating for another reason.

How to Read Codes on Your Exact Harley

Harley has used different speedometers, button layouts, connectors, and module architectures. Some motorcycles provide a dashboard diagnostic menu. Others require a compatible tool. Older electronic systems use different procedures again.

Use this sequence:

  1. Find the owner’s manual for the exact model year in the Service Information Portal.
  2. Search that manual for diagnostics, check engine lamp, or DTC.
  3. Follow only the menu or switch sequence shown for that motorcycle.
  4. Record every displayed module and code before selecting any clear option.
  5. If the manual does not provide rider access, use a scan tool explicitly listed for the bike’s connector and protocol, or have an equipped shop read it.

Connector location also varies. Do not assume it is always below the left side cover. Confirm the location in the owner’s manual, electrical diagnostic manual, or tool fitment documentation before removing panels or buying an adapter.

Harley DTC Lookup From the Factory Public Index

The tables below transcribe the fault conditions in Harley-Davidson’s public Diagnostic Trouble Codes document. They restore a useful code lookup without pretending the list applies to every Harley.

The factory page does not publish a model-year applicability matrix. Treat each result as a definition to confirm in the electrical diagnostic manual for the exact motorcycle, not as proof that the code exists on every model.

Code familyLikely reporting module or systemApplicability boundary
PECM and powertrain controlOnly motorcycles with the named sensor, actuator, or control strategy
BBCM, instruments, LHCM, RHCM, security, and switched outputsModule names and supported outputs vary by chassis, year, market, and equipment
CABS controlOnly ABS-equipped motorcycles using the listed ABS architecture
UCAN network modulesOnly motorcycles with the named network and module; not a legacy serial-data code list

Abbreviations in the factory descriptions include ECM for engine control module, BCM for body control module, IM for instrument module, LHCM and RHCM for left- and right-hand control modules, WSS for wheel-speed sensor, CKP for crank-position sensor, VSS for vehicle-speed sensor, TPS for throttle-position sensor, TGS for twist-grip sensor, ETC for electronic throttle control, ACR for automatic compression release, and BAS for bank-angle sensor.

C Codes: ABS and Chassis

These entries apply only when the motorcycle has the relevant ABS system. A non-ABS bike cannot set an ABS wheel-speed or pump code from a module it does not have.

DTCHarley factory fault condition
C0562ABS voltage low
C0563ABS voltage high
C1014ABS ECU relay error
C1021ABS front WSS always zero
C1023ABS rear WSS always zero
C1025ABS front wheel speed intermittent
C1027ABS rear wheel speed intermittent
C1029ABS wheel speed difference too high
C1032ABS front wheel speed circuit open/shorted
C1034ABS rear wheel speed circuit open/shorted
C1040ABS pump/motor error
C1055ABS ECU internal error
C1061ABS front apply solenoid circuit open/high resistance
C1062ABS front release solenoid circuit open/high resistance
C1065ABS rear apply solenoid circuit open/high resistance
C1066ABS rear release solenoid circuit open/high resistance
C1159ABS invalid stored VIN
C1178ABS no VIN received from ECM
C1184ABS invalid VIN from ECM

B Codes: Body, Instruments, Controls, and Security

The public list combines conditions from several body-side modules. Record the reporting module with the code. For example, B1151 is defined here as an RHCM turn-signal-bulb condition, but that does not establish that every model uses an RHCM or monitors the lamp the same way.

DTCHarley factory fault condition
B1101LHCM turn signal bulb out
B1103LHCM internal error
B1151RHCM turn signal bulb out
B1153RHCM internal error
B1200IM internal fault
B1201Internal fault - default calibration
B1214External indicator bar short to battery
B1215External indicator bar open load
B1216External indicator bar short to ground
B2102System power output shorted high
B2103System power output shorted low
B2104System power output overloaded
B2112ACC output shorted high
B2113ACC output shorted low
B2114ACC output overloaded
B2161Brake lamp output open
B2163Brake lamp output shorted low
B2164Brake lamp output overloaded
B2172H2 output shorted high
B2173H2 output shorted low
B2176Security antenna output open
B2177Security antenna output shorted high
B2178Security antenna output shorted low
B2183G2 output shorted low
B2188G3 output shorted low
B2193H4 output shorted low
B2198H3 output shorted low
B2206Run/stop switch input open/shorted high
B2208Run/stop switch input shorted low
B2210Run/stop switch inputs both open
B2212Run/stop switch inputs both closed
B2218Neutral switch shorted low
B2223Rear brake switch shorted low (light on)
B2226BAS input open
B2228BAS input shorted low
B2250Clutch switch stuck
B2259Aux lamp switch stuck
B2270BCM internal error
B2271BCM voltage low
B2272BCM/IM voltage high
B2274Constant battery line error

P Codes: Engine and Powertrain Control

These are the powertrain entries in the public factory index. Hardware still controls applicability. A cable-throttle motorcycle does not gain an ETC or TGS fault merely because that code appears in this reference.

DTCHarley factory fault condition
P0031Front HO2S low/open
P0032Front HO2S shorted high
P0051Rear HO2S low/open
P0052Rear HO2S shorted high
P0107MAP sensor failed low/open
P0108MAP sensor failed high/open port
P0112IAT sensor shorted low
P0113IAT sensor high/open
P0117ET sensor shorted low
P0118ET sensor high/open
P0120TPS 1 range error
P0122TPS 1 low
P0123TPS 1 high/open
P0131O2 sensor low/engine lean (front)
P0132Engine running rich (front)
P0134Oxygen sensor high/open (front)
P0151O2 sensor low/engine lean (rear)
P0152Engine running rich (rear)
P0154O2 sensor high/open (rear)
P0220TPS 2 range error
P0222TPS 2 low/open
P0223TPS 2 high
P0261Fuel injector low/open (front)
P0262Fuel injector shorted high (front)
P0264Fuel injector low/open (rear)
P0265Fuel injector shorted high (rear)
P0325Knock sensor front open circuit
P0327Knock sensor front circuit low
P0328Knock sensor front circuit high
P0330Knock sensor rear open circuit
P0332Knock sensor rear circuit low
P0333Knock sensor rear circuit high
P0371CKP sensor wrong number of pulses
P0374CKP sensor no pulses
P0444Purge solenoid low/open
P0445Purge solenoid shorted high
P0502VSS failed low
P0503VSS failed high
P0505Idle speed control - unstable
P0522Engine oil pressure sensor/switch shorted low
P0523Engine oil pressure sensor/switch shorted high/open
P0562ECM voltage low
P0563ECM voltage high
P0572Brake switch low
P0577Cruise control input error
P0603ECM EEPROM memory error
P0605ECM FLASH memory error
P06415 Volt reference out of range
P06515 Volt reference 2 out of range
P1009VTD disabled fuel due to bad password
P1270TGS 2 A/D validation error
P1501JSS low
P1502JSS high/open
P1505Power limit violation
P1510ETC limited performance mode
P1511ETC power management mode
P1512ETC forced idle mode
P1514ETC airflow error
P1600ETC watchdog error
P1655ACR solenoid low/open
P1656ACR solenoid shorted high
P2100ETC driver open circuit
P2101ETC actuation error
P2102ETC driver shorted low
P2103ETC driver shorted high
P2105ETC forced shutdown mode
P2107ETC driver internal error
P2119ETC actuator return error
P2122TGS 1 low/open
P2123TGS 1 high
P2127TGS 2 low/open
P2128TGS 2 high
P2135TPS correlation error
P2138TGS correlation error
P2176ETC zero position learning error
P2300Ignition coil driver low/open (front)
P2301Ignition coil driver shorted high (front)
P2303Ignition coil driver low/open (rear)
P2304Ignition coil driver shorted high (rear)

U Codes: CAN Network Communication

These definitions describe a CAN-networked architecture. Older serial-data systems can use different communication codes and module names.

DTCHarley factory fault condition
U0001CAN BUS error
U0002CAN communication bus performance error
U0003Network management monitoring
U0011CAN bus low shorted to CAN bus high
U0100Lost communication with ECM
U0121Lost communication with ABS
U0140Lost communication with BCM
U0141Lost communication with LHCM
U0142Lost communication with RHCM
U0156Lost communication with speedometer
U0157Lost communication with tachometer

What If Your Code Is Missing?

Codes such as P1475, C1100, and the extended display form C110000 do not appear in the current public factory index used above. That absence does not prove the code is invalid. It means this source cannot support a universal definition.

Record the code exactly as displayed, including all zeroes and the module name. Then search the electrical diagnostic manual for the exact model and year. Do not silently shorten C110000 to C1100, map P1475 from an unrelated model, or assume that a Milwaukee-Eight engine identifies the motorcycle’s entire electronic architecture.

The factory source also publishes a rideability message for each listed entry. Many powertrain, body, and network conditions say to discontinue operation, while the ABS entries shown there generally say continued operation is possible with prompt repair. Follow the message displayed by the motorcycle and the model-specific manual. A red oil-pressure warning, braking fault, smoke, fuel leak, severe misfire, or unsafe throttle behavior is not a cue to keep riding while searching the internet.

Why Older Code Lists Need Extra Care

An early EFI motorcycle, a Twin Cam with serial data, and a CAN bus motorcycle do not share one diagnostic architecture. Two-digit flash codes found in an older manual should not be merged with five-character DTCs from a later manual. Likewise, a generic SAE code description may not include Harley’s module logic, operating conditions, or diagnostic steps.

If you own an early Magneti Marelli EFI bike, use the electrical diagnostic manual for that exact year and model. The same rule applies to V-Rod, Buell-derived systems, Touring electronics, Softail electronics, and later Revolution Max motorcycles. A broad list that erases those boundaries is more likely to mislead than help.

Harley Diagnostic Codes: DTC Lookup Guide

Diagnose the Circuit, Not the Code Name

Once you have the correct definition, work through the factory diagnostic tree. The order matters because later tests assume earlier checks passed.

1. Record the operating conditions

Note whether the engine was cold or hot, moving or idling, wet or dry, and whether the fault appeared after service, battery replacement, accessory installation, or a hard bump. Intermittent wiring faults often leave patterns that disappear once the bike is parked.

2. Check system voltage first

Low or unstable voltage can create several unrelated-looking codes. Test the battery and charging system using the specifications for the motorcycle. Inspect battery terminals and the documented ground points before blaming multiple modules at once.

3. Inspect the entire connector path

A clean sensor does not rule out an electrical fault. Check harness routing, pin fit, corrosion, water entry, terminal tension, and rubbed insulation. Do not force meter probes into terminals or spread them.

4. Follow the model-specific tests

The diagnostic manual may call for voltage, resistance, continuity, pressure, or an active scan-tool test. Use the specified connector views and pin numbers. A continuity result on the wrong pin can turn a simple fault into a damaged module.

5. Confirm the repair

Repair the fault, clear the code through the documented method, and repeat the operating condition that set it. A code that stays gone only while the motorcycle sits in the garage is not a confirmed repair.

For ignition complaints, the Harley spark-plug cross-reference helps verify the correct plug after the electrical diagnosis points there. For engine-family context, use our Harley-Davidson history guide rather than guessing from appearance.

Current Versus Historic Codes

A current code means the module still detects the condition under its present criteria. A historic code records a condition that is not currently active. Exact labels vary by system, so use the manual’s wording.

Historic does not mean imaginary. A loose terminal may reconnect after the bike stops vibrating. Record it, inspect relevant wiring, and consider when it appeared. But do not replace a part solely because an old code remains stored.

Read Groups of Codes as Evidence

Several codes set at the same time can reveal more than one isolated definition.

Multiple voltage codes: If the ECM, BCM, and ABS all record low-voltage conditions, test the battery, charging output, main connections, and grounds before treating three modules as separate failures. The individual diagnostic trees still apply, but the shared timestamp and supply path deserve attention first.

One sensor plus several communication codes: A lost module can make other modules report network faults. Identify which unit stopped communicating and whether it still has power and ground. Replacing every module named in a U code would ignore how the network reports absence.

Front and rear sensor codes together: Shared power, reference voltage, ground, harness routing, or calibration can matter. Do not assume two sensors failed simultaneously without testing the shared parts of the circuit.

A code after accessory work: Record what was added and where its wiring was routed. An accessory can disturb a connector, overload a circuit, create a poor ground path, or pinch network wiring. Restore the documented configuration for diagnosis when practical.

A fault that appears over bumps or in rain: Intermittent terminal contact, rubbed insulation, or water entry becomes more plausible. Inspect before moving the harness, because disturbing it can temporarily hide the evidence.

Patterns guide the order of inspection. They do not replace the factory flowchart or prove a common cause.

Build a Useful Diagnostic Record

If the fault needs a shop, bring more than a phone photo of the warning lamp. Write down the DTC, reporting module, status, mileage, battery voltage, recent work, weather, fuel level, engine temperature, and the exact symptom. Note whether cycling the ignition changed anything and whether the motorcycle could be restarted safely.

Video can capture an intermittent instrument display or sound, but keep attention on the road and record only while stopped. Do not erase codes before the technician sees them.

For a crank-position code, compare the electrical diagnosis with the observable patterns in our bad crank-position sensor guide. New riders can use the motorcycle beginner guide for the basic pre-ride and maintenance context. Neither article replaces the factory test for the code on the motorcycle.

Clearing Codes Without Losing Evidence

Clear codes only after recording them and completing the repair. Use one of these model-supported routes:

  • The dashboard diagnostic menu described in the owner’s manual.
  • A compatible diagnostic tool using its documented clear command.

Some modules require an ignition cycle or successful operating cycles before status changes. Others retain history. The exact behavior belongs to the model-year diagnostic documentation, not a universal countdown or button hold copied from another motorcycle.

When to Stop Riding

Stop and arrange proper diagnosis when the motorcycle has unsafe braking behavior, a red oil-pressure warning, smoke, a fuel leak, uncontrolled idle, throttle-control fault, severe misfire, overheating, or repeated loss of electrical power. Harley’s public DTC reference labels many conditions with Discontinue operation and tells the rider to seek repair.

For an ordinary stored code with no unsafe symptom, preserve the evidence and diagnose methodically. The useful question is not “Which part shares this code’s name?” It is “What test proves why this module saw this condition?”

We build for riders who use their machines. See the T-shirt collection or the In Gasoline We Trust tee when the garage work is done.

Sources

Frequently Asked Questions

How do I read Harley-Davidson diagnostic codes?

Use the code-display procedure in the owner's manual for your exact model and year, or connect a compatible scan tool to the bike's diagnostic connector. Harley changed controls, displays, connectors, and menu sequences across platforms, so there is no safe universal button sequence.

What do P, B, C and U Harley codes mean?

P codes generally concern powertrain control, B codes body or security functions, C codes chassis systems such as ABS, and U codes network communication. The module that stored the code and the model-year diagnostic manual determine the exact meaning.

Does a Harley trouble code prove a sensor is bad?

No. A code reports a detected electrical or operating condition. Wiring, connectors, supply voltage, grounds, calibration, mechanical faults, and the named component can all be possible causes. Follow the model-specific diagnostic tree before replacing parts.

Can I clear a Harley code by disconnecting the battery?

Do not use battery disconnection as a universal clearing procedure. It can erase useful evidence without repairing the cause and may affect settings. Use the procedure specified for the exact motorcycle after recording the codes and completing the repair.

Are all Harley diagnostic codes valid for every model?

No. Codes depend on model year, market, installed modules, engine management, ABS, security equipment, and network architecture. A code absent from one manual may be valid on another motorcycle.

From the Shop

Related Articles