BRZ CAM Activation

Basics

The BRZ is known for having cam position determination issues which prevents the VVT from activating or throw DTC’s that require the ECU to be replaced. When tuning a BRZ/GT86/FRS the first thing you will need to make sure is that the VVT activates as required so you can properly asses the changes made in your updated tune.

The basic steps to follow to make VVT activation much more straightforward are highlighted here and should follow something like this:

  1. Reprogram ECU

  2. Start engine

  3. Let engine idle for approx 45 seconds

  4. Drive car (on dyno is fine) at light load for approx 45 seconds to at least 40km/h (unsure of actual speed required but this seems to work for us).

  5. COAST DOWN TO A COMPLETE STOP

  6. Let idle, VVT should wake up within a few seconds.

That works on our car with CALID ZA1JA01G 100% of the time. If you don't do the drive-stop cycle you could be there for a long time. Below is a screenshot showing that parameter and how the VVT turns on after the drive-stop cycle. If this doesn’t work to initiate the VVT on the car then some further understanding is required.

The Detail

The BRZ uses a cam chain as opposed to a belt and this required Subaru to implement functions to account for changes in actual cam timing due to issues like chain and sprocket wear as well as other factors like block temperatures. To activate the cams it has to first make sure it can believe the cam pointion its measuring is correct (i.e hasn’t skipped a tooth or chain wear is acceptable). Once its happy that all operating conditions are correct and it can believe the cam angle measure it will release the cams and control the OCV duty (in closed loop) to hit the desired target. Below is the simplified list of functions for final VVT activation.

Cam activation is based on correct initialisation and learning and due to using a CAM chain as opposed to belt it appears that a series of checks with timers in a select sequence that must be successfully completed for the OCV valves to be allowed to operate. There appears to be a global activation check which must pass before it does individual checks to enable each cam on each bank individually. The process loosely follows the below path

  • Initial power up counters and DTC checks are completed and performed

  • Initial values for all of the flags are read and reset to values pre engine start

  • Cranking and Starting checks are completed and timers expire

  • Attempts Initial position verification and learning

  • temperature vehicle speeds and OCV control related check

  • VVT activation

  • Target is released and OCV base duty learning commences

The above list is heavily simplified and there are many paths to get each of the overview functions completed. The key holding point for CAM activation is that the initial learning has not / will not complete correctly because the CAM gears have skipped a tooth or have some other form of fault. These should be rectified before you try anything to force the CAMs to activate. there are TSB’s listed here for common malfunctions

https://ecutek.atlassian.net/wiki/spaces/SUPPORT/pages/12157018

The VVT learnt initial position can be logged using RaceROM parameters and if they are outside of the normal operating range, action should be taken to correct the error.

  • 10deg or more error for 1 tooth misalignment DTCs.

  • Intake cam angle is Less than 28°CA or more than 87°CA for one tooth misalignment

  • Exhaust cam angle is less than 58°CA or more than 117°CA for two teeth misalignment

Initial position verification and learning

The process which is currently suspected of causing the most issues is the cam initial position learning. This is performed when the cam sprockets are being held on the lock pin and the cam angle (home or centre position) is measured.

the basics for the initial position learning to start are

  • NO DTC’s present for fuel or intake system (probably more but further disassembly would be required to fully understand this)

  • the initial cam angle Is between

    • Exhaust 105 & 73

    • Intake 37 & 74

  • The new and old CAM learning error is inside the deadband threshold

  • The new value learning is completed and stored correctly

The process is represented as below.

If you have rectified a cam angle issue but the learned value error is now too large to allow new values to be learnt, you should be able to adjust the deadband values to allow the new repaired value to be learnt and committed to EEPROM, hopefully preventing the requirement for a replacement ECU.

CAM Activation process in detail

If you are having issues with cam activation process some more in-depth understanding of what stage of the process is failing may be required and appropriate actions taken. Firstly being able to log at which phase of the process the cam activation is being held at and on which cam its failing will be required. This can be done by logging the VVT inlet and Exhaust Modes to see what mode the cams are staying in. this will point you to what thresholds to adjust to speed up activation or if the manual overrides can be used to force the car to enable.

This plots below show what happens after start on a BRZ/GT86 when it enables the cams.

As you can see the temperature thresholds and timer values can be changed to try speed up activation or to make sure the CAMs can activate all together. The CAM modes ore described below

  • Mode 4 - is the cranking mode when it first detects engine position and see that the cams are locked at base position and RPM is stable

  • Mode 9 - Is the cam centre position learning mode, this is where is adjust the learnt cam centre angles to ensure the the cam angles its setting are correct. There are timers, rpm and temperature thresholds that are used depending how the learning process is proceeding.

  • Mode 2 - Is the mode is the OCV duty control check mode where it makes sure that duty input does change/maintain the cam angles before it releases the cams and enables target changes

  • Mode 1 - is normal operating mode of the cams, if a DTC is trigger and the camps become inactive the mode will change

  • Mode 3, 5, 6, 7 & 8 - Are DTC and failure modes if you see this mode the vehicle is in a mode that VVT is disabled in and you should check the logging and DTC’s on the ECU to try find the fault.

Manual Overrides

There are a few manual activation flags involved in the cam activation, some are global and some are cam or bank specific (thresholds can be bank or cam specific as well). these should be used if you have a car that has had an issue and its been fixed or you are trying to speed up the activation process during tuning, if left on and something changes (like a skipped tooth) engine damage may occur.

If you have one of these cars the best place to start is to

  • Set the “Cam Learning Global Learning Manual Switch” from 1 to 0 to skip the Cam center angle learning phases of CAM activation.

  • Set the “Cam Learning Global OCV duty Manual Switch” from 0 to 1 to skip the OCV learning checks

You may also have to set timers, and RPM thresholds to allow activation to complete, so if your idle target is quite high because of large Cam Profiles you should probably increase the HI thresholds for cam enable. Having a stable idle will also help with the CAM learning OCV driving Delta thresholds that are required to ensure CAM activation.

Logging

Logging is available on XXX version patches which are now available on EcuTek update, maps are defined in versions XXX of ProECU or later.

New CAM related 1D and 2D maps are listed here

Intake VVT target enable Min

target VVT angle needs to be below this to enable

Exhaust VVT target enable Min

target VVT angle needs to be below this to enable

Intake CAM Enable DTC check switch

Set to 0 to ignore DTC checks when check for cam activation

Cam Learning Global OCV duty Manual Switch 

Set value to 1 to disable check for Intake and exhaust Cam OCV learning flags

Exh CAM Enable DTC check switch

Set to 0 to ignore DTC checks when check for cam activation

Cam Learning Global Learning Manual Switch

Set value to 0 to disable check for Intake and exhaust Cam Global learning flags

Cam learning conditions Ok timer

Timer value for conditions check

Cam enable type 1 timer start

Count down to change timer mode for learning

Cam learning counter 1

time for learning to be attempted

Cam learning counter 2

time for learning to be attempted

Cam Enable RPM Stop Threshold Low

Below this the RPM intake cam can enable

Cam Enable RPM Start Threshold Low

Below this the RPM intake cam can enable

Cam Enable RPM Start Threshold HI

Above this RPM the cam will not enable

Cam Enable RPM Stop Threshold Hi

Below this RPM the cam can enable

Cam Enable RPM Stop Threshold 3

Below this RPM the cam can enable

Cam Enable RPM Start Threshold 3

Above this RPM the cam will not enable

Cam Enable RPM Start Threshold 2

Above this RPM the cam will not enable

Cam Enable RPM Stop Threshold 2

Below this RPM the cam can enable

Intake Cam Enable VSP Start Threshold Hi 2

Above this VSP the cam will not enable

Intake Cam Enable VSP Stop Threshold Hi 2

Below this VSP the cam can enable

Cam Enable type 1 ECT threshold

Coolant temperature threshold for type 1 learning

Cam Enable type 2 ECT threshold

Coolant temperature threshold for type 2 learning

Cam Enable type VSP Threshold

Vehicle speed threshold to start mode 2 CAM learning

Intake Cam Initial Angle learn Stop Error Hi

Upper Angle error limit threshold for Intake cam initial angle error for the learning timer to stop

Intake Cam Initial Angle learn Stop Error Low

Lower Angle error limit threshold for Intake cam initial angle error for the learning timer to stop

Intake Cam Initial Angle learn limits Low

Threshold below which CAM learning stops occurring

Intake Cam Initial Angle learn Limits Hi

Threshold above which CAM learning stops occurring

Intake Cam Initial Angle Error Limit Low

Lower Angle error limit threshold for intake cam initial angle error for the learning timer to start

Intake Cam Initial Angle Error Limit Hi

Upper Angle error limit threshold for Intake cam initial angle error for the learning timer to start

Exh Cam Initial Angle Learning Delta limit

Initial Angle delta (change rate) limit threshold for exhaust cam initial angle error for the learning timer to stop

Exh Cam Enable VSP Start Threshold Hi 2

Above this VSP the cam will not enable

Exh Cam Enable VSP Stop Threshold Hi 2

Below this VSP the cam can enable

Cam Enable VSP Start Threshold

Below this vehicle speed the Exhuast cam can enable

Cam Enable VSP Stop Threshold

Below this vehicle speed the Exhuast cam can enable

Exh Cam Initial Angle learn Stop Error Low

Lower Angle error limit threshold for exhaust cam initial angle error for the learning timer to stop

Exh Cam Initial Angle learn Stop Error Hi

Upper Angle error limit threshold for exhaust cam initial angle error for the learning timer to stop

Exh Cam Initial Angle learn limits Low

Threshold below which CAM learning stops occurring

Exh Cam Initial Angle learn Limits Hi

Threshold above which CAM learning stops occurring

Exh Cam Initial Angle Error Limit Low

Lower Angle error limit threshold for exhaust cam initial angle error for the learning timer to start

Exh Cam Initial Angle Error Limit Hi

Upper Angle error limit threshold for exhaust cam initial angle error for the learning timer to start

Cam enable RPM offset value

value added to the current RPM used in a validity check to see that the RPM signal is Ok, this should not need adjusting

Intake Cam Target Offset

Offset to cam angle targets

Intake OCV Duty Base mode 5

Base duty for OCV mode 5

CAM Enable AIT maximum Global

Global enable hi limit for activation

Cam Enable RPM hi Threshold

Below this RPM the cams can enable

Cam Enable RPM hi Threshold Hys

Hysteresis for RPM threhsold

Intake Cam Initial Angle Learning Delta limit

Initial Angle delta (change rate) limit threshold for Intake cam initial angle error for the learning timer to stop

Cam Enable Delta Threshold

If the CAM angle delta (change rate) is higher than this the Cams wont acctivate

OCV Base Duty delta hi threshold

Global threshold at which it believes there is a high rate of OCV base duty change

Intake OCV Duty Base Limit Hi (mode 1, 6)

Base duty High Limit for OCV mode 1 & 6

Intake OCV Duty Base Limit Low (mode  1, 6)

Base duty Low Limit for OCV mode 1 & 6

Intake OCV Duty Base mode 1, 2, 6, 8, 9

Base duty for OCV mode 1, 6, 8 & 9

Intake OCV Duty Base mode 2

Base duty for OCV mode 2

Intake OCV Duty Base mode 4

Base duty for OCV mode 4

Intake OCV Duty Base mode Default 2

Default (error mode) Base duty for OCV mode 2

Intake OCV Duty Base mode Default 1,3

Default (error mode) Base duty for OCV mode 1 & 3

Intake OCV Duty Base Limit Hi

Global Base duty limit for OCV

Intake OCV Duty Base Limit Low

Global Base duty Limit for OCV

Intake OCV Duty Base Limit Hi (mode 5)

Base duty High limit for OCV mode 5

Intake OCV Duty Base Limit Low (mode 5)

Base duty Low limit for OCV mode 5

Exhaust OCV Duty Base mode 5

Base duty for OCV mode 5

Exh OCV Duty Base smoothing factor

OCV duty base smoothing factor

Exh OCV Duty Base Failsafe

Failsafe OCV duty

Exhaust OCV Duty Base Hi Limit (mode  1, 6)

Base duty High Limit for OCV mode 1 & 6

Exhaust OCV Duty Base Low Limit (mode 1, 6)

Base duty Low Limit for OCV mode 1 & 6

Exhaust OCV Duty Base mode 1, 2, 6, 8, 9

Base duty for OCV mode 1, 6, 8 & 9

Exhaust OCV Duty Base mode 2

Base duty for OCV mode 2

Exhaust OCV Duty Base mode 4

Base duty for OCV mode 4

Exhaust OCV Duty Base mode Default 1,3

Default (error mode) Base duty for OCV mode 1 & 3

Exhaust OCV Duty Base mode Default 2

Default (error mode) Base duty for OCV mode 2

Exhaust OCV Duty Base mode Default 1

Default (error mode) Base duty for OCV mode 1

Exhaust OCV Duty Base Limit Hi

Global Base duty limit for OCV

Exhaust OCV Duty Base Limit Low

Global Base duty Limit for OCV

Exhaust OCV Duty Base Limit Hi (mode  5)

Base duty High limit for OCV mode 5

Exhaust OCV Duty Base Limit Low (mode 5)

Base duty Low limit for OCV mode 5

Exhaust OCV Duty Integral Correction Limit Low

Base duty for OCV mode 5

Exhaust OCV Duty Integral Correction Limit Hi

OCV duty base smoothing factor

Exhaust OCV enable Timer

Timer for Exhaust OCV enable

Cam Enable ECT threshold Global

Global can enable coolant temperature threshold

Cam Enable Time 1

believed to be the timer to exit mode 4 and go to mode 9

Cam Enable Time 2

believed to be the timer to exit mode 4 and go to mode 9

Intake OCV Integral Corr B1

Intake cam Integral correction base duty map

Intake OCV Integral Corr B2

Intake cam Integral correction base duty map

Intake OCV Duty Multiplier

Intake cam base duty correction map

OCV Duty OK timer

OCV error countdown timer

Intake OCV timer Duty Limit Hi

High duty limit to trigger the OCV error state

Intake OCV timer Duty Limit  Low

Low duty limit to trigger the OCV error state

Exhaust OCV timer Duty Limit Hi

High duty limit to trigger the OCV error state

Exhaust OCV timer Duty Limit Low

Low duty limit to trigger the OCV error state

Exhaust OCV Integral Corr Multiplier B1

Intake cam Integral correction multiplier map

Exhaust OCV Integral Corr Multiplier B2

Intake cam Integral correction multiplier map

Exhaust OCV Duty Multiplier

Exhaust cam base duty correction map

Intake Cam Enable RPM Threshold

RPM threshold for Intake CAM OCV enable

Intake OCV Integral Corr Adder

OCV Prop/integral Adder

Intake OCV Correction Temp Mult B1

OCV correction temperature Multiplier

Intake OCV Correction Temp Mult B2

OCV correction temperature Multiplier

Intake OCV Duty Battery Voltage corr

OCV correction battery voltage Multiplier

Exhaust Cam Enable RPM threshold

RPM threshold for Intake CAM OCV enable

Exhaust OCV Integral Corr Adder

OCV Prop/integral Adder

Exhaust OCV Correction Temp Mult B1

OCV correction temperature Multiplier

Exhaust OCV Correction Temp Mult B2

OCV correction temperature Multiplier

Exhaust OCV Duty Battery Voltage corr

OCV correction battery voltage Multiplier

 

New Cam related Logging parameters are listed here

VVT Exhaust OCV Base Duty Bank 1

OCV base duty for exhaust Bank 1

VVT Exhaust OCV Base Duty Bank 2

OCV base duty for exhaust Bank 2

VVT Intake OCV Base Duty Bank 1

OCV base duty for Intake Bank 1

VVT Intake OCV Base Duty Bank 2

OCV base duty for Intake Bank 2

VVT Exhaust Mode 

Current Exhaust Cam activation mode

VVT Inlet Mode

Current Intake Cam activation mode

VVT Exhaust enable 

Exhaust Cam Enable Flag

VVT Intake enable 

Intake Cam Enable Flag

VVT Intake Initial learnt value B2

Intake Cam centre angle Learnt value B2

VVT Intake Initial learnt value Offset B2

Intake Cam centre angle Learnt Offset value that is committed to EEPROM B2

VVT Intake Initial learnt value B1

Intake Cam centre angle Learnt value B

VVT Intake Initial learnt value Offset B1

Intake Cam centre angle Learnt Offset value that is committed to EEPROM B1

VVT Exhaust Initial learnt value B2

Exhaust Cam centre angle Learnt value B

VVT Exhaust Initial learnt value Offset B2

Exhaust Cam centre angle Learnt Offset value that is committed to EEPROM B1

VVT Exhaust Initial learnt value B1

Exhaust Cam centre angle Learnt value B

VVT Exhaust Initial learnt value Offset B1

Exhaust Cam centre angle Learnt Offset value that is committed to EEPROM B2

VVT Intake OCV Bank 1 Integral Mult

Intake OCV correction Bank 1

VVT Intake OCV Bank 1 Integral Adder

Intake OCV correction Bank 1

VVT Intake OCV Bank 1 corr final

Final Intake OCV correction Bank 1

VVT Exhaust OCV Bank 1 Integral Mult

Exhaust OCV correction Bank 1

VVT Exhaust OCV Bank 1 Integral Adder

Exhaust OCV correction Bank 1

VVT Exhaust OCV Bank 1 corr final

Final Exhaust OCV correction Bank 1

VVT Intake OCV Bank 2 Integral Mult

Intake OCV correction Bank 2

VVT Intake OCV Bank 2 Integral Adder

Intake OCV correction Bank 2

VVT Intake OCV Bank 2 corr final

Final Intake OCV correction Bank 2

VVT Exhaust OCV Bank 2 Integral Mult

Exhaust OCV correction Bank 2

VVT Exhaust OCV Bank 2 Integral Adder

Exhaust OCV correction Bank 2

VVT Exhaust OCV Bank 2 corr final

Final Exhaust OCV correction Bank 2