Integrated Safeties and Custom DTC codes - bootmod3 CustomROM V2
- 1 Overview
- 2 Approach to safeties through DTC Code Tables
- 3 Example of Handling PI Safety through DTC Codes
- 4 Custom bootmod3 DTC Codes Description
- 4.1 A00101 - A00108 REV2 PI Injector Cylinder 1 - 8 Fault Codes
- 4.2 A10101 BM3 CustomROM - PI LPFP Pressure Below MIN Threshold
- 4.3 A20101 BM3 CustomROM - Flex Fuel Sensor Fault
- 4.4 A30101 REV2 Board Status - General Fault
- 4.5 A30201 REV2 Board Status - Injector Signal From DME To REV2 Not Detected
- 4.6 A30301 REV2 Board Status - PI Injectors General Fault
- 4.7 A30401 REV2 Board Status - FlexRay Message DME to REV2 Not Detected
- 4.8 A30501 REV2 FlexRay Message RX Timeout Exceeded
- 4.9 A30601 REV2 Board Status - CAM Sync Not Possible
- 4.10 A40101 BM3 CustomROM - PI Injector Duty Cycle Max Threshold Exceeded
- 4.11 A50101 BM3 CustomROM - Timing Correction Exceeded MAX Threshold
- 4.12 A60101 - A60108 BM3 CustomROM - DI Injector Cylinder 1 - 8 Fault Codes
- 4.13 A70101 - A70108 BM3 CustomROM - Ignition Coil Cylinder 1 - 8 Fault Codes
- 4.14 A80101 BM3 CustomROM - Coolant Pressure MAX Exceeded
- 4.15 A90101 BM3 CustomROM - Turbine Speed MAX Exceeded
- 4.16 AC0101 BM3 CustomROM - REV2 to DME IDC Feedback Delay Exceeded
- 5 Torque and Load Target Tables for Safety / Limp
- 6 In-Dash Knock Indicator
- 7 Coolant Pressure Safety
- 8 Direct Injection Fuel Injector Failure Safety
- 9 Port Injection Fuel Injector Failure Safety
- 10 Flex Fuel Sensor Fault Safety (FlexRay)
- 11 Ignition Coil Fault Safety
- 12 Fuel Pressure (Differential) for Port Injection Safety
- 13 Global PI Safety Switch
- 14 Turbo Over-speed Safety
Overview
With great power comes great responsibility and CustomROM V2 adds a great deal of configurable integrated safeties across all features added. Shown below is the section of the map where all custom DTC codes can be found and configured.
Throughout development we’ve identified many potential safety scenarios that we wanted to add handling for. To implement these safety strategies we defined a custom DTC codes specific to bootmod3 CustomROM V2, list shown below.
A00101 REV2 PI Injector Cyl1 Fault
A00102 REV2 PI Injector Cyl2 Fault
A00103 REV2 PI Injector Cyl3 Fault
A00104 REV2 PI Injector Cyl4 Fault
A00105 REV2 PI Injector Cyl5 Fault
A00106 REV2 PI Injector Cyl6 Fault
A00107 REV2 PI Injector Cyl7 Fault
A00108 REV2 PI Injector Cyl8 Fault
A10101 BM3 CustomROM - PI LPFP Pressure Below MIN Threshold
A20101 BM3 CustomROM - Flex Fuel Sensor Fault
A30101 REV2 Board Status - General Fault
A30201 REV2 Board Status - Injector Signal From DME To REV2 Not Detected
A30301 REV2 Board Status - PI Injectors General Fault
A30401 REV2 Board Status - FlexRay Message DME to REV2 Not Detected
A30501 REV2 FlexRay Message RX Timeout Exceeded
A30601 REV2 Board Status - CAM Sync Not Possible
A40101 BM3 CustomROM - PI Injector Duty Cycle Max Threshold Exceeded
A50101 BM3 CustomROM - Timing Correction Exceeded MAX Threshold
A60101 BM3 CustomROM - DI Injector Cyl1 Fault
A60102 BM3 CustomROM - DI Injector Cyl2 Fault
A60103 BM3 CustomROM - DI Injector Cyl3 Fault
A60104 BM3 CustomROM - DI Injector Cyl4 Fault
A60105 BM3 CustomROM - DI Injector Cyl5 Fault
A60106 BM3 CustomROM - DI Injector Cyl6 Fault
A60107 BM3 CustomROM - DI Injector Cyl7 Fault
A60108 BM3 CustomROM - DI Injector Cyl8 Fault
A70101 BM3 CustomROM - Ign Coil Cyl1 Fault
A70102 BM3 CustomROM - Ign Coil Cyl2 Fault
A70103 BM3 CustomROM - Ign Coil Cyl3 Fault
A70104 BM3 CustomROM - Ign Coil Cyl4 Fault
A70105 BM3 CustomROM - Ign Coil Cyl5 Fault
A70106 BM3 CustomROM - Ign Coil Cyl6 Fault
A70107 BM3 CustomROM - Ign Coil Cyl7 Fault
A70108 BM3 CustomROM - Ign Coil Cyl8 Fault
A80101 BM3 CustomROM - Coolant Pressure MAX Exceeded
A90101 BM3 CustomROM - Turbine Speed MAX Exceeded
AC0101 BM3 CustomROM - REV2 to DME IDC Feedback Delay ExceededApproach to safeties through DTC Code Tables
Each custom DTC code is defined with the following 3 tables:
FIDs table: 19 different safety functions can be triggered as a result of a given DTC code being thrown.
Heal time in seconds: configure how often the DME should check if the condition is still present. If no longer present, DTC code will go into inactive status while still being readable in diagnostics → read codes for any troubleshooting.
CEL indicator: when the code is thrown, tuner can define if the CEL is to blink repeatedly (value of 1), or stay constantly on (value of 2).
This provides a great deal of flexibility and is one of the most elaborate safety setups out there today. FIDs table’s 19 values that can be turned ON (value of 1) or OFF (value of 0) are described on each codes description tab in the Map Editor.
Example of Handling PI Safety through DTC Codes
Here’s an example of a code’s FIDs table description for DTC code A00101 for PI Injector Cylinder 1 Failure:
As per table description:
This table allows you to select which Function Identifier (FID) should be activated when the DTC is triggered. A value of '0' means nothing will happen for the respective FID. If all values are set to zero, there will be no limp mode strategy for this specific code. When a value of '1' is chosen for a given FID it means it will cause that specific safety function to trigger.
Here’s a description for reach of the 19 FIDs for any DTC Code FID table:
0 = Nitrous Solenoid Cut
1 = OEM Electronic Wastegate Cut / Limp
2 = REV2 WGDC Output Cut
3 = Ignition Cut Cyl 1
4 = Ignition Cut Cyl 2
5 = Ignition Cut Cyl 3
6 = Ignition Cut Cyl 4
7 = Ignition Cut Cyl 5
8 = Ignition Cut Cyl 6
9 = Ignition Cut Cyl 7
10 = Ignition Cut Cyl 8
11 = DI Fuel Injector Cut Cyl 1
12 = DI Fuel Injector Cut Cyl 2
13 = DI Fuel Injector Cut Cyl 3
14 = DI Fuel Injector Cut Cyl 4
15 = DI Fuel Injector Cut Cyl 5
16 = DI Fuel Injector Cut Cyl 6
17 = DI Fuel Injector Cut Cyl 7
18 = DI Fuel Injector Cut Cyl 8
For the above A00101 you can see the first four FIDs are set to a value of 1 and the rest are 0. This indicates that in case of a detected failure of the PI injector on cylinder 1 the following FIDs will be triggered:
0 = Nitrous Solenoid Cut
1 = OEM Electronic Wastegate Cut / Limp
2 = REV2 WGDC Output Cut
3 = Ignition Cut Cylinder 1
You can see that we’re cutting the Ignition Coil on cylinder 1 in the instant the code is thrown providing for ultimate engine safety from running lean. In that instant we’re also disabling all power adders which are boost related functions (Electronic Wastegate and Mac Solenoid) as well as Nitrous Injection in case it is enabled/spraying.
This same approach is taken in configuration of any custom DTC code defined.
Custom bootmod3 DTC Codes Description
A00101 - A00108 REV2 PI Injector Cylinder 1 - 8 Fault Codes
A10101 BM3 CustomROM - PI LPFP Pressure Below MIN Threshold
A20101 BM3 CustomROM - Flex Fuel Sensor Fault
A30101 REV2 Board Status - General Fault
A30201 REV2 Board Status - Injector Signal From DME To REV2 Not Detected
A30301 REV2 Board Status - PI Injectors General Fault
A30401 REV2 Board Status - FlexRay Message DME to REV2 Not Detected
A30501 REV2 FlexRay Message RX Timeout Exceeded
A30601 REV2 Board Status - CAM Sync Not Possible
A40101 BM3 CustomROM - PI Injector Duty Cycle Max Threshold Exceeded
A50101 BM3 CustomROM - Timing Correction Exceeded MAX Threshold
A60101 - A60108 BM3 CustomROM - DI Injector Cylinder 1 - 8 Fault Codes
A70101 - A70108 BM3 CustomROM - Ignition Coil Cylinder 1 - 8 Fault Codes
A80101 BM3 CustomROM - Coolant Pressure MAX Exceeded
A90101 BM3 CustomROM - Turbine Speed MAX Exceeded
AC0101 BM3 CustomROM - REV2 to DME IDC Feedback Delay Exceeded
Torque and Load Target Tables for Safety / Limp
For FIDs 1 and 2 that cut all boost by disabling the Electronic Wastegate and Mac Solenoid outputs we’ve added 2 additional tables for the DME to also in the same instant override the target Load and Torque values.
This was done to utilize the safety in the DME that closes Throttle Plate aggressively when load or torque (i.e. boost) are above target.
Now, not only do we have the ability to cut any PI or DI injector individually, any ignition coil, disable EWG as well as Mac Solenoid, and nitrous but also close throttle for safety in the instant any of the custom DTC codes is thrown which makes for ultimate integrated safeties of any flash tuning platform in existence today.
Engine RPM Threshold Before DTC Code Monitoring (MIN) table should be set to a value that has to be crossed for DTC safety/monitoring to become active.
Activation Delay Before DTC Code Monitoring is similar to the above and is used to avoid setting any custom codes during engine startup scenario where they wouldn’t apply.
In-Dash Knock Indicator
The overall approach to custom DTC codes started out with adding an in-dash knock indicator that would blink the CEL in case a configured ignition timing correction occurred on any cylinder.
In the above example we’ve set the value to -6 for Ignition Timing Correct (MAX) Before CEL and A50101 DTC code are thrown. Safety behaviour due to knock and this code being thrown can be configured as for any other DTC code.
Coolant Pressure Safety
Once a coolant pressure sensor is installed into the upper radiator hose you can configure one of the most critical safeties to keeping you from spraying coolant out of your coolant expansion tank and minimizing damage to motor from a lifting cylinder head and/or damaged head gasket.
Coolant expansion tank cap indicates a value of 200 on the S58, which stands for 200 kPa or 29psi relative (300kPa absolute, or 3000hPa absolute) which is the pressure relief valve setpoint. In the below example that’s what we used for the coolant pressure safety as well. Adjust as necessary when tuning.
Direct Injection Fuel Injector Failure Safety
In case any of the OEM DI fuel injectors fails, safety can be configured as for any other code. In this example for cylinder 1 you can see we’ve also set up limp mode to cut Nitrous, EWG, Mac Solenoid and Cylinder 1 Ignition Coil.
Port Injection Fuel Injector Failure Safety
In case any of the PI fuel injectors fails, safety can be configured as for any other code. In this example for cylinder 1 you can see we’ve also set up limp mode to cut Nitrous, EWG, Mac Solenoid and Cylinder 1 Ignition Coil.
Flex Fuel Sensor Fault Safety (FlexRay)
In case of a failure of a flex fuel sensor with a REV2 Board, this DTC code is triggered and safeties as an example are shown in the below FID table. CANBUS configuration is only used for the old flex fuel kit integration.
Ignition Coil Fault Safety
In case of any ignition coil failure, in the example below we’re setting the engine into limp mode by disabling EWG, Mac Solenoid and Nitrous outputs along with the Torque and Load Target overrides as described above.
Fuel Pressure (Differential) for Port Injection Safety
In case fuel pressure differential goes below the value set in the LPFP Min Differential Pressure table, this code will trigger safeties selected in its corresponding FIDs table. In this example we’ve set it to 40psi for Fuel Pressure Differential.
Global PI Safety Switch
By default this should be left at 1 to not allow boost to rise when PI is set up to spray. If PI tables are set up to spray at a given load vs. rpm or MAP vs RPM strategy, and Fuel Pressure Differential is still below the minimum set up in the LPFP Min Differential Pressure (PSI) table, boost will cut and not be allowed to go up. On a Mac Solenoid setup this will mean the boost will reach a max of wastegate pressure.
Turbo Over-speed Safety
For those with aftermarket turbos that provide for means of placing a speed sensor on the compressor cover, you can connect it to the TS input on the REV2 harness and configure it for speed and compressor blade count the sensor is exposed to and prevent any overspeed due to for example a boost leak or overly aggressive tuning pushing the turbo beyond manufacturer’s specifications.
In this example we’ve set the Turbo speed Threshold table to 150,000 rpm and compressor blade count to 7 to match the compressor blade count of the turbo on this car.
You can calibrate the sensor feedback using the MIN/MAX value and voltage tables accordingly.