P066B

Internal Control Module Non-Volatile Random Access Memory (NVRAM) Performance

P066B is a generic OBD-II powertrain diagnostic trouble code: Internal Control Module Non-Volatile Random Access Memory (NVRAM) Performance. It is logged by the engine control unit when the powertrain monitor detects that a specific fault threshold has been exceeded — typically resulting in the malfunction-indicator lamp (MIL / check-engine light) being illuminated.

Code
P066B
Group
Powertrain
System
Powertrain
Severity
Warning (MIL on)
Need P066B disabled?
RaceTune permanently disables any OBD-II trouble code on supported ECUs — for motorsport, off-road, and export use.

What P066B means

P066B is stored when the PCM detects a performance fault in its internal non-volatile random access memory (NVRAM). NVRAM is used to retain learned values, adaptive calibrations, fuel trim long-term data, and other parameters that must persist across key-off cycles. A performance fault indicates that NVRAM is present and accessible but is not retaining or delivering data with expected reliability.

Unlike an NVRAM error that prevents reading or writing entirely, a performance fault often manifests as data that fails checksum verification, is read back incorrectly after a write cycle, or degrades over repeated access cycles. The PCM may reset adaptive values to default, impacting fuel trim, idle control, and transmission shift adaptation.

The practical effect is that the vehicle may exhibit symptoms of a freshly reset ECU, such as rough idle, poor fuel economy, or jerky transmission behavior until adaptive learning re-establishes. Persistent NVRAM faults indicate internal PCM hardware degradation and typically require module replacement.

Common causes

Most-frequently reported root causes when P066B is logged.

  • 1
    NVRAM cell degradation due to age or excessive write cycles.
  • 2
    Internal PCM hardware fault affecting the NVRAM interface circuit.
  • 3
    PCM subjected to voltage spikes or electrostatic discharge that damaged NVRAM cells.
  • 4
    Thermal overstress causing permanent NVRAM cell damage.
  • 5
    Corrupted PCM software causing incorrect NVRAM read/write operations.
  • 6
    Moisture or contamination inside the PCM affecting internal memory circuits.
  • 7
    Repeated battery disconnections causing excessive NVRAM write cycles over time.

Symptoms drivers notice

MIL illuminated with P066B stored.
Loss of long-term fuel trims and adaptive learned values after each key cycle.
Rough idle or poor driveability until adaptive learning re-adapts.
Transmission shift quality degradation if TCM adaptive data is affected.
Other internal module codes may accompany P066B.

How to diagnose P066B

A typical diagnostic flow when this code is present.

  1. 1
    Read and record all stored DTCs; multiple internal module codes alongside P066B strongly suggest a PCM hardware fault.
  2. 2
    Check for any recent events such as battery replacement, jump-starting, or electrical fault that may have caused voltage spikes.
  3. 3
    Verify PCM supply voltage stability and check for any signs of charging system faults that could cause voltage spikes.
  4. 4
    Attempt a PCM software update if a calibration addressing NVRAM management is available.
  5. 5
    Disconnect the battery for several minutes and reconnect to allow a full PCM reset, then recheck.
  6. 6
    If the fault returns consistently without external cause, NVRAM hardware degradation is indicated and PCM replacement is warranted.
  7. 7
    After any PCM replacement, allow adequate drive time for adaptive values to re-learn.

Vehicles where we've handled P066B

Platforms in our catalogue with confirmed P066B coverage.

BMW 320D
2016

Related powertrain codes

Frequently asked questions

Does P066B mean I will lose my fuel trims every time I turn the car off?

In active NVRAM fault conditions, yes. Long-term learned values may not persist across key-off cycles, requiring re-learning each time.

Can a software update fix P066B?

If the issue is a software bug in NVRAM management, a reflash may help. If the physical NVRAM cells are degraded, software cannot repair hardware.

Is P066B related to P066A or P066C?

These codes address different memory types within the PCM. P066A typically covers EEPROM errors, while P066B covers NVRAM performance. Each requires separate diagnosis.

Will disconnecting the battery clear P066B permanently?

No. Disconnecting the battery may temporarily clear stored codes, but if the NVRAM hardware is faulty the code will return once the PCM runs its self-diagnostic routine.

Disabling P066B in software

RaceTune can permanently disable P066B — and any other OBD-II diagnostic trouble code — on every ECU family we support. The monitor is disabled inside the ECU itself, so the fault stops being logged: the warning light stays off and the engine never enters limp mode for this code. The change is tied to your exact software version.

Permanent
The monitor is disabled in the ECU itself — not just cleared. It cannot return.
Tailored to your file
Each patch is matched to your specific software version — never a one-size-fits-all file.
Reversible
The original file is always preserved. Reflash the stock to return the ECU to factory state.

ECUs with a P066B disable in our catalogue

Confirmed coverage from our recipe database — we support many more families. Upload your file and our identifier will match it automatically.

  • Bosch EDC17C50 verified 1 software version

Software modifications affect emissions compliance and are not road-legal in many jurisdictions. RaceTune service files are intended for motorsport, off-road, and export use.

Got P066B in your scan?

Upload your ECU file — we'll identify the exact software version and confirm whether a disable is available for your car.

Upload your file