# 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
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 enter1S
. If 100ms, then enter100MS
. If 10s, then enter10S
.
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 inPRIMARY
, then it will declarePRIMARY
as the prioritized default desired interface even if the parameter also appears inSECONDARY
. 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 |