When a lane-keeping, pre-collision, or blind-spot warning appears, a scan tool reads a code like U0235 or C1A00 from the car’s safety modules. Unlike a familiar engine code, an ADAS fault usually points at a sensor that sees the road, so reading and clearing it is rarely the end of the job.
The five-character structure is standardized, but some code ranges have industry-defined meanings while others are controlled by the manufacturer. Knowing which kind you are reading decides whether a code-library answer is trustworthy or misleading.
Quick answer
ADAS diagnostic trouble codes use the same 5-character format as every other OBD-II code, defined by SAE J2012 and ISO 15031-6. The first letter names the system: ADAS faults are mostly C codes (chassis: radar, camera, braking) and U codes (network and lost communication). The second character helps identify the code range, though generic versus manufacturer-specific assignment is not a single universal rule across the B, C, P, and U families, so decode the full code against SAE J2012 and the maker’s service information. Reading them reliably needs an ADAS-capable scan tool on the right module, and clearing them often requires a recalibration, not just a reset.
Specifications
| Position | Character | What it means |
|---|---|---|
| 1 | Letter B, C, P, or U | System group: Body, Chassis, Powertrain, or Network |
| 2 | 0, 1, 2, or 3 | Identifies the code range; generic and manufacturer-controlled assignments vary by B, C, P, or U family. Decode the full code against SAE J2012 and OEM information |
| 3 | 0 to 9 or A to F | Part of the standardized or manufacturer-assigned fault identifier; its meaning depends on the code family |
| 4 and 5 | 00 to FF | The specific fault number |
Disclaimer: the format follows SAE J2012 and ISO 15031-6. Generic codes share a defined meaning across brands; the exact wording and the meaning of manufacturer-specific codes vary by make, model, and software, so confirm against the OEM service information.

Common ADAS DTC examples
Most people arrive with a code in hand. These are common driver-assist codes and a sensible first check. Generic U codes follow SAE J2012; the C codes shown are Toyota and Lexus examples and differ on other makes, so confirm the exact code for your year, make, and model.
| Code | Type | Plain meaning | First check | Calibration likely? |
|---|---|---|---|---|
| U0235 | Generic U (network) | Lost communication with cruise control / front distance range sensor | power, ground, CAN wiring, radar connector, battery voltage | Not by itself |
| U023A | Generic U (network) | Lost communication with image processing / front camera module | camera module, wiring, related ADAS codes | Maybe, if camera replaced |
| U0129 | Generic U (network) | Lost communication with brake system control module | ABS or brake module, wiring, network | Not by itself |
| U0126 | Generic U (network) | Lost communication with steering angle sensor module | steering angle sensor, wiring, voltage | Sometimes (angle reset) |
| U0073 | Generic U (network) | Control module communication bus A off | bus wiring, several modules dropping out, power | Not by itself |
| C1A10 | Toyota/Lexus (manufacturer C) | Front radar sensor fault | radar unit, connector, impact, mount | Possible |
| C1A14 | Toyota/Lexus (manufacturer C) | Radar beam axis not adjusted | calibration status after a repair | Yes |
| C1AA9 | Toyota/Lexus (manufacturer C) | Front camera beam axis not adjusted | windshield, camera bracket, calibration | Yes |
| C1AA0 | Toyota/Lexus (manufacturer C) | Front camera blocked or obstructed | clean the windshield in the camera view, weather | Sometimes |
If your code is a blocked or dirty sensor rather than a hard fault, start with the simple fix in our guide to a pre-collision system unavailable, clean sensor message.
How an ADAS code is built
The first letter is the system. B is Body, C is Chassis, P is Powertrain, and U is Network. ADAS sensors and the braking that acts on them sit mostly under C, while the data links between modules fall under U, so a forward-collision fault is far more likely to be a C or U code than a P code.
What the first letter tells you to check
The first letter narrows the fault to a system group before you read the rest of the code.
| If the code starts with | Think first |
|---|---|
| U | Communication, CAN bus, power and ground, low voltage, a module offline |
| C | Chassis and ADAS sensors: radar, camera, steering angle, braking system |
| B | Body module: blind-spot indicators, mirrors, parking sensors, depending on the vehicle |
| P | Usually powertrain and emissions, not the main ADAS group |
Generic versus manufacturer-specific
The second character is not a simple switch. Its ownership has to be read together with the first letter. Depending on whether the code begins with B, C, P, or U, ranges containing 0, 1, 2, or 3 may be standardized or manufacturer controlled. Use the complete code and the vehicle maker’s service information rather than classifying it from the second character alone, because a generic code lookup can mislead on a manufacturer-controlled fault.
Why some ADAS codes have suffixes like -87, :00, or extra digits
The first five characters identify the main DTC family. Extra digits or a suffix, such as U0235-87, U023A:00, or C1AA900, usually come from the scan tool or OEM format and describe the failure type, status, or a subcode rather than a different fault. ISO 15031-6 allows for these failure-type bytes on extended, multi-byte codes. When you search the OEM service information, keep the full code exactly as the tool shows it, suffix included.
Why clearing is not the fix
Codes return without a root-cause repair. An ADAS code often logs a blocked or misaligned sensor, low voltage, or lost communication. Clearing it without fixing the cause, or without recalibrating the camera or radar when the OEM calibration procedure calls for it, leaves the system out of specification and the code comes back. Calibration may be required after a windshield replacement, wheel alignment, collision repair, sensor removal, ride-height changes, or other specified work, depending on the vehicle and the OEM procedure.
When not to clear the code
Do not clear an ADAS code yet if any of these apply, because the fault or a needed calibration will still be there:
- the windshield was replaced;
- the bumper, grille, or emblem was removed;
- a wheel alignment was done;
- the radar bracket or mount was touched;
- the battery was weak and several modules logged U codes;
- the code is permanent or current, not history or stored.

Stored, pending, and permanent
Status changes how you read a code. Status terminology varies by module and manufacturer. An ADAS-capable scan tool may label a fault current, active, history, stored, intermittent, or pending, and those labels are not implemented uniformly. Permanent-DTC rules mainly apply to regulated emissions faults and should not be assumed for every ADAS module. Freeze-frame or event data may be available, depending on the vehicle and module.
Safety: an active code can limit driver-assist features
If an ADAS module has an active code, features such as automatic emergency braking, adaptive cruise, lane keeping, or blind-spot warning may be limited or switched off. Do not assume the system will intervene until the code is diagnosed and the repair is verified. NHTSA describes automatic emergency braking as a system that can apply the brakes to help prevent or reduce a crash, so losing it, even briefly, changes how you should drive.

How to check
- Use an ADAS-capable scan tool. A basic OBD-II reader often shows only powertrain and generic codes and may miss the C and U codes stored in the safety modules.
- Read the module, not just the code. Note which module logged it, the full code, and the status, since the same number can mean different things in different modules.
- Capture freeze-frame data. Save freeze-frame, event, and environmental data if the module provides them. Recorded speed, voltage, temperature, or operating conditions can help reproduce the fault, but they do not by themselves identify the failed part.
- Look it up in OEM service information. Check manufacturer-specific codes against the maker’s data, not only a generic online database.
- Fix the root cause first. Clear a blockage, repair wiring, confirm battery voltage, or correct alignment before clearing the code.
- Recalibrate if required, then verify. If the OEM procedure requires calibration, follow its prerequisites exactly: target placement, a level floor, tire pressure, ride height, alignment, lighting, scan-tool functions, and the prescribed static or dynamic drive conditions. Confirm that calibration completes successfully, then rescan every affected module.

What goes wrong
Reading with a basic OBD-II reader. A cheap reader pulls powertrain codes and generic faults but misses many chassis and network codes in the ADAS modules, so the scan looks clean while the real fault is still stored.
Clearing without recalibration. The code clears, the warning goes off for a drive, and it returns because the camera or radar was never brought back into specification.
Trusting a generic library without checking code ownership. Generic databases may mislabel manufacturer-controlled C and U codes or omit module-specific details, sending the repair down the wrong path. Decode the complete code for the exact year, make, model, module, and software level.
Treating a U communication code as a dead sensor. Lost-communication codes often trace to wiring, a connector, low voltage, or a network fault rather than the sensor itself, so replacing the sensor wastes money.
Can a generic OBD-II reader pull ADAS codes?
Often not fully. A basic reader is built for emissions-related powertrain codes and may not reach the chassis and network modules where most ADAS faults live, or may show manufacturer-specific codes without a correct description. A scan tool with ADAS coverage for the brand reads the safety modules and supports the calibration steps.
What does a code like U0235 mean?
U0235 is commonly defined as “Lost Communication With Cruise Control Front Distance Range Sensor.” It indicates that another module stopped receiving expected messages from that sensor or module; it does not prove the sensor itself has failed. Check OEM service information for the exact module name, network diagram, diagnostic steps, and vehicle applicability before testing power, ground, connectors, wiring, network integrity, or the module. On Toyota and Lexus this often appears as a pre-collision system malfunction.
What does a C-code mean in ADAS?
A C code is a chassis code, the group that covers most ADAS hardware: the front radar, the camera, the steering angle sensor, and the braking system that acts on them. On many makes the ADAS C codes are manufacturer-specific, so read the exact code against the OEM data rather than a generic list.
Why did the ADAS code come back after clearing?
Clearing only erases the record, not the fault. If the sensor is still blocked or misaligned, the wiring or voltage is still wrong, or a required calibration was never done, the module logs the code again on the next drive. Fix the cause and recalibrate where the procedure requires it, then clear and verify.
Do ADAS codes require calibration to clear?
Sometimes. Many ADAS faults clear once the cause is fixed, but a camera or radar that was disturbed, replaced, or flagged as not aimed usually needs a static or dynamic calibration before the code stays gone. Whether calibration is required depends on the sensor, the repair, and the OEM procedure.
Why does my scan tool show U0235-87 instead of U0235?
The extra digits are a failure-type or status suffix added by the tool or OEM format, not a different code. U0235-87, for example, is the U0235 fault with a “no message received” failure type. Keep the full code, suffix included, when you look it up in the manufacturer’s service information.