EFC

U0100 After an ECU Swap: Software or Wiring?

The same code means opposite things depending on one fact: whether the module has been programmed. U0100, U0073, U0140 and B2784 separated, with what each costs.

10 min readDiagnostics · Fault codes · Workflow
By ECU Flash Cartel · ECU Flash Cartel · US-based · Texas operations

U0100 after a module swap means one of two completely different things, and the same code points at opposite conclusions depending on one fact: whether the module has been programmed yet. On a freshly fitted, unprogrammed module, U0100 is expected and clears when the module is coded. On a car with its original module, U0100 is an electrical fault — power, fuse, relay, connector or bus wiring — and no file, no patch and no programming session will fix it.

This guide separates the network codes that mean “buy a service” from the ones that mean “put the multimeter down and find the broken wire.” It is the cheapest page on this site, because most of the time it tells you not to spend anything.

What U0100 is actually reporting

U0100— Lost Communication with ECM/PCM “A” — is not set by the engine module. It is set by another module that expected to hear from the engine controller on the CAN bus and did not. That one detail explains most of the confusion around it.

The engine module can be silent for entirely mundane reasons: no power because a fuse blew, no ground because a harness chafed through, physically off the bus because a connector is unseated, or genuinely failed. It can also be silent because it was replaced this morning and has not yet been programmed — a module that does not yet know what car it is in does not participate in the conversation the way its neighbours expect.

A vehicle in transport or theft-recovery mode can produce the same picture. It is worth ruling out before anything is taken apart, particularly on a car that came off a transporter or out of an auction lot.

The four network codes worth knowing

CodeMeaningSeverityFirst move
U0100Lost communication with the engine controllerCriticalPower and grounds at the module, then programming status
U0073The high-speed bus itself is off or faultedCriticalBus wiring, termination, then disconnect modules one at a time
U0140Lost communication with the body control moduleModerateBCM power, then whether the BCM was swapped and never coded
U0121Lost communication with the ABS moduleModerateABS power, bus segment, wheel-speed harness shorts

Full descriptions, common causes and affected systems for each are in the code lookup, which is free and needs no account.

The one that changes the whole diagnosis: U0073

If U0073 is present alongside U0100, stop treating this as a module problem. U0073 means the high-speed bus segment has gone silent or is showing an electrical fault, and every module on that segment is affected. The engine controller is not the patient, it is a bystander reporting the outage.

Causes cluster tightly: a CAN-High or CAN-Low wire shorted to ground or to each other, a failed termination resistor, a damaged connector at a gateway module, or — the intermittent one that wastes whole afternoons — a single module pulling the entire bus down. That last case is found by disconnecting modules one at a time until the bus recovers, and there is no software shortcut for it.

Buying a file service while U0073 is stored is the most reliable way to spend money and change nothing.

The decision that actually splits the two cases

Ask one question before anything else: has this module been programmed to this vehicle?

A driveability technician who spends most of his week on other people's unfinished jobs described the failure pattern this way:

“I get called in on a car that has had three modules thrown at it and a file bought online. Nobody ever put a meter on the power feed. The code was telling them the module was not talking and they read that as the module being broken. It was a green wire rubbed through on a bracket.” — Independent driveability technician

When the no-start is immobilizer rather than network

A car that cranks and refuses to fire with a security code stored is a different branch entirely. B2784— immobilizer or anti-theft authentication failure — means the system did not receive a valid key authentication. Common causes run from a worn transponder chip or a failed antenna coil at the ignition through to an aftermarket remote-start interfering with the signal, and, relevant here, a recently replaced engine module that was never properly synced.

If it is that last case, you are in immobilizer territory rather than network territory. On a covered variant, an IMMO-OFF file is $100against your own read; if the original module is still readable, cloning keeps the theft deterrent intact and is usually the better engineering answer. Either way, the full six-cause tree for “cranks but will not start” is in our swapped-ECU guide — immobilizer pairing is one branch of six, and the others are cheaper to eliminate first.

When the module really has failed

A module can be silent because it is dead. The tells are a total absence of communication combined with no power reaching the module despite good supply at the fuse, or an internal-performance fault stored on the module itself. That second case has its own decision tree in our P0606 guide, and its conclusion is worth internalising: no file fixes hardware. Cracked solder joints, corroded pins and failed voltage regulators are repaired or replaced, never patched.

This is also the point where an honest service tells you it cannot help. We would rather say that on a free page than after a module has been shipped across the country.

A working sequence

  1. Read all modules, not just the engine.U0100 is set by a neighbour; you want to know which neighbours are complaining and about what. Note whether U0073 is present — it changes everything.
  2. Confirm power and ground at the module connector with the key on, under crank if the complaint is a no-start. A module with a marginal ground under crank behaves exactly like a software fault, which is why this step comes before any purchase.
  3. Check bus integrity. Resistance across the CAN pair at the diagnostic port with the ignition off is a two-minute sanity check that catches shorts and missing termination.
  4. Establish programming status. New module, unprogrammed? Book the session. Original module that was working? Keep looking for the fault.
  5. Only then consider a file.And if you do, read the module twice and diff the two files first — two reads of an untouched module should be byte-identical. Keep the original read-only with its hash beside it, per the backup guide. Our read-methods guide covers which access path a given family actually supports.

Standards and sources

The diagnostic trouble code scheme itself, including the U-prefix network family, is standardised in SAE J2012, which is why a U0100 means the same thing across manufacturers even when the repair does not. The pass-through interface used for any subsequent programming is SAE J2534, and the National Automotive Service Task Force maintains the channel through which independent shops obtain service information and vehicle-security credentials.

We do not provide emissions defeat, delete files, or services intended to bypass emissions laws. Our services exist for tuning preparation, diagnostics, repair, motorsport, and off-road use where legally permitted. Customer is responsible for confirming legal use in their location and application.

Nothing in this diagnosis touches emissions systems. Restoring communication on a vehicle network and programming a replacement module are ordinary repair operations, distinct from the tampering and defeat-device conduct addressed by section 203(a)(3) of the federal Clean Air Act.

The short version

U0100 on an unprogrammed replacement module is expected and clears with OE programming. U0100 on a car whose module was never touched is a wiring, power or connector fault and no purchase fixes it. U0073 alongside it means the bus is down and the engine module is an innocent bystander. B2784 means you are in immobilizer territory, not network territory.

Look the codes up free in the DTC lookup, and if the answer turns out to be a file after all, the free variant identifier and the coverage matrix tell you whether we cover your exact module before any money changes hands.

Frequently asked

What does U0100 mean after an ECU swap?
It depends on one fact: whether the module has been programmed. On a freshly fitted, unprogrammed module, U0100 is expected and clears when the module is coded — a module that does not yet know what car it is in does not participate in the conversation the way its neighbours expect. On a car with its original module, U0100 is an electrical fault — power, fuse, relay, connector or bus wiring — and no file, patch or programming session will fix it.
Which module actually sets U0100?
Not the engine module. U0100 is set by another module that expected to hear from the engine controller on the CAN bus and did not. That single detail explains most of the confusion around the code. The engine module can be silent for mundane reasons: no power because a fuse blew, no ground because a harness chafed through, physically off the bus because a connector is unseated, genuinely failed, or simply not yet programmed. A vehicle in transport or theft-recovery mode produces the same picture.
What does it mean if U0073 is stored alongside U0100?
Stop treating it as a module problem. U0073 means the high-speed bus segment has gone silent or is showing an electrical fault, and every module on that segment is affected — the engine controller is a bystander reporting the outage, not the patient. Causes cluster tightly: a CAN-High or CAN-Low wire shorted to ground or to each other, a failed termination resistor, a damaged connector at a gateway module, or a single module pulling the whole bus down. Buying a file while U0073 is stored is the most reliable way to spend money and change nothing.
How do I tell a network fault from an immobilizer fault?
By the code family. A car that cranks and refuses to fire with B2784 stored — immobilizer or anti-theft authentication failure — means the system did not receive a valid key authentication, which puts you in immobilizer territory rather than network territory. Common causes run from a worn transponder chip or failed antenna coil at the ignition to an aftermarket remote-start interfering with the signal, and, relevantly, a recently replaced engine module that was never properly synced.
What does it cost to fix each case?
A new or donor module that has never been programmed needs OE programming: a booked remote session at $100 on GM, $150 on Ford, Nissan and Mazda, and $250 on Volvo, Toyota, VW/Audi and Mopar. An immobilizer pairing problem on a covered variant is a $100 file operation against your own read — or better, a clone if the original module is still readable, since that keeps the theft deterrent intact. An electrical fault costs nothing but your time, which is the most common outcome.
What order should I work the diagnosis in?
Read all modules rather than just the engine, and note whether U0073 is present because it changes everything. Confirm power and ground at the module connector with the key on, and under crank if the complaint is a no-start — a module with a marginal ground under crank behaves exactly like a software fault. Check bus integrity with a resistance measurement across the CAN pair at the diagnostic port, ignition off. Establish programming status. Only then consider buying a file.
Could the module simply have failed?
Yes. The tells are a total absence of communication combined with no power reaching the module despite good supply at the fuse, or an internal-performance fault stored on the module itself. That second case has its own decision tree, and its conclusion is worth internalising: no file fixes hardware. Cracked solder joints, corroded pins and failed voltage regulators are repaired or replaced, never patched. This is also the point where an honest service tells you it cannot help.

Ready to put this into practice?

Book a remote ECU programming session in minutes — or drop a dump on the free identifier first to see whether we cover your variant.