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:
Reprogram ECU
Start engine
Let engine idle for approx 45 seconds
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).
COAST DOWN TO A COMPLETE STOP
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
BRZ/FRS/GT86 Technical Service Bulletins (TSB)
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 |
2017+ cars have a few new maps (likely with the introduction of the improved cam sensing structures) if difficulties are found switching on cam please contact support@ecutek.com and these new maps can be looked at.
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 |