Integrated Safeties and Custom DTC codes - bootmod3 CustomROM V2

Integrated Safeties and Custom DTC codes - bootmod3 CustomROM V2

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.

image-20241207-231024.png

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 Exceeded

Approach 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:

image-20241207-233736.png
image-20241207-233832.png

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

image-20241207-232757.png

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.

image-20241208-001905.png

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.

image-20241208-001551.png

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.

image-20241208-004945.png

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.

image-20241208-005410.png
image-20241208-004248.png

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.

image-20241208-004408.png

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.

image-20241208-010512.png

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.

image-20241208-004536.png

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.

image-20241208-004747.png

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.

image-20241208-010238.png

 

image-20241208-005030.png

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.

image-20241208-005642.png

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.

image-20241208-010950.png

 

image-20241208-010811.png