AutoLogicTools

OBD-II trouble code

U0017: Medium Speed CAN Communication Bus (-) High

CAN-Low sitting too high does not kill the network — it narrows the margin the receivers depend on. This is the intermittent one: features that work in the morning and drop out in the afternoon, and a fault that refuses to appear on the workshop floor.

Medium severityNetworkNetwork CommunicationDrivable short-term

Quick facts

System
Network
Category
Network Communication
Severity
Medium severity
Drivable
Usually safe to drive short-term
Repair cost range
$100$900
DIY difficulty
Shop recommended

What does U0017 mean?

Receivers on a CAN network do not measure either conductor against ground. They measure the gap between CAN-High and CAN-Low, and decide what was sent based on how wide that gap is. Dominant means the two conductors have separated by roughly two volts; recessive means they have collapsed back together near 2.5 volts. Everything the network does rests on that separation being wide enough to be unambiguous.

U0017 says CAN-Low has drifted upward. That matters in a very specific way, and it is not the same as the network being broken. If CAN-Low cannot get all the way down during a dominant bit, the separation still occurs, it is just smaller. The receiver still sees a difference, only with less margin to spare. Messages still get through — until something takes away the last of the remaining margin.

That is what gives this code its character. Rather than a dead network, it typically produces a network that works and then does not. Heat expands connector housings and raises the resistance of a marginal joint. Vibration momentarily lifts a corroded terminal. Moisture changes a leakage path. Any of those consumes the reduced margin and the bus starts dropping messages, then recovers when conditions change back. Owners describe it as features that fail on the motorway and work in town, or a system that misbehaves once the vehicle has been running for twenty minutes.

Two causes fit that behaviour better than a hard short does. The first is resistance in the CAN-Low path itself — a corroded splice, a green terminal, a poor repair joint — which biases the conductor upward and eats margin without ever disconnecting anything. The second is termination. The pair is terminated by a 120-ohm resistor at each end, and if one has failed open, the idle levels shift and the signal reflects off the unterminated end, degrading exactly this margin. Measuring roughly 60 ohms across the pair with the battery disconnected checks both terminators in one reading and takes seconds, which makes it the highest-value first measurement on this specific code.

Common causes

  • Corroded splice, junction or terminal raising resistance in the CAN-Low path
  • Failed or open terminating resistor at one end of the pair
  • Poor previous repair — a crimped butt connector or twisted-and-taped joint that has oxidised
  • CAN-Low conductor contacting a low-current powered circuit intermittently
  • Water intrusion into a connector creating a variable leakage path to a powered pin
  • Partially seated connector losing tension as it heat-cycles
  • Module beginning to fail internally and biasing the conductor upward

Symptoms

  • Features work sometimes and fail other times with no obvious pattern at first
  • Faults appear once the vehicle is warmed up, or on rough roads, and clear afterwards
  • Communication codes stored historically but no fault present when the vehicle is tested
  • Scan tool connects and then drops the network mid-session
  • Displays glitch briefly and recover
  • Symptoms noticeably worse in wet weather or after washing
  • Engine starts and drives normally throughout

Diagnostic steps

  1. 1.Measure resistance across the pair with the battery disconnected before anything else. Roughly 60 ohms means both terminators are present; near 120 ohms means one has failed open and you have found a cause in the first minute.
  2. 2.Measure the differential rather than each conductor to ground. This code is about how much separation the receivers have left, and only a differential reading shows that directly.
  3. 3.Reproduce the conditions rather than testing a cold, stationary vehicle. Warm the vehicle up, load it, drive it over rough surfaces — an intermittent fault that is not present cannot be measured, and this fault is defined by intermittency.
  4. 4.Perform a wiggle test on the network conductors, splice packs and module connectors while watching live data or an oscilloscope trace. A brief drop that follows your hand is the fault.
  5. 5.Inspect splice packs and shared junction connectors first. On body networks these are where corrosion concentrates, and corrosion raises resistance without breaking anything — exactly the mechanism this code describes.
  6. 6.Check any previous repair in the harness. A butt connector or taped joint from an earlier accessory installation or accident repair is a far better suspect than intact factory wiring.
  7. 7.Where an oscilloscope is available, look at the shape of the waveform rather than only its levels. Rounded edges and reflection ringing point at termination and resistance problems that a multimeter reading will not reveal.

Repair cost

$100$900

Diagnosis is the expensive part here and sometimes takes two visits, because the fault has to be caught in the act — budget $150 to $400. A failed terminating resistor or a corroded splice repair is often only $100 to $300 once located. Connector and terminal replacement is $150 to $450. A failing module costs $400 to $900 with programming, but should be the last conclusion rather than the first, because resistance and termination faults mimic it closely.

Estimate your repair

Run the numbers for your vehicle

Open the Repair Cost Estimator with module communication / can bus diagnosis preselected. Adjust labor rate and vehicle category to fit your situation.

DIY vs shop

Leave this one to a qualified shop. It typically involves emissions-critical components, refrigerant handling, or other work that requires manufacturer-grade tooling, training, or certification. DIY attempts often produce a more expensive problem than the original code.

Related codes

Frequently asked questions

Why does everything work fine when the shop tests it?

Because this fault is about margin rather than failure. The network still works, with less tolerance than it should have, and it only stops working when heat, vibration or moisture consumes what is left. A cold vehicle sitting still in a workshop provides none of those conditions. Ask for the vehicle to be tested warm, loaded and moving, and for the network to be monitored rather than spot-checked.

What is the terminating resistor and why does it matter here?

A CAN network is terminated by a 120-ohm resistor at each physical end of the pair, which absorbs the signal so it does not reflect back along the wire. If one fails open, the idle voltages shift and reflections distort the waveform — which is precisely the loss of margin this code describes. Measuring about 60 ohms across the pair with the battery disconnected tests both of them at once and is worth doing before anything else.

Can corrosion really cause this without breaking the circuit?

Yes, and that is the whole point of this fault. Corrosion adds resistance rather than removing continuity. A joint with a few extra ohms still conducts, still passes a continuity test, and still lets the network work most of the time — but it biases the conductor and takes away the headroom the receivers rely on. Continuity testing will pass it; a voltage-drop or differential measurement will not.

Should I just replace the module the codes are stored in?

That is the most common expensive mistake on this code. The module storing the code is usually just the one that noticed the problem, not the one causing it. Check termination, splices and previous repairs first — those account for a large share of these faults and cost a fraction of a module with programming.

Editorial context

About This Diagnostic Information

AutoLogicTools diagnostic guides explain OBD-II trouble codes using recognized code definitions, standard automotive diagnostic principles, and practical automotive context. A trouble code records a condition detected by a control module. It does not automatically identify a failed part, and the right diagnostic procedure can vary by vehicle.

Manufacturer service information, technical service bulletins, wiring diagrams, and vehicle-specific procedures should take precedence when available.

AutoLogicTools was founded by Vincent Fisk, an automotive locksmith and shop owner in San Diego with hands-on experience in vehicle keys, immobilizer systems, electrical issues, modules, programming, and diagnostics.