Skip to content

What the CAN Bus Tells You That GPS Cannot

By Saeed Baatiah · Published:

Short answer

GPS knows one thing, where the receiver is, and derives speed, distance and stops from a series of those positions. The CAN bus carries what the engine control unit declares about itself: running hours, fuel used, engine speed, its own odometer. Neither replaces the other, because they measure by completely different means.

Key takeaways

  • GPS measures position; speed, distance and idle time are all derived from position, not observed directly.
  • SAE J1939 defines the engine's own counters, SPN 247 engine hours at 0.05 h/bit in PGN 65253, SPN 245 distance at 0.125 km/bit.
  • An engine that runs while the vehicle stands still is invisible to GPS and fully visible on CAN.
  • Because CAN values originate inside the vehicle, moving the tracker to another vehicle does not carry them with it.
  • The two sources disagreeing is diagnostic information, not an error to be hidden behind one preferred number.

01GPS measures one quantity and infers the rest

A satellite receiver answers exactly one question: where is this antenna, right now. Everything a fleet report calls a GPS figure is a calculation performed on a series of those answers. Speed is the change in position divided by the change in time. Distance is the sum of the gaps between consecutive fixes. A stop is a run of fixes that did not move far enough to count as movement. Each of those derivations inherits every weakness of the underlying position, and adds one of its own, sampling. A vehicle reporting every thirty seconds and a vehicle reporting every two seconds produce genuinely different distance totals over the same route, because the shorter interval follows the curve more closely. None of this makes GPS unreliable. It makes GPS a positional instrument whose secondary outputs are estimates, and estimates behave differently from declarations.

02What the engine declares about itself

The CAN bus is a different kind of source entirely. The engine control unit broadcasts parameters it computes from its own sensors, and SAE J1939-71 fixes the meaning and resolution of each one so any listener reads the same value. SPN 247, Engine Total Hours of Operation, is a four-byte counter with a gain of 0.05 hours per bit, transmitted in PGN 65253. SPN 245, Total Vehicle Distance, carries 0.125 kilometres per bit, and SPN 917, High Resolution Total Vehicle Distance, tightens that to 5 metres per bit. These are not estimates of anything. They are the vehicle stating what it has accumulated, at a resolution the standard specifies in advance. The consequence for a fleet platform is that a CAN odometer and a GPS-derived distance are two different measurements of two related but distinct things, and neither is the other's correction.

03The stationary engine is the clearest gap

The sharpest demonstration of the difference is a vehicle whose engine is running while the vehicle is not moving. To a positional instrument that is indistinguishable from a parked, switched-off vehicle: the fixes are identical, the derived speed is zero, the derived distance does not advance. To the engine, a great deal is happening, fuel is burning, hours are accruing, the service interval is shortening. Because SPN 247 accumulates purely from running time, it captures idling, power-take-off operation and every other stationary engine use that no amount of positional data can reveal. This is why a mixer, a crane, a refrigerated trailer or a high-idle delivery truck cannot be understood from GPS alone. The wear is real and the counter that records it lives inside the vehicle, not in the sky.

04Why a CAN value cannot be moved with the device

There is a second property of CAN data that matters for trust rather than accuracy. A GPS-derived figure describes wherever the receiver happens to be. Unplug the tracker, put it in a different vehicle or in a bag, and it keeps producing perfectly valid positions and speeds that belong to the wrong asset. A CAN reading cannot be relocated that way, because it is not produced by the tracker at all. The adapter listens to a bus that exists only inside one vehicle, and the counters it reads are that vehicle's own accumulated totals. Move the hardware and the CAN parameters stop arriving, or arrive with values that do not continue the previous series. Disagreement between the two sources therefore has diagnostic value: an unexplained gap is a question about the installation, not noise to be averaged away.

05The adapter is a separate purchase, and a separate decision

Reading CAN is not a firmware setting on a tracker; it needs hardware between the bus and the device. Our own FMC003 listing states this plainly, the interface rows give one RS-232 port, two digital inputs, one analogue input and one 1-Wire line, and mark CAN bus as available via a separate adapter. The LV-CAN200 fills that role and carries a basic parameter set: mileage, fuel, engine speed and coolant temperature, where the larger ALL-CAN300 adds roughly a hundred more parameters. The practical reading is that CAN access is scoped by what you buy. Deciding you want engine hours from the ECU is therefore a procurement decision made before installation, not a report you can enable later, and the parameter list of the chosen adapter is the ceiling on what the platform will ever show.

06What CAN does not settle either

The asymmetry runs both ways, and treating CAN as the authoritative source for everything is its own mistake. The bus has no idea where the vehicle is; there is no position parameter for a satellite receiver to be replaced by. Availability is also conditional rather than guaranteed: Teltonika's own support has confirmed that on some truck models only fuel percentage is exposed and litres may be impossible to obtain at all, because the adapter can only relay what the vehicle chooses to broadcast. And the accuracy of what does arrive has limits, a peer-reviewed NREL study across eight vehicles and two engines found CAN-broadcast fuel data suitable for relative trends rather than accurate absolute rates. So the useful framing is not which source wins. It is that each answers questions the other structurally cannot.

07How to combine them in one platform

The practical arrangement is to assign each question to the source that owns it and never silently substitute. Position, route, geofence entry and exit belong to GNSS. Engine hours, fuel used, engine speed and the vehicle's own odometer belong to CAN where an adapter is fitted. Where both can answer, distance, most obviously, keep both and label them, because the difference is a signal. A vehicle whose CAN odometer advances while its GPS distance does not is telling you the receiver has a problem; the reverse pattern points at the adapter or the bus. Store the source alongside the value rather than choosing one at write time, so a report can say which instrument produced its number and a maintenance rule can insist on the counter that actually measures the wear it schedules against.

Which source can answer which question
QuestionGNSSCAN busNote
Where is the vehicleYes, measuredNo parameterGNSS only
SpeedDerived from positionsReported by the ECUTwo methods, two numbers
Distance travelledSummed between fixesSPN 245 at 0.125 km/bitKeep both, label both
Engine hoursNot observableSPN 247 at 0.05 hr/bitCAN only
Engine running while parkedInvisibleVisibleThe clearest gap
Fuel usedNot observableVehicle-dependentLitres not always exposed
Survives moving the deviceNoYes, bus is per-vehicleA trust property

Figures and sources

Questions

If I have CAN, do I still need GPS?

Yes. The CAN bus has no position parameter at all, it describes the engine, not the location. Route history, geofences and arrival times require a satellite receiver. CAN adds counters GPS cannot see; it does not replace the one thing GPS is actually measuring.

Why do the CAN odometer and the GPS distance disagree?

Because they are produced differently. GPS distance is the sum of gaps between fixes, so a longer reporting interval cuts corners and reports less. The CAN odometer is the vehicle's own accumulated total at 0.125 km per bit. A small persistent gap is normal; a sudden large one is worth investigating.

Can a driver defeat CAN data by unplugging the tracker?

Unplugging stops the data arriving, which is itself visible. What a driver cannot do is relocate a CAN value the way a positional one can be relocated, the bus exists inside one vehicle, so the counters cannot follow the hardware into a different asset or a bag.

Does every vehicle expose the same CAN parameters?

No. The adapter can only relay what the vehicle broadcasts, and the adapter itself sets a ceiling, the LV-CAN200 carries a basic set of mileage, fuel, RPM and coolant, while the larger ALL-CAN300 adds roughly a hundred more. Teltonika support has confirmed some trucks expose fuel only as a percentage.

Sources

Related insights