AutoLogicTools

OBD-II trouble code

U0335: Software Incompatibility With Hybrid/EV Battery Pack Sensor Module

A calibration mismatch on the module that measures the high-voltage battery. This one is about what the car believes rather than what it does — the pack sensor module's file encodes the cell chemistry and capacity of the specific pack fitted, so the wrong file usually means the wrong pack, not an out-of-date version.

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
$150 – $700
DIY difficulty
Shop recommended

Browse every code in U0300–U0354, or start from the full code library.

What does U0335 mean?

U0335 is stored when a module on the network finds that the high-voltage battery pack sensor module is running a calibration the rest of the vehicle does not recognise as part of its matched set. The module is communicating normally. What it disagrees about is which software it should be running.

The distinguishing thing about this module, and the reason its mismatch behaves differently from the other high-voltage software codes, is that it measures rather than acts. It watches individual cell and module-group voltages, temperature at several points in the pack, and current in and out, and it hands that data to the battery control module, which turns it into state of charge, state of health and the charge and discharge limits the car is allowed to use. Nothing in this module closes a relay or moves a contactor. So the consequence of a mismatch is epistemic: the vehicle loses confidence in what it knows about the battery, and its response is to become conservative about a resource it can no longer measure properly.

That produces a symptom set nobody associates with a network code. Range estimates that jump by twenty miles between key cycles. A charge session that stops at eighty percent and reports itself complete. A state-of-charge gauge that falls quickly and then sits still. Regenerative braking that feels strong one journey and absent the next. Drivers report these as battery problems, and the battery is usually fine.

There is a second point specific to this module that changes how the fault should be approached. Its calibration is not merely a version number — it encodes the physical characteristics of the pack that is actually fitted: cell chemistry, capacity variant, the number of temperature sensing points, the cell balancing strategy. That means the common failure here is rarely an out-of-date file. It is the wrong file, because a pack from a different capacity variant or a different model year was installed and the module was left carrying the donor vehicle's data. Used and reconditioned packs are the usual route in, and the mismatch is invisible until the car has been driven and charged enough for the numbers to stop making sense.

One consequence catches people out after the repair. This module's usefulness depends on learned data accumulated over months, and reprogramming resets it. A car that has just been correctly reflashed will report a range figure that wanders for several days until the module has seen a few full charge and discharge cycles. That is the adaptation rebuilding, not the repair having failed, and telling the owner in advance saves a return visit.

Common causes

  • Used or salvage battery pack fitted while still carrying the donor vehicle's calibration
  • Calibration for the wrong capacity variant or model year of pack loaded into the module
  • Replacement pack sensor board installed without VIN-specific programming
  • Battery control module updated while the pack sensor module's file was left behind
  • Reflash interrupted by a low 12-volt battery part way through programming
  • Cell chemistry or balancing strategy in the loaded file not matching the cells actually fitted

Symptoms

  • Range estimate changing sharply between key cycles with no change in driving
  • Charging stopping early and reporting itself complete
  • State-of-charge gauge falling quickly and then appearing to stick
  • Regenerative braking strength varying noticeably from journey to journey
  • State-of-health figure implausible for the vehicle's age and mileage
  • Fault appearing after a used or reconditioned pack was fitted rather than immediately

Diagnostic steps

  1. 1.Establish the pack's provenance first — a used or salvage pack still carrying the donor vehicle's calibration is the single most common route to this code.
  2. 2.Read the module's calibration part number and check it against the capacity variant of the pack physically fitted, not just against the latest available version.
  3. 3.Compare the reported per-cell voltages against each other; a file written for a different cell count or chemistry produces readings that are internally inconsistent.
  4. 4.Check whether the state-of-health figure is plausible for the vehicle's age and mileage, since an implausible one is evidence of the wrong file rather than a tired pack.
  5. 5.Read the battery control module's calibration too, because the mismatch is between the two and either could be the one out of step.
  6. 6.Observe all high-voltage safety procedures and use insulated tools before any physical access to the pack.
  7. 7.Reprogram with the file for the pack actually fitted, using a manufacturer-approved tool and a stable 12-volt supply.
  8. 8.Warn the owner that range and state-of-charge figures will wander for several days afterwards while the module rebuilds its learned data, and confirm the code stays away across several full charge cycles.

Repair cost

$150 – $700

Reprogramming the pack sensor module is $150 to $400, and up to $700 where the calibration is dealer-only or a broader pack service is required. The cost that matters is the one behind it: if the code is present because a pack from a different variant was fitted, reprogramming is not the fix and the pack itself is the expense. Establish which pack is physically installed before authorising any programming work, because a correct file for the wrong hardware is not an improvement.

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. The barrier here is module programming, security access, and bus-level diagnosis that need manufacturer-grade scan tools and the credentials to use them. DIY attempts often produce a more expensive problem than the original code.

Related codes

Frequently asked questions

Why is my range estimate jumping around?

Because this module is the source of the numbers the range estimate is built from, and the car has stopped trusting them. It measures cell voltages, pack temperature and current, and the battery control module turns that into state of charge and available energy. When the calibration does not match, those inputs are being interpreted against the wrong assumptions, so the arithmetic downstream produces a figure that changes for no reason the driver can see. The battery itself is usually in good health — the problem is what the car believes about it.

The pack was second-hand. Is that relevant?

It is the most likely explanation. This module's calibration encodes the physical characteristics of the pack it is fitted to — chemistry, capacity variant, how many temperature points it reads, how it balances cells. A pack taken from another vehicle arrives carrying that vehicle's data, and unless it is reprogrammed to the receiving car it will keep reporting on the assumption it is still in the donor. That is a wrong-file problem rather than an out-of-date-file problem, and it is why simply applying the latest update sometimes does not clear the code.

Why is the range still wrong after it was reprogrammed?

Because reprogramming wipes the learned data as well as fixing the calibration. This module builds its accuracy from months of observed charge and discharge behaviour, and a reflash resets that history to a factory default. For several days afterwards the estimate will wander while the module watches a few full cycles and rebuilds what it knew. That is the adaptation working, not the repair failing. If the numbers have not settled after a week and several complete charges, then it is worth going back.

Is it safe to drive with U0335?

Generally yes in the short term, because nothing in this module operates the high-voltage system — it only reports on it. What you will get is a car being cautious with a resource it cannot measure confidently: reduced power at times, limited regeneration, charging that stops early. The practical risk is being stranded by a range figure that was never accurate rather than by a breakdown. Keep journeys within a comfortable margin and get it dealt with rather than learning to work around the display.

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.