Skip to Content

CANPF Command - CAN bus profiler

When installing on an unfamiliar vehicle, the first question is what is actually on the bus. The profiler listens to the CAN for a set period and builds an inventory of what went by: which identifiers appeared, how often, and with what content.

It exists so you do not have to work blind: instead of assuming which messages the vehicle emits, you measure them.


Starting the profiler

>SCANPF60< listen for 60 seconds >SCANPF60;@LOG< listen for 60 seconds and store the result in the log

The destination is optional. If omitted, the result stays available to be queried by command.

DestinationWhere the result goes
;@LOGTo the internal log
;@GPOver mobile data
;@WIOver WiFi
;@BTOver Bluetooth
;@TRTo the terminal
;@BACK, ;@BGP, ;@BWIBackup channels
;@ALLTo all of them

Possible replies:

RCANPF OK 60s profiling under way RCANPF ERR NOMEM no memory available right now RCANPF NA the device has no CAN interface

Stopping

>SCANPF0< → RCANPF OFF

Stops the profiler and frees the memory it was using.

The profiler reserves memory while it works. Stop it once you have what you were after rather than leaving it running.


Reading the result

>QCANPF< summary of what was collected >QCANPF03< detail of the identifier at position 3

If nothing has been collected yet, it replies RCANPF NODATA.

The detail of an identifier includes:

ItemWhat it is
IdentifierThe CAN message ID, in hexadecimal
CountHow many times it appeared during the listen
IntervalHow many milliseconds apart it appears, on average
LengthHow many data bytes it carries
TypeS standard · E extended
DataThe observed content

The interval is an average over the listening window. A message that arrives in bursts and one that arrives evenly can yield the same number: listen long enough for the average to mean something.


Using it during an installation

  1. With the vehicle running, start a 60-second listen.
  2. Query the summary to see which identifiers showed up.
  3. Request the detail of the interesting ones and look at their frequency and content.
  4. Repeat under other conditions (stopped, accelerating) to see what changes.
  5. Stop the profiler with >SCANPF0<.

A message whose content changes with what you do to the vehicle is the candidate for the signal you are looking for.

Last updated