# ECU

Syrus 4G IoT Telematics Gateway has a built-in ECU interface, which allows the device to connect to a vehicle's CAN bus and read data.

General Overview

  • The way it works is that you instruct the Syrus to read data at a certain speed for a particular protocol, for example read J1939 data at 250KHz from the PRIMARY CAN wires on the device.
  • Once the corresponding wires are connected to the vehicle's CAN bus, the ECU will parse the parameters found in the corresponding parameter file inside the device.
  • By default Syrus 4G comes loaded with a predefined list of common parameters, but this list is editable by the user, so they can expand or select only the parameters he/she wants.
  • Once the parameters are being read you can use an application like SyrusJS to obtain the engine data and send it to an endpoint or create rules/trigger actions based on the values reported.
  • You can also use the Syrus 4G to log data from the CAN bus and interpret any proprietary parameters found, provided that you know how to interpret them, more details below.

Note that this documentation assumes that the reader has access to the latest official SAE J1939-71 documentation from which they'll find the parameters later defined in order to add them to the parameter file.

# Configuration

The ECU can be configured either using the Syrus Management Tool GUI or the apx-ecu core tool:

sudo apx-ecu configure [MODE] [VALUE]

Example, configure the Primary CAN (CAN1_H / CAN1_L wires) to read J1939 at 500KHz

sudo apx-ecu configure PRIMARY_CAN J1939_500KHZ

Mode Type Description
PRIMARY_CAN String Primary CAN configuration (CAN1_H / CAN1_L wires)
SECONDARY_CAN String Secondary CAN configuration (CAN2_H / CAN2_L wires)
LISTEN_ONLY_MODE String Program the listen only mode

Possible values:

PRIMARY_CAN or SECONDARY_CAN

  • NONE
  • J1939_250KHZ
  • J1939_500KHZ

LISTEN_ONLY_MODE

  • NONE
  • PRIMARY_CAN
  • SECONDARY_CAN
  • PRIMARY_&_SECONDARY
  • ALL

Listen Only Mode

In this mode the ECU Monitor does not request parameters to the vehicle's onboard computer. This is useful in case there's any interferences caused when connecting a diagnostic tool like the ECU to the vehicle's CAN bus.

Once you've configured the ECU, you're ready to connect it to the vehicle's J1939/CAN bus connector, this is usually a 9-pin connector, refer to our support site for more information on the location of this connector.

# Installation

Syrus 4 Datasheet with Pinout

CAN Bus Wiring Pinout (found in 14-pin molex)

Syrus Wire Color Signal Description
Yellow CAN1_H Primary positive signal of the J1939/FMS bus. Connect to the vehicle's CAN_H cable. This cable is twisted together with the green CAN1_L cable.
Green CAN1_L Primary negative signal of the J1939/FMS bus. Connected to the vehicle's CAN_L cable. This cable is twisted together with the yellow CAN1_H cable on the ECU Monitor.
Cyan CAN2_H Secondary positive signal of the J1939/FMS bus. Connect to the vehicle's CAN_H cable. This cable is twisted together with the white/light green CAN2_L cable.
White Light green CAN2_L Secondary negative signal of the J1939/FMS bus. Connect to the vehicle's CAN_L cable. This cable is twisted together with the cyan CAN2_H cable.

# Parameter file

The parameter file is what the Syrus will actual read from the onboard computer, you can include as many parameters as you want on this file.

The name of the file is: j1939_params, and the path of this file is /data/users/syrus4g/j1939_params

This special file treats each new line as a desired parameter to be read. Each line must have the following tokens spelled as shown below:

  • PARAM_NAME
  • PGN
  • TRANSMISSION_RATE
  • PRIORITY
  • DLC
  • LENGTH
  • START_POSITION
  • GROUP
  • MULTIPLIER

The following tokens are optional and can be added or omitted to the lines:

  • OFFSET
  • SOURCE_ADDRESS
  • SOURCE_INTERFACE

Important Note

  • All of the above tokens are terminated with the : character.
  • All of the above tokens must be spelled exactly the same as shown above.
  • All of the key value pairs for the desired parameter are separated by , character.
  • All of the values must be spelled exactly as shown on the explanation.
  • Make sure to separate different parameters with the ENTER key.
  • Make sure that the last parameter is followed by a new line by pressing the ENTER key.

# Token explanation

PARAM_NAME: This token is simply the full parameter name found in the standard documentation. The valid value for this key is the actual parameter name, it may be useful to put the Acronym in front of the name to easily identify the parameter. The max number of characters is 99.

PGN: This is the PDU format and specific, which is the parameter group number found in the standard documentation. The valid value for this key is the PGN that the parameter belongs to. Example: FEE7 is a valid value for PGN key token.

TRANSMISSION_RATE: This token refers to the transmission repetition rate of the PGN defined by the standard. The following values are the only ones valid for this key token:

  • CONTINUOUS - Used when transmission repetition rate does not describe a time in either seconds or milliseconds.
  • ON_REQUEST - Used when the transmission repetition rate states that the PGN is On request.
  • THE ACTUAL NUMERICAL VALUE - Enter the corresponding numerical value that appears. If 1s appears, then enter 1S. If 100ms, then enter 100MS. If 10s, then enter 10S.

PRIORITY: This token refers to the default priority defined by the standard. The valid values for this key token range from 3 to 7.

DLC: Also known as PGN Data Length. This token contains the value of the data length defined by the standard for the PGN. The valid values for this key token range from 1 to 8, but in most cases it will be 8.

LENGTH: This token contains the length of the of the desired parameter; enter exactly the value that appears under the length column, separating the number from the word by an underscore. Example: If it states 2 bytes, then enter 2_BYTES. If it states 2 bits, then enter 2_BITS If it states 1 byte, then enter 1_BYTE.

Note: pay attention to the plurality, 1 byte vs 2 bytes.

START_POSITION: Also known as SPN Position In PGN. This token will be the start position of the desired parameter. Enter exactly the number that appears in the standard for the Start Position field. If Start Position is 4, then simply enter 4. If the Start Position is 4.7, enter 4.7 for the START_POSITION token. If Start Position is 4-5, enter 4-5. Examples:

  • If the standard states just the start position is the number 4. Then the START_POSITION: 4
  • If the standard states the number 4.7 in the start position column, then the START_POSITION: 4.7
  • If the standard states the number 4-5 in the start position column, then the START_POSITION: 4-5

GROUP: This token refers to what group of parameters is desired. The only valid values for this key token are:

  • SIGNAL - Used when desired parameter uses a binary value between 0 and 3.
  • PERCENT - Used when desired parameter states that it uses a percent value.
  • EXTENDED_SIGNAL - Used when desired parameter uses binary values more than 0 to 3.
  • TIRE_COMPONENT - Used when desired parameter relates to the location of tire or the location of an axle. Typically the PGN where this parameter comes from has a location parameter [NOT IMPLEMENTED YET]
  • NUMBER_VALUE - Used when none of the above groups apply.

MULTIPLIER: This token refers to the first component of the resolution in the desired parameter definition. Example: The desired parameter defines resolution as 0.0001/bit, 0 offset. The MULTIPLIER is 0.0001.
When the GROUP token value for the parameter is either SIGNAL, EXTENDED_SIGNAL, or TIRE_COMPONENT, the MULTIPLIER must be set to 1.

The following key tokens are optional:

OFFSET: This token refers to the second component of the resolution in the desired parameter definition. Example: The desired parameter defines resolution as 0.03125 deg C/bit, -273 deg C offset. The OFFSET is -273. If no offset is given, then it is assumed to be 0.

SOURCE_ADDRESS: This token will order the ecumonitor application to only listen to this particular parameter if it is coming from the specified source address. This source address is defined as a hexadecimal value of one byte. If no SOURCE_ADDRESS is given then the application will obtain the parameter from any source. Example: A particular parameter is sent by various sources, but the user only wants to accept parameter information coming from the engine controller. SOURCE_ADDRESS: 00

SOURCE_INTERFACE: This token will order the ecumonitor application to only listen to this particular parameter if it is coming from the desired interface. Either PRIMARY, SECONDARY, or BOTH.

  • PRIMARY - Allows this particular parameter to be read from PRIMARY_CAN.
  • SECONDARY - Allows this particular parameter to be read from SECONDARY_CAN.
  • BOTH - Ecumonitor application will listen to both interfaces for this particular parameter. If this parameter is found in PRIMARY, then it will declare PRIMARY as the prioritized default desired interface even if the parameter also appears in SECONDARY. This is done to avoid data values from the parameter to change constantly if both interfaces report different values for the parameter.

# Capturing raw CAN data

You can capture the raw data that's being read from the CAN interface using the following command:

sudo apx-ecu log [TIME] [INTERFACE] [FILENAME]

Example, log 10 seconds of data from the PRIMARY_CAN interface with the filename logTruck500.log

sudo apx-ecu log 10 PRIMARY_CAN logTruck500.log

note that this file is saved to: /data/users/syrus4g/ecu_logs/logTruck500.log

Once you've captured the data and open the file it'll look like this:

interface = can0, family = 29, type = 3, proto = 1
<0x18febf0b> [8] 00 00 fe 7d fe 7d ff ff
<0x0cf00400> [8] 10 7d 86 ec 12 00 04 86
<0x18ff0421> [8] ff ff ff ff cf ff ff ff
<0x18fec100> [8] 75 33 e5 00 94 35 e5 00
<0x18fc9600> [8] 00 00 ff ff ff ff ff ff
<0x18f00e00> [8] ff ff ff ff c0 9f ff ff
<0x0cf00300> [8] d3 08 17 07 ff ff 62 7d
<0x18f0010b> [8] cf ff f0 ff ff 1c ff ff
<0x18fd9400> [8] ff ff ff ff ff ff ff ff

From the log output you can see what PGNs are being read and the payload, the contents can be separated as follow:

header payload-length [bytes] payload
<0x0cf00400> [8] 10 7d 86 ec 12 00 04 86

The PGN can be found in the middle 4 characters of the header, after 0x in between the < & >

f004 and its payload:

<0x0cf00400> [8] 10 7d 86 ec 12 00 04 86

This line contains informatoin on f004 which refers to the pgn61444 - Electronic Engine Controller 1 - EEC1

For example, SPN 190: the Engine Speed can be found in bytes 4-5 (bytes 0, 1, 2, etc.)

<0x0cf00400> [8] 10 7d 86 ec 12 00 04 86

to convert to decimal we use little endian and switch the position of the bytes.

ec 12 => 12ec to dec = 4844

according to SPN: 190, this parameter has a resolution of 0.125 rpm/bit

4844 * 0.125 = 605 rpm

Things to keep in mind:

  • some SPNs may be invalid, you can tell because the payload is full of F's (consult 5.1.5 Tables 1-3 on J1939-71 documentation).
  • at the same time it is useful to organize the candump in alphabetical order to see how the payload changes and confirm which values are indeed being read
  • some parameters may be found in other CAN bus wires of the vehicle's CAN Network
  • make sure to setup the configuration of the CAN interface before doing the capture, failure to do so will render inaccurate log outputs

# Guide to create the parameters file (j1939)

Information about the following parameters is desired:

  • Engine Trip Fuel
  • Engine Speed
  • Service Distance
  • Engine Oil Level
  • Clutch Switch

# Step 1

Identify the location of the parameter in the PGN description section of the standard.
Here, important information required for the parameter file can be found; such as, parameter name, PGN, transmission repetition rate, priority, data length, start position, and length.
DO NOT confuse data length with length. Data length; which will now be renamed DLC, refers to the length of the PGN message where length is the length of the parameter of interest. When inputting information, all of the key and value pairs are in capital letters.

# Step 2

Input the value for the keys based on the Explanation of key tokens section. Make sure that the keys are terminated with the : (colon) character and that key value pairs are separated by the , (comma) character.

# Step 3

Enter the parameter name:

  • For Engine Trip Fuel → PARAMETER_NAME: ENGINE TRIP FUEL
  • For Engine Speed → PARAMETER_NAME: ENGINE SPEED
  • For Service Distance → PARAMETER_NAME: SERVICE DISTANCE
  • For Engine Oil Level → PARAMETER_NAME: ENGINE OIL LEVEL
  • For Clutch Switch → PARAMETER_NAME: CLUTCH SWITCH

# Step 4

Enter the PGN:

Note: This is the hexadecimal representation of the PGN ignoring the leading 0x00.

  • For Engine Trip Fuel → PGN: FEE9
  • For Engine Speed → PGN: F004
  • For Service Distance → PGN: FEC0
  • For Engine Oil Level → PGN: FEEF
  • For Clutch Switch → PGN: FEF1

# Step 5

Enter the transmission repetition rate:

Note: Some cases state a number followed by a unit of time, other cases state 'On request', and finally some cases state neither. When neither, a number, or the words “On request” appear, then enter the transmission repetition rate as CONTINUOUS.

  • For Engine Trip Fuel → TRANSMISSION_RATE: ON_REQUEST
  • For Engine Speed → TRANSMISSION_RATE: CONTINUOUS
  • For Service Distance → TRANSMISSION_RATE: ON_REQUEST
  • For Engine Oil Level → TRANSMISSION_RATE: 0.5S
  • For Clutch Switch → TRANSMISSION_RATE: 100MS

# Step 6

Enter the priority:

  • For Engine Trip Fuel → PRIORITY: 6
  • For Engine Speed → PRIORITY: 3
  • For Service Distance → PRIORITY: 6
  • For Engine Oil Level → PRIORITY: 6
  • For Clutch Switch → PRIORITY: 6

# Step 7

Enter the data length (DLC):

Note: In some cases the Data Length will state VARIABLE, be sure to enter VARIABLE when it is mentioned.

  • For Engine Trip Fuel → DLC: 8
  • For Engine Speed → DLC: 8
  • For Service Distance → DLC: 8
  • For Engine Oil Level → DLC: 8
  • For Clutch Switch → DLC: 8

# Step 8

Enter the start position:

Note: Input exactly the number that appears under the Start Position column.

  • For Engine Trip Fuel → START_POSITION: 1-4
  • For Engine Speed → START_POSITION: 4-5
  • For Service Distance → START_POSITION: 2-3
  • For Engine Oil Level → START_POSITION: 3
  • For Clutch Switch → START_POSITION: 4.7

# Step 9

Enter the length:

Note: This is the length of the parameter and the unit is either bits or bytes.

  • For Engine Trip Fuel → LENGTH: 4_BYTES
  • For Engine Speed → LENGTH: 2_BYTES
  • For Service Distance → LENGTH: 2_BYTES
  • For Engine Oil Level →LENGTH: 1_BYTE
  • For Clutch Switch → LENGTH: 2_BITS

# Step 10

Find the detailed description of the parameter and this section can be used to fill the group, multiplier, and offset of the parameter.

# Step 11

Enter the group:

Note: The group refers to whether the parameter uses states, has a percentage symbol, is part of a PGN that reports tire and axle locations, or is simply a numerical value.

  • For Engine Trip Fuel → GROUP: NUMBER_VALUE
  • For Engine Speed → GROUP: NUMBER_VALUE
  • For Service Distance → GROUP: NUMBER_VALUE
  • For Engine Oil Level → GROUP: PERCENT
  • For Clutch Switch → GROUP: SIGNAL

# Step 12

Enter the multiplier:

Note: This value refers to the first number found next to the resolution field. The value for multiplier is required for all parameters. SIGNALS (refers to states), EXTENDED_SIGNALS, and TIRE_COMPONENTS must have a multiplier of 1.

  • For Engine Trip Fuel → MULTIPLIER: 0.5
  • For Engine Speed → MULTIPLIER: 0.125
  • For Service Distance → MULTIPLIER: 5
  • For Engine Oil Level → MULTIPLIER: 0.4
  • For Clutch Switch → MULTIPLIER: 1

# Step 13

Enter the offset:

Note: This key is not required and can be left omitted when the value is 0.

For Service Distance → OFFSET: -160635

# Step 14

Put all of the key value pairs together.

Note: Be sure to separate each parameter by a singular press of the enter key to create a new line for each.

For Engine Trip Fuel

PARAM_NAME: ENGINE TRIP FUEL, PGN: FEE9, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 1-4, GROUP: NUMBER_VALUE, MULTIPLIER: 0.5

For Engine Speed

PARAM_NAME: ENGINE SPEED, PGN: F004, TRANSMISSION_RATE: CONTINUOUS, PRIORITY: 3, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 4-5, GROUP: NUMBER_VALUE, MULTIPLIER: 0.125

For Service Distance

PARAM_NAME: SERVICE DISTANCE, PGN: FEC0, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 2-3, GROUP: NUMBER_VALUE, MULTIPLIER: 5, OFFSET: -160635

For Engine Oil Level

PARAM_NAME: ENGINE OIL LEVEL, PGN: FEEF, TRANSMISSION_RATE: 0.5S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 3, GROUP: PERCENT, MULTIPLIER: 0.4

For Clutch Switch

PARAM_NAME: CLUTCH SWITCH, PGN: FEF1, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 4.7, GROUP: SIGNAL, MULTIPLIER: 1

# Sample Configuration File

Filename: j1939_params

PARAM_NAME: FUEL LEVEL 1, PGN: FEFC, TRANSMISSION_RATE: 1S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 2, GROUP: PERCENT, MULTIPLIER: 0.4
PARAM_NAME: ENGINE SPEED, PGN: F004, TRANSMISSION_RATE: CONTINUOUS, PRIORITY: 3, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 4-5, GROUP: NUMBER_VALUE, MULTIPLIER: 0.125
PARAM_NAME: WHEEL-BASED VEHICLE SPEED, PGN: FEF1, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 2-3, GROUP: NUMBER_VALUE, MULTIPLIER: 0.00390625
PARAM_NAME: CLUTCH SWITCH, PGN: FEF1, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 4.7, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: PARKING BRAKE SWITCH, PGN: FEF1, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 1.3, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: BRAKE SWITCH, PGN: FEF1, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 4.5, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: ENGINE OIL LEVEL, PGN: FEEF, TRANSMISSION_RATE: 0.5S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 3, GROUP: PERCENT, MULTIPLIER: 0.4
PARAM_NAME: ENGINE OIL PRESSURE, PGN: FEEF, TRANSMISSION_RATE: 0.5S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 4, GROUP: NUMBER_VALUE, MULTIPLIER: 4
PARAM_NAME: ENGINE COOLANT PRESSURE, PGN: FEEF, TRANSMISSION_RATE: 0.5S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 7, GROUP: NUMBER_VALUE, MULTIPLIER: 2
PARAM_NAME: ENGINE COOLANT LEVEL, PGN: FEEF, TRANSMISSION_RATE: 0.5S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 8, GROUP: PERCENT, MULTIPLIER: 0.4
PARAM_NAME: BRAKE PEDAL POSITION, PGN: F001, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 2, GROUP: PERCENT, MULTIPLIER: 0.4
PARAM_NAME: RETARDER TORQUE MODE, PGN: F000, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 4_BITS, START_POSITION: 1.1, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: RETARDER ENABLE - BRAKE ASSIST SWITCH, PGN: F000, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 1.5, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: RETARDER ENABLE - SHIFT ASSIST SWITCH, PGN: F000, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 1.7, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: ENGINE TOTAL HOURS OF OPERATION, PGN: FEE5, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 1-4, GROUP: NUMBER_VALUE, MULTIPLIER: 0.05
PARAM_NAME: TRIP DISTACE, PGN: FEE0, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 1-4, GROUP: NUMBER_VALUE, MULTIPLIER: 0.125
PARAM_NAME: TOTAL VEHICLE DISTANCE, PGN: FEE0, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 5-8, GROUP: NUMBER_VALUE, MULTIPLIER: 0.125
PARAM_NAME: SERVICE DISTANCE, PGN: FEC0, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 2-3, GROUP: NUMBER_VALUE, MULTIPLIER: 5, OFFSET: -160635
PARAM_NAME: ENGINE TOTAL IDLE FUEL USED, PGN: FEDC, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 1-4, GROUP: NUMBER_VALUE, MULTIPLIER: 0.5
PARAM_NAME: ENGINE TOTAL IDLE HOURS, PGN: FEDC, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 5-8, GROUP: NUMBER_VALUE, MULTIPLIER: 0.05
PARAM_NAME: ENGINE TRIP FUEL, PGN: FEE9, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 1-4, GROUP: NUMBER_VALUE, MULTIPLIER: 0.5
PARAM_NAME: ENGINE TOTAL FUEL USED, PGN: FEE9, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 5-8, GROUP: NUMBER_VALUE, MULTIPLIER: 0.5
PARAM_NAME: POWERED VEHICLE WEIGHT, PGN: FE70, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: VARIABLE, LENGTH: 2_BYTES, START_POSITION: 1-2, GROUP: NUMBER_VALUE, MULTIPLIER: 10
PARAM_NAME: GROSS COMBINATION VEHICLE WEIGHT, PGN: FE70, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: VARIABLE, LENGTH: 2_BYTES, START_POSITION: 3-4, GROUP: NUMBER_VALUE, MULTIPLIER: 10
PARAM_NAME: AFTERTREATMENT 1 DIESEL PARTICULATE FILTER SOOT LOAD REGENERATION THRESHOLD, PGN: FD7B, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 7, GROUP: NUMBER_VALUE, MULTIPLIER: 0.0025
PARAM_NAME: DIESEL PARTICULATE FILTER 1 SOOT LOAD PERCENT, PGN: FD7B, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 1, GROUP: PERCENT, MULTIPLIER: 1
PARAM_NAME: ENGINE EXHAUST GAS RECIRCULATION 1 VALVE CONTROL, PGN: FDD5, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 5-6, GROUP: PERCENT, MULTIPLIER: 0.0025
PARAM_NAME: ENGINE VARIABLE GEOMETRY TURBOCHARGER 1 ACTUATOR POSITION, PGN: FDD5, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 8, GROUP: PERCENT, MULTIPLIER: 0.04
PARAM_NAME: ENGINE VARIABLE GEOMETRY TURBOCHARGER 1 CONTROL MODE, PGN: FDD5, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BITS, START_POSITION: 7.3, GROUP: SIGNAL, MULTIPLIER: 1
PARAM_NAME: TOTAL ECU RUN TIME, PGN: FEB1, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 7, DLC: 8, LENGTH: 4_BYTES, START_POSITION: 5-8, GROUP: NUMBER_VALUE, MULTIPLIER: 0.05
PARAM_NAME: AXLE WEIGHT, PGN: FEEA, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 2-3, GROUP: TIRE_COMPONENT, MULTIPLIER: 0.5
PARAM_NAME: TRAILER WEIGHT, PGN: FEEA, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 4-5, GROUP: NUMBER_VALUE, MULTIPLIER: 2
PARAM_NAME: CARGO WEIGHT, PGN: FEEA, TRANSMISSION_RATE: ON_REQUEST, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 6-7, GROUP: NUMBER_VALUE, MULTIPLIER: 2
PARAM_NAME: ENGINE FUEL RATE, PGN: FEF2, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 1-2, GROUP: NUMBER_VALUE, MULTIPLIER: 0.05
PARAM_NAME: ENGINE INSTANTANEOUS FUEL ECONOMY, PGN: FEF2, TRANSMISSION_RATE: 100MS, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 3-4, GROUP: NUMBER_VALUE, MULTIPLIER: 0.001953125
PARAM_NAME: TIRE PRESSURE, PGN: FEF4, TRANSMISSION_RATE: 10S, PRIORITY: 6, DLC: 8, LENGTH: 1_BYTE, START_POSITION: 2, GROUP: TIRE_COMPONENT, MULTIPLIER: 4
PARAM_NAME: TIRE TEMPERATURE, PGN: FEF4, TRANSMISSION_RATE: 10S, PRIORITY: 6, DLC: 8, LENGTH: 2_BYTES, START_POSITION: 3-4, GROUP: TIRE_COMPONENT, MULTIPLIER: 0.03125, OFFSET:  -273

# ECU Parameters (j1939)

The list_parameters command is used to retrieve the list of parameters successfully read.

sudo apx-ecu list_parameters

{"f003_1.1":1,"f003_1.3":0,"f003_1.5":1,"f003_2":0,"f003_3":0,"f003_7":26.4,"f003_8":0,"f004_1.1":14,"f004_1.5":0,"f004_2":0,"f004_3":0,"f004_4-5":0,"f001_3.1":0,"f001_3.3":0,"f001_4.7":0,"f001_6.1":1,"f001_6.5":0,"fcdc_5-6":99.78,"fcdc_7-8":0,"febf_1-2":0,"febf_3":0.81,"febf_4":0.81,"febf_5":0.81,"febf_6":0.81,"fedf_1":0,"fedf_2-3":1300,"fef1_1.3":1,"fef1_2-3":0,"fef1_6":99,"fef1_7.1":0,"fef1_7.6":0,"fef1_8.1":0,"fef1_8.3":0,"fef1_8.5":0,"fcfd_5-6":65,"f00e_5.1":1,"f00e_5.3":1,"f00e_5.5":1,"f00e_6.6":0,"fee0_1-4":289242.12,"fee0_5-8":289241.5,"fef0_4-5":700,"fef2_1-2":0,"fef2_3-4":0,"fef2_5-6":1.8,"fd92_1.1":0,"feca_1.3":0,"feca_1.5":0,"feca_1.7":0,"feca_5.1":0,"feca_6.1":0,"feca_6.8":0,"fec1_1-4":289167795,"fef7_5-6":12.45,"fefc_2":56.4,"fdc6_2.1":4,"fdc6_2.5":0,"fedb_3-4":51.72,"feef_4":0,"fee4_2.7":0,"fee4_5.1":0,"fee4_5.3":0,"fee4_5.5":0,"fee4_5.7":0,"fee4_6.7":1,"fec1_5-8":289242145,"fef6_2":0,"fef6_3":53,"fea4_3-4":31.28,"feee_1":62,"fdd5_7.3":0,"fdd5_7.5":1,"fdd5_8":23.6,"fe56_1":81.6,"fe56_2":16,"fe56_5.6":0,"fe56_7":0,"fedc_1-4":30482,"fedc_5-8":6484.7,"fef5_4-5":9.09,"fee5_1-4":13919.65,"fee5_5-8":109582000,"fee9_1-4":160535,"fee9_5-8":164860,"feb1_5-8":14068.65,"0_1.1":0,"0_2-3":8016.88,"f004_6":0,"f004_7.1":15,"f004_8":0,"e0ff_1":0,"febd_1":0,"fce7_1":3,"fce7_2":7,"fce7_3":4,"fce7_4":5,"fce7_5":5,"fce7_6":8,"fce7_7":8}

This JSON response is composed of the PGN & start position described earlier, and the value. For example: "fe56_1":81.6 corresponds to: AFTERTREATMENT 1 DIESEL EXHAUST FLUID TANK 1 LEVEL value of 81.6%

The following is a list of the most common parameters, also compatible with TAIP protocol, which means they can be sent to Pegasus. To integrate them with SyrusJS you can define fieldsets and signals as follow:

SyrusJS

Fieldsets

define fieldset pegasus fields=$ecu
define fieldset custom_mqtt fields=accel_pedal:$ecu.f003_2,...
define fieldset mqtt_example_all fields=$ecu

Signals

define signal signal_pedal_full_press $ecu.f003_2 >= 99

For a full list of all SPNs and their start positions you can view the following table: 🌎 SPN & Start Position List

ID                   PARAM_NAME UNITS
fee4_3.1 A/C HIGH PRESSURE FAN SWITCH Count (0 to 3)
f003_2 ACCELERATOR PEDAL POSITION 1 Percentage (%)
f004_3 ACTUAL ENGINE - PERCENT TORQUE Percentage (%)
f00e_1-2 AFTERTREATMENT 1 INTAKE NOX Parts per million (ppm)
f00f_1-2 AFTERTREATMENT 1 OUTLET NOX Parts per million (ppm)
fd20_1-2 AFTERTREATMENT 1 DIESEL OXIDATION CATALYST INTAKE GAS TEMPERATURE Temperature (C)
fd3e_1-2 AFTERTREATMENT 1 SCR CATALYST INTAKE GAS TEMPERATURE Temperature (C)
fd3e_4-5 AFTERTREATMENT 1 SCR CATALYST OUTLET GAS TEMPERATURE Temperature (C)
fd7b_7 AFTERTREATMENT 1 DIESEL PARTICULATE FILTER SOOT LOAD REGENERATION THRESHOLD Percentage (%)
fd9f_8.5 AFTERTREATMENT 1 PURGE AIR ACTUATOR Count (0 to 3)
fdb2_5-6 AFTERTREATMENT 1 DIESEL PARTICULATE FILTER DIFFERENTIAL PRESSURE Pressure (kPa)
fdb3_3-4 AFTERTREATMENT 1 DIESEL PARTICULATE FILTER OUTLET GAS TEMPERATURE Temperature (C)
fdb4_3-4 AFTERTREATMENT 1 DIESEL PARTICULATE FILTER INTAKE GAS TEMPERATURE Temperature (C)
fe56_1 AFTERTREATMENT 1 DIESEL EXHAUST FLUID TANK 1 LEVEL Percentage (%)
fe56_2 AFTERTREATMENT 1 DIESEL EXHAUST FLUID TANK 1 TEMPERATURE Temperature (C)
fe56_5.6 AFTERTREATMENT 1 DIESEL EXHAUST FLUID TANK 1 LOW LEVEL INDICATOR Count (0 to 3)
fef5_4-5 AMBIENT AIR TEMPERATURE Temperature (C)
f001_1.5 ANTI-LOCK BRAKING (ABS) ACTIVE Count (0 to 3)
feea_1 AXLE LOCATION Count (0 to 255)
feea_2-3 AXLE WEIGHT Mass, cargo (kg)
fef7_5-6 BATTERY POTENTIAL / POWER INPUT 1 Electrical voltage (V)
f001_2 BRAKE PEDAL POSITION Percentage (%)
fef1_4.5 BRAKE SWITCH Count (0 to 3)
feea_6-7 CARGO WEIGHT Mass, cargo (kg)
fef1_4.7 CLUTCH SWITCH Count (0 to 3)
fef1_6 CRUISE CONTROL SET SPEED Velocity, linear (km/h)
fef1_7.6 CRUISE CONTROL STATES Count (0 to 7)
fd7b_1 DIESEL PARTICULATE FILTER 1 SOOT LOAD PERCENT Percentage (%)
fd7c_2.3 DIESEL PARTICULATE FILTER ACTIVE REGENERATION STATUS Count (0 to 3)
fd8c_1-2 DIESEL PARTICULATE FILTER INTAKE PRESSURE 1 Pressure (kPa)
f004_2 DRIVER'S DEMAND ENGINE - PERCENT TORQUE Percentage (%)
f003_3 ENGINE PERCENT LOAD AT CURRENT SPEED Percentage (%)
f004_4-5 ENGINE SPEED Velocity, rotational (rpm)
f00a_1-2 ENGINE EXHAUST GAS RECIRCULATION 1 (EGR1) MASS FLOW RATE Flow rate, gaseous (kg/h)
f00a_3-4 ENGINE INTAKE AIR MASS FLOW RATE Flow rate, gaseous (kg/h)
fd94_1-2 ENGINE EXHAUST GAS RECIRCULATION 1 VALVE POSITION Percentage (%)
fda3_3 ENGINE VARIABLE GEOMETRY TURBOCHARGER ACTUATOR #1 Percentage (%)
fdd5_5-6 ENGINE EXHAUST GAS RECIRCULATION 1 VALVE CONTROL Percentage (%)
fdd5_7.3 ENGINE VARIABLE GEOMETRY TURBOCHARGER 1 CONTROL MODE Count (0 to 3)
fdd5_8 ENGINE VARIABLE GEOMETRY TURBOCHARGER 1 ACTUATOR POSITION Percentage (%)
fe92_2-3 ENGINE EXHAUST GAS PRESSURE Pressure (kPa)
fe99_1-2 ENGINE TURBOCHARGER 1 COMPRESSOR INTAKE PRESSURE Pressure (kPa)
fe9a_1-2 ENGINE TURBOCHARGER 1 COMPRESSOR INTAKE TEMPERATURE Temperature (C)
fea4_5-6 ENGINE EXHAUST GAS RECIRCULATION 1 DIFFERENTIAL PRESSURE Presure (kPa)
fea4_7-8 ENGINE EXHAUST GAS RECIRCULATION 1 TEMPERATURE Temperature (C)
fedc_1-4 ENGINE TOTAL IDLE FUEL USED Fuel used, liquid (L)
fedc_5-8 ENGINE TOTAL IDLE HOURS Time, hr (hr)
fedd_2-3 ENGINE TURBOCHARGER 1 SPEED Velocity, rotational (rpm)
fee5_1-4 ENGINE TOTAL HOURS OF OPERATION Time, hr (hr)
fee9_1-4 ENGINE TRIP FUEL Fuel used, liquid (L)
fee9_5-8 ENGINE TOTAL FUEL USED Fuel used, liquid (L)
feee_1 ENGINE COOLANT TEMPERATURE Temperature (C)
feee_2 ENGINE FUEL TEMPERATURE 1 Temperature (C)
feee_3-4 ENGINE OIL TEMPERATURE 1 Temperature (C)
feef_3 ENGINE OIL LEVEL Percentage (%)
feef_4 ENGINE OIL PRESSURE Pressure (kPa)
feef_5-6 ENGINE CRANKCASE PRESSURE Pressure (kPa)
feef_7 ENGINE COOLANT PRESSURE Pressure (kPa)
feef_8 ENGINE COOLANT LEVEL Percentage (%)
fef0_6.1 ENGINE PTO GOVERNOR ENABLE SWITCH Count (0 to 3)
fef0_6.3 ENGINE REMOTE PTO GOVERNOR PREPROGRAMMED SPEED CONTROL SWITCH Count (0 to 3)
fef2_1-2 ENGINE FUEL RATE Flow rate, liquid (L/h)
fef2_3-4 ENGINE INSTANTANEOUS FUEL ECONOMY Economy, liquid (km/L)
fef6_2 ENGINE INTAKE MANIFOLD #1 PRESSURE Pressure (kPa)
fef6_3 ENGINE INTAKE MANIFOLD 1 TEMPERATURE Temperature (C)
fef6_6-7 ENGINE EXHAUST GAS TEMPERATURE Temperature (C)
febd_2.1 FAN DRIVE STATE Count (0 to 15)
fefc_2 FUEL LEVEL 1 Percentage (%)
fe70_3-4 GROSS COMBINATION VEHICLE WEIGHT Mass, cargo (kg)
fec1_1-4 HIGH RESOLUTION TOTAL VEHICLE DISTANCE Distance, km (km)
fec1_5-8 HIGH RESOLUTION TRIP DISTANCE Distance, km (km)
f008_1-2 HYDRAULIC PRESSURE Pressure (kPa)
fe68_1 HYDRAULIC TEMPERATURE Temperature (C)
fe68_3 HYDRAULIC OIL LEVEL Percentage (%)
fedf_1 NOMINAL FRICTION - PERCENT TORQUE Percentage (%)
fef1_1.3 PARKING BRAKE SWITCH Count (0 to 3)
fe70_1-2 POWERED VEHICLE WEIGHT Mass, cargo (kg)
fef1_7.1 PTO GOVERNOR STATE Count (0 to 31)
f001_4.7 REMOTE ACCELERATOR ENABLE SWITCH Count (0 to 3)
f003_4 REMOTE ACCELERATOR PEDAL POSITION Percentage (%)
f000_1.5 RETARDER ENABLE - BRAKE ASSIST SWITCH Count (0 to 3)
e000_4.7 SEAT BELT SWITCH Count (0 to 3)
fec0_2-3 SERVICE DISTANCE Distance, km (km)
fef4_1 TIRE LOCATION Count (0 to 255)
fef4_2 TIRE PRESSURE Pressure (kPa)
fef4_3-4 TIRE TEMPERATURE Temperature (C)
feb1_5-8 TOTAL ECU RUN TIME Time, hr (hr)
fee0_5-8 TOTAL VEHICLE DISTANCE Distance, km (km)
feea_4-5 TRAILER WEIGHT Mass, cargo (kg)
fef8_2 TRANSMISSION OIL LEVEL Percentage (%)
fef8_4 TRANSMISSION OIL PRESSURE Pressure (kPa)
fef8_5-6 TRANSMISSION OIL TEMPERATURE Temperature (C)
fee0_1-4 TRIP DISTACE Distance, km (km)
feff_1.1 WATER IN FUEL INDICATOR Count (0 to 3)
fef1_2-3 WHEEL-BASED VEHICLE SPEED Velocity, linear (km/h)

# Units

Unit description Unit Range
Acceleration m/s -15.687 to +15.687 m/s
Angle/Direction deg -210 to 211 deg
Brake applications appl 0 to 4,227,858,431 appl
Calendar, days days 0 to 62.5 days
Calendar, months months 0 to 250 months
Calendar, weeks weeks -125 to 125 weeks
Calendar, years years 1985 to 2235 years
Capacity, Battery mAhr 0 to 64255 mAhr
Count count 0 to 4,294,967,295 counts
Distance, m m 0 to 526,385,151,900 m
Distance, km km 0 to 526,385,151.9 km
Economy, gaseous km/kg 0 to 125.5 km/kg
Economy, liquid km/L 0 to 125.5 km/L
Electrical current A -125 to 125 A
Electrical voltage V 0 to 64,255 V
Energy kWh 0 to 4,211,081,215 kWh
Flow rate, gaseous kg/h 0 to 3212.75 kg/h
Flow rate, liquid L/h 0 to 3,212.75 L/h
Flow rate, volumetric m^3/h 0 to 6425.5 m^3/h
Force N -100,000 N to 150,000 N
Frequency Hz 0 to 501.9921875 Hz
Fuel Used,gaseous kg 0 to 2,105,540,607.5 kg
Fuel Used,liquid L 0 to 2,105,540,607.5 L
Governor gain %/rpm 0 to 50.2 %/rpm
Inertia kg-m^2 0 to 257.02 kg-m^2
Intensity, optical mW/cm^2 0 to 100 mW/cm^2
Kinematic viscosity mm^2/s 0 to 250 mm^2/s
Mass,cargo kg 0 to 642,550 kg
Parts per million ppm -200 to 3012.75 ppm
Percent,position/level % -125 to 250 %
Power, apparent VA -2,000,000,000 to +2,211,081,215 VA
Power, reactive VAr -2,000,000,000 to +2,211,081,215 VAr
Power, real W -2,000,000,000 to +2,211,081,215 W
Pressure kPa 0 to 321,275 kPa
Pressure rate change Pa/s 0 to 6425.5 Pa/s
Revolutions r 0 to 4,211,081,215,000 r
Road Curvature 1/km -250 to 251.992 1/km
Specific Resistance Mohm*m 0 to 25 Mohm*m
Temperature C -273 to 1735 C
Time, ms ms 0 to 64,255 ms
Time, s s 0 to 4,211,081,215 s
Time, min min -125 to 250 min
Time, hr hr -32,127 to 210,554,060.75 hr
Torque Nm -32,000 to 128,510 Nm
Velocity, linear m/s 0 to 64.255 m/s
Velocity, linear km/h -250 to 251.992 km/h
Velocity, rotational rpm 0 to 257,020 rpm
Velocity, angular rad/s -3.92 to 3.92 rad/s
Volume L 0 to 2,105,540,607.5 L
Last Updated: 1/15/2021, 1:52:09 PM