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.
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.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.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.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.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.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.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.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.