G16E-GTS Tuning Guide

Introduction

The GR Yaris and GR Corolla utilise the G16E-GTS engine, which is Toyota’s Gazoo Racing Divisions Latest performance 3 cylinder engine. In standard format it produces from 260 - 300hp and 360 - 400Nm of torque depending on the model variant. There are many details regarding the engine and its specs/performance on websites such as https://toyota-club.net/files/faq/20-10-20_faq_g16-engine_en.htm.

The G16E-GTS engine is

  • 1.6L 3Cylinder

  • Dual VVT

  • Direct injection

  • Spark ignition engine

  • Turbocharged

  • 10.5:1 compression ratio

  • D-4ST Port injection (PI) & Direct injection (DI) system (similar to the GT86)

The Engine Control Unit is mounted in the engine bay and uses twin processors to detect and deliver engine sensor information, CAN bus and output comms to engine control components. The Vehicles use a standard Toyota gateway controller, which requires a bench-style unlock sequence (or a Gateway bypass loom) to allow OBD programming.

ROM compatibility & Recovery

ROMs from the Corolla are incompatible with the Yaris ECMs so cross-flashing will generally result in a bricked ECU. Different Models and different Region CAL IDs can be made but with caution as the GPF and NON-GPF models have significantly different code sections.

Recovery from a part programmed state is done by manually selecting the G16E-GTS ECU type and entering utility mode from the programming window. It will identify the ECM as part programmed and allow you to re-attempt to flash the correct ROM into the ECM.

OLS tune files that are derived from other tools cannot be directly used in ProECU, it has been found that some of these other files are placing custom data into sections of the ROM that cause ProECU programming to fail. A ROM import tool will be available for use if you have OLS-derived tunes that you would like to use.

Control Strategies

The G16E-GTS uses a combination of torque-based load determination and 4D & 5D mapping to set various targets and corrections for engine running conditions. At the moment we believe that the strategy employed is a torque-controlled ECU with modelled and actual values employed to improve control.

4D & 5D maps

It appears that the Toyota strategy uses 4D and 5D maps in some critical control functions e.g. Wastegate Duty control. A 4D map is a collection of data points that reference and interpolate between 4 independent axes. In ProECU, these are currently shown as separate 3D maps with a 4th Axis to show which 3D map is being used at which Axis point. We have called the 3D maps by the bin (axis point or collection of data for that calibrated point) in which the 4th axis is set too. For example, the WG duty 4D map uses RPM as the 4th axis, so each 3D map is for a different RPM point

5D maps follow a similar principle where a collection of 4D maps are used to represent one bin of a 5D map. See the example Below

4D and 5D map viewers will be improved at a later time to allow proper axis swapping to improve the speed of tuning.

To edit 4D and 5D maps, you simply adjust the values using the normal map editing shortcuts and hotkeys ( )

Dyno Mode

There is a method to disable the active traction control etc for use on a Dyno this is not required to complete a full pull on the dyno (traction control can be turned off manually) but it is sometimes a simpler way to make sure everything disabled properly when tuning. The method to enter dyno mode is

  1. Make sure ignition is on and handbrake is disengaged.

  2. Depress both brake & clutch

  3. Press Key on, and the engine will start

  4. Pull Hand Brake (E brake) and hold it engaged

  5. release and depress brake pedal twice (clutch still down)

  6. release and engage Hand Brake (E brake) twice

  7. release and depress brake pedal twice (clutch still down)

The lights on the dash should now show and traction etc is disabled. there are many Video’s like this https://www.youtube.com/watch?v=1apy_naVqbU which display the process. This does not disable the 4wd on our car but does disable the cruise and ABS activation.

Advice from experienced tuners running the car on 2WD dynos is to un-plug the 4 pin connector on the diff, then do the pedal dance, which goes as follows:

  1. Hand Brake (E brake) up, key on ignition on,

  2. Hand Brake (E brake) down, start the engine

  3. Press and release the brake pedal twice

  4. Pull and release the Hand Brake (E brake) twice

  5. Press and release the brake pedal twice again

Now it’s in FWD mode, you leave the Hand Brake (E brake) on just to be sure,

It has also been noted that after the g16E-GTS seems to have a lwoer power 1st pull however after the 1st pull every pull after makes the same power run after run, unless something changes (like knock retard or component protection etc).

Tuning Guide

Comparison of the different region and different power output ROMs from both GR Corolla and GR Yaris platforms highlights a number of maps that Toyota use to improve performance.

OBD Programming

With the release of RRv1 OBD programming and PhoneFlash through ECU connect are now available. To program through the OBD port please see the following Instruction

Gateway Bypass Programming Cable - How to Connect

Watch the video here. Note: this cable needs to be used everytime you program the vehicle.

Example ROM

During dyno testing and map adjustment were made on the EcuTek development car and we managed to increase the power by about 25hp with only simple map changes.

This included increase torque demand limits , the load limits and the boost target limits logged like below (tuned compared to stock). you can see a higher boost target and higher load achieved which is where the power was developed.

The map changes to achieve this increase in power were

Boost Target Limit (Proc 1)

Boost target Limit (Proc 2)

Intake Cam Angle Target

Lambda Target (Proc 1)

Lambda Target Component Protection (Proc 1)

Lambda Target EGT Thresh 2

Lambda Target EGT Thresh 3

Lambda Target Small (Proc 1)

Lambda Tgt EGT Threshold 1

Load Limit 2D

Load Limit 3D

Load Limit Fuel Pressure

Load Limiter Baro

Pedal Map B1

Pedal Map B2

Pedal Map B3

Pedal Map B4

Pedal Map Gear 1

Pedal Map Gear 2

Pedal Map Gear 3

Pedal Map Gear 4

Pedal Map Gear 5

Pedal Map Gear 6

RPM Threshold test 1

RPM Threshold test 2

RPM Threshold test 3

Torque Driver Request

Torque Limit

Torque Limit 5

Logging

Data Logging on G16E-GTS requires the use of an EVI-USB the older style cables will have a limited 2Hz logging speed). There are custom parameters added for logging and some of these parameters are received in groups but in general logging of the default list is around 15-17hz.

Diagnostic Trouble Codes (DTC’s)

The G16E-GTS control systems use unique way of DTC triggering which we do not yet understand. currently if you switch of a DTC code the entire function is switched. There are OLS tunes that reportedly have DTC’s disabled but from what we have seen the changes made do not match our understanding so would proceed with caution if you choose to use them.

Torque

This G16E-GTS control system seems to start in torque control and adjusting the pedal maps and lifting the torque limit map seems to required to keep the throttle from closing and to allow for increased load targets. With RaceROM v2 there is an additional limit added so that the OEM limits can be lifted and a per gear and RPM limit can be applied for each MS mode.

When setting up the ROM you will need to raise the OEM torqe requests and limits to allow the RaceROM target to take control.

Logging the torque requested and torque actual can be helpful to track what is happening. Torque starts from pedal demand maps which from our understanding take the normalized pedal value and use it to look up the torque demand maps.

Accel Pedal Linearization maps

 

The Accel Pedal scaling maps appear to be a simple in out ratio of the normalised position to the final pedal output, similar to other platforms these can be rescaled per gear and mode.

This could be used to give different driving characteristics in different modes.

Torque Request maps

 

The torque request maps use the accel pedal map input and turn it into an engine torque demand value,

this value is then processed by the torque limiters and load to torque maps

The Torque Target (WOP) map sets the maximum torque demand to be used in the torque to load maps,

this map is used above the WOT Pedal Map Swap threshold value

The torque value is then corrected by different maps and function to account for pressure and friction losses as well as current engine efficiencies (e.g. lambda etc). then turned into a load value using the Torque to Load maps so that an airflow value can be calculated

Load

Target and Actual load in the G16E-GTS ECU are both calculated using airflow conversion models which include cam angle and other corrections, when the target load is limited below the actual load the the end result is generally a throttle closure, this is required to control the actual load value, the boost target is effected by load limits as well but generally as the load limit is fed into the calculated boost target.

With RaceROM the Load Limit Source can be logged which will indicate which function is being used to control the load limit.

Hex Number for Limit type

Decimal Number for Limit Type

Load Limit Description

0x1

1

 Ignition Correction

0x2

2

 HPFP to high & Charge Air Temp

0x3

3

 DTC limits active (including a value for not DTC active)

0x5

5

 Over Boost limit DTC related 1-5

0x6

6

 Fuel Pump Failure

0x8

8

 Type 8 DTC limits

0x9

9

 EGT DTC active

0xB

11

 Unk DTC Limit 1 & 2

0xD

13

Torque Limit

0xE

14

 Cat Warm Up related

0x35

53

 Baro, ECT and AIT limit

0xC8

200

Torque to load output

Through various channels it looks like the Load to airflow conversion and the airflow to pressure conversion is done using a combination of 1D and 5D maps. At the moment the calculation is not well understood but in time more will be known. The key to tuning is lifting the amount of allowable load using the load limit maps.

At this present time there is a hardcoded load limit of 320 load which cannot be increased, to increase this 320 load limit patching will be required and this is schedule for future releases of RaceROM. The

Load Limiters

The Load limiters under the Limiters category will need to be raised to allow the conversion from load to boost to be uncapped and to use the boost target max maps to set your final boost target. It appears that it will pick the lowest value of the maps depending on the current running conditions.

 

 

which load limit map is used in exactly a which set of running conditions is usually shown in the Load limit source logging parameter, however, it appears to calculate all of the load limits and then use the lowest Load limit and apply that. It appears that the Load limit Throttle Airflow map generally gets applied at lower RPM running conditions

After which the Load/Boost Limit 3D through most of the run

or the load limiter Baro map (which can be Baro or Turbo inlet pressure) if its lower than the others.

Boost

Boost Target

The Boost target in the G16E-GTS is generated from the Torque target via the torque to load maps and the inverse Airflow and VE calculations to derive a pressure value that is used by the target, this allows the OEM strategies to apply limitations and different running modes to target to accommodate for various function, like limp modes power restrictions and cat warm up etc. In normal running modes, the boost target has a minimum allowed, a maximum allowed and then the PR target derived from load targets.

Note: These maps are all multiplied by turbo inlet pressure to generate an appropriate boost target from the PR target that the load airflow pressure model creates.

Boost target is capped by the Load\Boost Limit 3D or the Max Boost Target Map (2d or 3D depending on Yaris/Corolla) maps primarily but they are a cap so load targets will have to be high enough to target the ceiling set by these boost maps.

or the Max Boost Target,

The Minimum Boost Target map is also used but rarely comes into play, this map is also corrected for turbo inlet pressure

Boost Control (Wastegate control)

RaceROM Simplified Boost Control

Given the OEM control uses 4D maps and has limited Closed Loop feedback mechanisms can be difficult to calibrate the RaceROM boost control function can be enabled. This function overwrites all of the OEM WG decisions when in normal operating mode (WG duty Reason = 254).

From our testing the OEM solenoid appears to run at 300hz making it unsuitable for aftermarket valves. It is also a vacuum based system that is normally open and sharing the vacuum pump used for brake booster etc. the system can open or close the WG to any position at any operating point. This means it will respond differently to boost operated WG’s. 0% duty in full open, 100% duty is fully closed.

RR Simplified Boost Control Overview

Configuring RaceROM simplified Boost control

to use RaceROM boost control it will need to be enabled in the RaceROM special features map

If this box is disabled the OEM strategy will be used. You then need to make sure that you are achieving your desired boost target by adjusting the

  • Torque demand

  • Torque Limits

  • Torque to load conversion

  • Target Load Limits

  • Boost Target limits

When they are acceptable you can then start to calibrate the Base WG duty tables. if you wish to reduce the boost target down you can do this using MS mode boost target limit maps. The boost target is not overwritten just capped.

Wastegate Base for hi and Low TIP can be calibrated to suit what the turbo and exhaust set up require.

Blending between these two maps is done by the WG Blend - TIP map

Final WG base value = (WG Base HI TIP * ( 100 - WG blend TIP)) + (WG blend TIP x WG Base Low TIP)

There are compensations for EGT AIT and Gear available to help the base WG duty for successive runs or changes in environment.

Closed Loop Corrections

The closed loop corrections for simplified Boost control include a Proportional and Integral component which aid in improving the spool and keeping the boost on target. the Boost actual used to make correction can be smoothed to improve the overall control variance but it will slightly delay the response, to adjust the smoothed MAP use the WG boost actual smoothing map.

 

The Proportional component runs full time, and is an immediate term added to the WG duty to make corrections based on the current boost error. the default values are set to try increase duty at high errors to aid in spooling the turbo, these values will need adjusting to calibrate the system for your particular turbo setup.

The Integral component (a value that adds to itself over time) is intended to ensure the steady sate boost actual value meets the target, the integral step value is the value that is added to running total based on the boost error.

This map has 0’s at either end to prevent integral windup, there are also activation thresholds for Throttle RPM and boost actual to allow the integral to only be active when required. each of these values has their own hysteresis value.

 

The final integral value is also limited to limit any windup that might occur.

OEM Boost Control

The WG duty map is a 4D type map that uses mass airflow and boost target as the X and Y axis for the rpm specific bin (slice or layer of the full map).

As previously noted each bin (3d map layer) is related to an individual RPM point. the RPM breakpoints for these maps are set in the WG Duty Map - Z Axis Bins 2d map

so at 4400rpm the 3D map for that bin (bin 12) is being referenced

WG Duty PID control

The WG PID control on G16E-GTS appear to be quite slow to respond and most of the load / boost control is done using throttle closure. the maps that are responsible for PID control will be labelled up shortly and made visible in the software.

Ignition

Toyota Ignition lists the ignition Timing Controls as set in different modes, from what it appears it uses a bae timing map with two modes (OEM calibration has both of them with the same values) and an ignition advance map based on VVT angle positions (on or off). It also utilizes an optimum ignition map and MBT type maps picking the lowest of the sum of base + advance or the optimum/MBT maps.

Control Strategy

Description

Control Strategy

Description

Fixed advance characteristics

It is fixed at 5° BTDC while the engine is starting.

Basic advance characteristics

The most appropriate ignition timing is selected from a map based on the signals from a variety of sensors.

Compensation advance characteristics

  1. Warm engine advance

  2. Idle stabilization

  3. Knock compensation

The ignition timing is advanced or retarded depending on the signals from a variety of sensors.

When the engine coolant temperature is low, the ignition timing is advanced in accordance with driving conditions to enhance drivability.

If the idle speed drops, the ignition timing is advanced to stabilize the idle speed. If the idle speed increases, the ignition timing is retarded.

If knock occurs, the ignition timing is corrected based on the signal from the knock control sensor.

RR Ignition Control

With RaceROM v2 map switch mode specific base and advance maps have been added to the ROM allowin you to adjust the timing in each map switch mode to suite different octanes or power outputs.

There are maps for VVT on and VVT off

The OEM corrections and Optimum limits are still applied to these RaceROM maps

Optimum Ignition appears to be a 4D map with AFR as the 4th Axis

Temperature corrections are also made to both optimum and base + advance maps. there are correction for coolant temperature and Charge air temperature.

Ignition Timing Correction Coolant temp and RPM multiplier

Ignition Timing Correction Charge Air temp and RPM multiplier

there also appears to be a map for a seperate correction for overlap am angles when the engine is in scavenging modes. Ignition Correction for Overlap, this 4D maps add to the ignition timing value based on intake & exhaust CAM angles, RPM and load.

Ignition setpoints for torque control

There appear to be many torque calculation ignition maps, that use a base map combined with the Ignition efficiency maps to calculate how much actual torque is being generated, the maps should not need changing, if your torque estimation is out then these maps may need investigation.

OEM Control

At the moment we think that it uses Ignition timing Mode 1,2 A &B as the main target maps and applies corrections to these values.

the correction maps are employed by adding to the base maps

Knock Control

Toyota Describe the knock control system as using a full time feedback control system using the knock sensor to feed back into the target ignition timing.

The Final ignition timing amount determined by the presence or absence of knocking is calculated as below.


Ignition timing = Base timing value + Knock Correct Learn Value + Knock F/B Value + each compensation amount

Example: 21 deg(CA) = 10 deg(CA) + 14 deg(CA) - 3 deg(CA)

  • The Minimum Ignition timing value is determined by the Minimum Ignition and correction maps.

  • The knock correction learned value is calculated as shown below in order to keep Knock F/B Value as close to -3 deg(CA) as possible.

    • When Knock F/B Value is less than -4 deg(CA), Knock Correct Learn Value is slowly decreased.

    • When Knock F/B Value is higher than -2 deg(CA), Knock Correct Learn Value is slowly increased.

  • The base value is -3 deg(CA) and is adjusted based on the presence or absence of knocking. When there is no knocking, the value is increased, and when knocking is present, the value is decreased.

From what we have seen knock is logged as two variables,

  1. Knock Correction Learned Value parameter that is based around 24deg and increases and decreases based on general fuel quality. This seems to be a longer term value that is updated at a much slower rate (like the Subaru advance multiplier). It should not need to be changed but it is believed this value is responsible for limiting how far it can advance.

  1. Knock Correction Angle, which appears to be the instantaneous knock response from the sensor. The EcuTek dev car has always been based around -3deg and it counts up until it commits that increase into the Knock Correction Learned parameter, when it resets to -3deg and continues to measure knock sensor output and correct the ignition. tis value can be changed, if set to 0 it wont add ignition only ever remove it.

 

There are also many Minimum Ignition MBT Ignition, Ignition correction and compensation maps which will be defined in the future.

Fuel Target

The G16E-GTS Fuel target strategy has many modes called under many conditions. With RaceROM V2 it is possible to overwrite the Lambda target used when not in component protection modes. The key to tuning the AFR target is first understanding which fueling mode it is using when you are trying to adjust the value. To do this the Lambda Target Source (RaceROM) and Lambda Target (RaceROM).

The Lambda arget sources are still under disassembly but so far this is what has been discovered

Number for Fuel Target Type

Fuel Target Description

3

CAT Heating

4

Engine Off or Cranking

21

 

22

 

23

 

24

 

25

 

26

 

31

EGT Component Protection related

32

EGT Component Protection related

33

EGT Component Prot. (Component Prot. maps) using EGT estimate E

34

EGT Component Protection related

61

Idle Fuel Restart

62

Overrun Cat Cooling

123

 

124

Overrun Pre Cut Enrichment

126

 

127

 

141

 

152

Unk Purging possibly GPF

153

CAT Purging

154

Unk Purging possibly GPF

181

 

182

 

250

Normal Operating Point (and RaceROM)

RaceROM Lambda Target Maps

The MS Mode Lambda target maps are available when the fueling mode 250 is being used, this coincides to the mode used when its in normal operating conditions.

OEM Lambda Target Maps

When The ECU decides to target a lambda value away from 1 it will be shown in the Lambda Target Source (RaceROM) parameter, the first parameter to cause a change is usually the EGT exceeding the EGT thresholds after which it moves to the component protection maps which it seems to follow most of the time.

Lambda Target Mode 32 (0x20)

Lambda Target Mode 32 use the corrected output from EGT Estimate E which is then compared to the 2D maps Lambda Tgt EGT threshold 1.

If the EGT estimate E or EGT type 6 output is above the value in the map it will calculate the Lambda target using the following method.

the Mode 32 threshold and target maps for the correction factor are Lambda Target EGT correction Temp Target (mode 0x20) & Lambda Target EGT correction Temp Thres (mode 0x20)

Lambda Target Mode 33 (0x21)

This mode is Primarily for EGT component protection To get the lambda target to move away from 1 earlier you can reduce the EGT threshold 1D maps and it will go into component protection earlier.  

The Lambda Target Component protection map can be set to give a low enough target to decrease EGTs

More information on fuel target modes will be added on request.

Injection (Port and Direct)

Toyota have used a Direct injection 4-stroke petrol engine with Sequential multiport Fuel Injection (D-4S SFI). This system has both direct injectors and port injectors used for the fuel injection system. In order to fully maximize the effectiveness of the direct injection (cooling effect, jet stream use, air-fuel mixture form variance), a fuel injection is divided over multiple slots depending on a variety of running conditions.

Port to Direct injection split is split into two variables,

  1. An overall Injection mode (logs as Injection Mode, 0 = Port, 1= DI, 2 = PI and DI)

  2. A Combustion mode in which a set number of pulses can occur.

The choice of Injection mode and Combustion mode is set by a series of Choice maps that select which series of Split, Lambda adjustment and limitations are used.

Cam timing

Cam timing is variable on both intake and exhaust camshafts (dual VVT) there are many corrections for OCV control to help keep the actual cam angle on the target angle but so far during testing we have not seen much cam error.

To adjust the cam angle targets for intake use the Intake Cam Angle Target map

to adjust the Overlap Cam angle Target Angle the respective map.