Volvo HS-CAN and LS-CAN explained: pins, speeds and modules
Your Volvo's diagnostic socket carries two separate CAN networks. Most OBD adapters only ever see one of them — which is why half the car can look "offline".
Two networks, one socket
Volvo, like several other manufacturers, splits its control modules between two CAN buses:
- HS-CAN (high-speed CAN) at 500 kbit/s — the drivetrain and chassis side: engine, transmission, steering and similar time-critical modules.
- LS-CAN (low-speed CAN, sometimes called MS-CAN) at 125 kbit/s — the comfort and body side: instrument cluster, doors, climate, infotainment.
The two are separate networks with separate wires. A message sent on one is not heard on the other, so a diagnostic tool has to connect to each bus in turn — or to both at once — to see every module.
The OBD pinout at a glance
Both buses are brought out to the standard 16-pin diagnostic socket under the dashboard:
| Bus | OBD pins | Speed | Reached by a generic adapter? |
|---|---|---|---|
| HS-CAN | 6 (CAN-H), 14 (CAN-L) | 500 kbit/s | Yes — these are the standard OBD-II CAN pins |
| LS-CAN | 3, 11 | 125 kbit/s | Only if the adapter can switch to these pins |
Pins 6 and 14 are mandated by the OBD-II standard, so every adapter uses them. Pins 3 and 11 are manufacturer-defined, and an adapter needs extra hardware to route its CAN transceiver there.
Which modules sit on which bus
The split varies by platform, model year and equipment, so the only reliable answer for a particular car is its own configuration. As a real-world example, this is what answered during a full scan of our test car, a 2008 Volvo C70 (P1 platform):
| HS-CAN (pins 6/14, 500 kbit/s) | LS-CAN (pins 3/11, 125 kbit/s) |
|---|---|
| ECM — engine control module | DIM — instrument cluster |
| TCM — transmission control module | SRS — airbag module |
| BCM — brake control module | CCM — climate control module |
| Power steering module | DDM / PDM — driver and passenger door modules |
| SWM — steering wheel module | ICM — infotainment control module |
| CEM — central electronic module | CEM — central electronic module (LS side) |
| CRM — convertible roof module |
Two things stand out. First, the CEM appears on both buses: it is the central module and answers on each network under a different address. Second, modules people care about a lot — the airbag module and the instrument cluster — were on the low-speed side on this car. On P3 cars the climate module also lives on LS-CAN at 125 kbit/s.
How modules are addressed differs by platform too: P1 cars use Volvo's D2 messages on a shared 29-bit identifier, while P3 cars use UDS with a fixed request/response identifier pair per module. Our guide to the P1, P2 and P3 platforms goes through which models use which.
What this means for your adapter
To read the whole car, an adapter has to do two things a basic one doesn't:
- Switch pins — move its CAN connection from 6/14 to 3/11 and back.
- Switch speed — 500 kbit/s on the high-speed bus, 125 kbit/s on the low-speed bus.
A MongoosePro USB cable does both. We have confirmed it on the C70 above: Volscan switches it from HS-CAN to LS-CAN and back during a scan, and all the low-speed modules in the table answered. Typical ELM327 clones are wired only to pins 6 and 14, so they stop at the high-speed side. For wireless adapters such as the vLinker MC+, check whether the model you have can route to pins 3 and 11; we are still verifying that ourselves and will update this article.
Tip: the ignition must be on for most body modules to answer. A module that is asleep looks exactly like one on a bus you can't reach.
Typical symptoms of a missing bus
- The engine and gearbox are found, but the instrument cluster, doors and airbag module are "not responding".
- A warning is lit on the dashboard but the scan shows no fault codes — the code is stored in a module on the other bus. We explain this in more detail in why a generic OBD-II scanner misses Volvo fault codes.
- The CEM answers but some of its functions look incomplete, because only one of its two sides was reached.
Volscan takes the bus and speed for each module from the car's configuration and switches between HS-CAN and LS-CAN automatically, so a scan covers every module the adapter can physically reach. See supported cars and adapters.