V3 Function help

Hello! I’m new to the V3 software and I’m looking for a bit of help. I understand how the functions should work, but I’m having trouble getting started. When I double click on fn1 I get the popup with Name Output and Action, but I’m not sure where to find the Operator function window to setup the parameters. Maybe I just don’t understand fully how to use it yet. I am using a 1JZ ETCS-i throttle body and want to set up an output to where if there is no DBW error it engages the magnetic throttle plate clutch or invert it to say if there is a DBW error disengage the clutch. I would like to use the throttle body manually in limp mode like it was in the OEM application.

I am using 3.043 to create a base map for a car that was on V2 while also adding some new features to the car. Any help, comments or suggestions are appreciated. Thank you!

It should looks like this:

To add operator just click on … (3 dots)

Got it! Maybe that can be added to the help tab. I looked everywhere but didn’t think to double click on the three dots.

Would it be possible to change the V3 software to allow individual failures (in addition to overall CEL status) to be selected in the function channel drop down? That way if I have a unrelated sensor failure I don’t lose DBW.

I also commented on one of the V3 feedback threads about raising the max pressure on the coolant pressure calibration table. Not sure if you saw that but it would calm my OCD :crazy_face:

Thank you for your help!

One other thought. Could the software be changed so that when you add other sensors (coolant pressure, oil temp, etc.) they pop up in the CEL parameters window be able to report failure? Maybe they are listed but greyed out until assigned an input. Just an idea!

Improtant information: The function above will not work as I found the bug in bitwise AND operator. It is already fixed and will be released in next build.

For all sensors there is a separate status channel with the following states:

Unassigned" value=0
OK value=1
Short to ground value=2
Short to 5V value=3
CAN-BUS value=4

1 Like

Got it. Could you recommend any resources to learn about the operators? I would like to learn more about in what applications to use them and how to define the additional info required for some of them. For instance in the screenshot you posted I am not sure what determines why you would use this operator instead of a simple if gate or where 512 came from for the constant.

I’m sure I am taking up much of your time with my ignorance. Sorry for that. Thank you for the help!

This has gotten my curiosity

Is the ‘Check engine code’ channel a 12 bit value with the 10th digit being a DBW failure?
Seeing as there’s 11 possibilities for user assigned uses of the CEL light…

The bitwise function as I understand it (I am extrapolating from what Jadzwin posted) would allow the Function to look at the Check Engine code and only engage when the DBW failure has been detected.
If you simply put the function to change state when the CEL was active it would also put the throttle body into limp (as you stated in the next post)
The 512 comes from the binary for the Check Engine code channel, which the 10th digit happens to probably be DBW failure. So the function is only looking at the 10th or “512” binary bit.

Would love for confirmation but this is super interesting and I want to know where else this can be used in the V3 software as I was unable to find more information on this in the help file or forum search. Some parameters are 1,2,3,4 etc which makes me think the Check engine code might be a unique use case for the AND Bitwise operator

1 Like

Check engine code is a 16 bit number.
Each bit represent the particular code.

Biwise and performs AND operation betwen check engine log channel and constant.

As you figured out that allows to extract only DBW error from the check engine code.

Below there is bits assignement for each error:

“CLT” 0
“IAT” 1
“MAP” 2
“WBO” 3
"EGT1 " 4
"EGT2 " 5
“EGT ALARM” 6
“KNOCK” 7
“FF SENSOR” 8
“DBW” 9
“FPR” 10
“DIFF CTRL” 11
“DSG” 12
“EWG” 13
"OILP " 14

In the future there will be list of all bitfields in the help.

1 Like

So if I’m understanding this correctly, say I wanted oil pressure and EGT errors to affect this as well as DBW error it would look like this 0100001000110000 which converts to 16944? Just as an example for sake of concept.

Now back to triggering the CEL for a failure of a non traditional sensor like coolant pressure, oil temp or pre throttle boost. Would it look something like this?

Also trying to figure out how to set some alarms. How would I set up a function to flash the check engine light if there is an immediate problem like low oil pressure or high coolant temp? I see the flash operation but I’m not sure how to go about setting a limit.

According bitfileds and check engine you are right.
With sensor status it is a little bit different.
It is not a bitfield it is an enumeration. So you just use equal, greater, etc. operators.

Here is a list off all enums and operators and channels that use it. It will be also available in next build help:


Channel(s): Gear shift state
** Enumeration**

  • Disabled 0
  • Not active 1
  • Rejected - clutch engaged 2
  • Rejected - gearbox sensor error 3
  • Rejected - leaver sensor error 4
  • Rejected - low RPM 5
  • Rejected - downshift high RPM 6
  • Rejected - gear unknown 7
  • Rejected - gear neutral 8
  • Rejected - gear reverse 9
  • Rejected - VSS too low 10
  • Rejected - upshift tps too low 11
  • Rejected - downshift tps too high 12
  • Upshift - shift 13
  • Upshift - recovery 14
  • Downshift - shift 15
  • Downshift - recovery 16
  • Rearm 17


Channel(s): Paddle shift states
** Bitfield **

  • Preload 1
  • Solenoid up 2
  • Solenoid down 4
  • Performing upshift 8
  • Performing downshift 16


Channel(s): TC status
** Enumeration**

  • Disabled 0
  • Inactive - switch off 1
  • Inactive - below RPM 2
  • Inactive - below VSS 3
  • Inactive - gear shift 4
  • Inactive - ESP 5
  • Active - differential 6
  • Active - percent 7
  • Active - RPM based 8
  • Active - ESP 9


Channel(s): I.TC correction , Priority queue overflow , Real time autotune active , VTEC active , EMU Classic , Fuel Cut , Idle control active , Overdwell , Shift light , Nitrous Active , DBW characteristic 2 , F.ASE correction , F.Warmup correction , F.IAT user corr. , F.EGT correction , F.Custom correction 1 , F.BARO correction , F.FPR correction , F.Fuel temp. correction , F.ALS correction , DBW port out , F.LC correction , F.Decelerate correction , F.Accelerate correction , F.Fuel cut , F.Short term trim , F.Flat shift correction , F.Timer correction , I.Idle correction , I.KS correction , I.Custom correction 1 , I.LC correction , I.Soft rev limiter correction , I.Nitrous correction , F.Cycling idle correction , I.Custom correction 2 , I.Pit limit correction , I.Rolling LC correction , I.Ignition angle lock , I.ALS correction , I.Custom correction 3 , I.FS correction , I.Timer correction , Boost out of margin , CAM1 signal present , CAM2 signal present , AC Clutch , F.Custom correction 3 , F.Custom correction 2 , Cruise control engine start block , F. Lambda guard , I. Lambda guard , Boost lambda guard corr. , Gear unknown , Lambda guard active , Diff ctrl active , Diff ctrl oil pump active , F.Rev matching , I. Spark cut active , Brake pedal switch , Boost output disabled , WBO is calibrating , Wasted spark , Idle airflow custom corr. active , Paddle up , Paddle down , Clutch pedal switch , TC intervention , DSG clutch error , DSG fault , DSG torque reduction , DSG blip , DSG shift up , DSG shift down , I.DSG correction , F.DSG correction , Idle force open loop , EWP active , Cruise control is in margin , SOVERFLOW , Rev. match active , I.Ignition afterstart lock , Rev. match armed , DSG LC , CANBUS overload , I.Rev Matching , Forced low pass filter , CANBUS Rx buffer full , M32 active , Lambda is valid , F.Nitrous correction , DSG block engine start , N switch , I.User fn correction , User fn check engine flag , R switch , Performing downshift , Performing upshift , Data changing , Suspeneded by DBW target
** Enumeration**

  • NO 0
  • YES 1


Channel(s): Outputs test state , Pit limiter state , Fn 1 , Fn 2 , Fn 3 , Fn 4 , Fn 5 , Fn 6 , Fn 7 , Fn 8 , Fn 9 , Fn 10 , Fn 11 , Fn 12 , Coolant fan , Fuel pump state
** Enumeration**

  • Inactive 0
  • Active 1


Channel(s): INJ outputs
** Bitfield **

  • INJ 6 32
  • INJ 5 16
  • INJ 4 8
  • INJ 3 4
  • INJ 2 2
  • INJ 1 1


Channel(s): Trigger error
** Bitfield **

  • TOOTH OUT OF RANGE 1
  • UNEXPECTED MISSING TOOTH 2
  • CAM SYNC ERROR 4
  • CAM SYNC ERROR, TOOTH OUT OF RANGE 8
  • FALSE SEC TRIGGER, FILTERED 16
  • FALSE PRIM TRIGGER, FILTERED 32
  • FALSE CAM2 TRIGGER, FILTERED 64


Channel(s): ALS state
** Enumeration**

  • Disable 0
  • Not armed 1
  • Armed 2
  • Active 3
  • Exit 4
  • Inactive above CLT 5
  • Inactive below CLT 6
  • Inactive above EGT 7
  • Inactive below VSS 8


Channel(s): Check engine code
** Bitfield **

  • CLT 1
  • IAT 2
  • MAP 4
  • WBO 8
  • EGT1 16
  • EGT2 32
  • EGT ALARM 64
  • KNOCK 128
  • FF SENSOR 256
  • DBW 512
  • FPR 1024
  • DIFF CTRL 2048
  • DSG 4096
  • EWG 8192
  • OILP 16384


Channel(s): CANBUS State
** Enumeration**

  • BUS OK 0
  • MODULE DISCONNECTED 1
  • BUS ERROR 2


Channel(s): AUX otuputs
** Bitfield **

  • AUX 6 1
  • AUX 5 2
  • AUX 4 4
  • AUX 3 8
  • AUX 2 16
  • AUX 1 32


Channel(s): CLT status , IAT status , AC evap status , Pre IC temp. status , Diff. oil temp. status , Fuel temp. status , Gearbox oil temp. status , Power steering fluid temp. status , Engine oil pressure status , Fuel press. status , Engine oil temp. status , Diff. oil press. status , Coolant fluid press. status , Crankcase press. status , Post IC temp. status , Back press. status , AC press. status , MAP status , BARO status , Brake fluid temp. status , Cyl. head temp. 1 status , Ambient temp. status , Gearbox sensor status , Pre throttle boost sensor status , Cyl. head temp. 2 status , Gear lever load cell sensor status , EWG pos sensor status , Wastegate dome press. status , Nitrous pressure status
** Enumeration**

  • Unassigned 0
  • OK 1
  • Short to ground 2
  • Short to 5V 3
  • CAN-BUS 4


Channel(s): CAN Switch 1 , CAN Switch 2 , CAN Switch 3 , CAN Switch 4 , CAN Switch 5 , CAN Switch 6 , CAN Switch 7 , CAN Switch 8 , MUX switch 1 , MUX switch 2 , MUX switch 3 , Switch 1 , Switch 2 , Switch 3 , CAN Switch 9 , CAN Switch 10 , CAN Switch 11 , CAN Switch 12 , CAN Switch 13 , CAN Switch 14 , CAN Switch 15 , CAN Switch 16 , User switch 1 , User switch 2 , User switch 3 , User switch 4 , User switch 5 , User switch 6 , User switch 7 , User switch 8 , CAN Switch 17 , CAN Switch 18 , CAN Switch 19 , CAN Switch 20
** Enumeration**

  • ON 1
  • OFF 0


Channel(s): Latching SW1 , Latching SW2 , Latching SW3 , Latching SW4
** Enumeration**

  • LSW_A 0
  • LSW_B 1
  • LSW_C 2
  • LSW_D 3


Channel(s): Boost source
** Enumeration**

  • MAP 0
  • Pre throttle sensor 1


Channel(s): LC State
** Enumeration**

  • Inactive 0
  • Wait for activation 1
  • Active prestage 2
  • Active 3
  • Wait for exit 4
  • Exit 5


Channel(s): Trigger sync status
** Enumeration**

  • NOSYNC 0
  • SYNCHRONISING 1
  • SYNCHRONISED 2


Channel(s): ECU State
** Enumeration**

  • UNKNOWN 0
  • INACTIVE 1
  • CRANKING 2
  • AFTERSTART 3
  • RUNNING 4
  • DELAYED TURN OFF 5


Channel(s): Overrun status
** Enumeration**

  • Disabled 0
  • Inactive - conditions not met 1
  • Enter ignition ramp 2
  • Active 3
  • Exit ignition ramp 4
  • Blocked by idle 5
  • Blocked by ALS 6
  • Blocked by blip 7
  • Blocked by CC 8
  • Blocked by rev match 9
  • Blocked by DBW CAN control 10


Channel(s): Autotune rejection reason
** Enumeration**

  • Accepted 0
  • Rejected RPM 1
  • Rejected MAP 2
  • Rejected TPS 3
  • Rejected transient 4
  • Rejected overrun 5
  • Rejected fuel cut 6
  • Rejected spark cut 7
  • Rejected acc enrich 8
  • Rejected WBO 9


Channel(s): CAM2 input level , CAM1 input level
** Enumeration**

  • Low 0
  • High 1


Channel(s): DSG clutch
** Enumeration**

  • Engaged 1
  • Disengaged 0


Channel(s): DSG mode
** Enumeration**

  • UNKNOWN 0
  • P 2
  • R 3
  • N 4
  • D 5
  • S 6
  • M 7
  • TT_PL 8
  • TT_MI 9
  • FAULT 10


Channel(s): DSG emulated selector pos
** Enumeration**

  • P 0
  • R 1
  • N 2
  • D 3
  • S 4


Channel(s): Overrun tables index , VE table index , VVT CAM1 table index , VVT CAM2 table index
** Enumeration**

  • Table 1 0
  • Table 2 1


Channel(s): DBW Override
** Bitfield **

  • DC 1
  • TARGET 2


Channel(s): Engine protection code
** Bitfield **

  • CLT 1
  • EGT 2
  • FPRD 4
  • OILTL 8
  • OILTH 16
  • OVEB 32
  • STT 64
  • OILP 128


Channel(s): TPS main status , TPS check status , PPS main status , PPS check status
** Enumeration**

  • Unassigned 0
  • OK 1
  • Short to ground 2
  • Short to 5V 3
  • Check error 4


Channel(s): DBW Target source
** Enumeration**

  • Target table 0
  • Override 1
  • Idle 2
  • Idle blend 3
  • DSG blip 4
  • CAN control 5
  • Launch control 6
  • Cruise control 7
  • Rev limiter 8
  • Overrun 9
  • Flat shift 10
  • Rev matching 11
  • Pit limiter 12
  • ALS 13
  • Rolling start 14
  • Gear shift 15


Channel(s): Idle state
** Enumeration**

  • Inactive 0
  • Armed 1
  • Active 2
  • Cranking 3
  • DBW blend 4
  • Afterstart delay 5
  • Cycling idle 6
  • DC overriden 7


Channel(s): Cruise control state
** Enumeration**

  • Disabled 0
  • Inactive under vss 1
  • Inactive 2
  • Suspended 3
  • Active 4
  • Active with PID 5


Channel(s): VVT CAM1 status , VVT CAM 2 status
** Enumeration**

  • Disabled 0
  • Inactive - start delay 1
  • Inactive - below RPM 2
  • Inactive - below CLT 3
  • Active - DC override 4
  • Active 5


Channel(s): Fuel cut source 1
** Bitfield **

  • TC 1
  • Idle 2
  • LC 4
  • Rev limiter 8
  • Flat shift 16
  • Pit limiter 32
  • ALS 64
  • Rolling start 128
  • Gear shift 256
  • Overboost 512
  • Oil press. cut 1024
  • Stuck throttle 2048
  • Start / stop 4096
  • Overrun 8192
  • Overpressure 16384


Channel(s): Spark cut source
** Bitfield **

  • TC 1
  • Idle 2
  • LC 4
  • Rev limiter 8
  • Flat shift 16
  • Pit limiter 32
  • ALS 64
  • Rolling start 128
  • Gear shift 256
  • Overrun 512
  • Cycling idle 1024
  • DSG 2048


Channel(s): Knocking cylinders
** Bitfield **

  • CYL 1 1
  • CYL 2 2
  • CYL 3 4
  • CYL 4 8
  • CYL 5 16
  • CYL 6 32
  • CYL 7 64
  • CYL 8 128


Channel(s): Knock action status
** Enumeration**

  • Disabled 0
  • Inactive - conditions not met 1
  • Inactive - no knock 2
  • Active 3


Channel(s): Rev. limiter target source
** Enumeration**

  • None 0
  • CLT 1
  • IAT 2
  • Oil temp 3
  • Custom 4
  • Ethanol content 5
  • User function 6
  • CAN BUS 7
  • Fuel pressure prot. 8


Channel(s): Active rev. limiter
** Enumeration**

  • None 0
  • Limiter 1 1
  • Limiter 2 2
  • RPM fuel cut 3


Channel(s): Rolling start state
** Enumeration**

  • Inactive 0
  • Conditions not met 1
  • Active 2
  • Exit 3


Channel(s): FF status
** Enumeration**

  • Disabled 0
  • OK 1
  • Error 2


Channel(s): Gear lever action
** Enumeration**

  • No action 0
  • Up shift request 1
  • Down shift request 2
  • Error 3
  • Unassigned 4


Channel(s): Fuel cut source 2
** Bitfield **

  • Per inj. cut 1
  • Cycling idle 2
  • Cut over RPM 8


Channel(s): Paddle hold switches
** Bitfield **

  • Paddle up 1
  • Paddle down 2
  • N switch 4
  • R switch 8


Channel(s): Paddle shift status
** Enumeration**

  • OK 0
  • Rejected - RPM 1
  • Rejected - VSS 2
  • Rejected - clutch 3
  • Rejected - gear out of range 4
  • Rejected - gear unknown 5


Channel(s): DBW cal. tool state
** Enumeration**

  • Disable 0
  • TPS sensor dir 1
  • TPS return to limp 2
  • Find 10% 3
  • Pre find 90% 4
  • Find 90% 5
  • Find 85% 6
  • Return to limp 7
  • Find -30% 8
  • Find -80% 9
  • Find -75% 10
  • Write data to ECU 11
  • PID tuning 12


Channel(s): DBW HW state
** Bitfield **

  • Error no signal 1
  • Error wrong freq 2
  • DBW mode 4
4 Likes