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
| Code | Meaning | Severity | First move |
|---|---|---|---|
| U0100 | Lost communication with the engine controller | Critical | Power and grounds at the module, then programming status |
| U0073 | The high-speed bus itself is off or faulted | Critical | Bus wiring, termination, then disconnect modules one at a time |
| U0140 | Lost communication with the body control module | Moderate | BCM power, then whether the BCM was swapped and never coded |
| U0121 | Lost communication with the ABS module | Moderate | ABS 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?
- No — it is new or from a donor and untouched. U0100 is expected. What you need is OE programming, which is a booked remote sessionusing the manufacturer software: $100 on GM, $150 on Ford, Nissan and Mazda, $250 on Volvo, Toyota, VW/Audi and Mopar. Or, if the module came from a donor and the original is still readable, the cleaner answer is often a clone rather than programming at all — the trade-offs are in our operations decision guide.
- Yes — it was working and now it is not. This is electrical until proven otherwise. Fuse, relay, main power feed, grounds, connector seating, harness damage at the usual chafe points. Only after those are cleared does the module itself become a suspect.
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
- 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.
- 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.
- 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.
- Establish programming status. New module, unprogrammed? Book the session. Original module that was working? Keep looking for the fault.
- 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.