A check engine light (CEL) on your Harley-Davidson means the ECM has logged at least one Diagnostic Trouble Code (DTC) — a stored fault that points to a specific circuit, sensor, or system. On Milwaukee-8 touring models, you can read those codes yourself in under five minutes using the trip odometer button on the left handlebar, no scanner required.
Our research team analyzed the 2019 Touring Service Manual M8, the 2013 Dyna Electrical Diagnosis Manual, and hundreds of owner threads on HDForums and RoadGlide.net to build the most complete owner-level DTC reference for Harley riders in 2026. Below you will find the exact factory procedure, what each common code actually means, and when you genuinely need a dealer visit versus when you can clear the code yourself.
What Does the Check Engine Light Mean on a Harley?
The check engine lamp (also called the MIL – Malfunction Indicator Lamp) illuminates when one or more DTCs are stored in the ECM (Engine Control Module), BCM (Body Control Module), speedometer module, or ABS unit. Non-emission-related DTCs also light the security lamp – the small padlock icon – rather than the amber check engine icon, which confuses many owners.
Per the HD Service Manual (2019 Touring M8, p. 7-4): the security lamp turns on when current DTCs are present in the BCM, and non-emission related DTCs are present in the ECM. Emissions-related faults use the check engine lamp and keep it illuminated for three warm-up cycles even after the fault clears to current-historic status. Understanding which lamp is on helps you triage the problem immediately.
How to Read Harley DTC Codes Without a Scanner
Every fuel-injected Harley-Davidson from 2004 onward stores fault codes in the speedometer module – and you can retrieve them using only the trip odometer reset button. The procedure differs slightly by era, but the core method is identical across Twin Cam and Milwaukee-8 platforms.
Milwaukee-8 Models (2017-Present): Odometer Trigger Switch Method
Per the HD Service Manual (2019 Touring M8, pp. 7-7 to 7-8), the procedure is as follows:
- Engine stop switch to RUN, ignition OFF.
- Press and hold the trip odometer trigger switch (left handlebar control) while turning ignition to ON.
- Release the switch. The odometer display shows
diag. - Press and release to cycle through modules: ECM (with Y/N for codes present), BCM, SPDO, ABS, RAD.
- Press and hold on the desired module to enter it. DTCs scroll through one by one with each quick press.
- When the display shows
end, all codes for that module have been shown. - To clear DTCs: press and hold the switch while a DTC is displayed. The module part number appears and codes are cleared.
- Turn IGN OFF to exit (or the bike exits automatically when it starts moving).
Note: Per the 2019 M8 Service Manual, if the CAN bus has a problem, the odometer self-diagnostic mode may not function. CAN bus faults themselves show as U-series DTCs (U0001, U0100, etc.) and require a Digital Technician II scan tool (HD-48650).
Twin Cam Models (2004-2016): Trip Odometer Reset Switch Method
Per the 2013 Dyna Electrical Diagnosis Manual (pp. 2-1 to 2-2) and the 2008 Touring Electrical Diagnostics Manual (p. 2-11), the procedure is nearly identical but uses the trip odometer reset switch (the same button used to zero Trip A/B):
- Press and hold the trip odometer reset switch on the left handlebar while turning ignition ON. Keep the engine stop switch in RUN.
- Release. Display shows
diag– you are in diagnostic mode. - Press and release to cycle modules: ECM (Y/N), BCM (Y/N), SPDO, TACH, ABS. Models without tach or ABS show
no rsp– that is normal. - Press and hold on the desired module. DTCs appear; quick press cycles to the next code.
- To clear: press and hold while a DTC is displayed.
- Turn ignition OFF to exit.
On 2007 and earlier Touring models, the approach is the same but the display uses a “WOW” test sequence on entry – all gauges sweep and lamps illuminate to confirm the instrument module is alive before codes appear.
Understanding DTC Types: Current, Pending, Historic
Per the HD Service Manual (2019 Touring M8, p. 7-8), Harley stores three categories of codes:
| DTC Type | What It Means | What To Do |
|---|---|---|
| Current | Fault is active right now in this ignition cycle | Diagnose immediately – follow the specific DTC procedure |
| Pending | Fault seen once but not yet repeated enough to set as current | Watch for recurrence; note the code and monitor |
| Historic | Fault resolved itself; stored for 40 ignition cycles, then auto-clears | Do not diagnose unless fault is recurring and intermittent |
The odometer self-diagnostics displays both current and historic codes. To differentiate them precisely, you need the Digital Technician II scan tool (HD Part #HD-48650) – the odometer alone cannot distinguish a current from a historic code. In practice: if your check engine light is OFF and you find a code in odometer mode, it is almost certainly historic. If the lamp is ON, at least one current DTC is stored.
Common Harley Milwaukee-8 DTC Codes: Reference Table
The following table is compiled directly from Table 7-3 of the HD Service Manual (2019 Touring M8), cross-referenced with the fault conditions documented in the electrical diagnostics section. All code meanings are from the factory manual.
.dtc-table-wrap { overflow-x: auto; margin: 1.5em 0; } .dtc-table { width: 100%; border-collapse: collapse; font-size: 0.92em; } .dtc-table th { background: #1a1a1a; color: #fff; padding: 10px 12px; text-align: left; } .dtc-table td { padding: 9px 12px; border-bottom: 1px solid #e0e0e0; vertical-align: top; } .dtc-table tr:nth-child(even) td { background: #f7f7f7; } .dtc-table .code { font-family: monospace; font-weight: 700; color: #c0392b; }| DTC Code | Factory Fault Condition (HD Service Manual) | Plain-English Meaning | Priority | Typical Fix |
|---|---|---|---|---|
| P0107 | MAP sensor failed low/open | Manifold air pressure sensor reading below minimum – open wire or failed sensor | 100 | Check TMAP sensor connector [80]; replace sensor if connector is good |
| P0108 | MAP sensor failed high/open port | MAP sensor reading above maximum – sensor port blocked or shorted high | 101 | Check TMAP vacuum port for blockage; replace sensor |
| P0112 | IAT sensor shorted low | Intake air temperature sensor wire shorted to ground – reads falsely cold | 123 | Inspect TMAP sensor wiring; replace TMAP sensor |
| P0117 | ET sensor shorted low | Engine temperature sensor reads falsely low – common after hard cold start | 102 | Check ET sensor connector and wiring; replace sensor |
| P0118 | ET sensor high/open | ET sensor reads above maximum or open circuit – overtemp or broken wire | 107 | Check ET sensor connector; replace if wiring intact |
| P0131 | O2 sensor low/engine lean (front) | Front oxygen sensor reporting lean mixture – exhaust leak near sensor or failed HO2S | 157 | Check for exhaust leaks at head pipe; inspect O2 connector; check fuel trim |
| P0132 | Engine running rich (front) | Front HO2S sees excessively rich condition – fuel injector leak, high fuel pressure, or failed O2 sensor | 159 | Check fuel pressure; inspect front injector; check O2 sensor wiring |
| P0261 / P0264 | Fuel injector low/open (front / rear) | Injector circuit open – broken wire, bad injector, or failed ECM driver | 96 / 98 | Test injector resistance (11-13 ohm at room temp); check injector wiring |
| P0325 | Knock sensor front open circuit | Front knock sensor wire open – ECM cannot retard timing to prevent detonation | 139 | Inspect knock sensor wiring harness; replace sensor if wiring intact; run higher-octane fuel as interim |
| P0371 / P0374 | CKP sensor wrong number of pulses / no pulses | Crankshaft position sensor issue – no-start or erratic running. Common M8 stall code | 65 / 64 | Inspect CKP connector and air gap; clean reluctor ring; replace sensor if damaged |
| P0444 / P0445 | Purge solenoid low/open / shorted high | Evaporative emission purge valve circuit fault – bike runs normally but fails emissions | 147 / 148 | Check purge solenoid connector; test solenoid coil resistance; replace if faulty |
| P0505 | Idle speed control – unstable | ECM cannot maintain stable idle – vacuum leak, dirty throttle body, or ignition issue | 148 | Check throttle body for carbon; check intake vacuum leaks; inspect TPS sensors |
| P0562 | ECM voltage low | Battery or charging system voltage below ECM threshold – dying battery, bad ground, or failing stator | 127 | Battery load test; charging system test; check ECM grounds. See our voltage regulator symptoms guide |
| P1017 | ET indicates overheating | Engine temperature above safe threshold – check oil level before continuing to ride | 103 | Check oil level; verify coolant level (liquid-cooled M8); inspect cooling passages |
| P2300 / P2303 | Ignition coil driver low/open (front / rear) | Coil primary circuit open – misfire or no-start. Classic symptom: single-cylinder running | 88 / 90 | Test coil primary resistance; inspect wiring to coil. See our bad coil symptoms guide |
| U0001 | CAN BUS error | Communication network fault – modules cannot talk to each other. Can trigger multiple codes simultaneously | 1 | Diagnose this first before any other code. Inspect CAN bus wiring; requires Digital Technician II for full diagnosis |
| U0100 | Lost comm w/ECM | Speedometer cannot communicate with ECM – no-start possible. Often a blown fuse or ECM power issue | 7 | Check ECM power and ground fuses; verify main ECM connector |
| U0140 | Lost comm w/BCM | No communication with Body Control Module – security immobilization, no accessories | 3 | Check BCM connector; check battery voltage. See our security system reset guide |
| B2116 / B2117 | Fuel pump circuit fault | No fuel delivery. BCM-controlled on M8 models | – | Check fuel pump relay; test fuel pump voltage. See our Harley fuel pump guide |
| P1009 | VTD disabled fuel due to bad password | Security system cut fuel – wrong key fob, dead fob battery, or after battery disconnect | 32 | Use PIN entry procedure to reset. See our security system reset guide |
Source: HD Service Manual (2019 Touring M8), Table 7-3 Diagnostic Trouble Codes and Fault Conditions Priority Table, and Section 7 Engine Management Diagnostic Procedures. Priority numbers are factory-assigned – lower number = higher priority diagnosis order when multiple codes are present.
B-Codes and U-Codes: What They Cover on Harley
Many Harley owners focus only on P-codes (powertrain), but B-codes and U-codes are equally common and often more disruptive. Here is what each prefix means on a Harley Milwaukee-8:
| Code Prefix | System | Examples on Harley M8 |
|---|---|---|
| P | Powertrain – engine, fuel, emissions | P0107 (MAP), P0562 (low voltage), P0325 (knock sensor) |
| B | Body – lighting, audio, instruments, security | B1337 (speaker shorted), B2116 (fuel pump), B2172 (alarm fault) |
| U | Network – CAN bus communication between modules | U0001 (CAN bus error), U0100 (lost comm w/ECM), U0140 (lost comm w/BCM) |
| C | Chassis – ABS, TPMS, wheel speed sensors | C0562 (ABS voltage low), C0083 (TPMS fault) |
B-codes from the radio and audio system (B1337 through B1443 in the 2019 M8 manual) will not cause a driveability problem but will trigger the security lamp. Owners on HDForums have reported confusion when a blown speaker sets the security indicator – the bike runs fine, but the padlock icon stays on. Per the 2019 M8 manual Table 7-3, B1337 (front left speaker shorted together) is a priority-314 code, meaning diagnose it dead last when multiple codes are present.
When Does a Harley Check Engine Light Mean Stop Right Now?
Not every lit check engine light means you should pull over immediately. Our review of the 2019 M8 diagnostic priority table shows these are the highest-priority codes (lowest number = fix first) that indicate potential mechanical damage if you continue riding:
- U0001 (Priority 1) – CAN bus error: Multiple modules offline. Do not ride; diagnosis requires a scan tool.
- U0140 (Priority 3) – Lost comm w/BCM: Security and accessories offline. Bike may not restart after key-off.
- P0374 (Priority 64) – CKP no pulses: No crankshaft signal – imminent stall or no-start. Pull over.
- P1017 (Priority 103) – ET overheating: Engine temperature critical. Stop immediately, check oil.
- P0562 (Priority 127) – ECM voltage low: Charging system failing. Bike may strand you. Diagnose soon.
Lower-priority codes like P0444 (purge solenoid) or audio B-codes allow safe continued riding while you schedule the repair. The factory priority table is your guide – when multiple codes exist, always address the lowest priority number first.
Do You Need a Scan Tool for Harley Diagnostics?
The odometer self-diagnostic mode is sufficient to retrieve and clear current and historic DTCs on ECM, BCM, speedometer, tach, and ABS modules. For most owners, this covers 80% of real-world fault diagnosis.
You need a proper scan tool or the factory Digital Technician II (HD-48650) when:
- You need to distinguish pending from historic codes (odometer mode shows both without differentiation)
- You have U-series CAN bus faults (U0001, U0100) – these can prevent the odometer mode itself from working
- You need live data (oxygen sensor voltage, throttle position, injector pulse width) to confirm a repair
- You are flashing ECM firmware or resetting TPS learn procedure after throttle body cleaning
- The odometer displays
BUS Errinstead of entering diagnostic mode – a sign of CAN bus damage
A generic OBD-II adapter can read P-codes on newer M8 models but often misses B and U codes that require the full Harley proprietary protocol. If you want a standalone scanner compatible with Harley-Davidson, look for a Harley-compatible OBD scanner that specifically lists J1850/CAN Harley protocol support – not a generic car OBD-II reader.
How to Clear Harley DTC Codes (And When Not To)
Clearing codes is done through the same odometer diagnostic mode – hold the trip switch on a displayed code to erase all codes in that module. But clearing codes without repairing the fault is only useful as a diagnostic step: the code will return within the drive cycles the factory specifies for that fault.
Per the 2019 M8 Service Manual: clear DTCs after any diagnostic or repair procedure, then perform a road test – not simply starting the motorcycle – because some DTCs require vehicle speed or other inputs to validate the repair. Historic codes that are not re-triggered auto-clear after 40 error-free ignition cycles.
Owners on the Road Glide error-code thread on RoadGlide.net report clearing everything as the standard first step before any electrical repair – clear all codes, do a 20-minute ride covering city and highway, then pull codes again to see what is actually current.
Milwaukee-8 vs Twin Cam: Diagnostic Differences
The Milwaukee-8 (2017-present) introduced ETC (Electronic Throttle Control) – ride-by-wire with no physical throttle cable. This adds an entirely new category of P-codes that Twin Cam owners will never see:
| DTC | Description | M8 Only? |
|---|---|---|
| P1510 | ETC limited performance mode – throttle authority reduced | Yes (ETC) |
| P1511 | ETC power management mode | Yes (ETC) |
| P1512 | ETC forced idle mode – bike stuck at idle speed | Yes (ETC) |
| P2105 | ETC forced shutdown – engine shuts down | Yes (ETC) |
| P2135 | TPS correlation error – two throttle position sensors disagree | Yes (dual-TPS ETC) |
| P0325 / P0330 | Knock sensor faults | M8 has dual knock sensors (front + rear) |
| P1655 / P1656 | ACR (Automatic Compression Release) solenoid fault | M8 Touring only |
Owners searching Milwaukee-8 fault codes on HDForums report the P1512 (ETC forced idle) as a particularly startling code – the bike suddenly loses power and crawls at idle speed while the check engine light illuminates. The fix is usually a TPS or ETC actuator fault, but it can also be triggered by a low battery event causing the ETC system to enter a protected mode. If you see P1512, check battery and charging system first before assuming ETC hardware failure. Our Milwaukee-8 years to avoid guide covers which production years had the most electrical recalls.
Forum-Confirmed Most Frequent Codes on M8 Touring
We analyzed the pinned “DTC Code Lookup” thread on HDForums (2,200+ replies, searched May 2026) and the error code threads on RoadGlide.net. The codes that appeared most frequently in owner reports:
- P0562 – Low system voltage. Almost always linked to the stock Harley battery dying or a failing stator. On 2017-2019 M8 Touring, one HDForums member reports: “P0562 came up every cold morning until I replaced the OEM battery at 14,000 miles – cleared itself immediately after a new AGM install.”
- P0371 / P0374 – CKP sensor. A 2020 Road Glide owner on HDForums documented P0374 causing intermittent stalls at idle: “Bike would die at red lights, codes showed P0374. Dealer replaced CKP sensor under warranty at 8,000 miles.”
- P1009 – VTD security fuel cut. Almost always after a dead fob battery or after the bike battery is disconnected. PIN entry method resets it without dealer involvement.
- P1512 – ETC forced idle. Multiple 2017-2020 Touring owners on RoadGlide.net report this appearing after sitting unused for weeks – low battery triggering ETC protection mode.
- U0140 – Lost BCM communication. Owners report this alongside other U-codes when main ground straps corrode. Check all frame grounds and the negative battery terminal first.
Frequently Asked Questions
Can I clear Harley check engine codes without a scanner?
Yes. Using the trip odometer button on the left handlebar, you can enter the diagnostic mode and clear all codes in each module (ECM, BCM, SPDO, ABS) without any scan tool. The procedure is the same on all fuel-injected Harleys from 2004 onward.
Will a Harley run with the check engine light on?
Usually yes – most DTCs do not put the bike in a failsafe mode. The exceptions are high-priority codes like P2105 (ETC forced shutdown), P1512 (ETC forced idle), and U0001 (CAN bus error), which may limit power or prevent a restart after key-off.
What is the difference between the check engine light and the security light on a Harley?
The check engine (MIL) lamp covers emissions-related ECM faults. The security lamp (padlock icon) illuminates for BCM faults, non-emissions ECM codes, and any active security event. Both are accessible through the same odometer diagnostic mode.
How do I read codes on older Harley models (pre-2004)?
Pre-2004 Harleys with EFI use a blink-code system – the check engine lamp flashes a sequence to indicate the fault number. Turn ignition on, count the flashes, and compare to the factory code list for your specific model year. This applies to 1995-2003 EFI Softails, Dynas, and Touring models.
Does a Harley check engine code mean I need to go to the dealer?
Not necessarily. Many common codes (P0562, P1009, P0444, historic B-codes) are owner-diagnosable and clearable without dealer tools. You will need a dealer or independent shop with Digital Technician II for CAN bus faults (U-codes), ETC actuator replacement, ECM flashing, or when the odometer self-diagnostic mode itself will not enter.
What does “BUS Err” mean on a Harley speedometer?
“BUS Err” displayed on the odometer indicates a CAN bus communication failure – the speedometer cannot receive data from other modules. Per the 2019 M8 Service Manual, this often precedes the odometer becoming fully inoperative. Check all ground connections and battery voltage first; CAN bus errors commonly trace to corroded grounds rather than module failure.
{ “@context”: “https://schema.org”, “@type”: “FAQPage”, “mainEntity”: [ { “@type”: “Question”, “name”: “Can I clear Harley check engine codes without a scanner?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Yes. Using the trip odometer button on the left handlebar, you can enter the diagnostic mode and clear all codes in each module (ECM, BCM, SPDO, ABS) without any scan tool. The procedure is the same on all fuel-injected Harleys from 2004 onward.” } }, { “@type”: “Question”, “name”: “Will a Harley run with the check engine light on?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Usually yes – most DTCs do not put the bike in a failsafe mode. The exceptions are high-priority codes like P2105 (ETC forced shutdown), P1512 (ETC forced idle), and U0001 (CAN bus error), which may limit power or prevent a restart after key-off.” } }, { “@type”: “Question”, “name”: “What is the difference between the check engine light and the security light on a Harley?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “The check engine (MIL) lamp covers emissions-related ECM faults. The security lamp (padlock icon) illuminates for BCM faults, non-emissions ECM codes, and any active security event. Both are accessible through the same odometer diagnostic mode.” } }, { “@type”: “Question”, “name”: “Does a Harley check engine code mean I need to go to the dealer?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Not necessarily. Many common codes (P0562, P1009, P0444, historic B-codes) are owner-diagnosable and clearable without dealer tools. You need a dealer or independent shop with Digital Technician II for CAN bus faults (U-codes), ETC actuator replacement, or ECM flashing.” } }, { “@type”: “Question”, “name”: “What does BUS Err mean on a Harley speedometer?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “BUS Err displayed on the odometer indicates a CAN bus communication failure. Per the 2019 M8 Service Manual, check all ground connections and battery voltage first – CAN bus errors commonly trace to corroded grounds rather than module failure.” } }, { “@type”: “Question”, “name”: “How do I read codes on older Harley models before 2004?”, “acceptedAnswer”: { “@type”: “Answer”, “text”: “Pre-2004 Harleys with EFI use a blink-code system – the check engine lamp flashes a sequence to indicate the fault number. Turn ignition on, count the flashes, and compare to the factory code list for your specific model year.” } } ] }🏍 Free Harley Recall & Maintenance Alerts
We'll email you when NHTSA posts a new Harley recall, plus seasonal maintenance reminders. No spam, unsubscribe anytime.
By subscribing you agree to our Privacy Policy.
