<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://content.epicefi.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ogalic</id>
	<title>epicEFI Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://content.epicefi.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ogalic"/>
	<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php/Special:Contributions/Ogalic"/>
	<updated>2026-08-29T07:02:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Advanced&amp;diff=482</id>
		<title>Config:Advanced</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Advanced&amp;diff=482"/>
		<updated>2026-06-06T23:16:13Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:smLaunchControl --&amp;gt;&lt;br /&gt;
= Launch Control =&lt;br /&gt;
Two-step / launch control: holds a fixed RPM off the line by cutting fuel and/or retarding and cutting ignition, so the driver can hold the throttle flat and launch on release. Activation can be by clutch, button, speed and/or throttle, and a separate rolling-launch mode is provided for roll racing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:smLaunchControlWest --&amp;gt;&lt;br /&gt;
== Launch Control Settings ==&lt;br /&gt;
All launch activation and effect settings: how launch is armed and triggered (clutch, button, speed, TPS, or rolling-launch), the launch RPM and cut window, and what happens at the limit — ignition retard, ignition and/or fuel cut, and fuel trim.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchControlEnabled --&amp;gt;&lt;br /&gt;
==== Launch Control ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivationMode --&amp;gt;&lt;br /&gt;
==== Activation Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Launch Button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Down Switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Speed Based&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Brake Pedal&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;TPS based&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Up&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPin --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
Some cars have a switch to indicate that clutch pedal is all the way down&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPinMode --&amp;gt;&lt;br /&gt;
==== Clutch Down mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPin --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
Some vehicles have a switch to indicate that clutch pedal is all the way up&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPinMode --&amp;gt;&lt;br /&gt;
==== Clutch Up mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePin --&amp;gt;&lt;br /&gt;
==== Launch Button ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePinMode --&amp;gt;&lt;br /&gt;
==== Launch Button mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchRpm --&amp;gt;&lt;br /&gt;
==== Launch Full Cut RPM ====&lt;br /&gt;
A secondary Rev limit engaged by the driver to help launch the vehicle faster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchRpmWindow --&amp;gt;&lt;br /&gt;
==== Launch Window - start of cut(lRPM - window) ====&lt;br /&gt;
Starting Launch RPM window to activate (subtracts from Launch RPM)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePinRpmLock --&amp;gt;&lt;br /&gt;
==== Rolling Launch Button ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePinRpmLockMode --&amp;gt;&lt;br /&gt;
==== Rolling Launch Button mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:minRpmLockLaunch --&amp;gt;&lt;br /&gt;
==== Rolling Launch Min RPM ====&lt;br /&gt;
Min rpm at which rpm can be locked for launch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchRpmLockAdder --&amp;gt;&lt;br /&gt;
==== Rolling Launch RPM Lock Full Cut Adder(+/-) ====&lt;br /&gt;
Adder to launch rpm when button is held&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_tps_engage_above --&amp;gt;&lt;br /&gt;
==== TPS Engage Above ====&lt;br /&gt;
Engage TPS launch above&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_tps_disengage_below --&amp;gt;&lt;br /&gt;
==== TPS Disengage Below ====&lt;br /&gt;
Disengage TPS launch below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_tps_min_rpm --&amp;gt;&lt;br /&gt;
==== TPS Launch Min RPM ====&lt;br /&gt;
TPS min RPM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchSpeedThreshold --&amp;gt;&lt;br /&gt;
==== Speed Threshold ====&lt;br /&gt;
Launch disabled above this speed if setting is above zero&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_control_driver_intent_tps --&amp;gt;&lt;br /&gt;
==== Driver Intent / TPS ====&lt;br /&gt;
true = ETB pedal, false = TPS, fallback to TPS if no etb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchTpsThreshold --&amp;gt;&lt;br /&gt;
==== TPS Threshold (no launch below this) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableLaunchRetard --&amp;gt;&lt;br /&gt;
==== Use Ignition Retard ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchSmoothRetard --&amp;gt;&lt;br /&gt;
==== Smooth Retard Mode ====&lt;br /&gt;
Interpolates the Ignition Retard from 0 to 100% within the RPM Range&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchTimingRetard --&amp;gt;&lt;br /&gt;
==== Ignition Timing Final ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchFuelAdderPercent --&amp;gt;&lt;br /&gt;
==== Fuel Added (-100 to 100) % ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchSparkCutEnable --&amp;gt;&lt;br /&gt;
==== Ignition Cut ====&lt;br /&gt;
This is the Cut Mode normally used&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:initialIgnitionCutPercent --&amp;gt;&lt;br /&gt;
==== Initial Ignition Cut % ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:finalIgnitionCutPercentBeforeLaunch --&amp;gt;&lt;br /&gt;
==== Final Ignition Cut % Before launch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchFuelCutEnable --&amp;gt;&lt;br /&gt;
==== Fuel Cut ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:launch_control_stateDialog --&amp;gt;&lt;br /&gt;
== launch_control_state ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:antiLagDialog --&amp;gt;&lt;br /&gt;
= Anti-Lag ALS =&lt;br /&gt;
Anti-lag (ALS): keeps a turbo spooled off-throttle by retarding timing, adding fuel and holding the throttle/idle air open so combustion continues in the exhaust. Strongly stresses the turbo and exhaust — the MAP/TPS/RPM/CLT/EGT limits here end ALS on timeout or instantly to protect the hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:antiLagEnabled --&amp;gt;&lt;br /&gt;
==== AntiLag ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:antiLagActivationMode --&amp;gt;&lt;br /&gt;
==== Activation Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Switch Input&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Always Active&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSActivatePin --&amp;gt;&lt;br /&gt;
==== Switch Input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:als_switch_uses_timeout --&amp;gt;&lt;br /&gt;
==== Switch OFF uses timeout ====&lt;br /&gt;
ALS on/off switch uses timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSActivatePinMode --&amp;gt;&lt;br /&gt;
==== ALS Button mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxDuration --&amp;gt;&lt;br /&gt;
==== ALS timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinMap --&amp;gt;&lt;br /&gt;
==== Min MAP - Ends ALS after timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinTPS --&amp;gt;&lt;br /&gt;
==== Min TPS/PPS - Ends ALS after timeout ====&lt;br /&gt;
Min TPS/PPS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinRPM --&amp;gt;&lt;br /&gt;
==== Min RPM - Ends ALS after timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxMap --&amp;gt;&lt;br /&gt;
==== Max MAP - Ends ALS Instantly ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxTPS --&amp;gt;&lt;br /&gt;
==== Max TPS/PPS - Ends ALS Instantly ====&lt;br /&gt;
Max TPS/PPS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxRPM --&amp;gt;&lt;br /&gt;
==== Max RPM - Ends ALS Instantly ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinCLT --&amp;gt;&lt;br /&gt;
==== Min CLT - ALS Safety limit - no ALS below this ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxCLT --&amp;gt;&lt;br /&gt;
==== Max CLT - ALS Safety limit - no ALS above this ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:alsUseEgt --&amp;gt;&lt;br /&gt;
==== Use EGT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxEGT --&amp;gt;&lt;br /&gt;
==== Max EGT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSIdleAdd --&amp;gt;&lt;br /&gt;
==== Idle Air Add ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSEtbAdd --&amp;gt;&lt;br /&gt;
==== ETB Air Add ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:FuelAdderTableALS --&amp;gt;&lt;br /&gt;
== Fuel adjustment ==&lt;br /&gt;
3D table: Fuel adjustment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:IgnRetardTableALS --&amp;gt;&lt;br /&gt;
== Ignition adjustment ==&lt;br /&gt;
3D table: Ignition adjustment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:IgnSkipTableALS --&amp;gt;&lt;br /&gt;
== Ignition Skip ==&lt;br /&gt;
3D table: Ignition Skip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:EtbAirAddTableALS --&amp;gt;&lt;br /&gt;
== ETB Air Add ==&lt;br /&gt;
3D table: ETB Air Add.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Traction Control and Vehicle Speed --&amp;gt;&lt;br /&gt;
= Traction Control and Vehicle Speed =&lt;br /&gt;
Vehicle speed, gear detection and traction control. Configure the speed source (local sensor or CAN) and individual wheel-speed inputs, then traction control compares driven vs driven-wheel speed and reduces torque on slip — via ETB closing, ignition retard, and/or spark skip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensor --&amp;gt;&lt;br /&gt;
== Vehicle speed sensor ==&lt;br /&gt;
Where vehicle speed comes from and how it is scaled — a local speed sensor or the CAN bus — plus gear detection derived from speed and RPM.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensorAnalog --&amp;gt;&lt;br /&gt;
=== Speed sensor ===&lt;br /&gt;
Local (hardwired) vehicle speed sensor: input source and pin, signal filtering, and the calibration (pulses or wheel revs per km, gear ratio, tooth count) that converts pulses into road speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trac_vss_source --&amp;gt;&lt;br /&gt;
==== Source for speed sensor input ====&lt;br /&gt;
Source for Main VSS reference&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;VSS Sensor&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Trac Front&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Trac Rear&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Trac Front/Rear AVG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;GPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vehicleSpeedSensorInputPin --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal --&amp;gt;&lt;br /&gt;
==== Filter parameter ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssCalSpeed --&amp;gt;&lt;br /&gt;
==== Calibration Drive Speed ====&lt;br /&gt;
Drive this speed when calibrating VSS pulses per km&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssPulsePerKm --&amp;gt;&lt;br /&gt;
==== Pulses per KM ====&lt;br /&gt;
vss Pulses per KM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensorCan --&amp;gt;&lt;br /&gt;
=== CAN vehicle speed ===&lt;br /&gt;
Vehicle speed taken from the CAN bus instead of a local sensor — legacy CAN VSS types and scaling, or a custom CAN wheel-speed reading with tyre dimensions used to compute road speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableCanVss --&amp;gt;&lt;br /&gt;
==== Enable legacy CAN VSS ====&lt;br /&gt;
Read VSS from OEM CAN bus according to selected CAN vehicle configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssNbcType --&amp;gt;&lt;br /&gt;
==== CAN VSS type ====&lt;br /&gt;
* &#039;&#039;&#039;BMW_e46&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;W202&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BMW E8x/E9x MK60e5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Nissan 350&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Hyundai PB&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Honda Civic9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssScaling --&amp;gt;&lt;br /&gt;
==== CAN VSS scaling ====&lt;br /&gt;
Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS --&amp;gt;&lt;br /&gt;
==== Custom CAN Wheel speed reading enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssCalSpeed#1 --&amp;gt;&lt;br /&gt;
==== Target km/h ====&lt;br /&gt;
Drive this speed when calibrating VSS pulses per km&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tireSizeWidth --&amp;gt;&lt;br /&gt;
==== tire Width(mm) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tireSizeAspect --&amp;gt;&lt;br /&gt;
==== tire Aspect(%) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tireSizeRimDiameterInch --&amp;gt;&lt;br /&gt;
==== tire Rim Diameter (in) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gearDetection --&amp;gt;&lt;br /&gt;
=== Gear Detection ===&lt;br /&gt;
Detects the current gear by comparing engine RPM to road speed against each gear&#039;s ratio. Enter the final drive, forward gear count and per-gear ratios; the detected gear feeds boost-by-gear, traction control and other features.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm#1 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:finalGearRatio --&amp;gt;&lt;br /&gt;
==== Final drive ratio ====&lt;br /&gt;
Ratio between the wheels and your transmission output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:totalGearsCount --&amp;gt;&lt;br /&gt;
==== Forward gear count ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio1 --&amp;gt;&lt;br /&gt;
==== 1st gear ====&lt;br /&gt;
gearRatio 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio2 --&amp;gt;&lt;br /&gt;
==== 2nd gear ====&lt;br /&gt;
gearRatio 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio3 --&amp;gt;&lt;br /&gt;
==== 3rd gear ====&lt;br /&gt;
gearRatio 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio4 --&amp;gt;&lt;br /&gt;
==== 4th gear ====&lt;br /&gt;
gearRatio 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio5 --&amp;gt;&lt;br /&gt;
==== 5th gear ====&lt;br /&gt;
gearRatio 5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio6 --&amp;gt;&lt;br /&gt;
==== 6th gear ====&lt;br /&gt;
gearRatio 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio7 --&amp;gt;&lt;br /&gt;
==== 7th gear ====&lt;br /&gt;
gearRatio 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio8 --&amp;gt;&lt;br /&gt;
==== 8th gear ====&lt;br /&gt;
gearRatio 8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionControlInputs --&amp;gt;&lt;br /&gt;
== Local Wheel speed inputs ==&lt;br /&gt;
Individual hardwired wheel-speed sensor inputs (FL/FR/RL/RR), each with its own pin, tooth count, revs-per-km, gear ratio and filtering, used for slip-based traction control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS#1 --&amp;gt;&lt;br /&gt;
==== CAN Wheel speed reading enabled(overrides real inputs) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin1 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 1 (FL) ====&lt;br /&gt;
wheelSpeedSensorInputPin 1&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin2 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 2 (FR) ====&lt;br /&gt;
wheelSpeedSensorInputPin 2&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin3 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 3 (RL) ====&lt;br /&gt;
wheelSpeedSensorInputPin 3&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin4 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 4 (RR) ====&lt;br /&gt;
wheelSpeedSensorInputPin 4&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount1 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (FL) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount2 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (FR) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount3 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (RL) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount4 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (RR) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm1 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (FL) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm2 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (FR) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm3 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (RL) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm4 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (RR) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio1 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (FL) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio2 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (FR) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio3 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (RL) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio4 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (RR) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal1 --&amp;gt;&lt;br /&gt;
==== Filter parameter1 FL ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal2 --&amp;gt;&lt;br /&gt;
==== Filter parameter2 FR ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal3 --&amp;gt;&lt;br /&gt;
==== Filter parameter3 RL ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal4 --&amp;gt;&lt;br /&gt;
==== Filter parameter4 RR ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors1 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed FL ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors2 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed FR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors3 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed RL ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors4 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed RR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canWheelSpeeds --&amp;gt;&lt;br /&gt;
== CAN Wheel speed inputs ==&lt;br /&gt;
Individual wheel speeds (FL/FR/RL/RR) read from CAN messages — per-wheel CAN ID, bit length, start byte, endianness, factor and offset — as an alternative to hardwired wheel-speed sensors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS#2 --&amp;gt;&lt;br /&gt;
==== CAN Wheel speed reading enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssFLEnabled --&amp;gt;&lt;br /&gt;
==== Front left Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLCanId --&amp;gt;&lt;br /&gt;
==== Front left CAN ID(dec) ====&lt;br /&gt;
CAN ID of the front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLBitLength --&amp;gt;&lt;br /&gt;
==== Front left bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLStartByte --&amp;gt;&lt;br /&gt;
==== Front left start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLBitEndianness --&amp;gt;&lt;br /&gt;
==== Front left big endian ====&lt;br /&gt;
Endianness for Front left wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLFactor --&amp;gt;&lt;br /&gt;
==== Front left factor ====&lt;br /&gt;
Scale factor for front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLOffset --&amp;gt;&lt;br /&gt;
==== Front left offset ====&lt;br /&gt;
Offset for front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssFREnabled --&amp;gt;&lt;br /&gt;
==== Front right Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRCanId --&amp;gt;&lt;br /&gt;
==== Front right CAN ID(dec) ====&lt;br /&gt;
CAN ID of the front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRBitLength --&amp;gt;&lt;br /&gt;
==== Front right bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRStartByte --&amp;gt;&lt;br /&gt;
==== Front right start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRBitEndianness --&amp;gt;&lt;br /&gt;
==== Front right big endian ====&lt;br /&gt;
Endianness for Front right wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRFactor --&amp;gt;&lt;br /&gt;
==== Front right factor ====&lt;br /&gt;
Scale factor for front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFROffset --&amp;gt;&lt;br /&gt;
==== Front right offset ====&lt;br /&gt;
Offset for front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssRLEnabled --&amp;gt;&lt;br /&gt;
==== Rear left Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLCanId --&amp;gt;&lt;br /&gt;
==== Rear left CAN ID(dec) ====&lt;br /&gt;
CAN ID of the rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLBitLength --&amp;gt;&lt;br /&gt;
==== Rear left bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLStartByte --&amp;gt;&lt;br /&gt;
==== Rear left start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLBitEndianness --&amp;gt;&lt;br /&gt;
==== Rear left big endian ====&lt;br /&gt;
Endianness for Rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLFactor --&amp;gt;&lt;br /&gt;
==== Rear left factor ====&lt;br /&gt;
Scale factor for rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLOffset --&amp;gt;&lt;br /&gt;
==== Rear left offset ====&lt;br /&gt;
Offset for rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssRREnabled --&amp;gt;&lt;br /&gt;
==== Rear right Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRCanId --&amp;gt;&lt;br /&gt;
==== Rear right CAN ID(dec) ====&lt;br /&gt;
CAN ID of the rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRBitLength --&amp;gt;&lt;br /&gt;
==== Rear right bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRStartByte --&amp;gt;&lt;br /&gt;
==== Rear right start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRBitEndianness --&amp;gt;&lt;br /&gt;
==== Rear right big endian ====&lt;br /&gt;
Endianness for Rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRFactor --&amp;gt;&lt;br /&gt;
==== Rear right factor ====&lt;br /&gt;
Scale factor for rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRROffset --&amp;gt;&lt;br /&gt;
==== Rear right offset ====&lt;br /&gt;
Offset for rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionControlTracSettings --&amp;gt;&lt;br /&gt;
== Traction control settings ==&lt;br /&gt;
Core traction control: drivetrain layout, whether slip is calculated and intervention is enabled, the intervention methods (ETB close, ignition retard, spark skip), and the minimum RPM/MAP/TPS/speed below which it stays inactive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:drive_train_layout --&amp;gt;&lt;br /&gt;
==== Drivetrain layout ====&lt;br /&gt;
Drivetrain layout&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;RWD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;FWD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AWD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableSlipCalculations --&amp;gt;&lt;br /&gt;
==== Enable Slip and wheel speed calculations ====&lt;br /&gt;
Enable Slip value calculations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tractionControlEnabled --&amp;gt;&lt;br /&gt;
==== Traction control intervention enabled ====&lt;br /&gt;
Traction control intervention enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tcUseETB --&amp;gt;&lt;br /&gt;
==== Use ETB for trac ====&lt;br /&gt;
traction control uses ETB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tcUseSparkSkip --&amp;gt;&lt;br /&gt;
==== Use Spark Skip for trac ====&lt;br /&gt;
traction control uses spark skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tcUseIgnTiming --&amp;gt;&lt;br /&gt;
==== Use Ignition Timing retard for trac ====&lt;br /&gt;
traction control uses ignition timing retard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinRpm --&amp;gt;&lt;br /&gt;
==== Minimum RPM for traction control ====&lt;br /&gt;
Trac minimum RPM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinMap --&amp;gt;&lt;br /&gt;
==== Minimum MAP for traction control ====&lt;br /&gt;
Trac minimum MAP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinTps --&amp;gt;&lt;br /&gt;
==== Minimum TPS for traction control ====&lt;br /&gt;
Trac minimum TPS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinSpeed --&amp;gt;&lt;br /&gt;
==== Minimum speed for traction control ====&lt;br /&gt;
Trac minimum speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionControlCanBoxParams --&amp;gt;&lt;br /&gt;
== CAN box traction settings ==&lt;br /&gt;
Trim settings for an external CAN traction-control box: the driver-adjustable trim range, step size and preset trim levels.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrimMax --&amp;gt;&lt;br /&gt;
==== canBoxTracTrimMax  ====&lt;br /&gt;
Traction trim adjust max&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrimMin --&amp;gt;&lt;br /&gt;
==== canBoxTracTrimMin  ====&lt;br /&gt;
Traction trim adjust min&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrimStep --&amp;gt;&lt;br /&gt;
==== canBoxTracTrimStep ====&lt;br /&gt;
Traction trim adjustment step&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim1 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim1    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim2 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim2    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim3 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim3    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim4 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim4    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionEtbDialog --&amp;gt;&lt;br /&gt;
== Traction Control ETB ==&lt;br /&gt;
Throttle-reduction tables for traction control: how far the electronic throttle is closed on detected slip, split into left/right and front/rear tables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionEtbLeftRightTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Left/Right ETB drop ===&lt;br /&gt;
3D table: Traction Control Left/Right ETB drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionEtbFrontRearTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Front/Rear ETB drop ===&lt;br /&gt;
3D table: Traction Control Front/Rear ETB drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionTimingDialog --&amp;gt;&lt;br /&gt;
== Traction Control Timing Retard ==&lt;br /&gt;
Ignition-retard tables for traction control: degrees of timing pulled on detected slip, split into left/right and front/rear tables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionTimingLeftRightTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Left/Right Timing drop ===&lt;br /&gt;
3D table: Traction Control Left/Right Timing drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionTimingFrontRearTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Front/Rear Timing drop ===&lt;br /&gt;
3D table: Traction Control Front/Rear Timing drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionIgnitionSkipDialog --&amp;gt;&lt;br /&gt;
== Traction Control Spark Skip ==&lt;br /&gt;
Spark-skip tables for traction control: the proportion of ignition events skipped on detected slip, split into left/right and front/rear tables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionIgnitionSkipLeftRightTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Left/Right Skip Ignition ===&lt;br /&gt;
3D table: Traction Control Left/Right Skip Ignition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionIgnitionSkipFrontRearTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Front/Rear Skip Ignition ===&lt;br /&gt;
3D table: Traction Control Front/Rear Skip Ignition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:rotaryDialog --&amp;gt;&lt;br /&gt;
= Rotary =&lt;br /&gt;
Rotary (Wankel) engine support. Configures the trailing spark plugs, which fire shortly after the leading plugs in each rotor chamber. Set the trailing ignition output pins here; trailing spark timing relative to the leading plug is set on the [[Ignition]] page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableTrailingSparks --&amp;gt;&lt;br /&gt;
==== Enable Trailing Sparks ====&lt;br /&gt;
Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins1 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 1 ====&lt;br /&gt;
trailingCoilPins 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins2 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 2 ====&lt;br /&gt;
trailingCoilPins 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins3 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 3 ====&lt;br /&gt;
trailingCoilPins 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins4 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 4 ====&lt;br /&gt;
trailingCoilPins 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:trailingSparkTable --&amp;gt;&lt;br /&gt;
== Trailing spark ==&lt;br /&gt;
3D table: Trailing spark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Torque Control --&amp;gt;&lt;br /&gt;
= Torque Control =&lt;br /&gt;
Torque-reduction features, primarily flat-shift / shift-cut. On a shift request (button, clutch, or launch input) the ECU briefly retards or cuts ignition to unload the gearbox for a full-throttle upshift, then tapers torque back in. Load-cell sensors for a strain-gauge shift knob are also configured here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ShiftTorqueReductionDialog --&amp;gt;&lt;br /&gt;
== Shift Torque Reduction (Flat Shift) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:TorqueReductionActivationModeDialog --&amp;gt;&lt;br /&gt;
=== Activation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionEnabled --&amp;gt;&lt;br /&gt;
==== Enable Shift Torque Reduction ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionActivationMode --&amp;gt;&lt;br /&gt;
==== Activation Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Torque Reduction Button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Launch Button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Down Switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Up Switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Load Cell 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Load Cell 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Load Cell 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionActivationTemperature --&amp;gt;&lt;br /&gt;
==== Minimal CLT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:TorqueReductionButtonDialog --&amp;gt;&lt;br /&gt;
==== Torque Reduction Button ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTriggerPin --&amp;gt;&lt;br /&gt;
==== Torque Reduction Button ====&lt;br /&gt;
Pin that activates the reduction/cut for shifting. Sometimes shared with the Launch Control pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Torque Reduction Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:LaunchButtonDialog --&amp;gt;&lt;br /&gt;
==== Launch Button ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePin#1 --&amp;gt;&lt;br /&gt;
==== Launch Button ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ClutchDownDialog --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPin#1 --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
Some cars have a switch to indicate that clutch pedal is all the way down&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPinMode#1 --&amp;gt;&lt;br /&gt;
==== Clutch Down Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ClutchUpDialog --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPin#1 --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
Some vehicles have a switch to indicate that clutch pedal is all the way up&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPinMode#1 --&amp;gt;&lt;br /&gt;
==== Clutch Up Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:TorqueReductionSettings --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionArmingRpm --&amp;gt;&lt;br /&gt;
==== Torque Reduction Arming RPM ====&lt;br /&gt;
Since torque reduction pin is usually shared with launch control, most people have an RPM where behavior under that is Launch Control, over that is Flat Shift/Torque Reduction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionArmingApp --&amp;gt;&lt;br /&gt;
==== Torque Reduction Arming APP ====&lt;br /&gt;
Pedal position to realize that we need to reduce torque when the trigger pin is uuuh triggered&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTimingAdder --&amp;gt;&lt;br /&gt;
==== Timing Table is Adder ====&lt;br /&gt;
True = adder, False = absolute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:limitTorqueReductionTime --&amp;gt;&lt;br /&gt;
==== Limit Torque Reduction Time ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:limitTorqueRestoreTime --&amp;gt;&lt;br /&gt;
==== Taper time to restore torque (0-1200ms) ====&lt;br /&gt;
Time(ms) to restore torque (0-1200ms)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTimeXaxis --&amp;gt;&lt;br /&gt;
==== X axis torque reduction time ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionIgnitionRetardXaxis --&amp;gt;&lt;br /&gt;
==== X axis torque reduction ignition retard ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionCutXaxis --&amp;gt;&lt;br /&gt;
==== X axis torque reduction ignition cut ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:torqueReductionTimeTlb --&amp;gt;&lt;br /&gt;
=== Torque reduction time table ===&lt;br /&gt;
3D table: Torque reduction time table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:torqueReductionIgnitionRetardTlb --&amp;gt;&lt;br /&gt;
=== Torque reduction ignition retard table ===&lt;br /&gt;
3D table: Torque reduction ignition retard table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:torqueReductionIgnitionCutTlb --&amp;gt;&lt;br /&gt;
=== Torque reduction cut table ===&lt;br /&gt;
3D table: Torque reduction cut table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellDialog --&amp;gt;&lt;br /&gt;
== Load Cell Sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellRuntimeValues --&amp;gt;&lt;br /&gt;
=== Load Cell Runtime Values ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellDialogCenter --&amp;gt;&lt;br /&gt;
=== Load Cell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell1_adcChannel --&amp;gt;&lt;br /&gt;
==== Load Cell 1 ADC Channel ====&lt;br /&gt;
Load cell 1 ADC channel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell2_adcChannel --&amp;gt;&lt;br /&gt;
==== Load Cell 2 ADC Channel ====&lt;br /&gt;
Load cell 2 ADC channel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell3_adcChannel --&amp;gt;&lt;br /&gt;
==== Load Cell 3 ADC Channel ====&lt;br /&gt;
Load cell 3 ADC channel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell_low_pass_cutoff_hz --&amp;gt;&lt;br /&gt;
==== Load Cell Low Pass Cutoff Hz ====&lt;br /&gt;
Load cell low pass cutoff Hz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell1_min_value --&amp;gt;&lt;br /&gt;
==== Load Cell 1 Minimum Value ====&lt;br /&gt;
Load cell 1 minimum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell1_max_value --&amp;gt;&lt;br /&gt;
==== Load Cell 1 Maximum Value ====&lt;br /&gt;
Load cell 1 maximum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell2_min_value --&amp;gt;&lt;br /&gt;
==== Load Cell 2 Minimum Value ====&lt;br /&gt;
Load cell 2 minimum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell2_max_value --&amp;gt;&lt;br /&gt;
==== Load Cell 2 Maximum Value ====&lt;br /&gt;
Load cell 2 maximum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell3_min_value --&amp;gt;&lt;br /&gt;
==== Load Cell 3 Minimum Value ====&lt;br /&gt;
Load cell 3 minimum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell3_max_value --&amp;gt;&lt;br /&gt;
==== Load Cell 3 Maximum Value ====&lt;br /&gt;
Load cell 3 maximum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellGaugeDialogEast --&amp;gt;&lt;br /&gt;
=== Load Cell Gauge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlDialog --&amp;gt;&lt;br /&gt;
= Nitrous Control =&lt;br /&gt;
Nitrous oxide injection control. Drives a nitrous relay/solenoid once arming and activation conditions are met, with safety windows on speed, TPS, CLT, MAP, AFR and an RPM activation/deactivation window. Fuel enrichment and ignition retard are applied while active to keep the engine safe under the added oxygen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlEnabled --&amp;gt;&lt;br /&gt;
==== Nitrous Control ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlArmingMethodDialog --&amp;gt;&lt;br /&gt;
== Arming Method ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlArmingMethod --&amp;gt;&lt;br /&gt;
==== Arming Method ====&lt;br /&gt;
* &#039;&#039;&#039;Digital Switch Input&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlButtonDialog --&amp;gt;&lt;br /&gt;
=== Digital Switch Input ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlTriggerPin --&amp;gt;&lt;br /&gt;
==== Nitrous Control Button ====&lt;br /&gt;
Pin that activates nitrous control&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Nitrous Control Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlLuaGaugeDialog --&amp;gt;&lt;br /&gt;
=== Lua Gauge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousLuaGauge --&amp;gt;&lt;br /&gt;
==== Lua Gauge ====&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousLuaGaugeMeaning --&amp;gt;&lt;br /&gt;
==== Value Meaning ====&lt;br /&gt;
* &#039;&#039;&#039;Lower Bound&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Upper Bound&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousLuaGaugeArmingValue --&amp;gt;&lt;br /&gt;
==== Arming Value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlSettings --&amp;gt;&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousRelayPin --&amp;gt;&lt;br /&gt;
==== Nitrous Relay ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousRelayPinMode --&amp;gt;&lt;br /&gt;
==== Nitrous Relay Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMinimumVehicleSpeed --&amp;gt;&lt;br /&gt;
==== Minimum Vehicle Speed ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMinimumTps --&amp;gt;&lt;br /&gt;
==== Minimum TPS ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMinimumClt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMaximumMap --&amp;gt;&lt;br /&gt;
==== Maximum MAP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMaximumAfr --&amp;gt;&lt;br /&gt;
==== Maximum AFR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousActivationRpm --&amp;gt;&lt;br /&gt;
==== Activation RPM ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousDeactivationRpm --&amp;gt;&lt;br /&gt;
==== Dectivation RPM ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousDeactivationRpmWindow --&amp;gt;&lt;br /&gt;
==== Dectivation RPM Window ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousFuelAdderPercent --&amp;gt;&lt;br /&gt;
==== Fuel Adder ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousIgnitionRetard --&amp;gt;&lt;br /&gt;
==== Ignition Retard ====&lt;br /&gt;
Retard timing to remove from actual final timing (after all corrections) due to additional air.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:nitrous_control_stateDialog --&amp;gt;&lt;br /&gt;
== nitrous_control_state ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:VvlControlDialog --&amp;gt;&lt;br /&gt;
= Variable valve lift (VVL) =&lt;br /&gt;
Variable valve lift / switched-cam control (Honda VTEC, Toyota VVTL-i and similar). Switches a relay/solenoid to the high-lift cam profile once RPM and the safety conditions (TPS, CLT, MAP, AFR, oil pressure) are met, with hysteresis on the deactivation RPM. Fuel and ignition adders can be applied on the high-lift profile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlControlEnabled --&amp;gt;&lt;br /&gt;
==== VVL/Switched cam Control ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:VvlControlSettings --&amp;gt;&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlRelayPin --&amp;gt;&lt;br /&gt;
==== VVL Relay ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlRelayPinMode --&amp;gt;&lt;br /&gt;
==== VVL Relay Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlOverridePin --&amp;gt;&lt;br /&gt;
==== VVL Override On Pin ====&lt;br /&gt;
VVL override pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlOverridePinMode --&amp;gt;&lt;br /&gt;
==== VVL Override Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumTps --&amp;gt;&lt;br /&gt;
==== Minimum TPS ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumClt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_maximumMap --&amp;gt;&lt;br /&gt;
==== Maximum MAP (0 = always true) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumMap --&amp;gt;&lt;br /&gt;
==== Minimum MAP (0 = always true) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_maximumAfr --&amp;gt;&lt;br /&gt;
==== Maximum AFR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumOilPressure --&amp;gt;&lt;br /&gt;
==== Minimum Oil Pressure (kPa, 0 = always true) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_activationRpm --&amp;gt;&lt;br /&gt;
==== Activation RPM (-&amp;gt; ON) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_deactivationRpmWindow --&amp;gt;&lt;br /&gt;
==== Deactivation RPM Window (hysteresis) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_fuelAdderPercent --&amp;gt;&lt;br /&gt;
==== Fuel Adder ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_ignitionRetard --&amp;gt;&lt;br /&gt;
==== Ignition Retard ====&lt;br /&gt;
Retard timing to remove from actual final timing (after all corrections) due to additional air.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvl_controller_stateDialog --&amp;gt;&lt;br /&gt;
== vvl_controller_state ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Variable valve timing (VVT) --&amp;gt;&lt;br /&gt;
= Variable valve timing (VVT) =&lt;br /&gt;
Closed-loop variable valve timing (cam phasing). A PID per cam drives the VVT solenoids to hold the measured cam angle at the target from the intake/exhaust target tables. Supports up to four cams (intake/exhaust on two banks). Cam sensor inputs and offsets are configured on the [[Setup#Trigger|trigger]] page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog --&amp;gt;&lt;br /&gt;
== VVT outputs and PID ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog0 --&amp;gt;&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtActivationDelayMs --&amp;gt;&lt;br /&gt;
==== Activation Delay ====&lt;br /&gt;
We need to give engine time to build oil pressure without diverting it to VVT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtControlMinRpm --&amp;gt;&lt;br /&gt;
==== Do not control below RPM ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtControlMinClt --&amp;gt;&lt;br /&gt;
==== Do not control below CLT ====&lt;br /&gt;
Minimum coolant temperature to activate VVT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtOutputFrequency --&amp;gt;&lt;br /&gt;
==== VVT PWM frequency ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins1 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 1 intake ====&lt;br /&gt;
VVT output solenoid pin for this cam 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins2 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 1 exhaust ====&lt;br /&gt;
VVT output solenoid pin for this cam 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins3 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 2 intake ====&lt;br /&gt;
VVT output solenoid pin for this cam 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins4 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 2 exhaust ====&lt;br /&gt;
VVT output solenoid pin for this cam 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:invertVvtControlIntake --&amp;gt;&lt;br /&gt;
==== VVT solenoid intake cams control direction ====&lt;br /&gt;
If increased VVT duty cycle increases the indicated VVT angle, set this to &#039;advance&#039;. If it decreases, set this to &#039;retard&#039;. Most intake cams use &#039;advance&#039;, and most exhaust cams use &#039;retard&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;advance&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;retard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:invertVvtControlExhaust --&amp;gt;&lt;br /&gt;
==== VVT solenoid exhaust cams control direction ====&lt;br /&gt;
If increased VVT duty cycle increases the indicated VVT angle, set this to &#039;advance&#039;. If it decreases, set this to &#039;retard&#039;. Most intake cams use &#039;advance&#039;, and most exhaust cams use &#039;retard&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;advance&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;retard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog1 --&amp;gt;&lt;br /&gt;
=== Intake PID ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_offset --&amp;gt;&lt;br /&gt;
==== offset ====&lt;br /&gt;
Linear addition to PID logic&lt;br /&gt;
Also known as feedforward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_pFactor --&amp;gt;&lt;br /&gt;
==== P factor ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_iFactor --&amp;gt;&lt;br /&gt;
==== I factor ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_dFactor --&amp;gt;&lt;br /&gt;
==== D factor ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMin1 --&amp;gt;&lt;br /&gt;
==== iTerm min ====&lt;br /&gt;
vvtItermMin 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMax2 --&amp;gt;&lt;br /&gt;
==== iTerm max ====&lt;br /&gt;
vvtItermMax 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog2 --&amp;gt;&lt;br /&gt;
=== Exhaust PID ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_offset --&amp;gt;&lt;br /&gt;
==== offset ====&lt;br /&gt;
Linear addition to PID logic&lt;br /&gt;
Also known as feedforward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_pFactor --&amp;gt;&lt;br /&gt;
==== P factor ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_iFactor --&amp;gt;&lt;br /&gt;
==== I factor ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_dFactor --&amp;gt;&lt;br /&gt;
==== D factor ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMin2 --&amp;gt;&lt;br /&gt;
==== iTerm min ====&lt;br /&gt;
vvtItermMin 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMax2#1 --&amp;gt;&lt;br /&gt;
==== iTerm max ====&lt;br /&gt;
vvtItermMax 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtTable1Tbl --&amp;gt;&lt;br /&gt;
== VVT intake target ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtTable2Tbl --&amp;gt;&lt;br /&gt;
== VVT exhaust target ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:timebasedDialog --&amp;gt;&lt;br /&gt;
= Timebased =&lt;br /&gt;
Time-based corrections: after a trigger (typically launch release), a set of corrections is ramped in over elapsed time — ETB limit, boost multiplier, ignition adder, closed-loop boost multiplier, lambda adder, RPM limit, and driving/driven speed limits. Each correction has its own enable pin and time curve, letting you build a timed power-delivery / drag strategy off the line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:time_based_corrections --&amp;gt;&lt;br /&gt;
==== Enabled time based corrections ====&lt;br /&gt;
Enabled time based corrections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_etb_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased ETB limit Launch Release Start ====&lt;br /&gt;
Timebased ETB limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_bst_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased boost multiplier Launch Release Start ====&lt;br /&gt;
Timebased boost multiplier start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_ign_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased ignition adder Launch Release Start ====&lt;br /&gt;
Timebased ignition adder start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_cl_bst_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased Closed Loop boost multiplier Launch Release Start ====&lt;br /&gt;
Timebased Closed Loop boost multiplier start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_lambda_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased lambda adder Launch Release Start ====&lt;br /&gt;
Timebased lambda adder start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_rpm_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased RPM limit Launch Release Start ====&lt;br /&gt;
Timebased RPM limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMHardLimitHysteresis --&amp;gt;&lt;br /&gt;
==== Timebased RPM hard limit hysteresis while time-based corrections are active ====&lt;br /&gt;
Hard limit hysteresis while time-based corrections are active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMRotationalWindow --&amp;gt;&lt;br /&gt;
==== Timebased RPM rotational window while time-based corrections are active ====&lt;br /&gt;
Rotational window while time-based corrections are active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_driving_speed_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased driving speed limit Launch Release Start ====&lt;br /&gt;
Timebased driving speed limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_driven_speed_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased driven speed limit Launch Release Start ====&lt;br /&gt;
Timebased driven speed limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedSpeedRotationalWindow --&amp;gt;&lt;br /&gt;
==== Speed limit rotational window (km/h) ====&lt;br /&gt;
Speed limit rotational window. Skip ramps up starting this many km/h below the speed limit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedSpeedEnableSkip --&amp;gt;&lt;br /&gt;
==== Speed Limit enable ignition skip ====&lt;br /&gt;
Enable ignition skip for timebased speed limit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedSpeedEtbCloseMax --&amp;gt;&lt;br /&gt;
==== Speed limit max ETB close (%) ====&lt;br /&gt;
Timebased speed limit max ETB close. At limit speed, throttle is reduced by this many percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedEtbLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased ETB limit pin ====&lt;br /&gt;
Timebased ETB limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedEtbLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased ETB limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedBoostMultiplierPin --&amp;gt;&lt;br /&gt;
==== Timebased boost multiplier pin ====&lt;br /&gt;
Timebased boost multiplier pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedBoostMultiplierPinMode --&amp;gt;&lt;br /&gt;
==== Timebased boost multiplier pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedIgnitionAdderPin --&amp;gt;&lt;br /&gt;
==== Timebased ignition adder pin ====&lt;br /&gt;
Timebased ignition adder pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedIgnitionAdderPinMode --&amp;gt;&lt;br /&gt;
==== Timebased ignition adder pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedCLBoostMultiplierPin --&amp;gt;&lt;br /&gt;
==== Timebased Closed Loop boost multiplier pin ====&lt;br /&gt;
Timebased Closed Loop boost multiplier pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedCLBoostMultiplierPinMode --&amp;gt;&lt;br /&gt;
==== Timebased Closed Loop boost multiplier pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedLambdaAdderPin --&amp;gt;&lt;br /&gt;
==== Timebased lambda adder pin ====&lt;br /&gt;
Timebased lambda adder pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedLambdaAdderPinMode --&amp;gt;&lt;br /&gt;
==== Timebased lambda adder pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased RPM limit pin ====&lt;br /&gt;
Timebased RPM limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased RPM limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivingSpeedLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased driving speed limit pin ====&lt;br /&gt;
Timebased driving speed limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivingSpeedLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased driving speed limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivenSpeedLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased driven speed limit pin ====&lt;br /&gt;
Timebased driven speed limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivenSpeedLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased driven speed limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedEtbLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased ETB limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: ETB Limit (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedBoostMultiplierCurve --&amp;gt;&lt;br /&gt;
== Timebased boost multiplier ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Boost Multiplier (0 to 2.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedIgnitionAdderCurve --&amp;gt;&lt;br /&gt;
== Timebased ignition adder ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Degrees Added (-25 to 25).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedCLBoostMultiplierCurve --&amp;gt;&lt;br /&gt;
== Timebased Closed Loop boost multiplier ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Boost Multiplier (0 to 2.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedLambdaAdderCurve --&amp;gt;&lt;br /&gt;
== Timebased Lambda Target Adder ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Lambda Target Adder (0.6 to 1.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedRPMLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased RPM limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: RPM Limit (0 to 30000).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedDrivingSpeedLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased driving speed limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Driving Speed Limit (0 to 120).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedDrivenSpeedLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased driven speed limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Driven Speed Limit (0 to 120).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Boost Control --&amp;gt;&lt;br /&gt;
= Boost Control =&lt;br /&gt;
Turbo/supercharger boost control. Drives a wastegate or boost-control solenoid in open loop (base duty table) and/or closed loop (PID toward a target table), with overboost cut protection. Open- and closed-loop values can be trimmed by gear, CLT and IAT, and a table-switch input allows a second set of tables (e.g. low/high boost).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostDialog --&amp;gt;&lt;br /&gt;
== Boost control options ==&lt;br /&gt;
Master boost settings: enable and control mode (open and/or closed loop), the wastegate/solenoid output(s) and PWM frequency, overboost-cut protection (including the feather and table-switch variants), and the RPM/TPS/MAP thresholds below which boost control is disabled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isBoostControlEnabled --&amp;gt;&lt;br /&gt;
==== Boost Control Enable ====&lt;br /&gt;
Boost Control Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlSwitchPin --&amp;gt;&lt;br /&gt;
==== Boost control enable switch ====&lt;br /&gt;
Boost control switch&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlSwitchPinMode --&amp;gt;&lt;br /&gt;
==== Boost control enable switch mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostType --&amp;gt;&lt;br /&gt;
==== Control Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Open Loop&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Open + Closed Loop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlPin --&amp;gt;&lt;br /&gt;
==== Boost Output ====&lt;br /&gt;
Wastegate control Solenoid, set to &#039;NONE&#039; if you are using DC wastegate&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlPinMode --&amp;gt;&lt;br /&gt;
==== Boost Output Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowerWastegatePin --&amp;gt;&lt;br /&gt;
==== Lower WG Output (Advanced) ====&lt;br /&gt;
Lower wastegate solenoid output. Select a pin to enable lower wastegate control. This is used to independently control the lower wastegate port of the wastegate while&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowerWastegatePinMode --&amp;gt;&lt;br /&gt;
==== Lower WG Output Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlSafeDutyCycle --&amp;gt;&lt;br /&gt;
==== Safe duty cycle ====&lt;br /&gt;
Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:closedLoopMargin --&amp;gt;&lt;br /&gt;
==== Closed-loop margin ====&lt;br /&gt;
Closed-loop is disabled when manifold pressure is below (target - this margin). Open-loop table is used and PID is reset.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:closedLoopMarginHysteresis --&amp;gt;&lt;br /&gt;
==== Closed-loop margin hysteresis ====&lt;br /&gt;
Additional buffer to prevent re-entering closed-loop immediately after dropping below the margin. Helps avoid oscillation near the threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableConstantBoostDcIfBelowMargin --&amp;gt;&lt;br /&gt;
==== Enable constant duty cycle if MAP below margin ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostDcIfBelowMargin --&amp;gt;&lt;br /&gt;
==== Duty cycle if MAP below margin ====&lt;br /&gt;
Duty cycle to use if MAP is below closed-loop margin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure --&amp;gt;&lt;br /&gt;
==== Boost cut pressure (hard cut) ====&lt;br /&gt;
Specifies the boost pressure allowed before triggering a cut. Setting this to 0 will DISABLE overboost cut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressureHyst --&amp;gt;&lt;br /&gt;
==== Boost cut pressure hysteresis (hard cut) ====&lt;br /&gt;
Defines a pressure range below the cut limit at which boost can resume, providing smoother control over boost cut actions.&lt;br /&gt;
For example: if hard cut is 240kpa, and boost cut hysteresis is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overboostCutSparkInstead --&amp;gt;&lt;br /&gt;
==== Boost cut - cut spark instead of fuel  ====&lt;br /&gt;
Cut spark instead of fuel for overboost - this is probably less gentle on the engine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overboostCutBoth --&amp;gt;&lt;br /&gt;
==== Boost cut - cut fuel AND spark ====&lt;br /&gt;
Cut fuel AND spark for overboost&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overboostSparkDropFeather --&amp;gt;&lt;br /&gt;
==== Boost cut - use feather overboost limit ====&lt;br /&gt;
Use feather overboost limit. Ignition is dropped randomly from cylinders starting from feather all the way to hard overboost cut&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressureFeather --&amp;gt;&lt;br /&gt;
==== Boost cut - feather value in kPa ====&lt;br /&gt;
Specifies the boost pressure at which we start dropping spark&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostUsePWMLimiterLowerWg --&amp;gt;&lt;br /&gt;
==== Lower WG Output PW Limiter like boost ====&lt;br /&gt;
Apply same by gear PW limiter to lower wastegate valve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlMinRpm --&amp;gt;&lt;br /&gt;
==== No boost control below RPM ====&lt;br /&gt;
Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlMinTps --&amp;gt;&lt;br /&gt;
==== No boost control below TPS ====&lt;br /&gt;
Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlMinMap --&amp;gt;&lt;br /&gt;
==== No boost control below MAP ====&lt;br /&gt;
Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSpooledCurve --&amp;gt;&lt;br /&gt;
==== Use SPOOLED curve ====&lt;br /&gt;
Boost Control uses SPOOLED curve, 100% boost under KAP by RPM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostSpooledApplyToLowerWg --&amp;gt;&lt;br /&gt;
==== Use SPOOLED curve for lower WG Output ====&lt;br /&gt;
Ouptut 100% to lower wastegate solenoid below SPOOLED value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure2 --&amp;gt;&lt;br /&gt;
==== Boost cut pressure (hard cut) - table switch ====&lt;br /&gt;
Specifies the boost pressure for table switch2 (open or closed boost) allowed before triggering a cut. Setting this to 0 will fall back to primary boost cut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure2Hyst --&amp;gt;&lt;br /&gt;
==== Boost cut pressure hysteresis (hard cut) - table switch ====&lt;br /&gt;
Defines a pressure range below the cut limit at which boost can resume, providing smoother control over boost cut actions.&lt;br /&gt;
For example: if hard cut is 240kpa, and boost cut hysteresis is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure2Feather --&amp;gt;&lt;br /&gt;
==== Boost cut pressure feather (hard cut) - table switch ====&lt;br /&gt;
Specifies the boost pressure at which we start dropping spark&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostSolenoidTestDuty --&amp;gt;&lt;br /&gt;
==== Solenoid Test Duty Cycle ====&lt;br /&gt;
Duty cycle for boost solenoid output test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop base duty cycle ==&lt;br /&gt;
Open-loop wastegate duty table — the feed-forward solenoid duty versus the selected axes. This is the base from which the gear/CLT/IAT trims and any closed-loop correction are applied.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopYAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostTableTbl --&amp;gt;&lt;br /&gt;
=== Boost control duty cycle (open loop) ===&lt;br /&gt;
3D table: Boost control duty cycle (open loop).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopDialog --&amp;gt;&lt;br /&gt;
== Boost control target ==&lt;br /&gt;
Closed-loop boost target (kPa) versus the selected axes. The PID drives the wastegate to hold this target.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopYAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedTbl --&amp;gt;&lt;br /&gt;
=== Boost control target / Closed Loop (kPa) ===&lt;br /&gt;
3D table: Boost control target / Closed Loop (kPa).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidDialog --&amp;gt;&lt;br /&gt;
== Boost control PID ==&lt;br /&gt;
Closed-loop boost PID gains and output limits. Enable &#039;Use PID tables&#039; to switch from these fixed gains to the RPM-based [[Advanced#Boost PID tables|P/I/D tables]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_pFactor --&amp;gt;&lt;br /&gt;
==== P Gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_iFactor --&amp;gt;&lt;br /&gt;
==== I Gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_dFactor --&amp;gt;&lt;br /&gt;
==== D Gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBoostPidTables --&amp;gt;&lt;br /&gt;
==== Use PID tables ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_minValue --&amp;gt;&lt;br /&gt;
==== Min adjustment ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max adjustment ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spooledCurve --&amp;gt;&lt;br /&gt;
== SPOOLED curve ==&lt;br /&gt;
Spool-assist duty versus RPM: extra open-loop wastegate duty held until boost comes up, to help the turbo spool. Enabled by &#039;Use SPOOLED curve&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:lowerWgTableTbl --&amp;gt;&lt;br /&gt;
== Lower wastegate duty (open loop) ==&lt;br /&gt;
Open-loop duty table for the lower (second) wastegate output, used on dual-port or twin-wastegate setups driven from the &#039;Lower WG Output&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopGearAdderDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop PW ADDER by gear ==&lt;br /&gt;
Per-gear trim (gear x) added to the open-loop wastegate duty — use it to run less or more duty in specific gears. Requires [[Advanced#Traction Control and Vehicle Speed|gear detection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopGearAdderCurve --&amp;gt;&lt;br /&gt;
=== Boost Open Loop gear-based Adder ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: duty cycle adder (-100 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopGearMultiplierDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop PW MULTIPLIER by gear ==&lt;br /&gt;
Per-gear multiplier (gear x) applied to the open-loop wastegate duty — scales duty up or down by gear. Requires [[Advanced#Traction Control and Vehicle Speed|gear detection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopGearMultiplierCurve --&amp;gt;&lt;br /&gt;
=== Boost Open Loop gear-based Multiplier ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: duty cycle multiplier (0 to 3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopGearLimiterDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop PW LIMITER by gear ==&lt;br /&gt;
Per-gear cap (gear x) on the open-loop wastegate duty — limits maximum duty in each gear (e.g. less boost in low gears for traction). Requires [[Advanced#Traction Control and Vehicle Speed|gear detection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopGearLimiterCurve --&amp;gt;&lt;br /&gt;
=== Boost Open Loop gear-based Limiter ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: duty cycle limit (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopGearAdderDialog --&amp;gt;&lt;br /&gt;
== Boost control closed-loop kPa adder by gear ==&lt;br /&gt;
Per-gear trim (gear x) added to the closed-loop boost target in kPa — run a different target pressure per gear. Requires [[Advanced#Traction Control and Vehicle Speed|gear detection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopGearAdderCurve --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop gear-based Adder ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: kPa adder (-200 to 200).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopGearMultiplierDialog --&amp;gt;&lt;br /&gt;
== Boost control closed-loop kPa multiplier by gear ==&lt;br /&gt;
Per-gear multiplier (gear x) applied to the closed-loop boost target — scales target pressure by gear. Requires [[Advanced#Traction Control and Vehicle Speed|gear detection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopGearMultiplierCurve --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop gear-based Multiplier ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: kPa multiplier (0 to 3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopGearLimiterDialog --&amp;gt;&lt;br /&gt;
== Boost control closed-loop kPa limiter by gear ==&lt;br /&gt;
Per-gear cap (gear x) on the closed-loop boost target in kPa — limits maximum target pressure in each gear. Requires [[Advanced#Traction Control and Vehicle Speed|gear detection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopGearLimiterCurve --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop gear-based Limiter ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: kPa limit (0 to 600).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltBoostCorrCurve --&amp;gt;&lt;br /&gt;
== CLT boost duty multiplier ==&lt;br /&gt;
Multiplier on the open-loop wastegate duty versus coolant temperature — typically reduces boost on a cold engine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltBoostAdderCurve --&amp;gt;&lt;br /&gt;
== CLT boost target adder ==&lt;br /&gt;
Adjustment to the closed-loop boost target versus coolant temperature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iatBoostCorrCurve --&amp;gt;&lt;br /&gt;
== IAT boost duty multiplier ==&lt;br /&gt;
Multiplier on the open-loop wastegate duty versus intake air temperature — pull boost back as intake temps climb to protect against knock.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iatBoostAdderCurve --&amp;gt;&lt;br /&gt;
== IAT boost target adder ==&lt;br /&gt;
Adjustment to the closed-loop boost target versus intake air temperature.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Boost PID tables --&amp;gt;&lt;br /&gt;
= Boost PID tables =&lt;br /&gt;
Optional RPM-based gain tables for the closed-loop boost PID. When &#039;Use PID tables&#039; is enabled in [[Advanced#Boost control PID|Boost control PID]], these P/I/D curves replace the single fixed gains, letting boost response be tuned across the rev range.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidPCurve --&amp;gt;&lt;br /&gt;
== P Table ==&lt;br /&gt;
Proportional gain versus RPM for the closed-loop boost PID (used when &#039;Use PID tables&#039; is enabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidICurve --&amp;gt;&lt;br /&gt;
== I Table ==&lt;br /&gt;
Integral gain versus RPM for the closed-loop boost PID (used when &#039;Use PID tables&#039; is enabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidDCurve --&amp;gt;&lt;br /&gt;
== D Table ==&lt;br /&gt;
Derivative gain versus RPM for the closed-loop boost PID (used when &#039;Use PID tables&#039; is enabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Boost Table Switch --&amp;gt;&lt;br /&gt;
= Boost Table Switch =&lt;br /&gt;
A second set of boost tables (open and closed loop) that can be blended in against the main tables, selected by a switch pin or a parameter/Y-axis override with a bias curve. Use it for a low/high boost switch, valet/wet maps, or any second boost profile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenBlend1Cfg --&amp;gt;&lt;br /&gt;
== Open Loop Boost Table Switch 1 Settings ==&lt;br /&gt;
How the alternate open-loop boost table is blended in: the switch pin (or parameter / Y-axis override), the blend mode, and the bias curve that sets how much of the alternate table is mixed with the main one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_tableSwitch --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_tableSwitchPinMode --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_blendParameter --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Parameter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:OLBoostBlend1BlendMode --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_yAxisOverride --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Y axis override ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopBlend1Bias --&amp;gt;&lt;br /&gt;
=== Boost Open Loop Table Switch 1 Bias ===&lt;br /&gt;
2D curve — X: param (0 to 100), Y: bias (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenBlend1Table --&amp;gt;&lt;br /&gt;
== Open Loop Boost Table Switch 1 ==&lt;br /&gt;
The alternate open-loop wastegate duty table that is blended in per the settings above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedBlend1Cfg --&amp;gt;&lt;br /&gt;
== Closed Loop Boost Table Switch 1 Settings ==&lt;br /&gt;
How the alternate closed-loop boost target table is blended in: the switch pin (or parameter / Y-axis override), the blend mode, and the bias curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_tableSwitch --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_tableSwitchPinMode --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Pin mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_blendParameter --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Parameter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:CLBoostBlend1BlendMode --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_yAxisOverride --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Y axis override ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopBlend1Bias --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop Table Switch 1 Bias ===&lt;br /&gt;
2D curve — X: param (0 to 100), Y: bias (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedBlend1Table --&amp;gt;&lt;br /&gt;
== Closed Loop Boost Table Switch 1 ==&lt;br /&gt;
The alternate closed-loop boost target table that is blended in per the settings above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Generic PWM --&amp;gt;&lt;br /&gt;
= Generic PWM =&lt;br /&gt;
Up to four general-purpose PWM channels (GP PWM x, x = 1–4). Each looks up a 3D table on selectable X/Y axes and drives a pin with the result: as PWM at the chosen frequency, or as an on/off signal with hysteresis (&#039;on above duty&#039; / &#039;off below duty&#039;) when frequency is set to 0. An optional switch pin selects or blends the table, &#039;off value&#039; applies while that switch is off, and &#039;duty if error&#039; is the safe fallback used if an input sensor faults.&lt;br /&gt;
&lt;br /&gt;
All four channels are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm1 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm1Tbl --&amp;gt;&lt;br /&gt;
=== GP#1 ===&lt;br /&gt;
3D table: GP#1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm2 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm2Tbl --&amp;gt;&lt;br /&gt;
=== GP#2 ===&lt;br /&gt;
3D table: GP#2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm3 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm3Tbl --&amp;gt;&lt;br /&gt;
=== GP#3 ===&lt;br /&gt;
3D table: GP#3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm4 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm4Tbl --&amp;gt;&lt;br /&gt;
=== GP#4 ===&lt;br /&gt;
3D table: GP#4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:User tables --&amp;gt;&lt;br /&gt;
= User tables =&lt;br /&gt;
Up to eight user-defined 3D lookup tables (user table x, x = 1–8). Each table picks its own X and Y axes from any available channel, looks up a value, and either drives an output or feeds its result to another function (another table&#039;s axis, a CAN message, a math channel).&lt;br /&gt;
&lt;br /&gt;
Per-table fields, identical for every table:&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039; / &#039;&#039;&#039;Enable Pin&#039;&#039;&#039; - turn the table on, optionally gated by a switch input.&lt;br /&gt;
* &#039;&#039;&#039;X Axis&#039;&#039;&#039; / &#039;&#039;&#039;Y Axis&#039;&#039;&#039; - the channels used to index the table (the &#039;&#039;&#039;Hash&#039;&#039;&#039; fields are internal axis identifiers, not user-set).&lt;br /&gt;
* &#039;&#039;&#039;Action&#039;&#039;&#039; - what the looked-up value controls; leave &#039;None&#039; to use the table only for monitoring or as an input to something else.&lt;br /&gt;
* &#039;&#039;&#039;PWM Output Pin&#039;&#039;&#039; / &#039;&#039;&#039;PWM Frequency&#039;&#039;&#039; / &#039;&#039;&#039;PWM Duty if error&#039;&#039;&#039; - used when Action is PWM Output; the error duty is the safe fallback when the axes are invalid.&lt;br /&gt;
&lt;br /&gt;
All eight tables are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable1TblSettings --&amp;gt;&lt;br /&gt;
== User table 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable1Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable1Tbl --&amp;gt;&lt;br /&gt;
=== User table 1 ===&lt;br /&gt;
3D table: User table 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable2TblSettings --&amp;gt;&lt;br /&gt;
== User table 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable2Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable2Tbl --&amp;gt;&lt;br /&gt;
=== User table 2 ===&lt;br /&gt;
3D table: User table 2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable3TblSettings --&amp;gt;&lt;br /&gt;
== User table 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable3Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable3Tbl --&amp;gt;&lt;br /&gt;
=== User table 3 ===&lt;br /&gt;
3D table: User table 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable4TblSettings --&amp;gt;&lt;br /&gt;
== User table 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable4Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable4Tbl --&amp;gt;&lt;br /&gt;
=== User table 4 ===&lt;br /&gt;
3D table: User table 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable5TblSettings --&amp;gt;&lt;br /&gt;
== User table 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable5Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable5Tbl --&amp;gt;&lt;br /&gt;
=== User table 5 ===&lt;br /&gt;
3D table: User table 5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable6TblSettings --&amp;gt;&lt;br /&gt;
== User table 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable6Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable6Tbl --&amp;gt;&lt;br /&gt;
=== User table 6 ===&lt;br /&gt;
3D table: User table 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable7TblSettings --&amp;gt;&lt;br /&gt;
== User table 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable7Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable7Tbl --&amp;gt;&lt;br /&gt;
=== User table 7 ===&lt;br /&gt;
3D table: User table 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable8TblSettings --&amp;gt;&lt;br /&gt;
== User table 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable8Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable8Tbl --&amp;gt;&lt;br /&gt;
=== User table 8 ===&lt;br /&gt;
3D table: User table 8.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:User curves --&amp;gt;&lt;br /&gt;
= User curves =&lt;br /&gt;
Up to eight user-defined 2D curves (user curve x, x = 1–8). Each maps one selectable X-axis channel to an output value and either drives a PWM/on-off output or feeds its result to another function. The fields mirror the [[Advanced#User tables|user tables]] but with a single X axis instead of X and Y.&lt;br /&gt;
&lt;br /&gt;
All eight curves are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve1CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve1Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve1Curve --&amp;gt;&lt;br /&gt;
=== User curve 1 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves1_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve2CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve2Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve2Curve --&amp;gt;&lt;br /&gt;
=== User curve 2 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves2_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve3CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve3Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve3Curve --&amp;gt;&lt;br /&gt;
=== User curve 3 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves3_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve4CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve4Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve4Curve --&amp;gt;&lt;br /&gt;
=== User curve 4 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves4_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve5CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve5Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve5Curve --&amp;gt;&lt;br /&gt;
=== User curve 5 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves5_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve6CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve6Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve6Curve --&amp;gt;&lt;br /&gt;
=== User curve 6 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves6_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve7CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve7Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve7Curve --&amp;gt;&lt;br /&gt;
=== User curve 7 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves7_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve8CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve8Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve8Curve --&amp;gt;&lt;br /&gt;
=== User curve 8 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves8_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:User counters --&amp;gt;&lt;br /&gt;
= User counters =&lt;br /&gt;
Up to four user counters (user counter x, x = 1–4). Each is an integer value that increments, decrements, and resets from button inputs, optionally wrapping between a minimum and maximum. Use one as a manually-stepped selector — a map switch, boost level, launch RPM step, etc. — whose value feeds other functions.&lt;br /&gt;
&lt;br /&gt;
Per-counter fields, identical for every counter: &#039;&#039;&#039;Minimum/Maximum value&#039;&#039;&#039; and &#039;&#039;&#039;Wrap around&#039;&#039;&#039; bound the count, and the &#039;&#039;&#039;Increment&#039;&#039;&#039; / &#039;&#039;&#039;Decrement&#039;&#039;&#039; / &#039;&#039;&#039;Reset&#039;&#039;&#039; switch inputs (with their pin modes) step it.&lt;br /&gt;
&lt;br /&gt;
All four counters are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter1Settings --&amp;gt;&lt;br /&gt;
== User counter 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter1Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter1WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter1Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter2Settings --&amp;gt;&lt;br /&gt;
== User counter 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter2Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter2WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter2Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter3Settings --&amp;gt;&lt;br /&gt;
== User counter 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter3Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter3WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter3Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter4Settings --&amp;gt;&lt;br /&gt;
== User counter 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter4Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter4WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter4Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Math channels --&amp;gt;&lt;br /&gt;
= Math channels =&lt;br /&gt;
Up to eight math channels (math channel x, x = 1–8). Each applies a selectable &#039;&#039;&#039;Function&#039;&#039;&#039; to up to five &#039;&#039;&#039;inputs&#039;&#039;&#039;, where each input is either a constant &#039;&#039;&#039;Value&#039;&#039;&#039; or a &#039;&#039;&#039;Variable&#039;&#039;&#039; (any channel). Optional exponential &#039;&#039;&#039;Averaging&#039;&#039;&#039; smooths a noisy result (0 = none, 90–95 for noisy signals). The output becomes a channel you can log or feed into tables, logic outputs and CAN messages. The per-input &#039;&#039;&#039;Hash&#039;&#039;&#039; fields are internal identifiers, not user-set.&lt;br /&gt;
&lt;br /&gt;
All eight channels are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel1Dialog --&amp;gt;&lt;br /&gt;
== Math channel 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel2Dialog --&amp;gt;&lt;br /&gt;
== Math channel 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel3Dialog --&amp;gt;&lt;br /&gt;
== Math channel 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel4Dialog --&amp;gt;&lt;br /&gt;
== Math channel 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel5Dialog --&amp;gt;&lt;br /&gt;
== Math channel 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel6Dialog --&amp;gt;&lt;br /&gt;
== Math channel 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel7Dialog --&amp;gt;&lt;br /&gt;
== Math channel 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel8Dialog --&amp;gt;&lt;br /&gt;
== Math channel 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Bit builders --&amp;gt;&lt;br /&gt;
= Bit builders =&lt;br /&gt;
Up to eight bit builders (bit builder x, x = 1–8). Each assembles a single integer from up to eight bits, where every bit is either &#039;&#039;&#039;Fixed&#039;&#039;&#039; or driven by a &#039;&#039;&#039;Variable&#039;&#039;&#039; — any non-zero variable value sets that bit to 1. Use it to pack several on/off signals (typically [[Advanced#Logic outputs|logic outputs]]) into one value for CAN transmission or table lookup.&lt;br /&gt;
&lt;br /&gt;
All eight builders are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder1Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder2Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder3Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder4Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder5Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder6Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder7Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder8Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Analog Multi-Switch --&amp;gt;&lt;br /&gt;
= Analog Multi-Switch =&lt;br /&gt;
Up to four analog multi-switches (analog multi-switch x, x = 1–4). Each reads one analog input and resolves its voltage to a discrete &#039;&#039;&#039;Position&#039;&#039;&#039; via the position curve — the standard way to read a multi-position rotary switch (for example a 5-position map selector) over a single wire using a resistor ladder.&lt;br /&gt;
&lt;br /&gt;
All four switches are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings1 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches1_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve1 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings2 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches2_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve2 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings3 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches3_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve3 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings4 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches4_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve4 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Logic outputs --&amp;gt;&lt;br /&gt;
= Logic outputs =&lt;br /&gt;
Up to ten logic outputs (logic output x, x = 1–10) — the ECU&#039;s general-purpose programmable on/off logic. Each output evaluates up to five &#039;&#039;&#039;conditions&#039;&#039;&#039; (comparisons on any channel), combines them with the selected boolean &#039;&#039;&#039;Conditions logic&#039;&#039;&#039;, and when the result is true drives an output &#039;&#039;&#039;pin&#039;&#039;&#039; and/or takes an engine &#039;&#039;&#039;action&#039;&#039;&#039; (do nothing, cut fuel, cut spark, cut both, kill the engine, or limit RPM). &#039;&#039;&#039;Turn on/off delay&#039;&#039;&#039; debounce the result and &#039;&#039;&#039;Inverted&#039;&#039;&#039; flips it (active when conditions are NOT met). Set the pin to NONE to use the result virtually (e.g. as a [[Advanced#Bit builders|bit builder]] input).&lt;br /&gt;
&lt;br /&gt;
All ten outputs are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput1Dialog --&amp;gt;&lt;br /&gt;
== Logic output 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput2Dialog --&amp;gt;&lt;br /&gt;
== Logic output 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput3Dialog --&amp;gt;&lt;br /&gt;
== Logic output 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput4Dialog --&amp;gt;&lt;br /&gt;
== Logic output 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput5Dialog --&amp;gt;&lt;br /&gt;
== Logic output 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput6Dialog --&amp;gt;&lt;br /&gt;
== Logic output 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput7Dialog --&amp;gt;&lt;br /&gt;
== Logic output 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput8Dialog --&amp;gt;&lt;br /&gt;
== Logic output 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput9Dialog --&amp;gt;&lt;br /&gt;
== Logic output 9 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput10Dialog --&amp;gt;&lt;br /&gt;
== Logic output 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxAnalogInputsDialog --&amp;gt;&lt;br /&gt;
= Aux analog inputs =&lt;br /&gt;
Eight spare analog inputs (aux analog x, x = 1–8). Each assigns an ADC channel whose voltage is exposed as a channel for logging, [[Lua]], CAN broadcast, or use as an axis in user tables/curves. Calibrate raw voltage into engineering units in Lua or a user curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs1 --&amp;gt;&lt;br /&gt;
==== Aux analog 1 ====&lt;br /&gt;
auxAnalogInputs 1&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs2 --&amp;gt;&lt;br /&gt;
==== Aux analog 2 ====&lt;br /&gt;
auxAnalogInputs 2&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs3 --&amp;gt;&lt;br /&gt;
==== Aux analog 3 ====&lt;br /&gt;
auxAnalogInputs 3&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs4 --&amp;gt;&lt;br /&gt;
==== Aux analog 4 ====&lt;br /&gt;
auxAnalogInputs 4&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs5 --&amp;gt;&lt;br /&gt;
==== Aux analog 5 ====&lt;br /&gt;
auxAnalogInputs 5&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs6 --&amp;gt;&lt;br /&gt;
==== Aux analog 6 ====&lt;br /&gt;
auxAnalogInputs 6&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs7 --&amp;gt;&lt;br /&gt;
==== Aux analog 7 ====&lt;br /&gt;
auxAnalogInputs 7&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs8 --&amp;gt;&lt;br /&gt;
==== Aux analog 8 ====&lt;br /&gt;
auxAnalogInputs 8&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxDigitalInputsDialog --&amp;gt;&lt;br /&gt;
= Aux digital inputs =&lt;br /&gt;
Eight spare digital (switch) inputs (aux digital x, x = 1–8). Each assigns a switch pin whose on/off state is exposed as a channel for [[Lua]], CAN, or as a condition in [[Advanced#Logic outputs|logic outputs]] and user tables.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins1 --&amp;gt;&lt;br /&gt;
==== Aux digital 1 ====&lt;br /&gt;
luaDigitalInputPins 1&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins2 --&amp;gt;&lt;br /&gt;
==== Aux digital 2 ====&lt;br /&gt;
luaDigitalInputPins 2&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins3 --&amp;gt;&lt;br /&gt;
==== Aux digital 3 ====&lt;br /&gt;
luaDigitalInputPins 3&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins4 --&amp;gt;&lt;br /&gt;
==== Aux digital 4 ====&lt;br /&gt;
luaDigitalInputPins 4&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins5 --&amp;gt;&lt;br /&gt;
==== Aux digital 5 ====&lt;br /&gt;
luaDigitalInputPins 5&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins6 --&amp;gt;&lt;br /&gt;
==== Aux digital 6 ====&lt;br /&gt;
luaDigitalInputPins 6&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins7 --&amp;gt;&lt;br /&gt;
==== Aux digital 7 ====&lt;br /&gt;
luaDigitalInputPins 7&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins8 --&amp;gt;&lt;br /&gt;
==== Aux digital 8 ====&lt;br /&gt;
luaDigitalInputPins 8&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes1 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes2 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes3 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 3&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes4 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 4&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes5 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes6 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 6&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes7 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes8 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 8&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlDialog --&amp;gt;&lt;br /&gt;
= Cruise Control =&lt;br /&gt;
Electronic-throttle cruise control. Holds a target speed (or RPM) by adjusting ETB angle with a proportional controller, with extensive safety conditions and driver cancel inputs (brake, clutch, off button). Requires drive-by-wire throttle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlSettingsDialog --&amp;gt;&lt;br /&gt;
== Settings ==&lt;br /&gt;
Core cruise behaviour: enable/arm logic, what the setpoint tracks (vehicle speed or RPM), ETB adjustment smoothing, and which driver inputs cancel cruise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnabled --&amp;gt;&lt;br /&gt;
==== Cruise Control Enabled ====&lt;br /&gt;
Cruise Control system enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlUseVehicleSpeed --&amp;gt;&lt;br /&gt;
==== Use Vehicle Speed ====&lt;br /&gt;
Cruise Control mode uses Vehicle Speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnableTogglesState --&amp;gt;&lt;br /&gt;
==== &#039;Enable&#039; Toggles ON/OFF ====&lt;br /&gt;
Cruise Control Enable Toggles the state, ON -&amp;gt; OFF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseAlwaysEnabled --&amp;gt;&lt;br /&gt;
==== Cruise Always Enabled ====&lt;br /&gt;
Cruise is always enabled, needing just SET button to engage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlInhibitDFCO --&amp;gt;&lt;br /&gt;
==== Inhibit DFCO ====&lt;br /&gt;
Prevent DFCO from engaging while cruise control is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlAverageAdjustment --&amp;gt;&lt;br /&gt;
==== Smooth ETB Adjustment ====&lt;br /&gt;
Average cruise control adjustments to smooth the application using expaverage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_smooth_exp_average --&amp;gt;&lt;br /&gt;
==== Smooth ETB average factor (0.1 probably best to start) ====&lt;br /&gt;
ETB Transition exp Average Factor (0-1, 0.1 probably best to start)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlAllowPedalUpToEngage --&amp;gt;&lt;br /&gt;
==== Allow pedal up to Engage Pedal Level in Cruise ====&lt;br /&gt;
After latching pedal (manual cruise -&amp;gt; engage system -&amp;gt; release throttle pedal), disengage cruise at pedal level at the time of engage instead of static level&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlReadClutchPedal --&amp;gt;&lt;br /&gt;
==== Use Clutch Down Pedal to cancel cruise ====&lt;br /&gt;
Use clutch pedal to cancel cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlReadClutchUp --&amp;gt;&lt;br /&gt;
==== Use Clutch Up to cancel cruise ====&lt;br /&gt;
Use clutch up to cancel cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlReadBrakePedal --&amp;gt;&lt;br /&gt;
==== Use Brake Pedal to cancel cruise ====&lt;br /&gt;
Use Brake pedal to cancel cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlDisengageConditionsDialog --&amp;gt;&lt;br /&gt;
== Safety Conditions ==&lt;br /&gt;
Limits that prevent cruise from engaging or that disengage it: max pedal to engage/stay engaged, hard throttle/RPM/speed bounds, and RPM/speed bands beyond which cruise drops out. Set these conservatively — they are the guard rails on a system that opens the throttle on its own.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_max_soft_etb --&amp;gt;&lt;br /&gt;
==== MAX ETB will be ever commanded to open to match setpoint ====&lt;br /&gt;
Soft maximum etb will be ever commanded to open&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxThrottlePedalAllowedToEngage --&amp;gt;&lt;br /&gt;
==== Max Accelerator Pedal allowed (50% recommended) ====&lt;br /&gt;
Maximum throttle allowed to engage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxThrottlePedalAllowedToStayEngaged --&amp;gt;&lt;br /&gt;
==== Max accelerator pedal once CC active and pedal released (5% recommended) ====&lt;br /&gt;
Maximum throttle allowed to stay engaged in cruise control after set&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_pedal_release_seconds --&amp;gt;&lt;br /&gt;
==== Time to release pedal to keep safety true (2 seconds recommended) ====&lt;br /&gt;
Seconds pedal is allowed to stay above cc_maxThrottlePedalAllowedToStayEngaged to keep safety true, 0 to disable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_unsafeTps --&amp;gt;&lt;br /&gt;
==== HARD Max Throttle Opening (75% recommended) ====&lt;br /&gt;
Cruise control unsafe TPS level&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxRpm --&amp;gt;&lt;br /&gt;
==== Max Engine RPM (4000 recommended) ====&lt;br /&gt;
Cruise control maximmum safeguard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_minRpm --&amp;gt;&lt;br /&gt;
==== Min Engine RPM (1000 recommended) ====&lt;br /&gt;
Cruise control maximmum safeguard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxSpeed --&amp;gt;&lt;br /&gt;
==== Max Vehicle Speed (120 recommended) ====&lt;br /&gt;
Cruise control maximmum speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_minSpeed --&amp;gt;&lt;br /&gt;
==== Min Vehicle Speed (10 recommended) ====&lt;br /&gt;
Cruise control minimum speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_accdec_request_timeout --&amp;gt;&lt;br /&gt;
==== Acceleration/Deceleration request timeout (INC/DEC/RESUME) ====&lt;br /&gt;
Seconds that can pass after inc/dec request for the rpm band to come into alignment before cancelling cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmBandHigh --&amp;gt;&lt;br /&gt;
==== Engine	RPM Over Target (350 recommended) ====&lt;br /&gt;
If rpm is higher than this from setpoint, disengage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmBandLow --&amp;gt;&lt;br /&gt;
==== Engine RPM Under Target (350 recommended) ====&lt;br /&gt;
If rpm is lower than this from setpoint, disengage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedBandHigh --&amp;gt;&lt;br /&gt;
==== Vehicle Speed Over Target (5 recommended) ====&lt;br /&gt;
if speed is higher than this from setpoint, disenagege cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedBandLow --&amp;gt;&lt;br /&gt;
==== Vehicle Speed Under Target (5 recommended) ====&lt;br /&gt;
if speed is higher than this from setpoint, disenagege cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlAdjustmentConditionsDialog --&amp;gt;&lt;br /&gt;
== Adjustment Conditions ==&lt;br /&gt;
Tuning for how cruise holds the setpoint: proportional gains and ETB adjustment limits, RPM/speed deadbands to stop hunting, the INC/DEC step sizes, and the rate at which the setpoint eases toward the held value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_proportionalGainRPM --&amp;gt;&lt;br /&gt;
==== Proportional gain for RPM error - 0.0000 to 10 (0.1 recommended) ====&lt;br /&gt;
proportional gain for rpm error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_proportionalGainSPEED --&amp;gt;&lt;br /&gt;
==== Proportional gain for SPEED error - 0.0000 to 10 (1 recommended) ====&lt;br /&gt;
proportional gain speed error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxEtbAdjustmentOpen --&amp;gt;&lt;br /&gt;
==== Max ETB adjustment from setpoint (open) - 0 to 100 (30 recommended) ====&lt;br /&gt;
maximum etb open adjustment cruise control is allowed to make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxEtbAdjustmentClose --&amp;gt;&lt;br /&gt;
==== Max ETB adjustment from setpoint (close) - 0 to 100 (30 recommended) ====&lt;br /&gt;
maximum etb close adjustment cruise control is allowed to make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmDeadBandHigh --&amp;gt;&lt;br /&gt;
==== RPM deadband high (40 recommended) ====&lt;br /&gt;
High RPM adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmDeadBandLow --&amp;gt;&lt;br /&gt;
==== RPM deadband low (40 recommended) ====&lt;br /&gt;
Low RPM adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedDeadBandHigh --&amp;gt;&lt;br /&gt;
==== Speed deadband high (0.9 recommended) ====&lt;br /&gt;
High Speed adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedDeadBandLow --&amp;gt;&lt;br /&gt;
==== Speed deadband low (0.9 recommended) ====&lt;br /&gt;
Low Speed adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_kmhstep --&amp;gt;&lt;br /&gt;
==== KMH step (INC/DEC) (1 recommended) ====&lt;br /&gt;
KMH to inc/dec speed when requested&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmstep --&amp;gt;&lt;br /&gt;
==== RPM step (INC/DEC) (100 recommended) ====&lt;br /&gt;
RPM to inc/dec speed when requested&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_setpoint_adjust_rate --&amp;gt;&lt;br /&gt;
==== Setpoint adjust rate 0.000001 to 0.000255, 0 to disable (0.000020 recommended) ====&lt;br /&gt;
rate at which error ticks into setpoint, 0.000001 and up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlStateDialog --&amp;gt;&lt;br /&gt;
== Cruise Control State ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruise_control_buttons --&amp;gt;&lt;br /&gt;
= Cruise Control Buttons (GPIO) =&lt;br /&gt;
Pin assignments for the cruise control buttons (enable/arm, set/engage, resume, increase, decrease, off/cancel), each with its input mode and an optional inversion. Wire whichever buttons your control stalk provides; cruise can also be driven over CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnablePin --&amp;gt;&lt;br /&gt;
==== Enable Button Pin ====&lt;br /&gt;
Cruise control enable/arm button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnablePinInverted --&amp;gt;&lt;br /&gt;
==== Enable Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlSetPin --&amp;gt;&lt;br /&gt;
==== Set/Engage Button Pin ====&lt;br /&gt;
Cruise control set/engage button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlSetPinMode --&amp;gt;&lt;br /&gt;
==== Set Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlSetPinInverted --&amp;gt;&lt;br /&gt;
==== Set Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlResumePin --&amp;gt;&lt;br /&gt;
==== Resume Button Pin ====&lt;br /&gt;
Cruise control resume button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlResumePinMode --&amp;gt;&lt;br /&gt;
==== Resume Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlResumePinInverted --&amp;gt;&lt;br /&gt;
==== Resume Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlIncPin --&amp;gt;&lt;br /&gt;
==== Increase Button Pin ====&lt;br /&gt;
Cruise control increase button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlIncPinMode --&amp;gt;&lt;br /&gt;
==== Inc Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlIncPinInverted --&amp;gt;&lt;br /&gt;
==== Inc Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlDecPin --&amp;gt;&lt;br /&gt;
==== Decrease Button Pin ====&lt;br /&gt;
Cruise control decrease button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlDecPinMode --&amp;gt;&lt;br /&gt;
==== Dec Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlDecPinInverted --&amp;gt;&lt;br /&gt;
==== Dec Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlOffPin --&amp;gt;&lt;br /&gt;
==== Off/Cancel Button Pin ====&lt;br /&gt;
Cruise control off/cancel button (optional)&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlOffPinMode --&amp;gt;&lt;br /&gt;
==== Off Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlOffPinInverted --&amp;gt;&lt;br /&gt;
==== Off Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageDialog --&amp;gt;&lt;br /&gt;
= Long Storage =&lt;br /&gt;
Values that persist across power cycles (saved to non-volatile storage), such as trip fuel used and per-tank fuel level. Use these for a fuel-remaining readout and trip metering that survive key-off.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageDialogWest --&amp;gt;&lt;br /&gt;
== Long Storage ==&lt;br /&gt;
Trip fuel correction and the configured size of each fuel tank, used to compute fuel used and fuel remaining.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tripFuelCorrection --&amp;gt;&lt;br /&gt;
==== Trip Fuel Correction multiplier for fuel used ====&lt;br /&gt;
Trip fuel Correction multiplier for fuel used&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTankSize1 --&amp;gt;&lt;br /&gt;
==== Fuel tank size for fuel tank 1 ====&lt;br /&gt;
Fuel tank size for fuel tank 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTankSize2 --&amp;gt;&lt;br /&gt;
==== Fuel tank size for fuel tank 2 ====&lt;br /&gt;
Fuel tank size for fuel tank 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTankSize3 --&amp;gt;&lt;br /&gt;
==== Fuel tank size for fuel tank 3 ====&lt;br /&gt;
Fuel tank size for fuel tank 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageGaugeCategory1 --&amp;gt;&lt;br /&gt;
== Fuel Tank 1 ==&lt;br /&gt;
Live fuel level / fuel-used gauges for fuel tank x (x = 1–3), based on the tank size set above and fuel consumed. All three tanks are identical; only their index differs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageGaugeCategory2 --&amp;gt;&lt;br /&gt;
== Fuel Tank 2 ==&lt;br /&gt;
Fuel tank x gauges — see [[Advanced#Fuel Tank 1|Fuel Tank 1]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageGaugeCategory3 --&amp;gt;&lt;br /&gt;
== Fuel Tank 3 ==&lt;br /&gt;
Fuel tank x gauges — see [[Advanced#Fuel Tank 1|Fuel Tank 1]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageDialogEast --&amp;gt;&lt;br /&gt;
== Long Storage ==&lt;br /&gt;
Live readout of the persisted long-storage values.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=481</id>
		<title>Config:Idle</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=481"/>
		<updated>2026-06-06T22:58:36Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:idleSettings --&amp;gt;&lt;br /&gt;
= Idle settings =&lt;br /&gt;
Configuration for engine idle: the target speed, the open- and closed-loop control that holds it, idle ignition timing, and the idle air hardware (IAC solenoid, stepper, or electronic throttle).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleBasicSettings --&amp;gt;&lt;br /&gt;
== Idle settings ==&lt;br /&gt;
Core idle behaviour: how idle is controlled and the conditions under which the ECU decides the engine is idling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleMode --&amp;gt;&lt;br /&gt;
==== Idle control mode ====&lt;br /&gt;
See also idleRpmPid&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Open Loop + Closed Loop&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Open Loop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidDeactivationTpsThreshold --&amp;gt;&lt;br /&gt;
==== TPS threshold ====&lt;br /&gt;
Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleBelowTpsThreshold --&amp;gt;&lt;br /&gt;
==== Force idle below throttle threshold ====&lt;br /&gt;
Force idle STATE below DriveIntent threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionBelowTps --&amp;gt;&lt;br /&gt;
==== Force timing only below pedal threshold ====&lt;br /&gt;
Force idle ignition (delta target only) below DriverThreshold threshold, only for ignition timing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionUseDFCO --&amp;gt;&lt;br /&gt;
==== Idle force delayed by DFCO ====&lt;br /&gt;
Do not force idle ignition while DFCO is active for either of the above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleDeltaRpmAdjAvgFactor --&amp;gt;&lt;br /&gt;
==== Delta target rpm smoothing factor ====&lt;br /&gt;
Smoothing factor for delta target rpm ignition adjustment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmUpperLimit --&amp;gt;&lt;br /&gt;
==== RPM upper limit ====&lt;br /&gt;
How far above idle speed do we consider idling, i.e. coasting detection threshold.&lt;br /&gt;
For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmDeadZone --&amp;gt;&lt;br /&gt;
==== RPM deadzone ====&lt;br /&gt;
If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:maxIdleVss --&amp;gt;&lt;br /&gt;
==== Max vehicle speed ====&lt;br /&gt;
Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOverrides --&amp;gt;&lt;br /&gt;
== Idle overrides ==&lt;br /&gt;
Optional tables and ramps that override normal idle fuel and timing: separate idle/coasting ignition and VE tables, return-to-idle target ramping, and cranking-taper handling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateAdvanceForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle ignition table ====&lt;br /&gt;
This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra advance at low idle speeds will prevent stalling and extra retard at high idle speeds can help reduce engine power and slow the idle speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoasting --&amp;gt;&lt;br /&gt;
==== Use idle ignition table while coasting ====&lt;br /&gt;
When enabled, the idle ignition table is also applied during coasting (overrun), not only at idle. Limited by [[Idle#Max RPM for idle advance while coasting|Max RPM for idle advance while coasting]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoastingMaxRpm --&amp;gt;&lt;br /&gt;
==== Max RPM for idle advance while coasting ====&lt;br /&gt;
Maximum RPM for which idle advance while coasting is enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateVeForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle VE table ====&lt;br /&gt;
This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleVeOverrideMode --&amp;gt;&lt;br /&gt;
==== Override Idle VE table load axis ====&lt;br /&gt;
Allows you to change the default load axis used for the VE table, which is typically MAP (manifold absolute pressure).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MAP&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;TPS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PERCENT BARO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRamp --&amp;gt;&lt;br /&gt;
==== Ramp target RPM on return to idle ====&lt;br /&gt;
Ramp the idle target down from the entry threshold over N seconds when returning to idle. Helps prevent overshooting (below) the idle target while returning to idle from coasting.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRampDuration --&amp;gt;&lt;br /&gt;
==== Ramp target duration ====&lt;br /&gt;
idle return target ramp duration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateIdleTablesForCrankingTaper --&amp;gt;&lt;br /&gt;
==== Separate idle tables for cranking taper ====&lt;br /&gt;
This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacTableForCoasting --&amp;gt;&lt;br /&gt;
==== Separate coasting idle table ====&lt;br /&gt;
Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOpenLoop --&amp;gt;&lt;br /&gt;
== Open Loop Idle ==&lt;br /&gt;
Open-loop idle adders. Each active accessory load (A/C, transmission in gear, fans, CAN idle-up) raises the base idle air and/or the target RPM so the engine does not sag when the load engages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== A/C adder ====&lt;br /&gt;
Additional idle % while A/C is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== A/C RPM target ====&lt;br /&gt;
Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #1 adder ====&lt;br /&gt;
Additional idle % when fan #1 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #1 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #1 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #2 adder ====&lt;br /&gt;
Additional idle % when fan #2 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #2 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #2 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpRpm --&amp;gt;&lt;br /&gt;
==== CAN idle-up target RPM adder ====&lt;br /&gt;
can box idle up demand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpPercentage --&amp;gt;&lt;br /&gt;
==== CAN idle-up % adder ====&lt;br /&gt;
can box idle up demand %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlePidSettings --&amp;gt;&lt;br /&gt;
== Closed Loop Idle ==&lt;br /&gt;
Closed-loop idle PID. The ECU trims idle air (IAC duty or ETB angle) to hold the target RPM, working on top of the open-loop position. See https://content.epicefi.com/wiki/index.php/Guides:PID_Control for tuning the gains.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMin --&amp;gt;&lt;br /&gt;
==== iTerm Min ====&lt;br /&gt;
iTerm min value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMax --&amp;gt;&lt;br /&gt;
==== iTerm Max ====&lt;br /&gt;
iTerm max value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:pidExtraForLowRpm --&amp;gt;&lt;br /&gt;
==== PID Extra for low RPM ====&lt;br /&gt;
Increases PID reaction for RPM&amp;lt;target by adding extra percent to PID-error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacPidMultTable --&amp;gt;&lt;br /&gt;
==== Use PID output gain table ====&lt;br /&gt;
This flag allows to use a special &#039;PID Multiplier&#039; table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:etbIdle --&amp;gt;&lt;br /&gt;
== ETB idle settings ==&lt;br /&gt;
Idle settings specific to electronic throttle (ETB) cars, where idle air is metered by the throttle plate itself instead of a separate IAC valve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:dashpotEmulation --&amp;gt;&lt;br /&gt;
== Dashpot emulation ==&lt;br /&gt;
Dashpot (coasting-to-idle) emulation. Adds a temporary slug of idle air when dropping back to idle from a coast, then holds it and decays it away, softening the transition and preventing stall — emulating a mechanical throttle dashpot. Separate values are provided for when A/C is on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaper --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder ====&lt;br /&gt;
This value is an added for base idle value. Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time ====&lt;br /&gt;
How long initial idle adder is held before starting to decay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaperAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder(AC ON) ====&lt;br /&gt;
This value is an added for base idle value(AC ON). Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time(AC ON) ====&lt;br /&gt;
How long initial idle adder is held before starting to decay(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time(AC ON) ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdle --&amp;gt;&lt;br /&gt;
== Ignition idle settings ==&lt;br /&gt;
Idle ignition timing. Lets idle be stabilised with spark as well as air — advancing to recover from a sag and retarding to bleed off speed, for faster correction than air alone.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetError --&amp;gt;&lt;br /&gt;
==== Open loop idle timing (RPM-error) ====&lt;br /&gt;
Use Idle Target Error Delta timing curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetErrorMode --&amp;gt;&lt;br /&gt;
==== Include corrections in idle timing ====&lt;br /&gt;
If enabled, adds the result from the RPM-error curve to the corrected idle advance. If disabled, it discards all corrections (IAT, CLT, PID etc.) and uses the curve value directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdlePid --&amp;gt;&lt;br /&gt;
=== Closed loop ignition timing (PID) ===&lt;br /&gt;
Closed-loop idle ignition timing: a fast PID that adjusts spark advance around the idle target for quick correction, working alongside the slower air-based idle PID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingPidControl --&amp;gt;&lt;br /&gt;
==== Enable PID control ====&lt;br /&gt;
Gain is in degrees advance per rpm away from target, a good starting point is 0.1 = 10 deg per 100 rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_minValue --&amp;gt;&lt;br /&gt;
==== Min adjustment (retard) ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max adjustment (advance) ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingSoftEntryTime --&amp;gt;&lt;br /&gt;
==== Soft entry time ====&lt;br /&gt;
When entering idle, and the PID settings are aggressive, it&#039;s good to make a soft entry upon entering closed loop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlehw --&amp;gt;&lt;br /&gt;
= Idle hardware =&lt;br /&gt;
Physical idle air hardware: the IAC solenoid or stepper outputs and their drive settings. Electronic-throttle cars meter idle air through the throttle plate instead — see [[Idle#ETB idle settings|ETB idle settings]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleSolenoid --&amp;gt;&lt;br /&gt;
== Solenoid ==&lt;br /&gt;
PWM idle air control (IAC) solenoid valve output(s). Supports a single valve or a Subaru/BMW-style double solenoid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Primary output ====&lt;br /&gt;
Primary output pin driving the PWM idle air control (IAC) solenoid valve.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isDoubleSolenoidIdle --&amp;gt;&lt;br /&gt;
==== Double Solenoid Mode ====&lt;br /&gt;
Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:secondSolenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Secondary output ====&lt;br /&gt;
Second output pin for double-solenoid idle valves (some Subaru and Mazda), where one solenoid opens the valve further and the other closes it past the default position. Only used in [[Idle#Double Solenoid Mode|Double Solenoid Mode]].&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPinMode --&amp;gt;&lt;br /&gt;
==== Idle Solenoid output(s) Mode ====&lt;br /&gt;
Output mode for the idle solenoid pin(s). See [[Hardware:ECU output mode selection|ECU output mode selection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidFrequency --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Frequency ====&lt;br /&gt;
PWM frequency for the idle air control solenoid output. Match it to your valve: too low buzzes audibly and meters air unevenly, too high and the valve cannot respond. Two-wire IAC solenoids are typically driven around 200–300 Hz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleRPMCurve --&amp;gt;&lt;br /&gt;
= Idle target RPM =&lt;br /&gt;
Target idle RPM as a function of coolant temperature. A cold engine targets a higher idle, tapering down to the warm idle as it heats up.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleTable --&amp;gt;&lt;br /&gt;
= Idle open loop position =&lt;br /&gt;
Open-loop idle air position (IAC % or stepper steps) versus coolant temperature. This is the base feed-forward opening; closed-loop control trims around it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltCrankingCurveDialog --&amp;gt;&lt;br /&gt;
= Idle cranking position =&lt;br /&gt;
Idle air position held while cranking, versus coolant temperature. Sets how far the valve opens to get the engine to fire, before the crank-to-run taper takes over.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange#1 --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:cltCrankingCurve --&amp;gt;&lt;br /&gt;
== Cranking Idle Valve Curve ==&lt;br /&gt;
2D curve — X: Coolant (-40 to 120), Y: Percent (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:afterCrankingIACtaperDurationDialog --&amp;gt;&lt;br /&gt;
= Idle after start (crank-to-run) taper =&lt;br /&gt;
After the engine starts, the extra cranking idle air is tapered out over a number of engine cycles (versus coolant temperature) down to the running idle position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:afterCrankingIACtaperCurve --&amp;gt;&lt;br /&gt;
== Idle valve Crank-to-Run Taper ==&lt;br /&gt;
2D curve — X: Coolant (-40 to 120), Y: cycles (0 to 500).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacPidMultTbl --&amp;gt;&lt;br /&gt;
= Idle PID output gain =&lt;br /&gt;
Optional PID output multiplier (0.0–1.0) versus RPM, used to compensate for the non-linear relationship between IAC position and RPM. Enabled by [[Idle#Use PID output gain table|Use PID output gain table]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleExtraPidCurve --&amp;gt;&lt;br /&gt;
= Idle PID error gain =&lt;br /&gt;
Extra PID gain applied as a function of RPM error, letting the controller react harder the further idle is from target.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacCoastingCurve --&amp;gt;&lt;br /&gt;
= Coasting idle position override =&lt;br /&gt;
Idle air position used during overrun/coasting (versus coolant temperature) when the separate coasting idle table is enabled, used to manage engine braking and return-to-idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleValveForceClose --&amp;gt;&lt;br /&gt;
= Valve force close / stepper re-park =&lt;br /&gt;
Gradually drives the idle valve closed and re-parks the stepper once the engine is clearly off-idle (above an RPM and TPS threshold). Prevents manifold pressure leaking through the valve at cruise and resets accumulated stepper step-loss without a full homing cycle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseRpm --&amp;gt;&lt;br /&gt;
==== Force close: RPM threshold ====&lt;br /&gt;
Gradually close the idle valve and re-park the stepper when RPM is above this value AND TPS is above idleValveForceCloseTps. Prevents manifold pressure leakage through the valve at cruise, and resets accumulated stepper step-loss errors. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseDelay --&amp;gt;&lt;br /&gt;
==== Force close: delay (s) ====&lt;br /&gt;
Seconds to wait after RPM and TPS conditions are both met before beginning to close the idle valve. Prevents closing on brief throttle blips.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTps --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper start (%) ====&lt;br /&gt;
TPS at which the idle valve starts closing toward zero (taper start). Used together with idleValveForceCloseRpm and idleValveForceCloseTpsEnd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTpsEnd --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper end (%) ====&lt;br /&gt;
TPS at which the idle valve reaches fully closed and the stepper is re-parked (taper end). Position is linearly interpolated from current to zero between idleValveForceCloseTps and this value. Should be greater than idleValveForceCloseTps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseReparkSteps --&amp;gt;&lt;br /&gt;
==== Force close: re-park overstep (steps) ====&lt;br /&gt;
Number of extra steps to overstep toward closed when re-parking after force-close. Compensates for stepper drift without needing the full startup homing sequence. 5 is a good starting point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:IdleTimingTargetErrorDialog --&amp;gt;&lt;br /&gt;
= Open loop ignition idle timing (RPM-error) =&lt;br /&gt;
Open-loop idle timing curve: ignition advance/retard as a function of how far RPM is from the idle target. Enabled by [[Idle#Open loop idle timing (RPM-error)|Open loop idle timing (RPM-error)]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:idleTimingTargetErrorCRV --&amp;gt;&lt;br /&gt;
== Idle Target Error ==&lt;br /&gt;
2D curve — X: Delta (-500 to 500), Y: Deg (-30 to 30).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleVeTableTbl --&amp;gt;&lt;br /&gt;
= Idle fuel table =&lt;br /&gt;
Separate VE/fuel table used at idle when [[Idle#Separate idle VE table|Separate idle VE table]] is enabled, for fine control of idle fuelling independent of the main table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleAdvanceCurve --&amp;gt;&lt;br /&gt;
= Idle ignition table =&lt;br /&gt;
Separate ignition timing table used at idle when [[Idle#Separate idle ignition table|Separate idle ignition table]] is enabled. Advance at low idle speed prevents stalling; retard at high idle speed bleeds off power to settle the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:rotIdleDialog --&amp;gt;&lt;br /&gt;
= Rotational idle =&lt;br /&gt;
Rotational idle (a race/anti-lag-style lumpy idle): deliberately cuts spark and/or fuel in a rotating pattern at idle to produce a distinctive idle sound, with three accumulators that shift the pattern for different exhaust notes. Can be engaged manually by pin or automatically by TPS/CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleEnabled --&amp;gt;&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePin --&amp;gt;&lt;br /&gt;
==== Pin ====&lt;br /&gt;
Switch input that activates [[Idle#Rotational idle|rotational idle]] when held.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePinMode --&amp;gt;&lt;br /&gt;
==== Pin Mode ====&lt;br /&gt;
Input mode for the rotational idle pin. See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_zero_stft --&amp;gt;&lt;br /&gt;
==== Stop STFT for rotational idle (no fuel trim) ====&lt;br /&gt;
Zero STFT for rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_spark --&amp;gt;&lt;br /&gt;
==== Rotational cut spark ====&lt;br /&gt;
Rotational cut spark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_fuel --&amp;gt;&lt;br /&gt;
==== Rotational cut fuel ====&lt;br /&gt;
Rotational cut fuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage --&amp;gt;&lt;br /&gt;
==== Enable automatic engagement for TPS ====&lt;br /&gt;
Enable automatic engagement of rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps --&amp;gt;&lt;br /&gt;
==== Engage rotational idle below this Driver Intent(TPS/PPS) ====&lt;br /&gt;
Engage rotational idle under this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt_enable --&amp;gt;&lt;br /&gt;
==== Enable auto engage for CLT ====&lt;br /&gt;
Enable Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt --&amp;gt;&lt;br /&gt;
==== Auto engage above this CLT ====&lt;br /&gt;
Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_clt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
Minimum CLT for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps_global --&amp;gt;&lt;br /&gt;
==== Maximum TPS/PPS  (0 to disable) ====&lt;br /&gt;
Disengage rotational idle above this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_rpm --&amp;gt;&lt;br /&gt;
==== Minimum RPM ====&lt;br /&gt;
Minimum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_rpm --&amp;gt;&lt;br /&gt;
==== Maximum RPM ====&lt;br /&gt;
Maximum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_disable_closed_loop_idle --&amp;gt;&lt;br /&gt;
==== Disable closed loop idle when rotational idle active ====&lt;br /&gt;
Disable closed loop idle control when rotational idle is active.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air --&amp;gt;&lt;br /&gt;
==== Add idle % idle output ====&lt;br /&gt;
Add air to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air_percent --&amp;gt;&lt;br /&gt;
==== Add/Remove air percentage ====&lt;br /&gt;
Percentage of air to add/remove to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_override_etb_authority --&amp;gt;&lt;br /&gt;
==== Override ETB Idle Authority (0 to disable override) ====&lt;br /&gt;
Override the ETB authority for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleFuelMultiplierPercent --&amp;gt;&lt;br /&gt;
==== Fuel Multiplier (1.5 = 150% , 0 to 2.5) ====&lt;br /&gt;
Rotational idle fuel multiplier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleIgnitionAdder --&amp;gt;&lt;br /&gt;
==== Rotational Absolute Timing (-30 = 30 ATDC, 0 =  original timing, 10 - -100) ====&lt;br /&gt;
Rotational idle absolute ignition (-20 = atdc 20 degrees)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:old_new_rotational_idle_logic --&amp;gt;&lt;br /&gt;
==== Old rotational idle logic (true = old, false = new) - see tooltip ====&lt;br /&gt;
Old rotational idle logic, New logic is based on global spark counter, the three layers of accumulators and adders run at the same time, offset shifts the pattern forward or backward with relation to each other, this should allow different sound patterns by combining different offsets;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_fuel_offset --&amp;gt;&lt;br /&gt;
==== Rotational Fuel Offset (should be 0, this shifts fuel cut in relation to ignition signal) ====&lt;br /&gt;
Rotational idle fuel offset (should be 0, this shifts fuel cut in relation to ignition signal). At 0, in sequential injection/ignition the fuel pulse is cut before the ignition pulse. so fuel is not wasted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max1 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 1 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder1 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 1 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset1 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 1 ====&lt;br /&gt;
Rotational pattern shift #1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max2 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 2 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder2 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 2 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset2 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 2 ====&lt;br /&gt;
Rotational pattern shift #2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max3 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 3 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder3 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 3 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset3 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 3 ====&lt;br /&gt;
Rotational pattern shift #3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:transmissionIdleUpSettings --&amp;gt;&lt;br /&gt;
= Transmission idle compensation =&lt;br /&gt;
Raises idle air and/or target RPM when an automatic transmission is put in gear (switch input), so the engine does not sag under the torque-converter load.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPin --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch ====&lt;br /&gt;
Switch input that signals the transmission is in gear, activating transmission idle-up.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPinMode --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch mode ====&lt;br /&gt;
Input mode for the transmission idle-up switch. See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=480</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=480"/>
		<updated>2026-06-06T22:20:37Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration of the epicEFI firmware is done via [https://www.tunerstudio.com/ TunerStudio] from EFIAnalytics. TunerStudio allows the user to edit the main controller configuration as well to change the various tables inside of the firmware.&lt;br /&gt;
&lt;br /&gt;
== Installing TunerStudio ==&lt;br /&gt;
Navigate to [https://www.tunerstudio.com/index.php/downloads the TunerStudio download page]and download the latest TunerStudio for your platform. TunerStudio supports auto-update, so the latest available version will be installed once the auto-updater is ran at first startup.&lt;br /&gt;
&lt;br /&gt;
== Tuner Studio options ==&lt;br /&gt;
To access the individual TunerStudio options, use the following links:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Setup]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* [[Config:Fuel|&amp;lt;big&amp;gt;Fuel&amp;lt;/big&amp;gt;]]&lt;br /&gt;
* [[Config:Ignition|&amp;lt;big&amp;gt;Ignition&amp;lt;/big&amp;gt;]]&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Cranking|Cranking]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Idle|Idle]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Advanced|Advanced]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Sensors|Sensors]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:CAN Bus|CAN Bus]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Controller|Controller]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Expert Extra|Expert/Extra]]&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Expert_Extra&amp;diff=479</id>
		<title>Config:Expert Extra</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Expert_Extra&amp;diff=479"/>
		<updated>2026-06-06T22:20:08Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;!-- group:EFI Expert --&amp;gt; = EFI Expert =  &amp;lt;!-- section:efiExpertGeneral --&amp;gt; == EFI Expert General settings ==  &amp;lt;!-- field:flashWriteDelay --&amp;gt; ==== Delay writing flash tune ==== Delay flash write after engine stop for this long  &amp;lt;!-- field:neverWrite --&amp;gt; ==== Do not automatically save settings(ECU READONLY) ==== ECU is in read only mode. use &amp;#039;Write Config&amp;#039; in bench test to save things.  &amp;lt;!-- field:update_prog_outputs_200hz --&amp;gt; ==== Update programmable outputs every 200hz...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- group:EFI Expert --&amp;gt;&lt;br /&gt;
= EFI Expert =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:efiExpertGeneral --&amp;gt;&lt;br /&gt;
== EFI Expert General settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:flashWriteDelay --&amp;gt;&lt;br /&gt;
==== Delay writing flash tune ====&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:neverWrite --&amp;gt;&lt;br /&gt;
==== Do not automatically save settings(ECU READONLY) ====&lt;br /&gt;
ECU is in read only mode. use &#039;Write Config&#039; in bench test to save things.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:update_prog_outputs_200hz --&amp;gt;&lt;br /&gt;
==== Update programmable outputs every 200hz ====&lt;br /&gt;
Update programmable outputs every 200hz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:internalFlashSleep --&amp;gt;&lt;br /&gt;
==== Sleep half a second before writing to internal flash and before writing to backup flash on burn ====&lt;br /&gt;
sleep half a second before writing to internal flash and before writing to backup flash on burn&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:deferAllWritesUntilEngineOff --&amp;gt;&lt;br /&gt;
==== Defer all FLASH writes until engine off (H7) ====&lt;br /&gt;
Do not write while running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overrideUaefiVbat --&amp;gt;&lt;br /&gt;
==== Override uaefi voltage dividers ====&lt;br /&gt;
Allow overriding uaefi voltage dividers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignore_no_etb_error --&amp;gt;&lt;br /&gt;
==== Ignore no ETB error ====&lt;br /&gt;
While setting up ETB, sometimes there is an error that prevents ecu from continuing calibration, use this to ignore that error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:total_shift_no_rpm_reset --&amp;gt;&lt;br /&gt;
==== Total shift no RPM reset ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gdiIgnoreSyncForIgnition --&amp;gt;&lt;br /&gt;
==== Ignore full sync requirement for ignition and GDI ====&lt;br /&gt;
Ignore demand for synchronization for ignition and GDI&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:skipFlashWrite --&amp;gt;&lt;br /&gt;
==== Skip flash write ====&lt;br /&gt;
Skip flash write.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:allow_multiple_input_assign --&amp;gt;&lt;br /&gt;
==== Allow multiple input assignments to the same pin ====&lt;br /&gt;
Allow multiple input assignments to the same pin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fast_sensor_get --&amp;gt;&lt;br /&gt;
==== Fast sensor get, this will disable timeouts for all sensors ====&lt;br /&gt;
Fast sensor get, this will disable timeouts for all sensors&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ms_can_bcast_clt_celcius --&amp;gt;&lt;br /&gt;
==== MS CAN broadcast CLT in Celsius instead of Fahrenheit ====&lt;br /&gt;
MS CAN broadcast CLT in Celsius instead of Fahrenheit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:console_version_print_disabled --&amp;gt;&lt;br /&gt;
==== Disable console version print ====&lt;br /&gt;
Disable console version print&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hellen_unassign_leds --&amp;gt;&lt;br /&gt;
==== Unassign Hellen LEDs ====&lt;br /&gt;
LEDs not assigned to any physical pin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaCriticalErrorAllowEcu --&amp;gt;&lt;br /&gt;
==== Allow ECU to continue on Lua critical error ====&lt;br /&gt;
allow ecu to continue on lua critical error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disable_thermistor_checks --&amp;gt;&lt;br /&gt;
==== Disable thermistor checks ====&lt;br /&gt;
Disable checking 10% and 90% point validation of the thermistor configuration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disable_sdcard_tune --&amp;gt;&lt;br /&gt;
==== Disable SD card tune backup/restore ====&lt;br /&gt;
Disable SD card tune backup/restore for writing while running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:efiExpertFuelSettings --&amp;gt;&lt;br /&gt;
== EFI Expert Fuel settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bypassTcharge --&amp;gt;&lt;br /&gt;
==== Bypass Tcharge - use IAT instead of modeled Tcharge ====&lt;br /&gt;
use IAT instead of modeled Tcharge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableIncorporateAFR --&amp;gt;&lt;br /&gt;
==== Disable Incorporate AFR function from SD ====&lt;br /&gt;
Disable incorporate afr function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disable_multiply_by_map --&amp;gt;&lt;br /&gt;
==== Disable multiplying by MAP for fueling ====&lt;br /&gt;
Disable multiplying by MAP for fueling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_for_bypass --&amp;gt;&lt;br /&gt;
==== MAP for bypassing MAP multiply calculations ====&lt;br /&gt;
MAP for bypassing VE calculations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:MAFMAPLoadIsMAF --&amp;gt;&lt;br /&gt;
==== MAFMAP Load Calculations is based on MAF ====&lt;br /&gt;
Use MAFMAP blended engine load in load calculations, MAP is default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:MAFMAPMAXAirmass --&amp;gt;&lt;br /&gt;
==== During Map Prediction, take the higher airmass of maf/map calculations ====&lt;br /&gt;
when map prediction is active, take the higher airmass of maf/map calculations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:TMFLoadIsTMF --&amp;gt;&lt;br /&gt;
==== TMF Load Calculations is based on 100% VE cyl fill ====&lt;br /&gt;
Use TMF 100% ve-based engine load calculation, MAP is default&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:TMFPressureSplitPercentUp --&amp;gt;&lt;br /&gt;
==== TMF map UP margin (manifold pressure split for averaging flow) ====&lt;br /&gt;
averaging manifold pressure split for smoother choked airflow transition UP (%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:TMFPressureSplitPercentDown --&amp;gt;&lt;br /&gt;
==== TMF map DOWN margin (manifold pressure split for averaging flow) ====&lt;br /&gt;
averaging manifold pressure split for smoother choked airflow transition DOWN (%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:LUA --&amp;gt;&lt;br /&gt;
= LUA =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxInputsDialog --&amp;gt;&lt;br /&gt;
== Lua Analog Inputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs1 --&amp;gt;&lt;br /&gt;
==== ADC #1 ====&lt;br /&gt;
auxAnalogInputs 1&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs2 --&amp;gt;&lt;br /&gt;
==== ADC #2 ====&lt;br /&gt;
auxAnalogInputs 2&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs3 --&amp;gt;&lt;br /&gt;
==== ADC #3 ====&lt;br /&gt;
auxAnalogInputs 3&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs4 --&amp;gt;&lt;br /&gt;
==== ADC #4 ====&lt;br /&gt;
auxAnalogInputs 4&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs5 --&amp;gt;&lt;br /&gt;
==== ADC #5 ====&lt;br /&gt;
auxAnalogInputs 5&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs6 --&amp;gt;&lt;br /&gt;
==== ADC #6 ====&lt;br /&gt;
auxAnalogInputs 6&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs7 --&amp;gt;&lt;br /&gt;
==== ADC #7 ====&lt;br /&gt;
auxAnalogInputs 7&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs8 --&amp;gt;&lt;br /&gt;
==== ADC #8 ====&lt;br /&gt;
auxAnalogInputs 8&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:luaDigitalInputsDialog --&amp;gt;&lt;br /&gt;
== Lua Digital Inputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins1 --&amp;gt;&lt;br /&gt;
==== Digital #1 ====&lt;br /&gt;
luaDigitalInputPins 1&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins2 --&amp;gt;&lt;br /&gt;
==== Digital #2 ====&lt;br /&gt;
luaDigitalInputPins 2&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins3 --&amp;gt;&lt;br /&gt;
==== Digital #3 ====&lt;br /&gt;
luaDigitalInputPins 3&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins4 --&amp;gt;&lt;br /&gt;
==== Digital #4 ====&lt;br /&gt;
luaDigitalInputPins 4&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins5 --&amp;gt;&lt;br /&gt;
==== Digital #5 ====&lt;br /&gt;
luaDigitalInputPins 5&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins6 --&amp;gt;&lt;br /&gt;
==== Digital #6 ====&lt;br /&gt;
luaDigitalInputPins 6&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins7 --&amp;gt;&lt;br /&gt;
==== Digital #7 ====&lt;br /&gt;
luaDigitalInputPins 7&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins8 --&amp;gt;&lt;br /&gt;
==== Digital #8 ====&lt;br /&gt;
luaDigitalInputPins 8&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes1 --&amp;gt;&lt;br /&gt;
==== Mode #1 ====&lt;br /&gt;
luaDigitalInputPinModes 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes2 --&amp;gt;&lt;br /&gt;
==== Mode #2 ====&lt;br /&gt;
luaDigitalInputPinModes 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes3 --&amp;gt;&lt;br /&gt;
==== Mode #3 ====&lt;br /&gt;
luaDigitalInputPinModes 3&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes4 --&amp;gt;&lt;br /&gt;
==== Mode #4 ====&lt;br /&gt;
luaDigitalInputPinModes 4&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes5 --&amp;gt;&lt;br /&gt;
==== Mode #5 ====&lt;br /&gt;
luaDigitalInputPinModes 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes6 --&amp;gt;&lt;br /&gt;
==== Mode #6 ====&lt;br /&gt;
luaDigitalInputPinModes 6&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes7 --&amp;gt;&lt;br /&gt;
==== Mode #7 ====&lt;br /&gt;
luaDigitalInputPinModes 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes8 --&amp;gt;&lt;br /&gt;
==== Mode #8 ====&lt;br /&gt;
luaDigitalInputPinModes 8&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:luaOutputs --&amp;gt;&lt;br /&gt;
== Lua Script PWM Outputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins1 --&amp;gt;&lt;br /&gt;
==== output #0 ====&lt;br /&gt;
luaOutputPins 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins2 --&amp;gt;&lt;br /&gt;
==== output #1 ====&lt;br /&gt;
luaOutputPins 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins3 --&amp;gt;&lt;br /&gt;
==== output #2 ====&lt;br /&gt;
luaOutputPins 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins4 --&amp;gt;&lt;br /&gt;
==== output #3 ====&lt;br /&gt;
luaOutputPins 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins5 --&amp;gt;&lt;br /&gt;
==== output #4 ====&lt;br /&gt;
luaOutputPins 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins6 --&amp;gt;&lt;br /&gt;
==== output #5 ====&lt;br /&gt;
luaOutputPins 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins7 --&amp;gt;&lt;br /&gt;
==== output #6 ====&lt;br /&gt;
luaOutputPins 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaOutputPins8 --&amp;gt;&lt;br /&gt;
==== output #7 ====&lt;br /&gt;
luaOutputPins 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:luaCommands --&amp;gt;&lt;br /&gt;
== Lua Buttons ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:accelerometerDlg --&amp;gt;&lt;br /&gt;
= Accelerometer =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSpiImu --&amp;gt;&lt;br /&gt;
==== Use SPI accelerometer ( false = CAN)  ====&lt;br /&gt;
If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mcp3208setup --&amp;gt;&lt;br /&gt;
= MCP3208 ADC devices =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mcp3208spidevice --&amp;gt;&lt;br /&gt;
==== SPI Device ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mcp3208spidevice_1cs --&amp;gt;&lt;br /&gt;
==== SPI Chip Select1 ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mcp3208spidevice_2cs --&amp;gt;&lt;br /&gt;
==== SPI Chip Select2 ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mcp3208spidevice_3cs --&amp;gt;&lt;br /&gt;
==== SPI Chip Select3 ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mcp3208divider --&amp;gt;&lt;br /&gt;
==== voltage divider ====&lt;br /&gt;
input voltage divider used in the mcp3208&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mcp3208vref --&amp;gt;&lt;br /&gt;
==== vref ====&lt;br /&gt;
VREF used in the mcp3208&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputs --&amp;gt;&lt;br /&gt;
= EGT =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputsCan --&amp;gt;&lt;br /&gt;
== CAN EGT sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableAemXSeriesEgt --&amp;gt;&lt;br /&gt;
==== CAN EGT (AEM X series of RusEFI) ====&lt;br /&gt;
AEM X-Series EGT gauge kit or rusEFI EGT sensor from Wideband controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecumasterEgtToCan --&amp;gt;&lt;br /&gt;
==== Enable EcuMaster EGT to CAN ====&lt;br /&gt;
Read EcuMaster EGT to CAN. Expects little endian (Intel), and the CAN IDs specified below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecumasterEgtToCanBaseId --&amp;gt;&lt;br /&gt;
==== EcuMaster EGT to CAN base address ====&lt;br /&gt;
Default 1552 for EMU Classic, 1632 for EMU Black.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputsSpi --&amp;gt;&lt;br /&gt;
== SPI EGT sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disablemax31855 --&amp;gt;&lt;br /&gt;
==== Disable Max 31855 ====&lt;br /&gt;
Disable onboard EGT31855&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855spiDevice --&amp;gt;&lt;br /&gt;
==== MAX31855/MAX31856 SPI ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs1 --&amp;gt;&lt;br /&gt;
==== CS for EGT1 ====&lt;br /&gt;
max31855_cs 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs2 --&amp;gt;&lt;br /&gt;
==== CS for EGT2 ====&lt;br /&gt;
max31855_cs 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs3 --&amp;gt;&lt;br /&gt;
==== CS for EGT3 ====&lt;br /&gt;
max31855_cs 3&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs4 --&amp;gt;&lt;br /&gt;
==== CS for EGT4 ====&lt;br /&gt;
max31855_cs 4&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs5 --&amp;gt;&lt;br /&gt;
==== CS for EGT5 ====&lt;br /&gt;
max31855_cs 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs6 --&amp;gt;&lt;br /&gt;
==== CS for EGT6 ====&lt;br /&gt;
max31855_cs 6&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs7 --&amp;gt;&lt;br /&gt;
==== CS for EGT7 ====&lt;br /&gt;
max31855_cs 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs8 --&amp;gt;&lt;br /&gt;
==== CS for EGT8 ====&lt;br /&gt;
max31855_cs 8&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Expert --&amp;gt;&lt;br /&gt;
= Expert =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBuses --&amp;gt;&lt;br /&gt;
== SPI Buses ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBus1 --&amp;gt;&lt;br /&gt;
=== SPI1 settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:is_enabled_spi_1 --&amp;gt;&lt;br /&gt;
==== SPI1 Enable ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1mosiPin --&amp;gt;&lt;br /&gt;
==== MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1MosiMode --&amp;gt;&lt;br /&gt;
==== MOSI mode ====&lt;br /&gt;
Modes count be used for 3v&amp;lt;&amp;gt;5v integration using pull-ups/pull-downs etc.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1misoPin --&amp;gt;&lt;br /&gt;
==== MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1MisoMode --&amp;gt;&lt;br /&gt;
==== MISO mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1sckPin --&amp;gt;&lt;br /&gt;
==== SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1SckMode --&amp;gt;&lt;br /&gt;
==== SCK mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBus2 --&amp;gt;&lt;br /&gt;
=== SPI2 settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:is_enabled_spi_2 --&amp;gt;&lt;br /&gt;
==== SPI2 Enable ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2mosiPin --&amp;gt;&lt;br /&gt;
==== MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2MosiMode --&amp;gt;&lt;br /&gt;
==== MOSI mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2misoPin --&amp;gt;&lt;br /&gt;
==== MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2MisoMode --&amp;gt;&lt;br /&gt;
==== MISO mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2sckPin --&amp;gt;&lt;br /&gt;
==== SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2SckMode --&amp;gt;&lt;br /&gt;
==== SCK mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBus3 --&amp;gt;&lt;br /&gt;
=== SPI3 settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:is_enabled_spi_3 --&amp;gt;&lt;br /&gt;
==== SPI3 Enable ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3mosiPin --&amp;gt;&lt;br /&gt;
==== MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3MosiMode --&amp;gt;&lt;br /&gt;
==== MOSI mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3misoPin --&amp;gt;&lt;br /&gt;
==== MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3MisoMode --&amp;gt;&lt;br /&gt;
==== MISO mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3sckPin --&amp;gt;&lt;br /&gt;
==== SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3SckMode --&amp;gt;&lt;br /&gt;
==== SCK mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBus4 --&amp;gt;&lt;br /&gt;
=== SPI4 settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:is_enabled_spi_4 --&amp;gt;&lt;br /&gt;
==== SPI4 Enable ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBus5 --&amp;gt;&lt;br /&gt;
=== SPI5 settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:is_enabled_spi_5 --&amp;gt;&lt;br /&gt;
==== SPI5 Enable ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiBus6 --&amp;gt;&lt;br /&gt;
=== SPI6 settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:is_enabled_spi_6 --&amp;gt;&lt;br /&gt;
==== SPI6 Enable ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spiDevices --&amp;gt;&lt;br /&gt;
== SPI Devices ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSpiImu#1 --&amp;gt;&lt;br /&gt;
==== Use SPI accelerometer ====&lt;br /&gt;
If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:monitoringSettings --&amp;gt;&lt;br /&gt;
== rusEFI console ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:engineSnifferRpmThreshold --&amp;gt;&lt;br /&gt;
==== Engine Sniffer Threshold ====&lt;br /&gt;
Engine sniffer would be disabled above this rpm&lt;br /&gt;
set engineSnifferRpmThreshold X&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:allPins1 --&amp;gt;&lt;br /&gt;
== Full pinout 1/3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorPins1 --&amp;gt;&lt;br /&gt;
==== trigger stimulator output #1 ====&lt;br /&gt;
Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.&lt;br /&gt;
See also directSelfStimulation which is different. 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorPins2 --&amp;gt;&lt;br /&gt;
==== trigger stimulator output #2 ====&lt;br /&gt;
Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.&lt;br /&gt;
See also directSelfStimulation which is different. 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:camSimulatorPin --&amp;gt;&lt;br /&gt;
==== camSimulatorPin ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tle6240_cs --&amp;gt;&lt;br /&gt;
==== tle6240_cs ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tle6240spiDevice --&amp;gt;&lt;br /&gt;
==== tle6240 SPI ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tachOutputPin --&amp;gt;&lt;br /&gt;
==== Tachometer output ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:o2heaterPin --&amp;gt;&lt;br /&gt;
==== Narrowband O2 heater output ====&lt;br /&gt;
On-off O2 sensor heater control. &#039;ON&#039; if engine is running, &#039;OFF&#039; if stopped or cranking.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Primary output ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:secondSolenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Secondary output ====&lt;br /&gt;
Some Subaru and some Mazda use double-solenoid idle air valve&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_stepperDirectionPin --&amp;gt;&lt;br /&gt;
==== Idle Stepper Dir ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_stepperStepPin --&amp;gt;&lt;br /&gt;
==== Idle Stepper Step ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:stepperEnablePin --&amp;gt;&lt;br /&gt;
==== Idle Stepper Enable ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelPumpPin --&amp;gt;&lt;br /&gt;
==== Fuel Pump output ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:malfunctionIndicatorPin --&amp;gt;&lt;br /&gt;
==== MIL/Check Engine output ====&lt;br /&gt;
Check engine light, also malfunction indicator light. Always blinks once on boot.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fanPin --&amp;gt;&lt;br /&gt;
==== Fan Pin ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acRelayPin --&amp;gt;&lt;br /&gt;
==== A/C Relay ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mainRelayPin --&amp;gt;&lt;br /&gt;
==== Main Relay Pin ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:starterRelayDisablePin --&amp;gt;&lt;br /&gt;
==== Starter Relay Pin ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs1#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #1 ====&lt;br /&gt;
auxAnalogInputs 1&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs2#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #2 ====&lt;br /&gt;
auxAnalogInputs 2&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs3#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #3 ====&lt;br /&gt;
auxAnalogInputs 3&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs4#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #4 ====&lt;br /&gt;
auxAnalogInputs 4&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs5#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #5 ====&lt;br /&gt;
auxAnalogInputs 5&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs6#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #6 ====&lt;br /&gt;
auxAnalogInputs 6&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs7#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #7 ====&lt;br /&gt;
auxAnalogInputs 7&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs8#1 --&amp;gt;&lt;br /&gt;
==== Aux ADC #8 ====&lt;br /&gt;
auxAnalogInputs 8&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1mosiPin#1 --&amp;gt;&lt;br /&gt;
==== SPI1 MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1misoPin#1 --&amp;gt;&lt;br /&gt;
==== SPI1 MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi1sckPin#1 --&amp;gt;&lt;br /&gt;
==== SPI1 SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2mosiPin#1 --&amp;gt;&lt;br /&gt;
==== SPI2 MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2misoPin#1 --&amp;gt;&lt;br /&gt;
==== SPI2 MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi2sckPin#1 --&amp;gt;&lt;br /&gt;
==== SPI2 SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3mosiPin#1 --&amp;gt;&lt;br /&gt;
==== SPI3 MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3misoPin#1 --&amp;gt;&lt;br /&gt;
==== SPI3 MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi3sckPin#1 --&amp;gt;&lt;br /&gt;
==== SPI3 SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi4mosiPin --&amp;gt;&lt;br /&gt;
==== SPI4 MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi4misoPin --&amp;gt;&lt;br /&gt;
==== SPI4 MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi4sckPin --&amp;gt;&lt;br /&gt;
==== SPI4 SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi5mosiPin --&amp;gt;&lt;br /&gt;
==== SPI5 MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi5misoPin --&amp;gt;&lt;br /&gt;
==== SPI5 MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi5sckPin --&amp;gt;&lt;br /&gt;
==== SPI5 SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi6mosiPin --&amp;gt;&lt;br /&gt;
==== SPI6 MOSI ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi6misoPin --&amp;gt;&lt;br /&gt;
==== SPI6 MISO ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:spi6sckPin --&amp;gt;&lt;br /&gt;
==== SPI6 SCK ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cdmInputPin --&amp;gt;&lt;br /&gt;
==== Saab CDM knock ====&lt;br /&gt;
Saab Combustion Detection Module knock signal input pin&lt;br /&gt;
also known as Saab Ion Sensing Module&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:drv8860_cs --&amp;gt;&lt;br /&gt;
==== DRV8860 CS ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:drv8860_csPinMode --&amp;gt;&lt;br /&gt;
==== DRV8860 CS Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:drv8860_miso --&amp;gt;&lt;br /&gt;
==== DRV8860 MISO pin ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:drv8860spiDevice --&amp;gt;&lt;br /&gt;
==== DRV8860 SPI ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:allPins2 --&amp;gt;&lt;br /&gt;
== Full pinout 2/3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins1 --&amp;gt;&lt;br /&gt;
==== Injection Output 1 ====&lt;br /&gt;
injectionPins 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins2 --&amp;gt;&lt;br /&gt;
==== Injection Output 2 ====&lt;br /&gt;
injectionPins 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins3 --&amp;gt;&lt;br /&gt;
==== Injection Output 3 ====&lt;br /&gt;
injectionPins 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins4 --&amp;gt;&lt;br /&gt;
==== Injection Output 4 ====&lt;br /&gt;
injectionPins 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins5 --&amp;gt;&lt;br /&gt;
==== Injection Output 5  ====&lt;br /&gt;
injectionPins 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins6 --&amp;gt;&lt;br /&gt;
==== Injection Output 6  ====&lt;br /&gt;
injectionPins 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins7 --&amp;gt;&lt;br /&gt;
==== Injection Output 7  ====&lt;br /&gt;
injectionPins 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPins8 --&amp;gt;&lt;br /&gt;
==== Injection Output 8  ====&lt;br /&gt;
injectionPins 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin1 --&amp;gt;&lt;br /&gt;
==== auxSpeedSensorInputPin1 ====&lt;br /&gt;
auxSpeedSensorInputPin 1&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin2 --&amp;gt;&lt;br /&gt;
==== auxSpeedSensorInputPin2 ====&lt;br /&gt;
auxSpeedSensorInputPin 2&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin3 --&amp;gt;&lt;br /&gt;
==== auxSpeedSensorInputPin3 ====&lt;br /&gt;
auxSpeedSensorInputPin 3&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin4 --&amp;gt;&lt;br /&gt;
==== auxSpeedSensorInputPin4 ====&lt;br /&gt;
auxSpeedSensorInputPin 4&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins1 --&amp;gt;&lt;br /&gt;
==== Ignition Output 1 ====&lt;br /&gt;
ignitionPins 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins2 --&amp;gt;&lt;br /&gt;
==== Ignition Output 2 ====&lt;br /&gt;
ignitionPins 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins3 --&amp;gt;&lt;br /&gt;
==== Ignition Output 3 ====&lt;br /&gt;
ignitionPins 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins4 --&amp;gt;&lt;br /&gt;
==== Ignition Output 4 ====&lt;br /&gt;
ignitionPins 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins5 --&amp;gt;&lt;br /&gt;
==== Ignition Output 5 ====&lt;br /&gt;
ignitionPins 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins6 --&amp;gt;&lt;br /&gt;
==== Ignition Output 6 ====&lt;br /&gt;
ignitionPins 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins7 --&amp;gt;&lt;br /&gt;
==== Ignition Output 7 ====&lt;br /&gt;
ignitionPins 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPins8 --&amp;gt;&lt;br /&gt;
==== Ignition Output 8 ====&lt;br /&gt;
ignitionPins 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:debugTriggerSync --&amp;gt;&lt;br /&gt;
==== Debug Trigger Sync ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:allPinsMC33 --&amp;gt;&lt;br /&gt;
=== MC33816 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mc33816_cs --&amp;gt;&lt;br /&gt;
==== Chip Select ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mc33816_rstb --&amp;gt;&lt;br /&gt;
==== rstb ====&lt;br /&gt;
ResetB&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mc33816_flag0 --&amp;gt;&lt;br /&gt;
==== flag0 ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mc33816_driven --&amp;gt;&lt;br /&gt;
==== mc33816_driven ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mc33816spiDevice --&amp;gt;&lt;br /&gt;
==== mc33816spiDevice ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hpfpValvePin --&amp;gt;&lt;br /&gt;
==== hpfpValvePin ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:allPins3_1_and_2 --&amp;gt;&lt;br /&gt;
== Full pinout 3/3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:allPinsSensors --&amp;gt;&lt;br /&gt;
=== Sensors ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:throttlePedalPositionAdcChannel --&amp;gt;&lt;br /&gt;
==== Throttle pedal Position Channel ====&lt;br /&gt;
Electronic throttle pedal position first channel&lt;br /&gt;
See throttlePedalPositionSecondAdcChannel for second channel&lt;br /&gt;
See also tps1_1AdcChannel&lt;br /&gt;
See throttlePedalUpVoltage and throttlePedalWOTVoltage&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:throttlePedalPositionSecondAdcChannel --&amp;gt;&lt;br /&gt;
==== Throttle pedal Position #2 ====&lt;br /&gt;
Electronic throttle pedal position input&lt;br /&gt;
Second channel&lt;br /&gt;
See also tps1_1AdcChannel&lt;br /&gt;
See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerInputPins1 --&amp;gt;&lt;br /&gt;
==== Primary input channel ====&lt;br /&gt;
triggerInputPins 1&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerInputPins2 --&amp;gt;&lt;br /&gt;
==== Secondary channel ====&lt;br /&gt;
triggerInputPins 2&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:camInputs1 --&amp;gt;&lt;br /&gt;
==== Cam Sync/VVT input ====&lt;br /&gt;
Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as &#039;primary&#039; channel, or it could be used for Variable Valve timing on one of the camshafts. 1&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_adcChannel --&amp;gt;&lt;br /&gt;
==== CLT ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_adcChannel --&amp;gt;&lt;br /&gt;
==== IAT ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vbattAdcChannel --&amp;gt;&lt;br /&gt;
==== vBatt ADC input ====&lt;br /&gt;
This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB.&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps1_1AdcChannel --&amp;gt;&lt;br /&gt;
==== TPS1 ADC input ====&lt;br /&gt;
First throttle body, first sensor. See also pedalPositionAdcChannel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps2_1AdcChannel --&amp;gt;&lt;br /&gt;
==== TPS2 ADC input ====&lt;br /&gt;
Second throttle body position sensor, single channel so far&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafAdcChannel --&amp;gt;&lt;br /&gt;
==== MAF ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:maf2AdcChannel --&amp;gt;&lt;br /&gt;
==== MAF 2 ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:frequencyMafChannel --&amp;gt;&lt;br /&gt;
==== Frequency MAF ====&lt;br /&gt;
Frequency MAF channel&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_hwChannel --&amp;gt;&lt;br /&gt;
==== AFR ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_hwChannel2 --&amp;gt;&lt;br /&gt;
==== AFR 2 ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_hwChannel --&amp;gt;&lt;br /&gt;
==== Baro ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensor_hwChannel --&amp;gt;&lt;br /&gt;
==== MAP ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelLevelSensor --&amp;gt;&lt;br /&gt;
==== Fuel Level input ====&lt;br /&gt;
This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined.&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vehicleSpeedSensorInputPin --&amp;gt;&lt;br /&gt;
==== Vehicle Speed input ====&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPin --&amp;gt;&lt;br /&gt;
==== Clutch Down input ====&lt;br /&gt;
Some cars have a switch to indicate that clutch pedal is all the way down&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPin --&amp;gt;&lt;br /&gt;
==== Clutch Up input ====&lt;br /&gt;
Some vehicles have a switch to indicate that clutch pedal is all the way up&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:brakePedalPin --&amp;gt;&lt;br /&gt;
==== Brake pedal input ====&lt;br /&gt;
Brake pedal switch&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acSwitch --&amp;gt;&lt;br /&gt;
==== A/C Switch ====&lt;br /&gt;
A/C button input&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPin --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch ====&lt;br /&gt;
Transmission idle up switch input&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_adcChannel --&amp;gt;&lt;br /&gt;
==== Aux Temperature #1 ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_adcChannel --&amp;gt;&lt;br /&gt;
==== Aux Temperature #2 ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxFastSensor1_adcChannel --&amp;gt;&lt;br /&gt;
==== Aux Fast Analog ====&lt;br /&gt;
Useful in Research&amp;amp;Development phase&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins1 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 1 intake ====&lt;br /&gt;
VVT output solenoid pin for this cam 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins2 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 1 exhaust ====&lt;br /&gt;
VVT output solenoid pin for this cam 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins3 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 2 intake ====&lt;br /&gt;
VVT output solenoid pin for this cam 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins4 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 2 exhaust ====&lt;br /&gt;
VVT output solenoid pin for this cam 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxValves1 --&amp;gt;&lt;br /&gt;
==== Aux Valve #1 ====&lt;br /&gt;
auxValves 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxValves2 --&amp;gt;&lt;br /&gt;
==== Aux Valve #2 ====&lt;br /&gt;
auxValves 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tle8888_cs --&amp;gt;&lt;br /&gt;
==== TLE8888 Chip Select ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tle8888spiDevice --&amp;gt;&lt;br /&gt;
==== TLE 8888 spi ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:l9779_cs --&amp;gt;&lt;br /&gt;
==== L9779 Chip Select ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:startStopButtonPin --&amp;gt;&lt;br /&gt;
==== Start/Stop Button ====&lt;br /&gt;
See also starterControlPin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:crankingTpsCurve --&amp;gt;&lt;br /&gt;
== Cranking Fuel TPS Multiplier ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:dcMotorActuatorHw --&amp;gt;&lt;br /&gt;
== ETB / DC motor actuator(s) hardware ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:dcHbridgeHardware --&amp;gt;&lt;br /&gt;
=== H-Bridge Hardware ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etb_use_two_wires --&amp;gt;&lt;br /&gt;
==== Two-wire mode ====&lt;br /&gt;
TLE7209 and L6205 use two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:connection --&amp;gt;&lt;br /&gt;
== Secondary Serial ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tsPort --&amp;gt;&lt;br /&gt;
=== Calibration Secondary Serial ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tunerStudioSerialSpeed --&amp;gt;&lt;br /&gt;
==== tunerStudioSerialSpeed ====&lt;br /&gt;
Secondary TTL channel baud rate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:binarySerialTxPin --&amp;gt;&lt;br /&gt;
==== TX pin ====&lt;br /&gt;
See also EFI_CONSOLE_RX_BRAIN_PIN&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:binarySerialRxPin --&amp;gt;&lt;br /&gt;
==== RX pin ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:uartConsoleSerialSpeed --&amp;gt;&lt;br /&gt;
==== uartConsoleSerialSpeed ====&lt;br /&gt;
Band rate for primary TTL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableKline --&amp;gt;&lt;br /&gt;
==== enableKline ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:baroSettings --&amp;gt;&lt;br /&gt;
== Barometer sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:baroSettingsContent --&amp;gt;&lt;br /&gt;
=== Barometer sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useFixedBaroCorrFromMap --&amp;gt;&lt;br /&gt;
==== Grab baro value from MAP ====&lt;br /&gt;
Read MAP sensor on ECU start-up to use as baro value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogBaroSettings --&amp;gt;&lt;br /&gt;
==== Analog Sensor ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_hwChannel#1 --&amp;gt;&lt;br /&gt;
==== Baro input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_type --&amp;gt;&lt;br /&gt;
==== Type ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_lowValue --&amp;gt;&lt;br /&gt;
==== BARO value low point ====&lt;br /&gt;
kPa value at low volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroLowValueVoltage --&amp;gt;&lt;br /&gt;
==== BARO voltage low point ====&lt;br /&gt;
BARO voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_highValue --&amp;gt;&lt;br /&gt;
==== BARO value high point ====&lt;br /&gt;
kPa value at high volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroHighValueVoltage --&amp;gt;&lt;br /&gt;
==== BARO voltage high value ====&lt;br /&gt;
BARO voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:digitalBaroSettings --&amp;gt;&lt;br /&gt;
==== Digital Sensor ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lps25BaroSensorScl --&amp;gt;&lt;br /&gt;
==== LPS2x Baro SCL ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lps25BaroSensorSda --&amp;gt;&lt;br /&gt;
==== LPS2x Baro SDA ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:hondaKDialog --&amp;gt;&lt;br /&gt;
== Honda K ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaKcltGaugeAdder --&amp;gt;&lt;br /&gt;
==== CLT Gauge Adder ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:use_honda_k_ac --&amp;gt;&lt;br /&gt;
==== Use Honda K for AC switch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:klineAcDebounceTime --&amp;gt;&lt;br /&gt;
==== K line AC debounce time ====&lt;br /&gt;
seconds to debounce kline ac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:kLineDoHondaSend --&amp;gt;&lt;br /&gt;
==== K-Line Do Honda Send ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:kLineBaudRate --&amp;gt;&lt;br /&gt;
==== K-Line Baud Rate ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:kLinePeriodUs --&amp;gt;&lt;br /&gt;
==== K-Line Period Us ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseKLine --&amp;gt;&lt;br /&gt;
==== K-Line Verbose ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK --&amp;gt;&lt;br /&gt;
==== K-Line Honda ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_blipSends --&amp;gt;&lt;br /&gt;
==== Send different kvalue[0] / kvalue[1] every X sends ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_batLightOn --&amp;gt;&lt;br /&gt;
==== K-Line battery light on kvalue[2] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_batLightOff --&amp;gt;&lt;br /&gt;
==== K-Line battery light off kvalue[2] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_battery_threshold --&amp;gt;&lt;br /&gt;
==== K-Line battery light on below V, engine off ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_battery_thresholdEngineOn --&amp;gt;&lt;br /&gt;
==== K-Line battery light on below V, engine on ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_battery_hysteresis --&amp;gt;&lt;br /&gt;
==== K-Line battery V hysteresis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:batteryAverageExp --&amp;gt;&lt;br /&gt;
==== K-Line battery V average exp ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues0 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[0] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues1 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[1] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues2 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[2] battery light ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues3 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[3] clt  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues4 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[4] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues5 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[5] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues6 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[6] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaK_kvalues7 --&amp;gt;&lt;br /&gt;
==== K-Line kvalues[7] ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:hondaCanDialog --&amp;gt;&lt;br /&gt;
== Honda CAN ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaCanGen --&amp;gt;&lt;br /&gt;
==== Honda CAN Generation ====&lt;br /&gt;
Honda CAN generation - changes RPM message size&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1st Gen (7 bytes)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2nd Gen (4 bytes)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3rd Gen (8 bytes)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hondaCanSpeedUnit --&amp;gt;&lt;br /&gt;
==== Speed Unit ====&lt;br /&gt;
Honda CAN speed multiplier - KMH uses 100x, MPH uses 160x&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;KMH (100x)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MPH (160x)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:parkingLot --&amp;gt;&lt;br /&gt;
== Experimental 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:uiMode --&amp;gt;&lt;br /&gt;
==== uiMode ====&lt;br /&gt;
* &#039;&#039;&#039;Full&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Tuning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:can1ListenMode --&amp;gt;&lt;br /&gt;
==== can1ListenMode ====&lt;br /&gt;
ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:can2ListenMode --&amp;gt;&lt;br /&gt;
==== can2ListenMode ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rethrowHardFault --&amp;gt;&lt;br /&gt;
==== rethrowHardFault ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canGpioType --&amp;gt;&lt;br /&gt;
==== canGpioType ====&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;DRT protocol&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MS protocol&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:yesUnderstandLocking --&amp;gt;&lt;br /&gt;
==== I understand ECU Locking ====&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tuneHidingKey --&amp;gt;&lt;br /&gt;
==== Tune read/write password ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseQuad --&amp;gt;&lt;br /&gt;
==== verboseQuad ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtBooleanForVerySpecialCases --&amp;gt;&lt;br /&gt;
==== vvtBooleanForVerySpecialCases ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:watchOutForLinearTime --&amp;gt;&lt;br /&gt;
==== watchOutForLinearTime ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseIsoTp --&amp;gt;&lt;br /&gt;
==== TS over CAN debug ====&lt;br /&gt;
Are you a developer troubleshooting TS over CAN ISO/TP?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerEventsTimeoutMs --&amp;gt;&lt;br /&gt;
==== Engine Movement Recently Timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:injectionPinMode --&amp;gt;&lt;br /&gt;
==== injection Output(s) Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignitionPinMode --&amp;gt;&lt;br /&gt;
==== Ignition Output Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:consumeObdSensors --&amp;gt;&lt;br /&gt;
==== consumeObdSensors ====&lt;br /&gt;
This property is useful if using rusEFI as TCM or BCM only&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:allowIdenticalPps --&amp;gt;&lt;br /&gt;
==== Allow Identical PPS - no redundancy for ETB ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignore_tps_pps_sensors_too_close --&amp;gt;&lt;br /&gt;
==== Ignore TPS/PPS sensors too close  (BRZ/FRS/GT86) ====&lt;br /&gt;
Ignore TPS/PPS sensors too close to each other&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:alwaysInstantRpm --&amp;gt;&lt;br /&gt;
==== Always use instant RPM ====&lt;br /&gt;
RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:modeledFlowIdle --&amp;gt;&lt;br /&gt;
==== Modeled flow idle ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleMaximumAirmass --&amp;gt;&lt;br /&gt;
==== Max idle flow ====&lt;br /&gt;
Maximum commanded airmass for the idle controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:turbochargerFilter --&amp;gt;&lt;br /&gt;
==== turbochargerFilter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxFrequencyFilter --&amp;gt;&lt;br /&gt;
==== auxFrequencyFilter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnAuxSpeedSensors --&amp;gt;&lt;br /&gt;
==== useBiQuadOnAuxSpeedSensors ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:kickStartCranking --&amp;gt;&lt;br /&gt;
==== TODO KS mode 4569 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useAdvanceCorrectionsForCranking --&amp;gt;&lt;br /&gt;
==== Use Advance Ignition Corrections for cranking ====&lt;br /&gt;
This enables the various ignition corrections during cranking (IAT, CLT and PID idle).&lt;br /&gt;
You probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:parkingLot2 --&amp;gt;&lt;br /&gt;
== Experimental 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:dacOutputPins1 --&amp;gt;&lt;br /&gt;
==== dacOutputPins1 ====&lt;br /&gt;
dacOutputPins 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:dacOutputPins2 --&amp;gt;&lt;br /&gt;
==== dacOutputPins2 ====&lt;br /&gt;
dacOutputPins 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaCanRxWorkaround --&amp;gt;&lt;br /&gt;
==== luaCanRxWorkaround CAN performance hack ====&lt;br /&gt;
global_can_data performance hack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canInputBCM --&amp;gt;&lt;br /&gt;
==== Read RPM matching VSS profile ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeed1Multiplier --&amp;gt;&lt;br /&gt;
==== auxSpeed1Multiplier ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:brakeMeanEffectivePressureDifferential --&amp;gt;&lt;br /&gt;
==== brakeMeanEffectivePressureDifferential ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:trigger_advanced --&amp;gt;&lt;br /&gt;
== Advanced Trigger ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:camSyncOnSecondCrankRevolution --&amp;gt;&lt;br /&gt;
==== Cam sync crank revolution ====&lt;br /&gt;
Does the cam sensor signal indicate a sync on the second or first engine phase?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;first&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;second&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapCamDetectionAnglePosition --&amp;gt;&lt;br /&gt;
==== MAP readout angle ====&lt;br /&gt;
Magic engine phase: we compare instant MAP at X to instant MAP at x+360 angle in one complete cycle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapSyncThreshold --&amp;gt;&lt;br /&gt;
==== MAP delta threshold ====&lt;br /&gt;
Delta kPa for MAP sync&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useNoiselessTriggerDecoder --&amp;gt;&lt;br /&gt;
==== Enable noise filtering ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:trigger_console --&amp;gt;&lt;br /&gt;
=== Console Logging ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseVVTDecoding --&amp;gt;&lt;br /&gt;
==== Print verbose VVT sync details to console ====&lt;br /&gt;
Verbose info in console below engineSnifferRpmThreshold&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseTriggerSynchDetails --&amp;gt;&lt;br /&gt;
==== Print verbose trigger sync to console ====&lt;br /&gt;
Verbose info in console below engineSnifferRpmThreshold&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:displayLogicLevelsInEngineSniffer --&amp;gt;&lt;br /&gt;
==== Display logic signals ====&lt;br /&gt;
Shall we display real life signal or just the part consumed by trigger decoder.&lt;br /&gt;
Applies to both trigger and cam/vvt input.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:silentTriggerError --&amp;gt;&lt;br /&gt;
==== Do not print messages in case of sync error ====&lt;br /&gt;
Sometimes we have a performance issue while printing error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:engineSnifferFocusOnInputs --&amp;gt;&lt;br /&gt;
==== Focus on inputs in engine sniffer ====&lt;br /&gt;
In this mode only trigger events go into engine sniffer and not coils/injectors etc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggerConfiguration_gap --&amp;gt;&lt;br /&gt;
== Trigger Gap Override ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overrideTriggerGaps --&amp;gt;&lt;br /&gt;
==== Override well known trigger gaps ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gapTrackingLengthOverride --&amp;gt;&lt;br /&gt;
==== gapTrackingLengthOverride ====&lt;br /&gt;
How many consecutive gap rations have to match expected ranges for sync to happen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom1 --&amp;gt;&lt;br /&gt;
==== First gap from ====&lt;br /&gt;
triggerGapOverrideFrom 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo1 --&amp;gt;&lt;br /&gt;
==== First gap to ====&lt;br /&gt;
triggerGapOverrideTo 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom2 --&amp;gt;&lt;br /&gt;
==== Second gap from ====&lt;br /&gt;
triggerGapOverrideFrom 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo2 --&amp;gt;&lt;br /&gt;
==== Second gap to ====&lt;br /&gt;
triggerGapOverrideTo 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom3 --&amp;gt;&lt;br /&gt;
==== Gap #3 from ====&lt;br /&gt;
triggerGapOverrideFrom 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo3 --&amp;gt;&lt;br /&gt;
==== Gap #3 to ====&lt;br /&gt;
triggerGapOverrideTo 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom4 --&amp;gt;&lt;br /&gt;
==== Gap #4 from ====&lt;br /&gt;
triggerGapOverrideFrom 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo4 --&amp;gt;&lt;br /&gt;
==== Gap #4 to ====&lt;br /&gt;
triggerGapOverrideTo 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom5 --&amp;gt;&lt;br /&gt;
==== Gap #5 from ====&lt;br /&gt;
triggerGapOverrideFrom 5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo5 --&amp;gt;&lt;br /&gt;
==== Gap #5 to ====&lt;br /&gt;
triggerGapOverrideTo 5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom6 --&amp;gt;&lt;br /&gt;
==== Gap #6 from ====&lt;br /&gt;
triggerGapOverrideFrom 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo6 --&amp;gt;&lt;br /&gt;
==== Gap #6 to ====&lt;br /&gt;
triggerGapOverrideTo 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom7 --&amp;gt;&lt;br /&gt;
==== Gap #7 from ====&lt;br /&gt;
triggerGapOverrideFrom 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo7 --&amp;gt;&lt;br /&gt;
==== Gap #7 to ====&lt;br /&gt;
triggerGapOverrideTo 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideFrom8 --&amp;gt;&lt;br /&gt;
==== Gap #8 from ====&lt;br /&gt;
triggerGapOverrideFrom 8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerGapOverrideTo8 --&amp;gt;&lt;br /&gt;
==== Gap #8 to ====&lt;br /&gt;
triggerGapOverrideTo 8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overrideVvtTriggerGaps --&amp;gt;&lt;br /&gt;
==== Override well known VVT gaps ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gapVvtTrackingLengthOverride --&amp;gt;&lt;br /&gt;
==== gapVvtTrackingLengthOverride ====&lt;br /&gt;
How many consecutive VVT gap rations have to match expected ranges for sync to happen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideFrom1 --&amp;gt;&lt;br /&gt;
==== First VVT gap from ====&lt;br /&gt;
triggerVVTGapOverrideFrom 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideTo1 --&amp;gt;&lt;br /&gt;
==== First VVT gap to ====&lt;br /&gt;
triggerVVTGapOverrideTo 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideFrom2 --&amp;gt;&lt;br /&gt;
==== Second VVT gap from ====&lt;br /&gt;
triggerVVTGapOverrideFrom 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideTo2 --&amp;gt;&lt;br /&gt;
==== Second VVT gap to ====&lt;br /&gt;
triggerVVTGapOverrideTo 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideFrom3 --&amp;gt;&lt;br /&gt;
==== VVT gap #3 from ====&lt;br /&gt;
triggerVVTGapOverrideFrom 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideTo3 --&amp;gt;&lt;br /&gt;
==== VVT gap #3 to ====&lt;br /&gt;
triggerVVTGapOverrideTo 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideFrom4 --&amp;gt;&lt;br /&gt;
==== VVT gap #4 from ====&lt;br /&gt;
triggerVVTGapOverrideFrom 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerVVTGapOverrideTo4 --&amp;gt;&lt;br /&gt;
==== VVT gap #4 to ====&lt;br /&gt;
triggerVVTGapOverrideTo 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:harleyAcr --&amp;gt;&lt;br /&gt;
== Harley ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acrPin --&amp;gt;&lt;br /&gt;
==== Pin ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acrPin2 --&amp;gt;&lt;br /&gt;
==== Pin 2 ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acrRevolutions --&amp;gt;&lt;br /&gt;
==== Disable after revolutions ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acrDisablePhase --&amp;gt;&lt;br /&gt;
==== Disable after engine phase ====&lt;br /&gt;
During revolution where ACR should be disabled at what specific angle to disengage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:harleyAcrSprayFuel --&amp;gt;&lt;br /&gt;
==== Spray Fuel during ACR ====&lt;br /&gt;
Spray fuel with ACR active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleFlowEstimate --&amp;gt;&lt;br /&gt;
== Idle flow estimate ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleAirmassTimingEquivalence --&amp;gt;&lt;br /&gt;
== Idle airmass/timing equivalence ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:throttleEffectiveArea --&amp;gt;&lt;br /&gt;
== Throttle effective area ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:torque2TableTbl --&amp;gt;&lt;br /&gt;
== TMF ==&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Controller&amp;diff=478</id>
		<title>Config:Controller</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Controller&amp;diff=478"/>
		<updated>2026-06-06T22:19:31Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;!-- section:ecuStimulator --&amp;gt; = ECU stimulator =  &amp;lt;!-- field:triggerSimulatorRpm --&amp;gt; ==== Trigger Simulator ====  &amp;lt;!-- field:stimulatorBench --&amp;gt; ==== Stimulator Bench extension ==== Stimulator is running bench counts and injector pulsewidths  &amp;lt;!-- field:benchTestCount --&amp;gt; ==== Count ==== How many test bench pulses do you want  &amp;lt;!-- field:benchTestOnTime --&amp;gt; ==== Injector Pulsewidth Override ==== Duration of each test pulse  &amp;lt;!-- field:triggerSimulatorPins1 --&amp;gt; ==== trig...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:ecuStimulator --&amp;gt;&lt;br /&gt;
= ECU stimulator =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorRpm --&amp;gt;&lt;br /&gt;
==== Trigger Simulator ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:stimulatorBench --&amp;gt;&lt;br /&gt;
==== Stimulator Bench extension ====&lt;br /&gt;
Stimulator is running bench counts and injector pulsewidths&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:benchTestCount --&amp;gt;&lt;br /&gt;
==== Count ====&lt;br /&gt;
How many test bench pulses do you want&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:benchTestOnTime --&amp;gt;&lt;br /&gt;
==== Injector Pulsewidth Override ====&lt;br /&gt;
Duration of each test pulse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorPins1 --&amp;gt;&lt;br /&gt;
==== trigger stimulator output #1 ====&lt;br /&gt;
Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.&lt;br /&gt;
See also directSelfStimulation which is different. 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorPinModes1 --&amp;gt;&lt;br /&gt;
==== trigger stimulator output mode #1 ====&lt;br /&gt;
triggerSimulatorPinModes 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorPins2 --&amp;gt;&lt;br /&gt;
==== trigger stimulator output #2 ====&lt;br /&gt;
Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.&lt;br /&gt;
See also directSelfStimulation which is different. 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggerSimulatorPinModes2 --&amp;gt;&lt;br /&gt;
==== trigger stimulator output mode #2 ====&lt;br /&gt;
triggerSimulatorPinModes 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:camSimulatorPin --&amp;gt;&lt;br /&gt;
==== camSimulatorPin ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:camSimulatorPinMode --&amp;gt;&lt;br /&gt;
==== camSimulatorPinMode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:engineChartSize --&amp;gt;&lt;br /&gt;
==== Engine chart size ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ioTest --&amp;gt;&lt;br /&gt;
= Hardware Test mode =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:testSpark --&amp;gt;&lt;br /&gt;
== Spark ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:testInjectors --&amp;gt;&lt;br /&gt;
== Injector Test ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:benchTestCount#1 --&amp;gt;&lt;br /&gt;
==== Count ====&lt;br /&gt;
How many test bench pulses do you want&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:benchTestOnTime#1 --&amp;gt;&lt;br /&gt;
==== On Time ====&lt;br /&gt;
Duration of each test pulse&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:benchTestOffTime --&amp;gt;&lt;br /&gt;
==== Off Time ====&lt;br /&gt;
Time between bench test pulses&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:testLuaOut --&amp;gt;&lt;br /&gt;
== Lua Out Test ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:testMisc --&amp;gt;&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:injTest_r --&amp;gt;&lt;br /&gt;
== Reference gauges ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:epicTunables --&amp;gt;&lt;br /&gt;
= epicEFI experimental tunables =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:calmerBurn --&amp;gt;&lt;br /&gt;
==== Calmer Burn - do not reconfigure sensors on running engine, rpm &amp;gt; 0 ====&lt;br /&gt;
do not reset sensors and all hardware when clicking burn, or closing window with engine running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Map Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== MAF Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== AUX Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ppsLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== PPS Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== TPS Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:egoLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== EGO Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuelLowpassCutoff --&amp;gt;&lt;br /&gt;
==== Low fuel pressure low pass cutoff ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableProgOutputs --&amp;gt;&lt;br /&gt;
==== Disable Programmable outputs ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:allowDFUwithIgn --&amp;gt;&lt;br /&gt;
==== Allow DFU With IGN voltage ====&lt;br /&gt;
danger zone - allow entry into DFU with 12v active - if injection/ignition is connected to usart1/usart3, their state is unpredictable in DFU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:allowIdenticalPps --&amp;gt;&lt;br /&gt;
==== No tps/pps redundancy required, super dangerous ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignore_tps_pps_sensors_too_close --&amp;gt;&lt;br /&gt;
==== Ignore TPS/PPS sensors too close to each other ====&lt;br /&gt;
Ignore TPS/PPS sensors too close to each other&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableMCP3208 --&amp;gt;&lt;br /&gt;
==== Disable MCP3208 + accelerometer ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableDINP --&amp;gt;&lt;br /&gt;
==== Disable epic DINP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableINJOK --&amp;gt;&lt;br /&gt;
==== Disable epic INJOK ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableEGT --&amp;gt;&lt;br /&gt;
==== Disable EGT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disableBARO --&amp;gt;&lt;br /&gt;
==== Disable BARO ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:epicInitHSHigh --&amp;gt;&lt;br /&gt;
==== Enable init HS to logic high ====&lt;br /&gt;
Iinit Epic High Side in logic high&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fcrMicroPullupDialog --&amp;gt;&lt;br /&gt;
= Digital input pullups =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableDin1Pullup --&amp;gt;&lt;br /&gt;
==== Enable DIN1 pullup ====&lt;br /&gt;
Enable software pullup on DIN1 (drives PE2 high when set)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableDin2Pullup --&amp;gt;&lt;br /&gt;
==== Enable DIN2 pullup ====&lt;br /&gt;
Enable software pullup on DIN2 (drives PE3 high when set)&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:CAN_Bus&amp;diff=477</id>
		<title>Config:CAN Bus</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:CAN_Bus&amp;diff=477"/>
		<updated>2026-06-06T22:18:25Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;!-- section:canBusMain --&amp;gt; = CAN Bus Settings =  &amp;lt;!-- section:canBus --&amp;gt; == CAN Bus ==  &amp;lt;!-- field:canNbcType --&amp;gt; ==== CAN dash type ====  &amp;lt;!-- field:imuType --&amp;gt; ==== Inertia Measurement Unit ==== * &amp;#039;&amp;#039;&amp;#039;None&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;VAG&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;MM5.10&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;type 3&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;type 4&amp;#039;&amp;#039;&amp;#039;  &amp;lt;!-- field:canCheckedDigitalEnable --&amp;gt; ==== Enable canchecked.de MCE18 digital states ==== Enable CANCHECKED 0x702 digital states  &amp;lt;!-- field:canCheckedAnalogEnable --&amp;gt; ==== Enable canchecked.de MCE18 analo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:canBusMain --&amp;gt;&lt;br /&gt;
= CAN Bus Settings =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canBus --&amp;gt;&lt;br /&gt;
== CAN Bus ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canNbcType --&amp;gt;&lt;br /&gt;
==== CAN dash type ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:imuType --&amp;gt;&lt;br /&gt;
==== Inertia Measurement Unit ====&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;VAG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MM5.10&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;type 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;type 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canCheckedDigitalEnable --&amp;gt;&lt;br /&gt;
==== Enable canchecked.de MCE18 digital states ====&lt;br /&gt;
Enable CANCHECKED 0x702 digital states&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canCheckedAnalogEnable --&amp;gt;&lt;br /&gt;
==== Enable canchecked.de MCE18 analog states (0x700-0x702) ====&lt;br /&gt;
Enable CANCHECKED 0x700 - 0x702 analog states&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canReadEnabled --&amp;gt;&lt;br /&gt;
==== CAN read enabled ====&lt;br /&gt;
enable can_read/disable can_read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWriteEnabled --&amp;gt;&lt;br /&gt;
==== CAN write enabled ====&lt;br /&gt;
enable can_write/disable can_write. See also can1ListenMode&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableVerboseCanTx --&amp;gt;&lt;br /&gt;
==== Enable CAN broadcast ====&lt;br /&gt;
CAN broadcast using custom rusEFI protocol&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBroadcastUseChannelTwo --&amp;gt;&lt;br /&gt;
==== CAN data bus ====&lt;br /&gt;
* &#039;&#039;&#039;first&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;second&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseCanBaseAddress --&amp;gt;&lt;br /&gt;
==== CAN base address ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rusefiVerbose29b --&amp;gt;&lt;br /&gt;
==== Address type ====&lt;br /&gt;
Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;11 bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;29 bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSleepPeriodMs --&amp;gt;&lt;br /&gt;
==== Data transmit period ====&lt;br /&gt;
CANbus thread period in ms&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableExtendedCanBroadcast --&amp;gt;&lt;br /&gt;
==== Extended Broadcast ====&lt;br /&gt;
Send out board statistics&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBroadcastCams --&amp;gt;&lt;br /&gt;
==== Enable cams frame ====&lt;br /&gt;
Disable to skip cam data frame (base + 8) if you have no VVT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBroadcastEgt --&amp;gt;&lt;br /&gt;
==== Enable EGT frame ====&lt;br /&gt;
Disable to skip cam data frame (base + 9) if you have no EGT sensing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBroadcastKnock --&amp;gt;&lt;br /&gt;
==== Enable Knock frame ====&lt;br /&gt;
Disable to skip knock data frame (base + 10) if you have no Knock sensing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:epicCanBus --&amp;gt;&lt;br /&gt;
== EPIC CAN Bus ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecuCanId --&amp;gt;&lt;br /&gt;
==== CAN ID - get_var / function calls ====&lt;br /&gt;
ID of this ECU on EPIC CAN bus - get_var / function calls, 0x750 + this is the set_var address&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:epicCanAllowSetVar --&amp;gt;&lt;br /&gt;
==== Allow epic_set_var from canbus ====&lt;br /&gt;
allow epic canbus external variable writes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:epicCanEcuReadONLYONWrite --&amp;gt;&lt;br /&gt;
==== Set ECU to read only mode when first write happens ====&lt;br /&gt;
set ECU to read only mode when first write happens, this way CANBUS settings via epic canbus interface are not saved to the tune. The read only itself should not be saved unless forced save via bench tune button (Write Config)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disable_mega_epic_slow_out --&amp;gt;&lt;br /&gt;
==== Disable sending out MEGA_EPIC_1_OUT_SLOW on state change ====&lt;br /&gt;
Disable sending out MEGA_EPIC_1_OUT_SLOW on state change&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canHw1 --&amp;gt;&lt;br /&gt;
== Primary CAN ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:verboseCan --&amp;gt;&lt;br /&gt;
==== Verbose Can ====&lt;br /&gt;
Print incoming and outgoing first bus CAN messages in rusEFI console&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do not print&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Print all&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBaudRate --&amp;gt;&lt;br /&gt;
==== Bitrate ====&lt;br /&gt;
* &#039;&#039;&#039;33.33kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;83.33kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;125kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;250kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;500kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;666kbps&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1Mbps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOpenBLT --&amp;gt;&lt;br /&gt;
==== Allow OpenBLT ====&lt;br /&gt;
Allow OpenBLT on Primary CAN&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canVirtualInputs --&amp;gt;&lt;br /&gt;
= CAN Virtual Input Pins =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs1_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_0 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs2_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_1 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs3_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_2 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs4_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_3 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs5_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_4 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs6_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_5 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs7_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_6 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs8_id --&amp;gt;&lt;br /&gt;
==== CAN_INPUT_7 ====&lt;br /&gt;
CAN ID to match for this input&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs1_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs2_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs3_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs4_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs5_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs6_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs7_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs8_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs1_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs2_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs3_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs4_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs5_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs6_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs7_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs8_bitOffset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which bit within the specified byte to read&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs1_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs2_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs3_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs4_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs5_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs6_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs7_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs8_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs1_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs2_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs3_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs4_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs5_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs6_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs7_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVirtualInputs8_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensorCan --&amp;gt;&lt;br /&gt;
= CAN Vehicle speed sensor =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableCanVss --&amp;gt;&lt;br /&gt;
==== Enable legacy CAN VSS ====&lt;br /&gt;
Read VSS from OEM CAN bus according to selected CAN vehicle configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssNbcType --&amp;gt;&lt;br /&gt;
==== CAN VSS type ====&lt;br /&gt;
* &#039;&#039;&#039;BMW_e46&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;W202&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BMW E8x/E9x MK60e5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Nissan 350&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Hyundai PB&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Honda Civic9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssScaling --&amp;gt;&lt;br /&gt;
==== CAN VSS scaling ====&lt;br /&gt;
Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS --&amp;gt;&lt;br /&gt;
==== Custom CAN Wheel speed reading enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canWheelSpeeds --&amp;gt;&lt;br /&gt;
= CAN Wheel speeds (from ABS module) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS#1 --&amp;gt;&lt;br /&gt;
==== CAN Wheel speed reading enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssFLEnabled --&amp;gt;&lt;br /&gt;
==== Front left Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLCanId --&amp;gt;&lt;br /&gt;
==== Front left CAN ID(dec) ====&lt;br /&gt;
CAN ID of the front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLBitLength --&amp;gt;&lt;br /&gt;
==== Front left bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLStartByte --&amp;gt;&lt;br /&gt;
==== Front left start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLBitEndianness --&amp;gt;&lt;br /&gt;
==== Front left big endian ====&lt;br /&gt;
Endianness for Front left wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLFactor --&amp;gt;&lt;br /&gt;
==== Front left factor ====&lt;br /&gt;
Scale factor for front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLOffset --&amp;gt;&lt;br /&gt;
==== Front left offset ====&lt;br /&gt;
Offset for front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssFREnabled --&amp;gt;&lt;br /&gt;
==== Front right Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRCanId --&amp;gt;&lt;br /&gt;
==== Front right CAN ID(dec) ====&lt;br /&gt;
CAN ID of the front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRBitLength --&amp;gt;&lt;br /&gt;
==== Front right bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRStartByte --&amp;gt;&lt;br /&gt;
==== Front right start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRBitEndianness --&amp;gt;&lt;br /&gt;
==== Front right big endian ====&lt;br /&gt;
Endianness for Front right wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRFactor --&amp;gt;&lt;br /&gt;
==== Front right factor ====&lt;br /&gt;
Scale factor for front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFROffset --&amp;gt;&lt;br /&gt;
==== Front right offset ====&lt;br /&gt;
Offset for front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssRLEnabled --&amp;gt;&lt;br /&gt;
==== Rear left Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLCanId --&amp;gt;&lt;br /&gt;
==== Rear left CAN ID(dec) ====&lt;br /&gt;
CAN ID of the rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLBitLength --&amp;gt;&lt;br /&gt;
==== Rear left bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLStartByte --&amp;gt;&lt;br /&gt;
==== Rear left start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLBitEndianness --&amp;gt;&lt;br /&gt;
==== Rear left big endian ====&lt;br /&gt;
Endianness for Rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLFactor --&amp;gt;&lt;br /&gt;
==== Rear left factor ====&lt;br /&gt;
Scale factor for rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLOffset --&amp;gt;&lt;br /&gt;
==== Rear left offset ====&lt;br /&gt;
Offset for rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssRREnabled --&amp;gt;&lt;br /&gt;
==== Rear right Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRCanId --&amp;gt;&lt;br /&gt;
==== Rear right CAN ID(dec) ====&lt;br /&gt;
CAN ID of the rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRBitLength --&amp;gt;&lt;br /&gt;
==== Rear right bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRStartByte --&amp;gt;&lt;br /&gt;
==== Rear right start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRBitEndianness --&amp;gt;&lt;br /&gt;
==== Rear right big endian ====&lt;br /&gt;
Endianness for Rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRFactor --&amp;gt;&lt;br /&gt;
==== Rear right factor ====&lt;br /&gt;
Scale factor for rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRROffset --&amp;gt;&lt;br /&gt;
==== Rear right offset ====&lt;br /&gt;
Offset for rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:uegoCan --&amp;gt;&lt;br /&gt;
= CAN O2 sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableAemXSeries --&amp;gt;&lt;br /&gt;
==== Enable CAN Wideband ====&lt;br /&gt;
AEM X-Series or rusEFI Wideband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:widebandOnSecondBus --&amp;gt;&lt;br /&gt;
==== Wideband CAN bus ====&lt;br /&gt;
Select which bus the wideband controller is attached to.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CAN1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afrExpAverageAlpha --&amp;gt;&lt;br /&gt;
==== Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceO2Heating --&amp;gt;&lt;br /&gt;
==== Force O2 sensor heating ====&lt;br /&gt;
If enabled, don&#039;t wait for engine start to heat O2 sensors.&lt;br /&gt;
WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignoreInvalidCanWb --&amp;gt;&lt;br /&gt;
==== Accept invalid remote data ====&lt;br /&gt;
Ignore invalid wideband state&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afrExpAverageAlpha#1 --&amp;gt;&lt;br /&gt;
==== Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSmoothedLambda --&amp;gt;&lt;br /&gt;
==== Use Smoothed Lambda ====&lt;br /&gt;
Use Smoothed Lambda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputsCan --&amp;gt;&lt;br /&gt;
= CAN EGT sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableAemXSeriesEgt --&amp;gt;&lt;br /&gt;
==== CAN EGT (AEM X series of RusEFI) ====&lt;br /&gt;
AEM X-Series EGT gauge kit or rusEFI EGT sensor from Wideband controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecumasterEgtToCan --&amp;gt;&lt;br /&gt;
==== Enable EcuMaster EGT to CAN ====&lt;br /&gt;
Read EcuMaster EGT to CAN. Expects little endian (Intel), and the CAN IDs specified below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecumasterEgtToCanBaseId --&amp;gt;&lt;br /&gt;
==== EcuMaster EGT to CAN base address ====&lt;br /&gt;
Default 1552 for EMU Classic, 1632 for EMU Black.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:msIoBox --&amp;gt;&lt;br /&gt;
= CAN MS IO-Box Settings =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:msIoBox1 --&amp;gt;&lt;br /&gt;
== MS IO box 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:msIoBox0_id --&amp;gt;&lt;br /&gt;
==== Base CAN identifier ====&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID1 (0x200)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID2 (0x220)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID3 (0x240)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:msIoBox0_vss --&amp;gt;&lt;br /&gt;
==== VSS settings ====&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;VR speed in (1, 2)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Hall speed in (3, 4)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;All (1, 2, 3, 4)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canAnalogInputsDialog --&amp;gt;&lt;br /&gt;
= CAN Analog Inputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 1 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 2 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 3 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 4 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 5 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 6 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 7 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_id --&amp;gt;&lt;br /&gt;
==== CAN Analog 8 ====&lt;br /&gt;
CAN ID decimal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset for raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, it will read Byte and Byte+1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_maxAdcShift --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
How many bits to shift incoming value for ECU side, f4/f7 = 2, h7 = 6 ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs1_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs2_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs3_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs4_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs5_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs6_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs7_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canAnalogInputs8_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Default value in case the timeout expires&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:staticAdcInputsDialog --&amp;gt;&lt;br /&gt;
= Static ADC Inputs (bench test) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canSensorInputsDialog --&amp;gt;&lt;br /&gt;
= CAN Sensor inputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 1 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 2 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 3 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 4 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 5 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 6 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 7 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_sensor --&amp;gt;&lt;br /&gt;
==== CAN Sensor 8 ====&lt;br /&gt;
Select sensor to override with data from CAN.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_id --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_byte --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Which byte to read the value from&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Multiplier applied to raw CAN value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Divider applied to raw CAN value (must be non-zero)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset applied after scaling&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_is16bit --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If True, the value uses two bytes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_isBigEndian --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
True if Big endian (Most Significant Byte first); False if Little endian (Least Significant Byte first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_timeout --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
If no frame is received in this time, revert to the configured default value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs1_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs2_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs3_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs4_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs5_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs6_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs7_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSensorInputs8_defaultValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value used while waiting for CAN data or after timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:buttonBoxButtons --&amp;gt;&lt;br /&gt;
= Virtual Button Box =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canbusKb1Dialog --&amp;gt;&lt;br /&gt;
= Virtual CANbus KB 1 Buttons =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canbusKb1DialogButtons --&amp;gt;&lt;br /&gt;
== CANbus KB 1 Buttons ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canbusKb1DialogStatus --&amp;gt;&lt;br /&gt;
== CANbus KB 1 Status ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlButtonsVirtual --&amp;gt;&lt;br /&gt;
= Cruise Control Virtual Buttons =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canButtonConfig --&amp;gt;&lt;br /&gt;
= CAN Button Box Config =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit2 --&amp;gt;&lt;br /&gt;
==== Do not reset LAUNCH OVERRIDE ====&lt;br /&gt;
can_reset command resets canToggle2 - DFCO invert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit1 --&amp;gt;&lt;br /&gt;
==== Do not reset DFCO INVERT ====&lt;br /&gt;
can_reset command resets canToggle1 - launch control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit3 --&amp;gt;&lt;br /&gt;
==== Do not reset CAN box idle-up ====&lt;br /&gt;
can_reset command resets canToggle3 - can box idle up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit4 --&amp;gt;&lt;br /&gt;
==== Do not reset AIR CONDITIONING ====&lt;br /&gt;
can_reset command resets canToggle4 - air conditioning&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit5 --&amp;gt;&lt;br /&gt;
==== Do not reset ANTILAG ====&lt;br /&gt;
can_reset command resets canToggle5 - antilag&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit6 --&amp;gt;&lt;br /&gt;
==== Do not reset TRAC ====&lt;br /&gt;
can_reset command resets canToggle6 - trac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit7 --&amp;gt;&lt;br /&gt;
==== Do not reset TOGGLE7 ====&lt;br /&gt;
can_reset command resets canToggle7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:resetCanToggleInhibit8 --&amp;gt;&lt;br /&gt;
==== Do not reset TOGGLE8 ====&lt;br /&gt;
can_reset command resets canToggle8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:buttonBoxCmdCurve --&amp;gt;&lt;br /&gt;
== buttonBoxCmdCurve ==&lt;br /&gt;
2D curve — X: id (0 to 100), Y: key code (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:buttonBoxDialog --&amp;gt;&lt;br /&gt;
= Physical Button Box Commands =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:buttonBoxDialogInputsLeft --&amp;gt;&lt;br /&gt;
== Button Box Inputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin1 --&amp;gt;&lt;br /&gt;
==== Button Box Input 1 ====&lt;br /&gt;
Button box pin 1&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin2 --&amp;gt;&lt;br /&gt;
==== Button Box Input 2 ====&lt;br /&gt;
Button box pin 2&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin3 --&amp;gt;&lt;br /&gt;
==== Button Box Input 3 ====&lt;br /&gt;
Button box pin 3&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin4 --&amp;gt;&lt;br /&gt;
==== Button Box Input 4 ====&lt;br /&gt;
Button box pin 4&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin5 --&amp;gt;&lt;br /&gt;
==== Button Box Input 5 ====&lt;br /&gt;
Button box pin 5&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin6 --&amp;gt;&lt;br /&gt;
==== Button Box Input 6 ====&lt;br /&gt;
Button box pin 6&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin7 --&amp;gt;&lt;br /&gt;
==== Button Box Input 7 ====&lt;br /&gt;
Button box pin 7&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin8 --&amp;gt;&lt;br /&gt;
==== Button Box Input 8 ====&lt;br /&gt;
Button box pin 8&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin9 --&amp;gt;&lt;br /&gt;
==== Button Box Input 9 ====&lt;br /&gt;
Button box pin 9&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin10 --&amp;gt;&lt;br /&gt;
==== Button Box Input 10 ====&lt;br /&gt;
Button box pin 10&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin11 --&amp;gt;&lt;br /&gt;
==== Button Box Input 11 ====&lt;br /&gt;
Button box pin 11&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin12 --&amp;gt;&lt;br /&gt;
==== Button Box Input 12 ====&lt;br /&gt;
Button box pin 12&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin13 --&amp;gt;&lt;br /&gt;
==== Button Box Input 13 ====&lt;br /&gt;
Button box pin 13&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin14 --&amp;gt;&lt;br /&gt;
==== Button Box Input 14 ====&lt;br /&gt;
Button box pin 14&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin15 --&amp;gt;&lt;br /&gt;
==== Button Box Input 15 ====&lt;br /&gt;
Button box pin 15&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin16 --&amp;gt;&lt;br /&gt;
==== Button Box Input 16 ====&lt;br /&gt;
Button box pin 16&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin17 --&amp;gt;&lt;br /&gt;
==== Button Box Input 17 ====&lt;br /&gt;
Button box pin 17&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin18 --&amp;gt;&lt;br /&gt;
==== Button Box Input 18 ====&lt;br /&gt;
Button box pin 18&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin19 --&amp;gt;&lt;br /&gt;
==== Button Box Input 19 ====&lt;br /&gt;
Button box pin 19&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin20 --&amp;gt;&lt;br /&gt;
==== Button Box Input 20 ====&lt;br /&gt;
Button box pin 20&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin21 --&amp;gt;&lt;br /&gt;
==== Button Box Input 21 ====&lt;br /&gt;
Button box pin 21&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin22 --&amp;gt;&lt;br /&gt;
==== Button Box Input 22 ====&lt;br /&gt;
Button box pin 22&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin23 --&amp;gt;&lt;br /&gt;
==== Button Box Input 23 ====&lt;br /&gt;
Button box pin 23&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin24 --&amp;gt;&lt;br /&gt;
==== Button Box Input 24 ====&lt;br /&gt;
Button box pin 24&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin25 --&amp;gt;&lt;br /&gt;
==== Button Box Input 25 ====&lt;br /&gt;
Button box pin 25&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin26 --&amp;gt;&lt;br /&gt;
==== Button Box Input 26 ====&lt;br /&gt;
Button box pin 26&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin27 --&amp;gt;&lt;br /&gt;
==== Button Box Input 27 ====&lt;br /&gt;
Button box pin 27&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin28 --&amp;gt;&lt;br /&gt;
==== Button Box Input 28 ====&lt;br /&gt;
Button box pin 28&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin29 --&amp;gt;&lt;br /&gt;
==== Button Box Input 29 ====&lt;br /&gt;
Button box pin 29&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin30 --&amp;gt;&lt;br /&gt;
==== Button Box Input 30 ====&lt;br /&gt;
Button box pin 30&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin31 --&amp;gt;&lt;br /&gt;
==== Button Box Input 31 ====&lt;br /&gt;
Button box pin 31&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPin32 --&amp;gt;&lt;br /&gt;
==== Button Box Input 32 ====&lt;br /&gt;
Button box pin 32&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:buttonBoxDialogInputsCenter --&amp;gt;&lt;br /&gt;
== Button Box Inputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode1 --&amp;gt;&lt;br /&gt;
==== Button Box Input 1 Mode ====&lt;br /&gt;
buttonBoxPinMode 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode2 --&amp;gt;&lt;br /&gt;
==== Button Box Input 2 Mode ====&lt;br /&gt;
buttonBoxPinMode 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode3 --&amp;gt;&lt;br /&gt;
==== Button Box Input 3 Mode ====&lt;br /&gt;
buttonBoxPinMode 3&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode4 --&amp;gt;&lt;br /&gt;
==== Button Box Input 4 Mode ====&lt;br /&gt;
buttonBoxPinMode 4&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode5 --&amp;gt;&lt;br /&gt;
==== Button Box Input 5 Mode ====&lt;br /&gt;
buttonBoxPinMode 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode6 --&amp;gt;&lt;br /&gt;
==== Button Box Input 6 Mode ====&lt;br /&gt;
buttonBoxPinMode 6&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode7 --&amp;gt;&lt;br /&gt;
==== Button Box Input 7 Mode ====&lt;br /&gt;
buttonBoxPinMode 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode8 --&amp;gt;&lt;br /&gt;
==== Button Box Input 8 Mode ====&lt;br /&gt;
buttonBoxPinMode 8&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode9 --&amp;gt;&lt;br /&gt;
==== Button Box Input 9 Mode ====&lt;br /&gt;
buttonBoxPinMode 9&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode10 --&amp;gt;&lt;br /&gt;
==== Button Box Input 10 Mode ====&lt;br /&gt;
buttonBoxPinMode 10&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode11 --&amp;gt;&lt;br /&gt;
==== Button Box Input 11 Mode ====&lt;br /&gt;
buttonBoxPinMode 11&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode12 --&amp;gt;&lt;br /&gt;
==== Button Box Input 12 Mode ====&lt;br /&gt;
buttonBoxPinMode 12&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode13 --&amp;gt;&lt;br /&gt;
==== Button Box Input 13 Mode ====&lt;br /&gt;
buttonBoxPinMode 13&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode14 --&amp;gt;&lt;br /&gt;
==== Button Box Input 14 Mode ====&lt;br /&gt;
buttonBoxPinMode 14&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode15 --&amp;gt;&lt;br /&gt;
==== Button Box Input 15 Mode ====&lt;br /&gt;
buttonBoxPinMode 15&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode16 --&amp;gt;&lt;br /&gt;
==== Button Box Input 16 Mode ====&lt;br /&gt;
buttonBoxPinMode 16&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode17 --&amp;gt;&lt;br /&gt;
==== Button Box Input 17 Mode ====&lt;br /&gt;
buttonBoxPinMode 17&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode18 --&amp;gt;&lt;br /&gt;
==== Button Box Input 18 Mode ====&lt;br /&gt;
buttonBoxPinMode 18&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode19 --&amp;gt;&lt;br /&gt;
==== Button Box Input 19 Mode ====&lt;br /&gt;
buttonBoxPinMode 19&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode20 --&amp;gt;&lt;br /&gt;
==== Button Box Input 20 Mode ====&lt;br /&gt;
buttonBoxPinMode 20&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode21 --&amp;gt;&lt;br /&gt;
==== Button Box Input 21 Mode ====&lt;br /&gt;
buttonBoxPinMode 21&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode22 --&amp;gt;&lt;br /&gt;
==== Button Box Input 22 Mode ====&lt;br /&gt;
buttonBoxPinMode 22&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode23 --&amp;gt;&lt;br /&gt;
==== Button Box Input 23 Mode ====&lt;br /&gt;
buttonBoxPinMode 23&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode24 --&amp;gt;&lt;br /&gt;
==== Button Box Input 24 Mode ====&lt;br /&gt;
buttonBoxPinMode 24&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode25 --&amp;gt;&lt;br /&gt;
==== Button Box Input 25 Mode ====&lt;br /&gt;
buttonBoxPinMode 25&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode26 --&amp;gt;&lt;br /&gt;
==== Button Box Input 26 Mode ====&lt;br /&gt;
buttonBoxPinMode 26&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode27 --&amp;gt;&lt;br /&gt;
==== Button Box Input 27 Mode ====&lt;br /&gt;
buttonBoxPinMode 27&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode28 --&amp;gt;&lt;br /&gt;
==== Button Box Input 28 Mode ====&lt;br /&gt;
buttonBoxPinMode 28&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode29 --&amp;gt;&lt;br /&gt;
==== Button Box Input 29 Mode ====&lt;br /&gt;
buttonBoxPinMode 29&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode30 --&amp;gt;&lt;br /&gt;
==== Button Box Input 30 Mode ====&lt;br /&gt;
buttonBoxPinMode 30&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode31 --&amp;gt;&lt;br /&gt;
==== Button Box Input 31 Mode ====&lt;br /&gt;
buttonBoxPinMode 31&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxPinMode32 --&amp;gt;&lt;br /&gt;
==== Button Box Input 32 Mode ====&lt;br /&gt;
buttonBoxPinMode 32&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:buttonBoxDialogCommands --&amp;gt;&lt;br /&gt;
== Button Box Commands ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd1 --&amp;gt;&lt;br /&gt;
==== Button Box Command 1 ====&lt;br /&gt;
button command 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd2 --&amp;gt;&lt;br /&gt;
==== Button Box Command 2 ====&lt;br /&gt;
button command 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd3 --&amp;gt;&lt;br /&gt;
==== Button Box Command 3 ====&lt;br /&gt;
button command 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd4 --&amp;gt;&lt;br /&gt;
==== Button Box Command 4 ====&lt;br /&gt;
button command 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd5 --&amp;gt;&lt;br /&gt;
==== Button Box Command 5 ====&lt;br /&gt;
button command 5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd6 --&amp;gt;&lt;br /&gt;
==== Button Box Command 6 ====&lt;br /&gt;
button command 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd7 --&amp;gt;&lt;br /&gt;
==== Button Box Command 7 ====&lt;br /&gt;
button command 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd8 --&amp;gt;&lt;br /&gt;
==== Button Box Command 8 ====&lt;br /&gt;
button command 8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd9 --&amp;gt;&lt;br /&gt;
==== Button Box Command 9 ====&lt;br /&gt;
button command 9&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd10 --&amp;gt;&lt;br /&gt;
==== Button Box Command 10 ====&lt;br /&gt;
button command 10&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd11 --&amp;gt;&lt;br /&gt;
==== Button Box Command 11 ====&lt;br /&gt;
button command 11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd12 --&amp;gt;&lt;br /&gt;
==== Button Box Command 12 ====&lt;br /&gt;
button command 12&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd13 --&amp;gt;&lt;br /&gt;
==== Button Box Command 13 ====&lt;br /&gt;
button command 13&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd14 --&amp;gt;&lt;br /&gt;
==== Button Box Command 14 ====&lt;br /&gt;
button command 14&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd15 --&amp;gt;&lt;br /&gt;
==== Button Box Command 15 ====&lt;br /&gt;
button command 15&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd16 --&amp;gt;&lt;br /&gt;
==== Button Box Command 16 ====&lt;br /&gt;
button command 16&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd17 --&amp;gt;&lt;br /&gt;
==== Button Box Command 17 ====&lt;br /&gt;
button command 17&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd18 --&amp;gt;&lt;br /&gt;
==== Button Box Command 18 ====&lt;br /&gt;
button command 18&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd19 --&amp;gt;&lt;br /&gt;
==== Button Box Command 19 ====&lt;br /&gt;
button command 19&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd20 --&amp;gt;&lt;br /&gt;
==== Button Box Command 20 ====&lt;br /&gt;
button command 20&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd21 --&amp;gt;&lt;br /&gt;
==== Button Box Command 21 ====&lt;br /&gt;
button command 21&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd22 --&amp;gt;&lt;br /&gt;
==== Button Box Command 22 ====&lt;br /&gt;
button command 22&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd23 --&amp;gt;&lt;br /&gt;
==== Button Box Command 23 ====&lt;br /&gt;
button command 23&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd24 --&amp;gt;&lt;br /&gt;
==== Button Box Command 24 ====&lt;br /&gt;
button command 24&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd25 --&amp;gt;&lt;br /&gt;
==== Button Box Command 25 ====&lt;br /&gt;
button command 25&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd26 --&amp;gt;&lt;br /&gt;
==== Button Box Command 26 ====&lt;br /&gt;
button command 26&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd27 --&amp;gt;&lt;br /&gt;
==== Button Box Command 27 ====&lt;br /&gt;
button command 27&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd28 --&amp;gt;&lt;br /&gt;
==== Button Box Command 28 ====&lt;br /&gt;
button command 28&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd29 --&amp;gt;&lt;br /&gt;
==== Button Box Command 29 ====&lt;br /&gt;
button command 29&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd30 --&amp;gt;&lt;br /&gt;
==== Button Box Command 30 ====&lt;br /&gt;
button command 30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd31 --&amp;gt;&lt;br /&gt;
==== Button Box Command 31 ====&lt;br /&gt;
button command 31&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:buttonBoxCmd32 --&amp;gt;&lt;br /&gt;
==== Button Box Command 32 ====&lt;br /&gt;
button command 32&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:can_frame_matcher --&amp;gt;&lt;br /&gt;
= CAN Frame Matcher =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:can_frame_matcher_left --&amp;gt;&lt;br /&gt;
== CAN Frame Matcher ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchEnabled --&amp;gt;&lt;br /&gt;
==== Enable CAN Matcher ====&lt;br /&gt;
Enable CAN frame matching system&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchKeycodeOffset --&amp;gt;&lt;br /&gt;
==== Keycode Offset ====&lt;br /&gt;
Offset added to row index to generate keycode&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchNegFilterId1 --&amp;gt;&lt;br /&gt;
==== Negative Filter ID 1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchNegFilterId2 --&amp;gt;&lt;br /&gt;
==== Negative Filter ID 2 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchNegFilterId3 --&amp;gt;&lt;br /&gt;
==== Negative Filter ID 3 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchNegFilterId4 --&amp;gt;&lt;br /&gt;
==== Negative Filter ID 4 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canMatchPosFilterId1 --&amp;gt;&lt;br /&gt;
==== Positive Filter ID 1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:canMatchTbl --&amp;gt;&lt;br /&gt;
== CAN Frame Matching Table ==&lt;br /&gt;
3D table: CAN Frame Matching Table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canSendMsgDialog --&amp;gt;&lt;br /&gt;
= CAN Send Test Message =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSendMsgEnabled --&amp;gt;&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Send CAN test message.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSendMsgId --&amp;gt;&lt;br /&gt;
==== Message ID ====&lt;br /&gt;
CAN message ID to send&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSendExtendedId --&amp;gt;&lt;br /&gt;
==== Extended ID (false=Standard, true=Extended) ====&lt;br /&gt;
Send extended ID.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSendMsgDlc --&amp;gt;&lt;br /&gt;
==== Length (DLC) ====&lt;br /&gt;
CAN message DLC to send&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSendMsgFreq --&amp;gt;&lt;br /&gt;
==== Frequency (0 to disable) ====&lt;br /&gt;
CAN message frequency to send&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canSendMsgBus --&amp;gt;&lt;br /&gt;
==== Bus (1=Primary, 2=Secondary, 3=CAN3) ====&lt;br /&gt;
CAN message bus to send&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:canSendMsgByteNumCurve --&amp;gt;&lt;br /&gt;
== CAN Send Message ==&lt;br /&gt;
2D curve — X: # (0 to 7), Y: Value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:CAN Outputs --&amp;gt;&lt;br /&gt;
= CAN Outputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput1Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs1_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput2Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs2_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput3Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs3_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput4Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs4_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput5Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs5_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput6Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs6_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput7Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs7_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canOutput8Dialog --&amp;gt;&lt;br /&gt;
== CAN Output 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_enableMode --&amp;gt;&lt;br /&gt;
==== Enable mode ====&lt;br /&gt;
* &#039;&#039;&#039;Disabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Enabled via Logic output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_logicOutput --&amp;gt;&lt;br /&gt;
==== Logic output ====&lt;br /&gt;
* &#039;&#039;&#039;Logic output 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 8&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Logic output 10&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_rate --&amp;gt;&lt;br /&gt;
==== Data rate ====&lt;br /&gt;
* &#039;&#039;&#039;1 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;10 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;20 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;50 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;100 Hz&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;200 Hz&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canOutputs8_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Triggered CAN Outputs --&amp;gt;&lt;br /&gt;
= Triggered CAN Outputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput1Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput1_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput2Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput2_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput3Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput3_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput4Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput4_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput5Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput5_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput6Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput6_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput7Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput7_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:triggeredCanOutput8Dialog --&amp;gt;&lt;br /&gt;
== Triggered CAN Output 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_id --&amp;gt;&lt;br /&gt;
==== CAN ID ====&lt;br /&gt;
CAN ID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_isSecondaryCAN --&amp;gt;&lt;br /&gt;
==== CAN Bus ====&lt;br /&gt;
* &#039;&#039;&#039;CAN 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_isBigEndian --&amp;gt;&lt;br /&gt;
==== Byte order ====&lt;br /&gt;
* &#039;&#039;&#039;Little endian&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Big endian&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_dlc --&amp;gt;&lt;br /&gt;
==== DLC ====&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_triggeredCanOutputTrigger --&amp;gt;&lt;br /&gt;
==== Trigger input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_triggeredCanOutputTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Trigger input mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_triggeredCanOutputEdge --&amp;gt;&lt;br /&gt;
==== Trigger edge ====&lt;br /&gt;
* &#039;&#039;&#039;Rising edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Falling edge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Both edges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte1_type --&amp;gt;&lt;br /&gt;
==== Byte 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte2_type --&amp;gt;&lt;br /&gt;
==== Byte 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte3_type --&amp;gt;&lt;br /&gt;
==== Byte 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte4_type --&amp;gt;&lt;br /&gt;
==== Byte 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte5_type --&amp;gt;&lt;br /&gt;
==== Byte 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte6_type --&amp;gt;&lt;br /&gt;
==== Byte 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte7_type --&amp;gt;&lt;br /&gt;
==== Byte 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte8_type --&amp;gt;&lt;br /&gt;
==== Byte 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fixed 16-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 8-bit&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable 16-bit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte1_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte2_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte3_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte4_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte5_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte6_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte7_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte8_multiplier --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte1_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte2_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte3_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte4_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte5_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte6_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte7_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte8_divider --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte1_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte2_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte3_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte4_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte5_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte6_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte7_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:triggeredCanOutput8_byte8_offset --&amp;gt;&lt;br /&gt;
====  ====&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Sensors&amp;diff=476</id>
		<title>Config:Sensors</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Sensors&amp;diff=476"/>
		<updated>2026-06-06T22:17:16Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;!-- section:cltSensor --&amp;gt; = Coolant temperature (CLT) =  &amp;lt;!-- section:clt_thermistor --&amp;gt; == Coolant Temperature sensor (CLT) ==  &amp;lt;!-- field:clt_adcChannel --&amp;gt; ==== Input channel ==== ?highlight=class~analog_inputs  * &amp;#039;&amp;#039;&amp;#039;$adc_channel_e_list&amp;#039;&amp;#039;&amp;#039;  &amp;lt;!-- field:clt_bias_resistor --&amp;gt; ==== Pullup resistor ==== Pull-up resistor value on your board  &amp;lt;!-- field:clt_tempC_1 --&amp;gt; ==== Lowest temperature ==== these values are in Celcius  &amp;lt;!-- field:clt_resistance_1 --&amp;gt; ==== Resistance...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:cltSensor --&amp;gt;&lt;br /&gt;
= Coolant temperature (CLT) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:clt_thermistor --&amp;gt;&lt;br /&gt;
== Coolant Temperature sensor (CLT) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clt_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useLinearCltSensor --&amp;gt;&lt;br /&gt;
==== Linear characteristic ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useCustomCLTSensor --&amp;gt;&lt;br /&gt;
==== Use Custom CLT Curve ====&lt;br /&gt;
Use CLT sensor curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iatSensor --&amp;gt;&lt;br /&gt;
= Intake air temperature (IAT) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iat_thermistor --&amp;gt;&lt;br /&gt;
== Intake Air Temperature Sensor (IAT) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iat_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useLinearIatSensor --&amp;gt;&lt;br /&gt;
==== Linear characteristic ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useCustomIATSensor --&amp;gt;&lt;br /&gt;
==== Use Custom IAT Curve ====&lt;br /&gt;
Use IAT sensor curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltCalCRV --&amp;gt;&lt;br /&gt;
= CLT custom sensor calibration =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iatCalCRV --&amp;gt;&lt;br /&gt;
= IAT custom sensor calibration =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tpsSensor --&amp;gt;&lt;br /&gt;
= Throttle position sensor (TPS) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tpsNum1 --&amp;gt;&lt;br /&gt;
== Throttle Body #1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps1_diameter --&amp;gt;&lt;br /&gt;
==== TB1 Diameter ====&lt;br /&gt;
tb1 diameter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps1_1AdcChannel --&amp;gt;&lt;br /&gt;
==== TPS Sensor 1 ====&lt;br /&gt;
First throttle body, first sensor. See also pedalPositionAdcChannel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsMin --&amp;gt;&lt;br /&gt;
==== TPS Sensor 1 Closed ====&lt;br /&gt;
Closed throttle, 1 volt = 200 units.&lt;br /&gt;
See also tps1_1AdcChannel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsMax --&amp;gt;&lt;br /&gt;
==== TPS Sensor 1 Open ====&lt;br /&gt;
Full throttle.&lt;br /&gt;
See also tps1_1AdcChannel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps1_2AdcChannel --&amp;gt;&lt;br /&gt;
==== TPS Sensor 2 ====&lt;br /&gt;
First throttle body, second sensor.&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps1SecondaryMin --&amp;gt;&lt;br /&gt;
==== TPS Sensor 2 Closed ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tps1SecondaryMax --&amp;gt;&lt;br /&gt;
==== TPS Sensor 2 Open ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== TPS Sensors Filter (lower = more filtering) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tpsPpsLimits --&amp;gt;&lt;br /&gt;
== TPS/PPS Limits ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsErrorDetectionTooLow --&amp;gt;&lt;br /&gt;
==== TPS/PPS minimum valid value ====&lt;br /&gt;
TPS error detection: what throttle % is unrealistically low?&lt;br /&gt;
Also used for accelerator pedal error detection if so equipped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsErrorDetectionTooHigh --&amp;gt;&lt;br /&gt;
==== TPS/PPS maximum valid value ====&lt;br /&gt;
TPS error detection: what throttle % is unrealistically high?&lt;br /&gt;
Also used for accelerator pedal error detection if so equipped.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbSplit --&amp;gt;&lt;br /&gt;
==== TPS/PPS Error Detection Threshold ====&lt;br /&gt;
TPS/PPS error threshold&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tpsSpecialSensors --&amp;gt;&lt;br /&gt;
== ETB Position Sensors special cases ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useFordRedundantTps --&amp;gt;&lt;br /&gt;
==== Ford/Toyota redundant TPS mode ====&lt;br /&gt;
On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tpsSecondaryMaximum --&amp;gt;&lt;br /&gt;
==== Secondary TPS maximum ====&lt;br /&gt;
For Ford TPS, use 53%. For Toyota ETCS-i, use ~65%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignore_tps_pps_sensors_too_close --&amp;gt;&lt;br /&gt;
==== Ignore TPS/PPS sensors too close to each other ====&lt;br /&gt;
Ignore TPS/PPS sensors too close to each other&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mapSettings --&amp;gt;&lt;br /&gt;
= Manifold pressure sensor (MAP) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mapCommon --&amp;gt;&lt;br /&gt;
== MAP common settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapErrorDetectionTooLow --&amp;gt;&lt;br /&gt;
==== Low value threshold ====&lt;br /&gt;
kPa value which is too low to be true&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapErrorDetectionTooHigh --&amp;gt;&lt;br /&gt;
==== High value threshold ====&lt;br /&gt;
kPa value which is too high to be true&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:measureMapOnlyInOneCylinder --&amp;gt;&lt;br /&gt;
==== Measure Map Only In One Cylinder ====&lt;br /&gt;
Useful for individual intakes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapMinBufferLength --&amp;gt;&lt;br /&gt;
==== Cylinder count to sample MAP ====&lt;br /&gt;
This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapExpAverageAlpha --&amp;gt;&lt;br /&gt;
==== MAP averaging smoothing factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mapSensorAnalog --&amp;gt;&lt;br /&gt;
== Manifold Pressure Sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensor_hwChannel --&amp;gt;&lt;br /&gt;
==== MAP input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensor_type --&amp;gt;&lt;br /&gt;
==== MAP type ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensor_lowValue --&amp;gt;&lt;br /&gt;
==== MAP value low point ====&lt;br /&gt;
kPa value at low volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapLowValueVoltage --&amp;gt;&lt;br /&gt;
==== MAP voltage low point ====&lt;br /&gt;
MAP voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensor_highValue --&amp;gt;&lt;br /&gt;
==== MAP value high point ====&lt;br /&gt;
kPa value at high volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapHighValueVoltage --&amp;gt;&lt;br /&gt;
==== MAP voltage high value ====&lt;br /&gt;
MAP voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensorpre_hwChannel --&amp;gt;&lt;br /&gt;
==== MAP_PRE input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensorpre_lowValue --&amp;gt;&lt;br /&gt;
==== MAP_PRE value low point ====&lt;br /&gt;
kPa value at low volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mappreLowValueVoltage --&amp;gt;&lt;br /&gt;
==== MAP_PRE voltage low point ====&lt;br /&gt;
MAPPRE voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:map_sensorpre_highValue --&amp;gt;&lt;br /&gt;
==== MAP_PRE value high point ====&lt;br /&gt;
kPa value at high volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mappreHighValueVoltage --&amp;gt;&lt;br /&gt;
==== MAP_PRE voltage high value ====&lt;br /&gt;
MAPPRE voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Map Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mapCurves --&amp;gt;&lt;br /&gt;
= MAP/MAF sampling =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isMapAveragingEnabled --&amp;gt;&lt;br /&gt;
==== MAP Window averaging ====&lt;br /&gt;
Map averaging enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isMapPreAveragingEnabled --&amp;gt;&lt;br /&gt;
==== MAPPRE Window averaging ====&lt;br /&gt;
MapPre averaging enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isMafAveragingEnabled --&amp;gt;&lt;br /&gt;
==== MAF Window averaging ====&lt;br /&gt;
Maf Averaging enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mapExpAverageAlpha#1 --&amp;gt;&lt;br /&gt;
==== MAP averaging smoothing factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafExpAverageAlpha --&amp;gt;&lt;br /&gt;
==== MAF averaging smoothing factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafExpAverageAlphaFinal --&amp;gt;&lt;br /&gt;
==== MAF averaging smoothing factor final (final MAF value) ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:map_samplingAngleCurve --&amp;gt;&lt;br /&gt;
== MAP/MAF Sampling Start Angle ==&lt;br /&gt;
2D curve — X: RPM (0 to 8000), Y: Angle (0 to 180).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:map_samplingWindowCurve --&amp;gt;&lt;br /&gt;
== MAP/MAF Sampling Duration ==&lt;br /&gt;
2D curve — X: RPM (0 to 8000), Y: Window (0 to 180).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:baroSettings --&amp;gt;&lt;br /&gt;
= Barometer sensor =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:baroSettingsContent --&amp;gt;&lt;br /&gt;
== Barometer sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useFixedBaroCorrFromMap --&amp;gt;&lt;br /&gt;
==== Grab baro value from MAP ====&lt;br /&gt;
Read MAP sensor on ECU start-up to use as baro value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogBaroSettings --&amp;gt;&lt;br /&gt;
=== Analog Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_hwChannel --&amp;gt;&lt;br /&gt;
==== Baro input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_type --&amp;gt;&lt;br /&gt;
==== Type ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_lowValue --&amp;gt;&lt;br /&gt;
==== BARO value low point ====&lt;br /&gt;
kPa value at low volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroLowValueVoltage --&amp;gt;&lt;br /&gt;
==== BARO voltage low point ====&lt;br /&gt;
BARO voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroSensor_highValue --&amp;gt;&lt;br /&gt;
==== BARO value high point ====&lt;br /&gt;
kPa value at high volts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:baroHighValueVoltage --&amp;gt;&lt;br /&gt;
==== BARO voltage high value ====&lt;br /&gt;
BARO voltage for low point&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:digitalBaroSettings --&amp;gt;&lt;br /&gt;
=== Digital Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lps25BaroSensorScl --&amp;gt;&lt;br /&gt;
==== LPS2x Baro SCL ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lps25BaroSensorSda --&amp;gt;&lt;br /&gt;
==== LPS2x Baro SDA ====&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogEgoSettings --&amp;gt;&lt;br /&gt;
= Analog oxygen sensor (O2) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egoSettings_sensor --&amp;gt;&lt;br /&gt;
== O2 sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_v1 --&amp;gt;&lt;br /&gt;
==== low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_value1 --&amp;gt;&lt;br /&gt;
==== low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_v2 --&amp;gt;&lt;br /&gt;
==== high voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_value2 --&amp;gt;&lt;br /&gt;
==== high value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:egoValueShift --&amp;gt;&lt;br /&gt;
==== Correction ====&lt;br /&gt;
EGO value correction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afrSensorLambdaRange --&amp;gt;&lt;br /&gt;
==== Sensor sends Lambda range ====&lt;br /&gt;
AFR sensor returns LAMBDA RANGE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:egoLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== EGO Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egoSettings_IO1 --&amp;gt;&lt;br /&gt;
== O2 Sensor 1 I/O ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_hwChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:o2heaterPin --&amp;gt;&lt;br /&gt;
==== Heater output ====&lt;br /&gt;
On-off O2 sensor heater control. &#039;ON&#039; if engine is running, &#039;OFF&#039; if stopped or cranking.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:o2heaterPinMode --&amp;gt;&lt;br /&gt;
==== Heater output mode ====&lt;br /&gt;
Mode for o2heaterPin&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:o2heaterDelay --&amp;gt;&lt;br /&gt;
==== Heater delay after startup ====&lt;br /&gt;
Delay for the O2 heater&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:o2heaterDelayClt --&amp;gt;&lt;br /&gt;
==== Heater delay below CLT ====&lt;br /&gt;
Delay for O2 heater below this CLT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceO2Heating --&amp;gt;&lt;br /&gt;
==== Force O2 heater on ====&lt;br /&gt;
If enabled, don&#039;t wait for engine start to heat O2 sensors.&lt;br /&gt;
WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egoSettings_IO2 --&amp;gt;&lt;br /&gt;
== O2 Sensor 2 I/O ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afr_hwChannel2 --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afrExpAverageAlpha --&amp;gt;&lt;br /&gt;
==== Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSmoothedLambda --&amp;gt;&lt;br /&gt;
==== Use Smoothed Lambda ====&lt;br /&gt;
Use Smoothed Lambda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egoSettings --&amp;gt;&lt;br /&gt;
= CAN oxygen sensors (O2) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:uegoCan0StatusPanel --&amp;gt;&lt;br /&gt;
== CAN UEGO 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo1_type --&amp;gt;&lt;br /&gt;
==== UEGO type ====&lt;br /&gt;
* &#039;&#039;&#039;RusEFI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AEM X-series&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Disabled/Analog&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo1_reId --&amp;gt;&lt;br /&gt;
==== RusEFI WBO ID ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_re_id_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo1_aemId --&amp;gt;&lt;br /&gt;
==== AEM ID ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_aem_id_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:uegoCan --&amp;gt;&lt;br /&gt;
== CAN oxygen sensors (O2) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableAemXSeries --&amp;gt;&lt;br /&gt;
==== Enable CAN Wideband ====&lt;br /&gt;
AEM X-Series or rusEFI Wideband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:widebandOnSecondBus --&amp;gt;&lt;br /&gt;
==== Wideband CAN bus ====&lt;br /&gt;
Select which bus the wideband controller is attached to.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CAN1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afrExpAverageAlpha#1 --&amp;gt;&lt;br /&gt;
==== Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceO2Heating#1 --&amp;gt;&lt;br /&gt;
==== Force O2 sensor heating ====&lt;br /&gt;
If enabled, don&#039;t wait for engine start to heat O2 sensors.&lt;br /&gt;
WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ignoreInvalidCanWb --&amp;gt;&lt;br /&gt;
==== Accept invalid remote data ====&lt;br /&gt;
Ignore invalid wideband state&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:afrExpAverageAlpha#2 --&amp;gt;&lt;br /&gt;
==== Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSmoothedLambda#1 --&amp;gt;&lt;br /&gt;
==== Use Smoothed Lambda ====&lt;br /&gt;
Use Smoothed Lambda&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:uegoCan1StatusPanel --&amp;gt;&lt;br /&gt;
== CAN UEGO 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo2_type --&amp;gt;&lt;br /&gt;
==== UEGO type ====&lt;br /&gt;
* &#039;&#039;&#039;RusEFI&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AEM X-series&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Disabled/Analog&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo2_reId --&amp;gt;&lt;br /&gt;
==== RusEFI WBO ID ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_re_id_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo2_aemId --&amp;gt;&lt;br /&gt;
==== AEM ID ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_aem_id_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Mass airflow sensor (MAF) --&amp;gt;&lt;br /&gt;
= Mass airflow sensor (MAF) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mafSettings --&amp;gt;&lt;br /&gt;
== MAF sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafAdcChannel --&amp;gt;&lt;br /&gt;
==== MAF ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:maf2AdcChannel --&amp;gt;&lt;br /&gt;
==== MAF 2 ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:frequencyMafChannel --&amp;gt;&lt;br /&gt;
==== Frequency MAF ====&lt;br /&gt;
Frequency MAF channel&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:frequencyMafFilter --&amp;gt;&lt;br /&gt;
==== Frequency Maf Filter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isMafAveragingEnabled#1 --&amp;gt;&lt;br /&gt;
==== Window averaging ====&lt;br /&gt;
Maf Averaging enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafMinBufferLength --&amp;gt;&lt;br /&gt;
==== Cylinder count to sample MAF ====&lt;br /&gt;
This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:measureMafOnlyInOneCylinder --&amp;gt;&lt;br /&gt;
==== Measure MAF Only In One Cylinder ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafExpAverageAlpha#1 --&amp;gt;&lt;br /&gt;
==== MAF averaging smoothing factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mafExpAverageAlphaFinal#1 --&amp;gt;&lt;br /&gt;
==== MAF averaging smoothing factor final (final MAF value) ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mafDecodingCurve --&amp;gt;&lt;br /&gt;
== MAF Airflow transfer function (analog) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mafDecodingCurveHz --&amp;gt;&lt;br /&gt;
== MAF Airflow transfer function (hz) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:veTableMafTbl --&amp;gt;&lt;br /&gt;
== MAF calibration table ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mafmapBlendValuesTBL --&amp;gt;&lt;br /&gt;
== MAF airmass blend ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Non-linear sensors --&amp;gt;&lt;br /&gt;
= Non-linear sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorTps1Primary --&amp;gt;&lt;br /&gt;
== TPS1 Primary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors1_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors1_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors1_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors1_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor1Curve --&amp;gt;&lt;br /&gt;
=== TPS1 Primary — Voltage to Position ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Position (%) (-5 to 105).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorTps1Secondary --&amp;gt;&lt;br /&gt;
== TPS1 Secondary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors2_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors2_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors2_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors2_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor2Curve --&amp;gt;&lt;br /&gt;
=== TPS1 Secondary — Voltage to Position ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Position (%) (-5 to 105).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorTps2Primary --&amp;gt;&lt;br /&gt;
== TPS2 Primary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors3_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors3_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors3_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors3_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor3Curve --&amp;gt;&lt;br /&gt;
=== TPS2 Primary — Voltage to Position ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Position (%) (-5 to 105).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorTps2Secondary --&amp;gt;&lt;br /&gt;
== TPS2 Secondary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors4_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors4_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors4_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors4_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor4Curve --&amp;gt;&lt;br /&gt;
=== TPS2 Secondary — Voltage to Position ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Position (%) (-5 to 105).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorPpsPrimary --&amp;gt;&lt;br /&gt;
== PPS Primary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors5_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors5_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors5_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors5_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor5Curve --&amp;gt;&lt;br /&gt;
=== PPS Primary — Voltage to Position ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Position (%) (-5 to 105).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorPpsSecondary --&amp;gt;&lt;br /&gt;
== PPS Secondary ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors6_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors6_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors6_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors6_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor6Curve --&amp;gt;&lt;br /&gt;
=== PPS Secondary — Voltage to Position ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Position (%) (-5 to 105).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorMap --&amp;gt;&lt;br /&gt;
== MAP ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors7_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors7_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors7_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors7_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor7Curve --&amp;gt;&lt;br /&gt;
=== MAP — Voltage to Pressure ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Pressure (kPa) (0 to 400).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorBaro --&amp;gt;&lt;br /&gt;
== Barometric Pressure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors8_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors8_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors8_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors8_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor8Curve --&amp;gt;&lt;br /&gt;
=== Barometric Pressure — Voltage to Pressure ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Pressure (kPa) (50 to 130).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorO2_1 --&amp;gt;&lt;br /&gt;
== O2 Sensor 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors9_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors9_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors9_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors9_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor9Curve --&amp;gt;&lt;br /&gt;
=== O2 Sensor 1 — Voltage to Lambda ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Lambda (0.5 to 1.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:curveSensorO2_2 --&amp;gt;&lt;br /&gt;
== O2 Sensor 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors10_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC Channel (NONE = use legacy cal) ====&lt;br /&gt;
ADC input channel (EFI_ADC_NONE = slot disabled, falls back to legacy cal)&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors10_lowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== Low-pass filter Hz (0 = default) ====&lt;br /&gt;
ADC low-pass filter cutoff frequency (0 = use sensor-type default)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors10_inputMin --&amp;gt;&lt;br /&gt;
==== Min valid input voltage V (0 = disabled) ====&lt;br /&gt;
Minimum valid input voltage - error if below (open circuit / broken wire detection)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:curveSensors10_inputMax --&amp;gt;&lt;br /&gt;
==== Max valid input voltage V (0 = disabled) ====&lt;br /&gt;
Maximum valid input voltage - error if above (set equal to min to disable)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:curveSensor10Curve --&amp;gt;&lt;br /&gt;
=== O2 Sensor 2 — Voltage to Lambda ===&lt;br /&gt;
2D curve — X: Voltage (V) (0 to 5.5), Y: Lambda (0.5 to 1.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleValvePosDialog --&amp;gt;&lt;br /&gt;
= Idle valve position sensor =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePositionChannel --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePositionMin --&amp;gt;&lt;br /&gt;
==== Min (valve closed, low idle) ====&lt;br /&gt;
Voltage when the idle valve is closed.&lt;br /&gt;
You probably don&#039;t have one of these!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePositionMax --&amp;gt;&lt;br /&gt;
==== Max (valve open, high idle) ====&lt;br /&gt;
Voltage when the idle valve is open.&lt;br /&gt;
You probably don&#039;t have one of these!&lt;br /&gt;
1 volt = 1000 units&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Oil sensors --&amp;gt;&lt;br /&gt;
= Oil sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:oilPressureSensor --&amp;gt;&lt;br /&gt;
== Oil pressure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:oilp_settings --&amp;gt;&lt;br /&gt;
=== Oil Pressure Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressure_hwChannel --&amp;gt;&lt;br /&gt;
==== Oil Pressure input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressure_v1 --&amp;gt;&lt;br /&gt;
==== low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressure_value1 --&amp;gt;&lt;br /&gt;
==== low pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressure_v2 --&amp;gt;&lt;br /&gt;
==== high voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressure_value2 --&amp;gt;&lt;br /&gt;
==== high pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressureSwitch --&amp;gt;&lt;br /&gt;
==== Oil pressure switch ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressureSwitchMode --&amp;gt;&lt;br /&gt;
==== Oil pressure switch mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilPressureOverrideValue --&amp;gt;&lt;br /&gt;
==== Oil pressure override value ====&lt;br /&gt;
Oil pressure override value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:oilTempSensor --&amp;gt;&lt;br /&gt;
== Oil temp sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:oilTempSensor_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useCustomOTSensor --&amp;gt;&lt;br /&gt;
==== Use Custom Oil Temp Curve ====&lt;br /&gt;
Use Oil Temp sensor curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:hellaOpsTSensor --&amp;gt;&lt;br /&gt;
== Hella OPS+T sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:hellaOpsTPin --&amp;gt;&lt;br /&gt;
==== Digital input pin ====&lt;br /&gt;
Hella OPS+T oil pressure and temperature sensor&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:otCalCRV --&amp;gt;&lt;br /&gt;
== Oil Temperature Custom Curve Sensor Calibration ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Fuel sensors --&amp;gt;&lt;br /&gt;
= Fuel sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:flexSensorDialog --&amp;gt;&lt;br /&gt;
== Flex ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:defaultEthanolContent --&amp;gt;&lt;br /&gt;
==== Current Ethanol Content - Static for no Sensor ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:flexEnabled --&amp;gt;&lt;br /&gt;
==== Flex fuel sensor connected ====&lt;br /&gt;
use flex fuel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:flexSensorPin --&amp;gt;&lt;br /&gt;
==== Flex fuel sensor input ====&lt;br /&gt;
Continental/GM flex fuel sensor, 50-150hz type&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:flexSensorInverted --&amp;gt;&lt;br /&gt;
==== Flex Signal ====&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Inverted&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelPressureSensor_low --&amp;gt;&lt;br /&gt;
== Fuel pressure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelp_settings --&amp;gt;&lt;br /&gt;
=== Fuel Pressure Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuellop_settings --&amp;gt;&lt;br /&gt;
==== Fuel Low Pressure Sensor ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuel_hwChannel --&amp;gt;&lt;br /&gt;
==== Low Fuel Pressure Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelPressureSensorMode --&amp;gt;&lt;br /&gt;
==== sensor type ====&lt;br /&gt;
* &#039;&#039;&#039;Absolute&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Gauge&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Differential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuelLowpassCutoff --&amp;gt;&lt;br /&gt;
==== Low pass filter cut off ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuellop_analog_settings --&amp;gt;&lt;br /&gt;
===== Sensor scaling =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuel_v1 --&amp;gt;&lt;br /&gt;
==== Low Fuel Pressure low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuel_value1 --&amp;gt;&lt;br /&gt;
==== Low Fuel Pressure low pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuel_v2 --&amp;gt;&lt;br /&gt;
==== Low Fuel Pressure high voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowPressureFuel_value2 --&amp;gt;&lt;br /&gt;
==== Low Fuel Pressure high pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelPressureSensor_high --&amp;gt;&lt;br /&gt;
== High fuel pressure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelhip_settings --&amp;gt;&lt;br /&gt;
=== Fuel High Pressure Sensors ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel_hwChannel --&amp;gt;&lt;br /&gt;
==== High Pressure Fuel 1 Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel2_hwChannel --&amp;gt;&lt;br /&gt;
==== High Pressure Fuel 2 Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelhip_analog_settings --&amp;gt;&lt;br /&gt;
==== Sensor scaling (Bank 1) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel_v1 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 1 low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel_value1 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 1 low pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel_v2 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 1 high voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel_value2 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 1 high pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelhip2_analog_settings --&amp;gt;&lt;br /&gt;
==== Sensor scaling (Bank 2) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel2_v1 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 2 low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel2_value1 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 2 low pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel2_v2 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 2 high voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:highPressureFuel2_value2 --&amp;gt;&lt;br /&gt;
==== High Fuel Pressure 2 high pressure ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:FuelHighPressureSentType --&amp;gt;&lt;br /&gt;
==== Sensor SENT type ====&lt;br /&gt;
If you have SENT High Pressure Fuel Sensor please select type. For analog TPS leave None&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;GM type&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Custom&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:FuelHighPressureSentInput --&amp;gt;&lt;br /&gt;
==== Sensor SENT input ====&lt;br /&gt;
SENT input used for high pressure fuel sensor&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;SENT input 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelTempSensor --&amp;gt;&lt;br /&gt;
== Fuel temp sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTempSensor_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:fuelLevelDialog --&amp;gt;&lt;br /&gt;
== Fuel level sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelLevelSensor --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined.&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelLevelLowThresholdVoltage --&amp;gt;&lt;br /&gt;
==== Low threshold ====&lt;br /&gt;
Error below specified value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelLevelHighThresholdVoltage --&amp;gt;&lt;br /&gt;
==== High threshold ====&lt;br /&gt;
Error above specified value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelLevelAveragingAlpha --&amp;gt;&lt;br /&gt;
==== Filter Alpha ====&lt;br /&gt;
Exponential Average Alpha filtering parameter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelLevelUpdatePeriodSec --&amp;gt;&lt;br /&gt;
==== Update period ====&lt;br /&gt;
How often do we update fuel level gauge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:fuelLevelCurve --&amp;gt;&lt;br /&gt;
=== Fuel Level ===&lt;br /&gt;
2D curve — X: Voltage (0 to 5), Y: % (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Turbo sensors --&amp;gt;&lt;br /&gt;
= Turbo sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputs --&amp;gt;&lt;br /&gt;
== EGT ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputsCan --&amp;gt;&lt;br /&gt;
=== CAN EGT sensors ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableAemXSeriesEgt --&amp;gt;&lt;br /&gt;
==== CAN EGT (AEM X series of RusEFI) ====&lt;br /&gt;
AEM X-Series EGT gauge kit or rusEFI EGT sensor from Wideband controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecumasterEgtToCan --&amp;gt;&lt;br /&gt;
==== Enable EcuMaster EGT to CAN ====&lt;br /&gt;
Read EcuMaster EGT to CAN. Expects little endian (Intel), and the CAN IDs specified below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ecumasterEgtToCanBaseId --&amp;gt;&lt;br /&gt;
==== EcuMaster EGT to CAN base address ====&lt;br /&gt;
Default 1552 for EMU Classic, 1632 for EMU Black.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:egtInputsSpi --&amp;gt;&lt;br /&gt;
=== SPI EGT sensors ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:disablemax31855 --&amp;gt;&lt;br /&gt;
==== Disable Max 31855 ====&lt;br /&gt;
Disable onboard EGT31855&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855spiDevice --&amp;gt;&lt;br /&gt;
==== MAX31855/MAX31856 SPI ====&lt;br /&gt;
* &#039;&#039;&#039;$spi_device_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs1 --&amp;gt;&lt;br /&gt;
==== CS for EGT1 ====&lt;br /&gt;
max31855_cs 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs2 --&amp;gt;&lt;br /&gt;
==== CS for EGT2 ====&lt;br /&gt;
max31855_cs 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs3 --&amp;gt;&lt;br /&gt;
==== CS for EGT3 ====&lt;br /&gt;
max31855_cs 3&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs4 --&amp;gt;&lt;br /&gt;
==== CS for EGT4 ====&lt;br /&gt;
max31855_cs 4&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs5 --&amp;gt;&lt;br /&gt;
==== CS for EGT5 ====&lt;br /&gt;
max31855_cs 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs6 --&amp;gt;&lt;br /&gt;
==== CS for EGT6 ====&lt;br /&gt;
max31855_cs 6&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs7 --&amp;gt;&lt;br /&gt;
==== CS for EGT7 ====&lt;br /&gt;
max31855_cs 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:max31855_cs8 --&amp;gt;&lt;br /&gt;
==== CS for EGT8 ====&lt;br /&gt;
max31855_cs 8&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$gpio_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:wastegatePosDialog --&amp;gt;&lt;br /&gt;
== Electronic Wastegate position sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wastegatePositionSensor --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wastegatePositionClosedVoltage --&amp;gt;&lt;br /&gt;
==== Min (fully closed, most boost) ====&lt;br /&gt;
Voltage when the wastegate is closed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wastegatePositionOpenedVoltage --&amp;gt;&lt;br /&gt;
==== Max (fully open, least boost) ====&lt;br /&gt;
Voltage when the wastegate is fully open&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:compressorDischargeTemperature --&amp;gt;&lt;br /&gt;
== Compressor discharge temp ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargeTemperature_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:turboSensorsDialog --&amp;gt;&lt;br /&gt;
== Turbo Sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:turboSpeedSensorInputPin --&amp;gt;&lt;br /&gt;
==== Turbo Speed Sensor ====&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:turboSpeedSensorMultiplier --&amp;gt;&lt;br /&gt;
==== Turbo Speed Multiplier ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:compressorDischargePressureChannel --&amp;gt;&lt;br /&gt;
==== Compressor discharge pressure sensor ====&lt;br /&gt;
Place the sensor after the turbocharger/supercharger, but before any intercoolers if fitted. Uses the same calibration as the MAP sensor.&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:emapSensor --&amp;gt;&lt;br /&gt;
== Exhaust Back Pressure (EMAP) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:emapSensorSettings --&amp;gt;&lt;br /&gt;
=== Exhaust Back Pressure (EMAP) Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:emap_hwChannel --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:emap_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:emap_value1 --&amp;gt;&lt;br /&gt;
==== Low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:emap_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:emap_value2 --&amp;gt;&lt;br /&gt;
==== High value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Aux sensors --&amp;gt;&lt;br /&gt;
= Aux sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxTempSensor1Sensor --&amp;gt;&lt;br /&gt;
== AuxTemp1 sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxTempSensor1_thermistor --&amp;gt;&lt;br /&gt;
=== aux1 Thermistor Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor1_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxTempSensor2Sensor --&amp;gt;&lt;br /&gt;
== AuxTemp2 sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxTempSensor2_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxLinearSensors --&amp;gt;&lt;br /&gt;
== Aux Linear Sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxLinearSensor1 --&amp;gt;&lt;br /&gt;
=== Aux Linear Sensor #1 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear1_hwChannel --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear1_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear1_value1 --&amp;gt;&lt;br /&gt;
==== Low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear1_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear1_value2 --&amp;gt;&lt;br /&gt;
==== High value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxLinearSensor2 --&amp;gt;&lt;br /&gt;
=== Aux Linear Sensor #2 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear2_hwChannel --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear2_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear2_value1 --&amp;gt;&lt;br /&gt;
==== Low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear2_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear2_value2 --&amp;gt;&lt;br /&gt;
==== High value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxLinearSensor3 --&amp;gt;&lt;br /&gt;
=== Aux Linear Sensor #3 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear3_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear3_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear3_value1 --&amp;gt;&lt;br /&gt;
==== Low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear3_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear3_value2 --&amp;gt;&lt;br /&gt;
==== High value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxLinearSensor4 --&amp;gt;&lt;br /&gt;
=== Aux Linear Sensor #4 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear4_hwChannel --&amp;gt;&lt;br /&gt;
==== ADC input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear4_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear4_value1 --&amp;gt;&lt;br /&gt;
==== Low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear4_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLinear4_value2 --&amp;gt;&lt;br /&gt;
==== High value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxLowPassCutoffHz --&amp;gt;&lt;br /&gt;
==== AUX Low Pass Cutoff Hz ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxSpeedSensors --&amp;gt;&lt;br /&gt;
== Aux Shaft Speed Sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin1 --&amp;gt;&lt;br /&gt;
==== Aux Speed Input 1 (aux) ====&lt;br /&gt;
auxSpeedSensorInputPin 1&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin2 --&amp;gt;&lt;br /&gt;
==== Aux Speed Input 2 (aux) ====&lt;br /&gt;
auxSpeedSensorInputPin 2&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin3 --&amp;gt;&lt;br /&gt;
==== Aux Speed Input 3 (aux) ====&lt;br /&gt;
auxSpeedSensorInputPin 3&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedSensorInputPin4 --&amp;gt;&lt;br /&gt;
==== Aux Speed Input 4 (aux) ====&lt;br /&gt;
auxSpeedSensorInputPin 4&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxFrequencyFilter1 --&amp;gt;&lt;br /&gt;
==== aux speed sensor frequency filter1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxFrequencyFilter2 --&amp;gt;&lt;br /&gt;
==== aux speed sensor frequency filter2 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxFrequencyFilter3 --&amp;gt;&lt;br /&gt;
==== aux speed sensor frequency filter3 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxFrequencyFilter4 --&amp;gt;&lt;br /&gt;
==== aux speed sensor frequency filter4 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedMult1 --&amp;gt;&lt;br /&gt;
==== auxSpeedMult5 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedMult2 --&amp;gt;&lt;br /&gt;
==== auxSpeedMult6 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedMult3 --&amp;gt;&lt;br /&gt;
==== auxSpeedMult7 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxSpeedMult4 --&amp;gt;&lt;br /&gt;
==== auxSpeedMult8 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnAuxSpeedSensors1 --&amp;gt;&lt;br /&gt;
==== useBiQuadOnAuxSpeedSensors5 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnAuxSpeedSensors2 --&amp;gt;&lt;br /&gt;
==== useBiQuadOnAuxSpeedSensors6 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnAuxSpeedSensors3 --&amp;gt;&lt;br /&gt;
==== useBiQuadOnAuxSpeedSensors7 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnAuxSpeedSensors4 --&amp;gt;&lt;br /&gt;
==== useBiQuadOnAuxSpeedSensors8 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Chassis sensors --&amp;gt;&lt;br /&gt;
= Chassis sensors =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:otherSensorInputs --&amp;gt;&lt;br /&gt;
== Misc sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPin --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
Some cars have a switch to indicate that clutch pedal is all the way down&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPinMode --&amp;gt;&lt;br /&gt;
==== Clutch Down mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPin --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
Some vehicles have a switch to indicate that clutch pedal is all the way up&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPinMode --&amp;gt;&lt;br /&gt;
==== Clutch Up mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:brakePedalPin --&amp;gt;&lt;br /&gt;
==== Brake Pedal ====&lt;br /&gt;
Brake pedal switch&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:brakePedalPinMode --&amp;gt;&lt;br /&gt;
==== Brake Pedal Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:throttleInletPressureChannel --&amp;gt;&lt;br /&gt;
==== Throttle inlet pressure sensor ====&lt;br /&gt;
Place the sensor before the throttle, but after any turbocharger/supercharger and intercoolers if fitted. Uses the same calibration as the MAP sensor.&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:clutchPositionSensorDialog --&amp;gt;&lt;br /&gt;
== Clutch Position (analog) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:clutchPositionSensorSettings --&amp;gt;&lt;br /&gt;
=== Analog Clutch Position Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchPositionSensor_hwChannel --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchPositionSensor_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchPositionSensor_value1 --&amp;gt;&lt;br /&gt;
==== Low value (%) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchPositionSensor_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchPositionSensor_value2 --&amp;gt;&lt;br /&gt;
==== High value (%) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ambientTempSensor --&amp;gt;&lt;br /&gt;
== Ambient temp sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_adcChannel --&amp;gt;&lt;br /&gt;
==== Input channel ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_bias_resistor --&amp;gt;&lt;br /&gt;
==== Pullup resistor ====&lt;br /&gt;
Pull-up resistor value on your board&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_tempC_1 --&amp;gt;&lt;br /&gt;
==== Lowest temperature ====&lt;br /&gt;
these values are in Celcius&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_resistance_1 --&amp;gt;&lt;br /&gt;
==== Resistance @ LT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_tempC_2 --&amp;gt;&lt;br /&gt;
==== Middle temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_resistance_2 --&amp;gt;&lt;br /&gt;
==== Resistance @ MT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_tempC_3 --&amp;gt;&lt;br /&gt;
==== Highest temperature ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ambientTempSensor_resistance_3 --&amp;gt;&lt;br /&gt;
==== Resistance @ HT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:acPressureSensor --&amp;gt;&lt;br /&gt;
== A/C Pressure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:acPressureSensorSettings --&amp;gt;&lt;br /&gt;
=== A/C Pressure Sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acPressure_hwChannel --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acPressure_v1 --&amp;gt;&lt;br /&gt;
==== Low voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acPressure_value1 --&amp;gt;&lt;br /&gt;
==== Low value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acPressure_v2 --&amp;gt;&lt;br /&gt;
==== High voltage ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acPressure_value2 --&amp;gt;&lt;br /&gt;
==== High value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bmwMflButtons --&amp;gt;&lt;br /&gt;
== BMW MFL Buttons ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwMflPin --&amp;gt;&lt;br /&gt;
==== BMW MFL Input pin ====&lt;br /&gt;
BMW E46/E39 Cruise Control buttons&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwMflOnLatch --&amp;gt;&lt;br /&gt;
==== BMW MFL ON Mode ====&lt;br /&gt;
Latch: toggles on press (on/off). Momentary: ON only while held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwMflIoTypeLatch --&amp;gt;&lt;br /&gt;
==== BMW MFL IO Mode ====&lt;br /&gt;
Latch: toggles on press (on/off). Momentary: ON only while held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwMflPlusTypeLatch --&amp;gt;&lt;br /&gt;
==== BMW MFL Plus Mode ====&lt;br /&gt;
Latch: toggles on press (on/off). Momentary: ON only while held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwMflMinusTypeLatch --&amp;gt;&lt;br /&gt;
==== BMW MFL Minus Mode ====&lt;br /&gt;
Latch: toggles on press (on/off). Momentary: ON only while held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bmwIbusButtons --&amp;gt;&lt;br /&gt;
== BMW iBus Buttons ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwIbusEnabled --&amp;gt;&lt;br /&gt;
==== Enable BMW iBus ====&lt;br /&gt;
Enables iBus button decoding and exposes iBus buttons as virtual inputs. Connect iBus line to pin X60004-40 (unused in stock ECU).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwIbusVerbose --&amp;gt;&lt;br /&gt;
==== Print BMW iBus messages to console ====&lt;br /&gt;
Logs raw iBus frames and decoded events; very chatty - use only for debugging.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwIbusLeftLatch --&amp;gt;&lt;br /&gt;
==== BMW iBus Left Mode ====&lt;br /&gt;
Latch = acts like an on/off switch: toggles at release if no long-press occurred during that hold. Momentary = acts like a pushbutton: ON only while held. Note: during a long-press attempt, Momentary will still turn ON while the button is held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwIbusRightLatch --&amp;gt;&lt;br /&gt;
==== BMW iBus Right Mode ====&lt;br /&gt;
Latch = acts like an on/off switch: toggles at release if no long-press occurred during that hold. Momentary = acts like a pushbutton: ON only while held. Note: during a long-press attempt, Momentary will still turn ON while the button is held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bmwIbusTelLatch --&amp;gt;&lt;br /&gt;
==== BMW iBus Tel Mode ====&lt;br /&gt;
Latch = acts like an on/off switch: toggles at release if no long-press occurred during that hold. Momentary = acts like a pushbutton: ON only while held. Note: during a long-press attempt, Momentary will still turn ON while the button is held.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;momentary&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;latch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canReWidebandTools --&amp;gt;&lt;br /&gt;
= rusEFI Wideband Tools =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canReWidebandNewTools --&amp;gt;&lt;br /&gt;
== 2025 firmware ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:widebandOnSecondBus#1 --&amp;gt;&lt;br /&gt;
==== Wideband CAN bus ====&lt;br /&gt;
Select which bus the wideband controller is attached to.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CAN1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;CAN2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canReWidebandHwIndex --&amp;gt;&lt;br /&gt;
==== Target device HW ID ====&lt;br /&gt;
* &#039;&#039;&#039;Idx 0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Idx 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canReWidebandCanId --&amp;gt;&lt;br /&gt;
==== Required CAN ID ====&lt;br /&gt;
* &#039;&#039;&#039;ID1 0x190/191&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID2 0x192/193&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID3 0x194/195&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID4 0x196/197&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID5 0x198/199&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID6 0x19A/19B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID7 0x19C/19D&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID8 0x19E/19F&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID9 0x200/201&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID10 0x202/203&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID11 0x204/205&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID12 0x206/207&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID13 0x208/209&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID14 0x20A/20B&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID15 0x20C/20D&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;ID16 0x20E/20F&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canReWidebandSensorType --&amp;gt;&lt;br /&gt;
==== Sensor type ====&lt;br /&gt;
* &#039;&#039;&#039;Bosch LSU4.9&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Bosch LSU4.2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Bosch LSU ADV&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;FAE LSU4.9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canReWidebandLegacyTools --&amp;gt;&lt;br /&gt;
== Legacy 2023 firmware ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canReWidebandRemap1 --&amp;gt;&lt;br /&gt;
== rusEFI Wideband 1 auto remap ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo1_enableRemap --&amp;gt;&lt;br /&gt;
==== Auto remap on start ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo1_reHwidx --&amp;gt;&lt;br /&gt;
==== rusEFI WBO hardware index ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_re_hwidx_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo1_reId#1 --&amp;gt;&lt;br /&gt;
==== rusEFI WBO CAN ID ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_re_id_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canReWidebandRemap2 --&amp;gt;&lt;br /&gt;
== rusEFI Wideband 2 auto remap ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo2_enableRemap --&amp;gt;&lt;br /&gt;
==== Auto remap on start ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo2_reHwidx --&amp;gt;&lt;br /&gt;
==== rusEFI WBO hardware index ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_re_hwidx_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWbo2_reId#1 --&amp;gt;&lt;br /&gt;
==== rusEFI WBO CAN ID ====&lt;br /&gt;
* &#039;&#039;&#039;$can_wbo_re_id_list&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Advanced&amp;diff=475</id>
		<title>Config:Advanced</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Advanced&amp;diff=475"/>
		<updated>2026-06-06T22:15:36Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;!-- section:smLaunchControl --&amp;gt; = Launch Control =  &amp;lt;!-- section:smLaunchControlWest --&amp;gt; == Launch Control Settings ==  &amp;lt;!-- field:launchControlEnabled --&amp;gt; ==== Launch Control ====  &amp;lt;!-- field:launchActivationMode --&amp;gt; ==== Activation Mode ==== * &amp;#039;&amp;#039;&amp;#039;Launch Button&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;Clutch Down Switch&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;Speed Based&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;Brake Pedal&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;Lua&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;TPS based&amp;#039;&amp;#039;&amp;#039; * &amp;#039;&amp;#039;&amp;#039;Clutch Up&amp;#039;&amp;#039;&amp;#039;  &amp;lt;!-- field:clutchDownPin --&amp;gt; ==== Clutch Down ==== Some cars have a switch to indicate that...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:smLaunchControl --&amp;gt;&lt;br /&gt;
= Launch Control =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:smLaunchControlWest --&amp;gt;&lt;br /&gt;
== Launch Control Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchControlEnabled --&amp;gt;&lt;br /&gt;
==== Launch Control ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivationMode --&amp;gt;&lt;br /&gt;
==== Activation Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Launch Button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Down Switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Speed Based&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Brake Pedal&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;TPS based&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Up&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPin --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
Some cars have a switch to indicate that clutch pedal is all the way down&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPinMode --&amp;gt;&lt;br /&gt;
==== Clutch Down mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPin --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
Some vehicles have a switch to indicate that clutch pedal is all the way up&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPinMode --&amp;gt;&lt;br /&gt;
==== Clutch Up mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePin --&amp;gt;&lt;br /&gt;
==== Launch Button ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePinMode --&amp;gt;&lt;br /&gt;
==== Launch Button mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchRpm --&amp;gt;&lt;br /&gt;
==== Launch Full Cut RPM ====&lt;br /&gt;
A secondary Rev limit engaged by the driver to help launch the vehicle faster&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchRpmWindow --&amp;gt;&lt;br /&gt;
==== Launch Window - start of cut(lRPM - window) ====&lt;br /&gt;
Starting Launch RPM window to activate (subtracts from Launch RPM)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePinRpmLock --&amp;gt;&lt;br /&gt;
==== Rolling Launch Button ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePinRpmLockMode --&amp;gt;&lt;br /&gt;
==== Rolling Launch Button mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:minRpmLockLaunch --&amp;gt;&lt;br /&gt;
==== Rolling Launch Min RPM ====&lt;br /&gt;
Min rpm at which rpm can be locked for launch&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchRpmLockAdder --&amp;gt;&lt;br /&gt;
==== Rolling Launch RPM Lock Full Cut Adder(+/-) ====&lt;br /&gt;
Adder to launch rpm when button is held&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_tps_engage_above --&amp;gt;&lt;br /&gt;
==== TPS Engage Above ====&lt;br /&gt;
Engage TPS launch above&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_tps_disengage_below --&amp;gt;&lt;br /&gt;
==== TPS Disengage Below ====&lt;br /&gt;
Disengage TPS launch below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_tps_min_rpm --&amp;gt;&lt;br /&gt;
==== TPS Launch Min RPM ====&lt;br /&gt;
TPS min RPM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchSpeedThreshold --&amp;gt;&lt;br /&gt;
==== Speed Threshold ====&lt;br /&gt;
Launch disabled above this speed if setting is above zero&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launch_control_driver_intent_tps --&amp;gt;&lt;br /&gt;
==== Driver Intent / TPS ====&lt;br /&gt;
true = ETB pedal, false = TPS, fallback to TPS if no etb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchTpsThreshold --&amp;gt;&lt;br /&gt;
==== TPS Threshold (no launch below this) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableLaunchRetard --&amp;gt;&lt;br /&gt;
==== Use Ignition Retard ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchSmoothRetard --&amp;gt;&lt;br /&gt;
==== Smooth Retard Mode ====&lt;br /&gt;
Interpolates the Ignition Retard from 0 to 100% within the RPM Range&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchTimingRetard --&amp;gt;&lt;br /&gt;
==== Ignition Timing Final ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchFuelAdderPercent --&amp;gt;&lt;br /&gt;
==== Fuel Added (-100 to 100) % ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchSparkCutEnable --&amp;gt;&lt;br /&gt;
==== Ignition Cut ====&lt;br /&gt;
This is the Cut Mode normally used&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:initialIgnitionCutPercent --&amp;gt;&lt;br /&gt;
==== Initial Ignition Cut % ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:finalIgnitionCutPercentBeforeLaunch --&amp;gt;&lt;br /&gt;
==== Final Ignition Cut % Before launch ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchFuelCutEnable --&amp;gt;&lt;br /&gt;
==== Fuel Cut ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:launch_control_stateDialog --&amp;gt;&lt;br /&gt;
== launch_control_state ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:antiLagDialog --&amp;gt;&lt;br /&gt;
= Anti-Lag ALS =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:antiLagEnabled --&amp;gt;&lt;br /&gt;
==== AntiLag ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:antiLagActivationMode --&amp;gt;&lt;br /&gt;
==== Activation Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Switch Input&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Always Active&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSActivatePin --&amp;gt;&lt;br /&gt;
==== Switch Input ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:als_switch_uses_timeout --&amp;gt;&lt;br /&gt;
==== Switch OFF uses timeout ====&lt;br /&gt;
ALS on/off switch uses timeout&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSActivatePinMode --&amp;gt;&lt;br /&gt;
==== ALS Button mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxDuration --&amp;gt;&lt;br /&gt;
==== ALS timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinMap --&amp;gt;&lt;br /&gt;
==== Min MAP - Ends ALS after timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinTPS --&amp;gt;&lt;br /&gt;
==== Min TPS/PPS - Ends ALS after timeout ====&lt;br /&gt;
Min TPS/PPS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinRPM --&amp;gt;&lt;br /&gt;
==== Min RPM - Ends ALS after timeout ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxMap --&amp;gt;&lt;br /&gt;
==== Max MAP - Ends ALS Instantly ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxTPS --&amp;gt;&lt;br /&gt;
==== Max TPS/PPS - Ends ALS Instantly ====&lt;br /&gt;
Max TPS/PPS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxRPM --&amp;gt;&lt;br /&gt;
==== Max RPM - Ends ALS Instantly ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMinCLT --&amp;gt;&lt;br /&gt;
==== Min CLT - ALS Safety limit - no ALS below this ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxCLT --&amp;gt;&lt;br /&gt;
==== Max CLT - ALS Safety limit - no ALS above this ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:alsUseEgt --&amp;gt;&lt;br /&gt;
==== Use EGT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSMaxEGT --&amp;gt;&lt;br /&gt;
==== Max EGT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSIdleAdd --&amp;gt;&lt;br /&gt;
==== Idle Air Add ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:ALSEtbAdd --&amp;gt;&lt;br /&gt;
==== ETB Air Add ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:FuelAdderTableALS --&amp;gt;&lt;br /&gt;
== Fuel adjustment ==&lt;br /&gt;
3D table: Fuel adjustment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:IgnRetardTableALS --&amp;gt;&lt;br /&gt;
== Ignition adjustment ==&lt;br /&gt;
3D table: Ignition adjustment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:IgnSkipTableALS --&amp;gt;&lt;br /&gt;
== Ignition Skip ==&lt;br /&gt;
3D table: Ignition Skip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:EtbAirAddTableALS --&amp;gt;&lt;br /&gt;
== ETB Air Add ==&lt;br /&gt;
3D table: ETB Air Add.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Traction Control and Vehicle Speed --&amp;gt;&lt;br /&gt;
= Traction Control and Vehicle Speed =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensor --&amp;gt;&lt;br /&gt;
== Vehicle speed sensor ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensorAnalog --&amp;gt;&lt;br /&gt;
=== Speed sensor ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trac_vss_source --&amp;gt;&lt;br /&gt;
==== Source for speed sensor input ====&lt;br /&gt;
Source for Main VSS reference&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;VSS Sensor&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Trac Front&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Trac Rear&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Trac Front/Rear AVG&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;GPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vehicleSpeedSensorInputPin --&amp;gt;&lt;br /&gt;
==== Input ====&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal --&amp;gt;&lt;br /&gt;
==== Filter parameter ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssCalSpeed --&amp;gt;&lt;br /&gt;
==== Calibration Drive Speed ====&lt;br /&gt;
Drive this speed when calibrating VSS pulses per km&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssPulsePerKm --&amp;gt;&lt;br /&gt;
==== Pulses per KM ====&lt;br /&gt;
vss Pulses per KM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:speedSensorCan --&amp;gt;&lt;br /&gt;
=== CAN vehicle speed ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableCanVss --&amp;gt;&lt;br /&gt;
==== Enable legacy CAN VSS ====&lt;br /&gt;
Read VSS from OEM CAN bus according to selected CAN vehicle configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssNbcType --&amp;gt;&lt;br /&gt;
==== CAN VSS type ====&lt;br /&gt;
* &#039;&#039;&#039;BMW_e46&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;W202&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;BMW E8x/E9x MK60e5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Nissan 350&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Hyundai PB&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Honda Civic9&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssScaling --&amp;gt;&lt;br /&gt;
==== CAN VSS scaling ====&lt;br /&gt;
Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS --&amp;gt;&lt;br /&gt;
==== Custom CAN Wheel speed reading enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssCalSpeed#1 --&amp;gt;&lt;br /&gt;
==== Target km/h ====&lt;br /&gt;
Drive this speed when calibrating VSS pulses per km&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tireSizeWidth --&amp;gt;&lt;br /&gt;
==== tire Width(mm) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tireSizeAspect --&amp;gt;&lt;br /&gt;
==== tire Aspect(%) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tireSizeRimDiameterInch --&amp;gt;&lt;br /&gt;
==== tire Rim Diameter (in) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gearDetection --&amp;gt;&lt;br /&gt;
=== Gear Detection ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm#1 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:finalGearRatio --&amp;gt;&lt;br /&gt;
==== Final drive ratio ====&lt;br /&gt;
Ratio between the wheels and your transmission output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:totalGearsCount --&amp;gt;&lt;br /&gt;
==== Forward gear count ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio1 --&amp;gt;&lt;br /&gt;
==== 1st gear ====&lt;br /&gt;
gearRatio 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio2 --&amp;gt;&lt;br /&gt;
==== 2nd gear ====&lt;br /&gt;
gearRatio 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio3 --&amp;gt;&lt;br /&gt;
==== 3rd gear ====&lt;br /&gt;
gearRatio 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio4 --&amp;gt;&lt;br /&gt;
==== 4th gear ====&lt;br /&gt;
gearRatio 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio5 --&amp;gt;&lt;br /&gt;
==== 5th gear ====&lt;br /&gt;
gearRatio 5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio6 --&amp;gt;&lt;br /&gt;
==== 6th gear ====&lt;br /&gt;
gearRatio 6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio7 --&amp;gt;&lt;br /&gt;
==== 7th gear ====&lt;br /&gt;
gearRatio 7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gearRatio8 --&amp;gt;&lt;br /&gt;
==== 8th gear ====&lt;br /&gt;
gearRatio 8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionControlInputs --&amp;gt;&lt;br /&gt;
== Local Wheel speed inputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS#1 --&amp;gt;&lt;br /&gt;
==== CAN Wheel speed reading enabled(overrides real inputs) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin1 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 1 (FL) ====&lt;br /&gt;
wheelSpeedSensorInputPin 1&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin2 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 2 (FR) ====&lt;br /&gt;
wheelSpeedSensorInputPin 2&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin3 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 3 (RL) ====&lt;br /&gt;
wheelSpeedSensorInputPin 3&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:wheelSpeedSensorInputPin4 --&amp;gt;&lt;br /&gt;
==== Wheel Speed Input 4 (RR) ====&lt;br /&gt;
wheelSpeedSensorInputPin 4&lt;br /&gt;
?highlight=class~event_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$brain_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount1 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (FL) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount2 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (FR) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount3 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (RL) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssToothCount4 --&amp;gt;&lt;br /&gt;
==== Speed sensor tooth count (RR) ====&lt;br /&gt;
Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm1 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (FL) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm2 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (FR) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm3 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (RL) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:driveWheelRevPerKm4 --&amp;gt;&lt;br /&gt;
==== Wheel revolutions per kilometer (RR) ====&lt;br /&gt;
Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio1 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (FL) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio2 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (FR) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio3 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (RL) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssGearRatio4 --&amp;gt;&lt;br /&gt;
==== Speed sensor gear ratio (RR) ====&lt;br /&gt;
Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal1 --&amp;gt;&lt;br /&gt;
==== Filter parameter1 FL ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal2 --&amp;gt;&lt;br /&gt;
==== Filter parameter2 FR ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal3 --&amp;gt;&lt;br /&gt;
==== Filter parameter3 RL ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vssFilterReciprocal4 --&amp;gt;&lt;br /&gt;
==== Filter parameter4 RR ====&lt;br /&gt;
Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors1 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed FL ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors2 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed FR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors3 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed RL ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBiQuadOnWheelSpeedSensors4 --&amp;gt;&lt;br /&gt;
==== Use biquad on wheel speed RR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:canWheelSpeeds --&amp;gt;&lt;br /&gt;
== CAN Wheel speed inputs ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:customCanVSS#2 --&amp;gt;&lt;br /&gt;
==== CAN Wheel speed reading enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssFLEnabled --&amp;gt;&lt;br /&gt;
==== Front left Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLCanId --&amp;gt;&lt;br /&gt;
==== Front left CAN ID(dec) ====&lt;br /&gt;
CAN ID of the front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLBitLength --&amp;gt;&lt;br /&gt;
==== Front left bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLStartByte --&amp;gt;&lt;br /&gt;
==== Front left start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLBitEndianness --&amp;gt;&lt;br /&gt;
==== Front left big endian ====&lt;br /&gt;
Endianness for Front left wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLFactor --&amp;gt;&lt;br /&gt;
==== Front left factor ====&lt;br /&gt;
Scale factor for front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFLOffset --&amp;gt;&lt;br /&gt;
==== Front left offset ====&lt;br /&gt;
Offset for front left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssFREnabled --&amp;gt;&lt;br /&gt;
==== Front right Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRCanId --&amp;gt;&lt;br /&gt;
==== Front right CAN ID(dec) ====&lt;br /&gt;
CAN ID of the front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRBitLength --&amp;gt;&lt;br /&gt;
==== Front right bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRStartByte --&amp;gt;&lt;br /&gt;
==== Front right start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRBitEndianness --&amp;gt;&lt;br /&gt;
==== Front right big endian ====&lt;br /&gt;
Endianness for Front right wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFRFactor --&amp;gt;&lt;br /&gt;
==== Front right factor ====&lt;br /&gt;
Scale factor for front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelFROffset --&amp;gt;&lt;br /&gt;
==== Front right offset ====&lt;br /&gt;
Offset for front right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssRLEnabled --&amp;gt;&lt;br /&gt;
==== Rear left Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLCanId --&amp;gt;&lt;br /&gt;
==== Rear left CAN ID(dec) ====&lt;br /&gt;
CAN ID of the rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLBitLength --&amp;gt;&lt;br /&gt;
==== Rear left bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLStartByte --&amp;gt;&lt;br /&gt;
==== Rear left start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLBitEndianness --&amp;gt;&lt;br /&gt;
==== Rear left big endian ====&lt;br /&gt;
Endianness for Rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLFactor --&amp;gt;&lt;br /&gt;
==== Rear left factor ====&lt;br /&gt;
Scale factor for rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRLOffset --&amp;gt;&lt;br /&gt;
==== Rear left offset ====&lt;br /&gt;
Offset for rear left wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canVssRREnabled --&amp;gt;&lt;br /&gt;
==== Rear right Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRCanId --&amp;gt;&lt;br /&gt;
==== Rear right CAN ID(dec) ====&lt;br /&gt;
CAN ID of the rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRBitLength --&amp;gt;&lt;br /&gt;
==== Rear right bit length ====&lt;br /&gt;
How many bits the data is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRStartByte --&amp;gt;&lt;br /&gt;
==== Rear right start BYTE (0-7) ====&lt;br /&gt;
Starting byte of the data&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRBitEndianness --&amp;gt;&lt;br /&gt;
==== Rear right big endian ====&lt;br /&gt;
Endianness for Rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039; little&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; big&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRRFactor --&amp;gt;&lt;br /&gt;
==== Rear right factor ====&lt;br /&gt;
Scale factor for rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canWheelRROffset --&amp;gt;&lt;br /&gt;
==== Rear right offset ====&lt;br /&gt;
Offset for rear right wheel speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionControlTracSettings --&amp;gt;&lt;br /&gt;
== Traction control settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:drive_train_layout --&amp;gt;&lt;br /&gt;
==== Drivetrain layout ====&lt;br /&gt;
Drivetrain layout&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;RWD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;FWD&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;AWD&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableSlipCalculations --&amp;gt;&lt;br /&gt;
==== Enable Slip and wheel speed calculations ====&lt;br /&gt;
Enable Slip value calculations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tractionControlEnabled --&amp;gt;&lt;br /&gt;
==== Traction control intervention enabled ====&lt;br /&gt;
Traction control intervention enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tcUseETB --&amp;gt;&lt;br /&gt;
==== Use ETB for trac ====&lt;br /&gt;
traction control uses ETB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tcUseSparkSkip --&amp;gt;&lt;br /&gt;
==== Use Spark Skip for trac ====&lt;br /&gt;
traction control uses spark skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tcUseIgnTiming --&amp;gt;&lt;br /&gt;
==== Use Ignition Timing retard for trac ====&lt;br /&gt;
traction control uses ignition timing retard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinRpm --&amp;gt;&lt;br /&gt;
==== Minimum RPM for traction control ====&lt;br /&gt;
Trac minimum RPM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinMap --&amp;gt;&lt;br /&gt;
==== Minimum MAP for traction control ====&lt;br /&gt;
Trac minimum MAP&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinTps --&amp;gt;&lt;br /&gt;
==== Minimum TPS for traction control ====&lt;br /&gt;
Trac minimum TPS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tracMinSpeed --&amp;gt;&lt;br /&gt;
==== Minimum speed for traction control ====&lt;br /&gt;
Trac minimum speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionControlCanBoxParams --&amp;gt;&lt;br /&gt;
== CAN box traction settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrimMax --&amp;gt;&lt;br /&gt;
==== canBoxTracTrimMax  ====&lt;br /&gt;
Traction trim adjust max&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrimMin --&amp;gt;&lt;br /&gt;
==== canBoxTracTrimMin  ====&lt;br /&gt;
Traction trim adjust min&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrimStep --&amp;gt;&lt;br /&gt;
==== canBoxTracTrimStep ====&lt;br /&gt;
Traction trim adjustment step&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim1 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim1    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim2 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim2    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim3 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim3    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxTracTrim4 --&amp;gt;&lt;br /&gt;
==== canBoxTracTrim4    ====&lt;br /&gt;
Trim preset 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionEtbDialog --&amp;gt;&lt;br /&gt;
== Traction Control ETB ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionEtbLeftRightTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Left/Right ETB drop ===&lt;br /&gt;
3D table: Traction Control Left/Right ETB drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionEtbFrontRearTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Front/Rear ETB drop ===&lt;br /&gt;
3D table: Traction Control Front/Rear ETB drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionTimingDialog --&amp;gt;&lt;br /&gt;
== Traction Control Timing Retard ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionTimingLeftRightTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Left/Right Timing drop ===&lt;br /&gt;
3D table: Traction Control Left/Right Timing drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionTimingFrontRearTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Front/Rear Timing drop ===&lt;br /&gt;
3D table: Traction Control Front/Rear Timing drop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:tractionIgnitionSkipDialog --&amp;gt;&lt;br /&gt;
== Traction Control Spark Skip ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionIgnitionSkipLeftRightTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Left/Right Skip Ignition ===&lt;br /&gt;
3D table: Traction Control Left/Right Skip Ignition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:tractionIgnitionSkipFrontRearTableTbl --&amp;gt;&lt;br /&gt;
=== Traction Control Front/Rear Skip Ignition ===&lt;br /&gt;
3D table: Traction Control Front/Rear Skip Ignition.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:rotaryDialog --&amp;gt;&lt;br /&gt;
= Rotary =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableTrailingSparks --&amp;gt;&lt;br /&gt;
==== Enable Trailing Sparks ====&lt;br /&gt;
Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins1 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 1 ====&lt;br /&gt;
trailingCoilPins 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins2 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 2 ====&lt;br /&gt;
trailingCoilPins 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins3 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 3 ====&lt;br /&gt;
trailingCoilPins 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:trailingCoilPins4 --&amp;gt;&lt;br /&gt;
==== Trailing Pin 4 ====&lt;br /&gt;
trailingCoilPins 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:trailingSparkTable --&amp;gt;&lt;br /&gt;
== Trailing spark ==&lt;br /&gt;
3D table: Trailing spark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Torque Control --&amp;gt;&lt;br /&gt;
= Torque Control =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ShiftTorqueReductionDialog --&amp;gt;&lt;br /&gt;
== Shift Torque Reduction (Flat Shift) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:TorqueReductionActivationModeDialog --&amp;gt;&lt;br /&gt;
=== Activation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionEnabled --&amp;gt;&lt;br /&gt;
==== Enable Shift Torque Reduction ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionActivationMode --&amp;gt;&lt;br /&gt;
==== Activation Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Torque Reduction Button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Launch Button&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Down Switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Clutch Up Switch&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Load Cell 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Load Cell 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Load Cell 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionActivationTemperature --&amp;gt;&lt;br /&gt;
==== Minimal CLT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:TorqueReductionButtonDialog --&amp;gt;&lt;br /&gt;
==== Torque Reduction Button ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTriggerPin --&amp;gt;&lt;br /&gt;
==== Torque Reduction Button ====&lt;br /&gt;
Pin that activates the reduction/cut for shifting. Sometimes shared with the Launch Control pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Torque Reduction Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:LaunchButtonDialog --&amp;gt;&lt;br /&gt;
==== Launch Button ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:launchActivatePin#1 --&amp;gt;&lt;br /&gt;
==== Launch Button ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ClutchDownDialog --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPin#1 --&amp;gt;&lt;br /&gt;
==== Clutch Down ====&lt;br /&gt;
Some cars have a switch to indicate that clutch pedal is all the way down&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchDownPinMode#1 --&amp;gt;&lt;br /&gt;
==== Clutch Down Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ClutchUpDialog --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPin#1 --&amp;gt;&lt;br /&gt;
==== Clutch Up ====&lt;br /&gt;
Some vehicles have a switch to indicate that clutch pedal is all the way up&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:clutchUpPinMode#1 --&amp;gt;&lt;br /&gt;
==== Clutch Up Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:TorqueReductionSettings --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionArmingRpm --&amp;gt;&lt;br /&gt;
==== Torque Reduction Arming RPM ====&lt;br /&gt;
Since torque reduction pin is usually shared with launch control, most people have an RPM where behavior under that is Launch Control, over that is Flat Shift/Torque Reduction&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionArmingApp --&amp;gt;&lt;br /&gt;
==== Torque Reduction Arming APP ====&lt;br /&gt;
Pedal position to realize that we need to reduce torque when the trigger pin is uuuh triggered&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTimingAdder --&amp;gt;&lt;br /&gt;
==== Timing Table is Adder ====&lt;br /&gt;
True = adder, False = absolute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:limitTorqueReductionTime --&amp;gt;&lt;br /&gt;
==== Limit Torque Reduction Time ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:limitTorqueRestoreTime --&amp;gt;&lt;br /&gt;
==== Taper time to restore torque (0-1200ms) ====&lt;br /&gt;
Time(ms) to restore torque (0-1200ms)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionTimeXaxis --&amp;gt;&lt;br /&gt;
==== X axis torque reduction time ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionIgnitionRetardXaxis --&amp;gt;&lt;br /&gt;
==== X axis torque reduction ignition retard ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:torqueReductionCutXaxis --&amp;gt;&lt;br /&gt;
==== X axis torque reduction ignition cut ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:torqueReductionTimeTlb --&amp;gt;&lt;br /&gt;
=== Torque reduction time table ===&lt;br /&gt;
3D table: Torque reduction time table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:torqueReductionIgnitionRetardTlb --&amp;gt;&lt;br /&gt;
=== Torque reduction ignition retard table ===&lt;br /&gt;
3D table: Torque reduction ignition retard table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:torqueReductionIgnitionCutTlb --&amp;gt;&lt;br /&gt;
=== Torque reduction cut table ===&lt;br /&gt;
3D table: Torque reduction cut table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellDialog --&amp;gt;&lt;br /&gt;
== Load Cell Sensors ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellRuntimeValues --&amp;gt;&lt;br /&gt;
=== Load Cell Runtime Values ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellDialogCenter --&amp;gt;&lt;br /&gt;
=== Load Cell ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell1_adcChannel --&amp;gt;&lt;br /&gt;
==== Load Cell 1 ADC Channel ====&lt;br /&gt;
Load cell 1 ADC channel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell2_adcChannel --&amp;gt;&lt;br /&gt;
==== Load Cell 2 ADC Channel ====&lt;br /&gt;
Load cell 2 ADC channel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell3_adcChannel --&amp;gt;&lt;br /&gt;
==== Load Cell 3 ADC Channel ====&lt;br /&gt;
Load cell 3 ADC channel&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell_low_pass_cutoff_hz --&amp;gt;&lt;br /&gt;
==== Load Cell Low Pass Cutoff Hz ====&lt;br /&gt;
Load cell low pass cutoff Hz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell1_min_value --&amp;gt;&lt;br /&gt;
==== Load Cell 1 Minimum Value ====&lt;br /&gt;
Load cell 1 minimum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell1_max_value --&amp;gt;&lt;br /&gt;
==== Load Cell 1 Maximum Value ====&lt;br /&gt;
Load cell 1 maximum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell2_min_value --&amp;gt;&lt;br /&gt;
==== Load Cell 2 Minimum Value ====&lt;br /&gt;
Load cell 2 minimum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell2_max_value --&amp;gt;&lt;br /&gt;
==== Load Cell 2 Maximum Value ====&lt;br /&gt;
Load cell 2 maximum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell3_min_value --&amp;gt;&lt;br /&gt;
==== Load Cell 3 Minimum Value ====&lt;br /&gt;
Load cell 3 minimum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:load_cell3_max_value --&amp;gt;&lt;br /&gt;
==== Load Cell 3 Maximum Value ====&lt;br /&gt;
Load cell 3 maximum value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:loadCellGaugeDialogEast --&amp;gt;&lt;br /&gt;
=== Load Cell Gauge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlDialog --&amp;gt;&lt;br /&gt;
= Nitrous Control =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlEnabled --&amp;gt;&lt;br /&gt;
==== Nitrous Control ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlArmingMethodDialog --&amp;gt;&lt;br /&gt;
== Arming Method ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlArmingMethod --&amp;gt;&lt;br /&gt;
==== Arming Method ====&lt;br /&gt;
* &#039;&#039;&#039;Digital Switch Input&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlButtonDialog --&amp;gt;&lt;br /&gt;
=== Digital Switch Input ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlTriggerPin --&amp;gt;&lt;br /&gt;
==== Nitrous Control Button ====&lt;br /&gt;
Pin that activates nitrous control&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousControlTriggerPinMode --&amp;gt;&lt;br /&gt;
==== Nitrous Control Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlLuaGaugeDialog --&amp;gt;&lt;br /&gt;
=== Lua Gauge ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousLuaGauge --&amp;gt;&lt;br /&gt;
==== Lua Gauge ====&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 6&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 7&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Lua Gauge 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousLuaGaugeMeaning --&amp;gt;&lt;br /&gt;
==== Value Meaning ====&lt;br /&gt;
* &#039;&#039;&#039;Lower Bound&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Upper Bound&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousLuaGaugeArmingValue --&amp;gt;&lt;br /&gt;
==== Arming Value ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:NitrousControlSettings --&amp;gt;&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousRelayPin --&amp;gt;&lt;br /&gt;
==== Nitrous Relay ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousRelayPinMode --&amp;gt;&lt;br /&gt;
==== Nitrous Relay Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMinimumVehicleSpeed --&amp;gt;&lt;br /&gt;
==== Minimum Vehicle Speed ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMinimumTps --&amp;gt;&lt;br /&gt;
==== Minimum TPS ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMinimumClt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMaximumMap --&amp;gt;&lt;br /&gt;
==== Maximum MAP ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousMaximumAfr --&amp;gt;&lt;br /&gt;
==== Maximum AFR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousActivationRpm --&amp;gt;&lt;br /&gt;
==== Activation RPM ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousDeactivationRpm --&amp;gt;&lt;br /&gt;
==== Dectivation RPM ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousDeactivationRpmWindow --&amp;gt;&lt;br /&gt;
==== Dectivation RPM Window ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousFuelAdderPercent --&amp;gt;&lt;br /&gt;
==== Fuel Adder ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:nitrousIgnitionRetard --&amp;gt;&lt;br /&gt;
==== Ignition Retard ====&lt;br /&gt;
Retard timing to remove from actual final timing (after all corrections) due to additional air.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:nitrous_control_stateDialog --&amp;gt;&lt;br /&gt;
== nitrous_control_state ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:VvlControlDialog --&amp;gt;&lt;br /&gt;
= Variable valve lift (VVL) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlControlEnabled --&amp;gt;&lt;br /&gt;
==== VVL/Switched cam Control ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:VvlControlSettings --&amp;gt;&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlRelayPin --&amp;gt;&lt;br /&gt;
==== VVL Relay ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlRelayPinMode --&amp;gt;&lt;br /&gt;
==== VVL Relay Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlOverridePin --&amp;gt;&lt;br /&gt;
==== VVL Override On Pin ====&lt;br /&gt;
VVL override pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlOverridePinMode --&amp;gt;&lt;br /&gt;
==== VVL Override Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumTps --&amp;gt;&lt;br /&gt;
==== Minimum TPS ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumClt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_maximumMap --&amp;gt;&lt;br /&gt;
==== Maximum MAP (0 = always true) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumMap --&amp;gt;&lt;br /&gt;
==== Minimum MAP (0 = always true) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_maximumAfr --&amp;gt;&lt;br /&gt;
==== Maximum AFR ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_minimumOilPressure --&amp;gt;&lt;br /&gt;
==== Minimum Oil Pressure (kPa, 0 = always true) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_activationRpm --&amp;gt;&lt;br /&gt;
==== Activation RPM (-&amp;gt; ON) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_deactivationRpmWindow --&amp;gt;&lt;br /&gt;
==== Deactivation RPM Window (hysteresis) ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_fuelAdderPercent --&amp;gt;&lt;br /&gt;
==== Fuel Adder ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvlController_ignitionRetard --&amp;gt;&lt;br /&gt;
==== Ignition Retard ====&lt;br /&gt;
Retard timing to remove from actual final timing (after all corrections) due to additional air.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvl_controller_stateDialog --&amp;gt;&lt;br /&gt;
== vvl_controller_state ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Variable valve timing (VVT) --&amp;gt;&lt;br /&gt;
= Variable valve timing (VVT) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog --&amp;gt;&lt;br /&gt;
== VVT outputs and PID ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog0 --&amp;gt;&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtActivationDelayMs --&amp;gt;&lt;br /&gt;
==== Activation Delay ====&lt;br /&gt;
We need to give engine time to build oil pressure without diverting it to VVT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtControlMinRpm --&amp;gt;&lt;br /&gt;
==== Do not control below RPM ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtControlMinClt --&amp;gt;&lt;br /&gt;
==== Do not control below CLT ====&lt;br /&gt;
Minimum coolant temperature to activate VVT&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtOutputFrequency --&amp;gt;&lt;br /&gt;
==== VVT PWM frequency ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins1 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 1 intake ====&lt;br /&gt;
VVT output solenoid pin for this cam 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins2 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 1 exhaust ====&lt;br /&gt;
VVT output solenoid pin for this cam 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins3 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 2 intake ====&lt;br /&gt;
VVT output solenoid pin for this cam 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtPins4 --&amp;gt;&lt;br /&gt;
==== VVT solenoid bank 2 exhaust ====&lt;br /&gt;
VVT output solenoid pin for this cam 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:invertVvtControlIntake --&amp;gt;&lt;br /&gt;
==== VVT solenoid intake cams control direction ====&lt;br /&gt;
If increased VVT duty cycle increases the indicated VVT angle, set this to &#039;advance&#039;. If it decreases, set this to &#039;retard&#039;. Most intake cams use &#039;advance&#039;, and most exhaust cams use &#039;retard&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;advance&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;retard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:invertVvtControlExhaust --&amp;gt;&lt;br /&gt;
==== VVT solenoid exhaust cams control direction ====&lt;br /&gt;
If increased VVT duty cycle increases the indicated VVT angle, set this to &#039;advance&#039;. If it decreases, set this to &#039;retard&#039;. Most intake cams use &#039;advance&#039;, and most exhaust cams use &#039;retard&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;advance&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;retard&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog1 --&amp;gt;&lt;br /&gt;
=== Intake PID ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_offset --&amp;gt;&lt;br /&gt;
==== offset ====&lt;br /&gt;
Linear addition to PID logic&lt;br /&gt;
Also known as feedforward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_pFactor --&amp;gt;&lt;br /&gt;
==== P factor ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_iFactor --&amp;gt;&lt;br /&gt;
==== I factor ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_dFactor --&amp;gt;&lt;br /&gt;
==== D factor ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid1_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMin1 --&amp;gt;&lt;br /&gt;
==== iTerm min ====&lt;br /&gt;
vvtItermMin 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMax2 --&amp;gt;&lt;br /&gt;
==== iTerm max ====&lt;br /&gt;
vvtItermMax 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtPidDialog2 --&amp;gt;&lt;br /&gt;
=== Exhaust PID ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_offset --&amp;gt;&lt;br /&gt;
==== offset ====&lt;br /&gt;
Linear addition to PID logic&lt;br /&gt;
Also known as feedforward.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_pFactor --&amp;gt;&lt;br /&gt;
==== P factor ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_iFactor --&amp;gt;&lt;br /&gt;
==== I factor ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_dFactor --&amp;gt;&lt;br /&gt;
==== D factor ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxPid2_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMin2 --&amp;gt;&lt;br /&gt;
==== iTerm min ====&lt;br /&gt;
vvtItermMin 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:vvtItermMax2#1 --&amp;gt;&lt;br /&gt;
==== iTerm max ====&lt;br /&gt;
vvtItermMax 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtTable1Tbl --&amp;gt;&lt;br /&gt;
== VVT intake target ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:vvtTable2Tbl --&amp;gt;&lt;br /&gt;
== VVT exhaust target ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:timebasedDialog --&amp;gt;&lt;br /&gt;
= Timebased =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:time_based_corrections --&amp;gt;&lt;br /&gt;
==== Enabled time based corrections ====&lt;br /&gt;
Enabled time based corrections.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_etb_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased ETB limit Launch Release Start ====&lt;br /&gt;
Timebased ETB limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_bst_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased boost multiplier Launch Release Start ====&lt;br /&gt;
Timebased boost multiplier start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_ign_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased ignition adder Launch Release Start ====&lt;br /&gt;
Timebased ignition adder start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_cl_bst_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased Closed Loop boost multiplier Launch Release Start ====&lt;br /&gt;
Timebased Closed Loop boost multiplier start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_lambda_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased lambda adder Launch Release Start ====&lt;br /&gt;
Timebased lambda adder start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_rpm_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased RPM limit Launch Release Start ====&lt;br /&gt;
Timebased RPM limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMHardLimitHysteresis --&amp;gt;&lt;br /&gt;
==== Timebased RPM hard limit hysteresis while time-based corrections are active ====&lt;br /&gt;
Hard limit hysteresis while time-based corrections are active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMRotationalWindow --&amp;gt;&lt;br /&gt;
==== Timebased RPM rotational window while time-based corrections are active ====&lt;br /&gt;
Rotational window while time-based corrections are active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_driving_speed_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased driving speed limit Launch Release Start ====&lt;br /&gt;
Timebased driving speed limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tb_driven_speed_lnch_release_start --&amp;gt;&lt;br /&gt;
==== Timebased driven speed limit Launch Release Start ====&lt;br /&gt;
Timebased driven speed limit start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedSpeedRotationalWindow --&amp;gt;&lt;br /&gt;
==== Speed limit rotational window (km/h) ====&lt;br /&gt;
Speed limit rotational window. Skip ramps up starting this many km/h below the speed limit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedSpeedEnableSkip --&amp;gt;&lt;br /&gt;
==== Speed Limit enable ignition skip ====&lt;br /&gt;
Enable ignition skip for timebased speed limit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedSpeedEtbCloseMax --&amp;gt;&lt;br /&gt;
==== Speed limit max ETB close (%) ====&lt;br /&gt;
Timebased speed limit max ETB close. At limit speed, throttle is reduced by this many percent&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedEtbLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased ETB limit pin ====&lt;br /&gt;
Timebased ETB limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedEtbLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased ETB limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedBoostMultiplierPin --&amp;gt;&lt;br /&gt;
==== Timebased boost multiplier pin ====&lt;br /&gt;
Timebased boost multiplier pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedBoostMultiplierPinMode --&amp;gt;&lt;br /&gt;
==== Timebased boost multiplier pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedIgnitionAdderPin --&amp;gt;&lt;br /&gt;
==== Timebased ignition adder pin ====&lt;br /&gt;
Timebased ignition adder pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedIgnitionAdderPinMode --&amp;gt;&lt;br /&gt;
==== Timebased ignition adder pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedCLBoostMultiplierPin --&amp;gt;&lt;br /&gt;
==== Timebased Closed Loop boost multiplier pin ====&lt;br /&gt;
Timebased Closed Loop boost multiplier pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedCLBoostMultiplierPinMode --&amp;gt;&lt;br /&gt;
==== Timebased Closed Loop boost multiplier pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedLambdaAdderPin --&amp;gt;&lt;br /&gt;
==== Timebased lambda adder pin ====&lt;br /&gt;
Timebased lambda adder pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedLambdaAdderPinMode --&amp;gt;&lt;br /&gt;
==== Timebased lambda adder pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased RPM limit pin ====&lt;br /&gt;
Timebased RPM limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedRPMLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased RPM limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivingSpeedLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased driving speed limit pin ====&lt;br /&gt;
Timebased driving speed limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivingSpeedLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased driving speed limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivenSpeedLimitPin --&amp;gt;&lt;br /&gt;
==== Timebased driven speed limit pin ====&lt;br /&gt;
Timebased driven speed limit pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:timebasedDrivenSpeedLimitPinMode --&amp;gt;&lt;br /&gt;
==== Timebased driven speed limit pin mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedEtbLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased ETB limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: ETB Limit (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedBoostMultiplierCurve --&amp;gt;&lt;br /&gt;
== Timebased boost multiplier ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Boost Multiplier (0 to 2.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedIgnitionAdderCurve --&amp;gt;&lt;br /&gt;
== Timebased ignition adder ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Degrees Added (-25 to 25).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedCLBoostMultiplierCurve --&amp;gt;&lt;br /&gt;
== Timebased Closed Loop boost multiplier ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Boost Multiplier (0 to 2.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedLambdaAdderCurve --&amp;gt;&lt;br /&gt;
== Timebased Lambda Target Adder ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Lambda Target Adder (0.6 to 1.5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedRPMLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased RPM limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: RPM Limit (0 to 30000).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedDrivingSpeedLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased driving speed limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Driving Speed Limit (0 to 120).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:timebasedDrivenSpeedLimitCurve --&amp;gt;&lt;br /&gt;
== Timebased driven speed limit ==&lt;br /&gt;
2D curve — X: Time (0 to 100), Y: Driven Speed Limit (0 to 120).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Boost Control --&amp;gt;&lt;br /&gt;
= Boost Control =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostDialog --&amp;gt;&lt;br /&gt;
== Boost control options ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isBoostControlEnabled --&amp;gt;&lt;br /&gt;
==== Boost Control Enable ====&lt;br /&gt;
Boost Control Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlSwitchPin --&amp;gt;&lt;br /&gt;
==== Boost control enable switch ====&lt;br /&gt;
Boost control switch&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlSwitchPinMode --&amp;gt;&lt;br /&gt;
==== Boost control enable switch mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostType --&amp;gt;&lt;br /&gt;
==== Control Mode ====&lt;br /&gt;
* &#039;&#039;&#039;Open Loop&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Open + Closed Loop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlPin --&amp;gt;&lt;br /&gt;
==== Boost Output ====&lt;br /&gt;
Wastegate control Solenoid, set to &#039;NONE&#039; if you are using DC wastegate&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlPinMode --&amp;gt;&lt;br /&gt;
==== Boost Output Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowerWastegatePin --&amp;gt;&lt;br /&gt;
==== Lower WG Output (Advanced) ====&lt;br /&gt;
Lower wastegate solenoid output. Select a pin to enable lower wastegate control. This is used to independently control the lower wastegate port of the wastegate while&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:lowerWastegatePinMode --&amp;gt;&lt;br /&gt;
==== Lower WG Output Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlSafeDutyCycle --&amp;gt;&lt;br /&gt;
==== Safe duty cycle ====&lt;br /&gt;
Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:closedLoopMargin --&amp;gt;&lt;br /&gt;
==== Closed-loop margin ====&lt;br /&gt;
Closed-loop is disabled when manifold pressure is below (target - this margin). Open-loop table is used and PID is reset.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:closedLoopMarginHysteresis --&amp;gt;&lt;br /&gt;
==== Closed-loop margin hysteresis ====&lt;br /&gt;
Additional buffer to prevent re-entering closed-loop immediately after dropping below the margin. Helps avoid oscillation near the threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:enableConstantBoostDcIfBelowMargin --&amp;gt;&lt;br /&gt;
==== Enable constant duty cycle if MAP below margin ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostDcIfBelowMargin --&amp;gt;&lt;br /&gt;
==== Duty cycle if MAP below margin ====&lt;br /&gt;
Duty cycle to use if MAP is below closed-loop margin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure --&amp;gt;&lt;br /&gt;
==== Boost cut pressure (hard cut) ====&lt;br /&gt;
Specifies the boost pressure allowed before triggering a cut. Setting this to 0 will DISABLE overboost cut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressureHyst --&amp;gt;&lt;br /&gt;
==== Boost cut pressure hysteresis (hard cut) ====&lt;br /&gt;
Defines a pressure range below the cut limit at which boost can resume, providing smoother control over boost cut actions.&lt;br /&gt;
For example: if hard cut is 240kpa, and boost cut hysteresis is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overboostCutSparkInstead --&amp;gt;&lt;br /&gt;
==== Boost cut - cut spark instead of fuel  ====&lt;br /&gt;
Cut spark instead of fuel for overboost - this is probably less gentle on the engine&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overboostCutBoth --&amp;gt;&lt;br /&gt;
==== Boost cut - cut fuel AND spark ====&lt;br /&gt;
Cut fuel AND spark for overboost&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:overboostSparkDropFeather --&amp;gt;&lt;br /&gt;
==== Boost cut - use feather overboost limit ====&lt;br /&gt;
Use feather overboost limit. Ignition is dropped randomly from cylinders starting from feather all the way to hard overboost cut&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressureFeather --&amp;gt;&lt;br /&gt;
==== Boost cut - feather value in kPa ====&lt;br /&gt;
Specifies the boost pressure at which we start dropping spark&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostUsePWMLimiterLowerWg --&amp;gt;&lt;br /&gt;
==== Lower WG Output PW Limiter like boost ====&lt;br /&gt;
Apply same by gear PW limiter to lower wastegate valve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlMinRpm --&amp;gt;&lt;br /&gt;
==== No boost control below RPM ====&lt;br /&gt;
Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlMinTps --&amp;gt;&lt;br /&gt;
==== No boost control below TPS ====&lt;br /&gt;
Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostControlMinMap --&amp;gt;&lt;br /&gt;
==== No boost control below MAP ====&lt;br /&gt;
Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSpooledCurve --&amp;gt;&lt;br /&gt;
==== Use SPOOLED curve ====&lt;br /&gt;
Boost Control uses SPOOLED curve, 100% boost under KAP by RPM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostSpooledApplyToLowerWg --&amp;gt;&lt;br /&gt;
==== Use SPOOLED curve for lower WG Output ====&lt;br /&gt;
Ouptut 100% to lower wastegate solenoid below SPOOLED value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure2 --&amp;gt;&lt;br /&gt;
==== Boost cut pressure (hard cut) - table switch ====&lt;br /&gt;
Specifies the boost pressure for table switch2 (open or closed boost) allowed before triggering a cut. Setting this to 0 will fall back to primary boost cut.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure2Hyst --&amp;gt;&lt;br /&gt;
==== Boost cut pressure hysteresis (hard cut) - table switch ====&lt;br /&gt;
Defines a pressure range below the cut limit at which boost can resume, providing smoother control over boost cut actions.&lt;br /&gt;
For example: if hard cut is 240kpa, and boost cut hysteresis is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostCutPressure2Feather --&amp;gt;&lt;br /&gt;
==== Boost cut pressure feather (hard cut) - table switch ====&lt;br /&gt;
Specifies the boost pressure at which we start dropping spark&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostSolenoidTestDuty --&amp;gt;&lt;br /&gt;
==== Solenoid Test Duty Cycle ====&lt;br /&gt;
Duty cycle for boost solenoid output test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop base duty cycle ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopYAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostTableTbl --&amp;gt;&lt;br /&gt;
=== Boost control duty cycle (open loop) ===&lt;br /&gt;
3D table: Boost control duty cycle (open loop).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopDialog --&amp;gt;&lt;br /&gt;
== Boost control target ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopYAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedTbl --&amp;gt;&lt;br /&gt;
=== Boost control target / Closed Loop (kPa) ===&lt;br /&gt;
3D table: Boost control target / Closed Loop (kPa).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidDialog --&amp;gt;&lt;br /&gt;
== Boost control PID ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_pFactor --&amp;gt;&lt;br /&gt;
==== P Gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_iFactor --&amp;gt;&lt;br /&gt;
==== I Gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_dFactor --&amp;gt;&lt;br /&gt;
==== D Gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useBoostPidTables --&amp;gt;&lt;br /&gt;
==== Use PID tables ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_minValue --&amp;gt;&lt;br /&gt;
==== Min adjustment ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max adjustment ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:spooledCurve --&amp;gt;&lt;br /&gt;
== SPOOLED curve ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:lowerWgTableTbl --&amp;gt;&lt;br /&gt;
== Lower wastegate duty (open loop) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopGearAdderDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop PW ADDER by gear ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopGearAdderCurve --&amp;gt;&lt;br /&gt;
=== Boost Open Loop gear-based Adder ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: duty cycle adder (-100 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopGearMultiplierDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop PW MULTIPLIER by gear ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopGearMultiplierCurve --&amp;gt;&lt;br /&gt;
=== Boost Open Loop gear-based Multiplier ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: duty cycle multiplier (0 to 3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenLoopGearLimiterDialog --&amp;gt;&lt;br /&gt;
== Boost control Open loop PW LIMITER by gear ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopGearLimiterCurve --&amp;gt;&lt;br /&gt;
=== Boost Open Loop gear-based Limiter ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: duty cycle limit (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopGearAdderDialog --&amp;gt;&lt;br /&gt;
== Boost control closed-loop kPa adder by gear ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopGearAdderCurve --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop gear-based Adder ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: kPa adder (-200 to 200).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopGearMultiplierDialog --&amp;gt;&lt;br /&gt;
== Boost control closed-loop kPa multiplier by gear ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopGearMultiplierCurve --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop gear-based Multiplier ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: kPa multiplier (0 to 3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedLoopGearLimiterDialog --&amp;gt;&lt;br /&gt;
== Boost control closed-loop kPa limiter by gear ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopGearLimiterCurve --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop gear-based Limiter ===&lt;br /&gt;
2D curve — X: Gear (-1 to 100), Y: kPa limit (0 to 600).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltBoostCorrCurve --&amp;gt;&lt;br /&gt;
== CLT boost duty multiplier ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltBoostAdderCurve --&amp;gt;&lt;br /&gt;
== CLT boost target adder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iatBoostCorrCurve --&amp;gt;&lt;br /&gt;
== IAT boost duty multiplier ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iatBoostAdderCurve --&amp;gt;&lt;br /&gt;
== IAT boost target adder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Boost PID tables --&amp;gt;&lt;br /&gt;
= Boost PID tables =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidPCurve --&amp;gt;&lt;br /&gt;
== P Table ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidICurve --&amp;gt;&lt;br /&gt;
== I Table ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostPidDCurve --&amp;gt;&lt;br /&gt;
== D Table ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Boost Table Switch --&amp;gt;&lt;br /&gt;
= Boost Table Switch =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenBlend1Cfg --&amp;gt;&lt;br /&gt;
== Open Loop Boost Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_tableSwitch --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_tableSwitchPinMode --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_blendParameter --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Parameter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:OLBoostBlend1BlendMode --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostOpenLoopBlends1_yAxisOverride --&amp;gt;&lt;br /&gt;
==== Boost Open Loop Table Switch 1 Y axis override ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostOpenLoopBlend1Bias --&amp;gt;&lt;br /&gt;
=== Boost Open Loop Table Switch 1 Bias ===&lt;br /&gt;
2D curve — X: param (0 to 100), Y: bias (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostOpenBlend1Table --&amp;gt;&lt;br /&gt;
== Open Loop Boost Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedBlend1Cfg --&amp;gt;&lt;br /&gt;
== Closed Loop Boost Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_tableSwitch --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_tableSwitchPinMode --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Pin mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_blendParameter --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Parameter ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:CLBoostBlend1BlendMode --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:boostClosedLoopBlends1_yAxisOverride --&amp;gt;&lt;br /&gt;
==== Boost Closed Loop Table Switch 1 Y axis override ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:boostClosedLoopBlend1Bias --&amp;gt;&lt;br /&gt;
=== Boost Closed Loop Table Switch 1 Bias ===&lt;br /&gt;
2D curve — X: param (0 to 100), Y: bias (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:boostClosedBlend1Table --&amp;gt;&lt;br /&gt;
== Closed Loop Boost Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Generic PWM --&amp;gt;&lt;br /&gt;
= Generic PWM =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm1 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm1_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm1Tbl --&amp;gt;&lt;br /&gt;
=== GP#1 ===&lt;br /&gt;
3D table: GP#1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm2 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm2_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm2Tbl --&amp;gt;&lt;br /&gt;
=== GP#2 ===&lt;br /&gt;
3D table: GP#2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm3 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm3_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm3Tbl --&amp;gt;&lt;br /&gt;
=== GP#3 ===&lt;br /&gt;
3D table: GP#3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:gppwm4 --&amp;gt;&lt;br /&gt;
== General Purpose PWM 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_pin --&amp;gt;&lt;br /&gt;
==== Output ====&lt;br /&gt;
Select a pin to use for PWM or on-off output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_switchPin --&amp;gt;&lt;br /&gt;
==== Switch Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_switchPinMode --&amp;gt;&lt;br /&gt;
==== Switch Pin Mode ====&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_offValue --&amp;gt;&lt;br /&gt;
==== Off Value ====&lt;br /&gt;
Value to use when switch is off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_pwmFrequency --&amp;gt;&lt;br /&gt;
==== Frequency ====&lt;br /&gt;
Select a frequency to run PWM at.&lt;br /&gt;
Set this to 0hz to enable on-off mode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_onAboveDuty --&amp;gt;&lt;br /&gt;
==== On above duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output on when the table value is above this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_offBelowDuty --&amp;gt;&lt;br /&gt;
==== Off below duty ====&lt;br /&gt;
Hysteresis: in on-off mode, turn the output off when the table value is below this duty.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_dutyIfError --&amp;gt;&lt;br /&gt;
==== Duty if error ====&lt;br /&gt;
If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.&lt;br /&gt;
This should be a safe value for whatever hardware is connected to prevent damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_rpmAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_xHash --&amp;gt;&lt;br /&gt;
==== X lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_loadAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:gppwm4_xHash#1 --&amp;gt;&lt;br /&gt;
==== Y lua hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:gppwm4Tbl --&amp;gt;&lt;br /&gt;
=== GP#4 ===&lt;br /&gt;
3D table: GP#4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:User tables --&amp;gt;&lt;br /&gt;
= User tables =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable1TblSettings --&amp;gt;&lt;br /&gt;
== User table 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable1Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables1_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable1Tbl --&amp;gt;&lt;br /&gt;
=== User table 1 ===&lt;br /&gt;
3D table: User table 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable2TblSettings --&amp;gt;&lt;br /&gt;
== User table 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable2Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables2_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable2Tbl --&amp;gt;&lt;br /&gt;
=== User table 2 ===&lt;br /&gt;
3D table: User table 2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable3TblSettings --&amp;gt;&lt;br /&gt;
== User table 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable3Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables3_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable3Tbl --&amp;gt;&lt;br /&gt;
=== User table 3 ===&lt;br /&gt;
3D table: User table 3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable4TblSettings --&amp;gt;&lt;br /&gt;
== User table 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable4Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables4_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable4Tbl --&amp;gt;&lt;br /&gt;
=== User table 4 ===&lt;br /&gt;
3D table: User table 4.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable5TblSettings --&amp;gt;&lt;br /&gt;
== User table 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable5Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables5_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable5Tbl --&amp;gt;&lt;br /&gt;
=== User table 5 ===&lt;br /&gt;
3D table: User table 5.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable6TblSettings --&amp;gt;&lt;br /&gt;
== User table 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable6Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables6_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable6Tbl --&amp;gt;&lt;br /&gt;
=== User table 6 ===&lt;br /&gt;
3D table: User table 6.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable7TblSettings --&amp;gt;&lt;br /&gt;
== User table 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable7Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables7_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable7Tbl --&amp;gt;&lt;br /&gt;
=== User table 7 ===&lt;br /&gt;
3D table: User table 7.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userTable8TblSettings --&amp;gt;&lt;br /&gt;
== User table 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTable8Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user table&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_yAxis --&amp;gt;&lt;br /&gt;
==== Y Axis ====&lt;br /&gt;
Selects the Y axis to use for the table.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_yHash --&amp;gt;&lt;br /&gt;
==== Y Axis Hash ====&lt;br /&gt;
Hash of the Y axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this table controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userTables8_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axes are invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userTable8Tbl --&amp;gt;&lt;br /&gt;
=== User table 8 ===&lt;br /&gt;
3D table: User table 8.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:User curves --&amp;gt;&lt;br /&gt;
= User curves =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve1CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve1Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves1_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve1Curve --&amp;gt;&lt;br /&gt;
=== User curve 1 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves1_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve2CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve2Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves2_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve2Curve --&amp;gt;&lt;br /&gt;
=== User curve 2 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves2_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve3CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve3Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves3_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve3Curve --&amp;gt;&lt;br /&gt;
=== User curve 3 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves3_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve4CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve4Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves4_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve4Curve --&amp;gt;&lt;br /&gt;
=== User curve 4 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves4_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve5CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve5Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves5_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve5Curve --&amp;gt;&lt;br /&gt;
=== User curve 5 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves5_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve6CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve6Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves6_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve6Curve --&amp;gt;&lt;br /&gt;
=== User curve 6 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves6_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve7CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve7Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves7_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve7Curve --&amp;gt;&lt;br /&gt;
=== User curve 7 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves7_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCurve8CurveSettings --&amp;gt;&lt;br /&gt;
== User curve 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurve8Enabled --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enable this user curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_enablePin --&amp;gt;&lt;br /&gt;
==== Enable Pin ====&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_enablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_xAxis --&amp;gt;&lt;br /&gt;
==== X Axis ====&lt;br /&gt;
Selects the X axis to use for the curve.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_xHash --&amp;gt;&lt;br /&gt;
==== X Axis Hash ====&lt;br /&gt;
Hash of the X axis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_action --&amp;gt;&lt;br /&gt;
==== Action ====&lt;br /&gt;
Select what this curve controls. Leave it as &#039;None&#039; when it&#039;s only used for monitoring or feeding another function (for example, another user table axis or a CAN output).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_pwmPin --&amp;gt;&lt;br /&gt;
==== PWM Output Pin ====&lt;br /&gt;
Pin for PWM output when action is PWM Output.&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_pwmFrequency --&amp;gt;&lt;br /&gt;
==== PWM Frequency ====&lt;br /&gt;
PWM frequency (0 = disabled).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCurves8_pwmDutyIfError --&amp;gt;&lt;br /&gt;
==== PWM Duty if error ====&lt;br /&gt;
Duty cycle to use if axis is invalid.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:userCurve8Curve --&amp;gt;&lt;br /&gt;
=== User curve 8 ===&lt;br /&gt;
2D curve — X: {bitStringValue(outputChannelLabels, userCurves8_xAxis)}, Y: Output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:User counters --&amp;gt;&lt;br /&gt;
= User counters =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter1Settings --&amp;gt;&lt;br /&gt;
== User counter 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter1Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter1WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter1Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters1_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter2Settings --&amp;gt;&lt;br /&gt;
== User counter 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter2Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter2WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter2Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters2_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter3Settings --&amp;gt;&lt;br /&gt;
== User counter 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter3Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter3WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter3Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters3_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter4Settings --&amp;gt;&lt;br /&gt;
== User counter 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter4Settings_values --&amp;gt;&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_min --&amp;gt;&lt;br /&gt;
==== Minimum value ====&lt;br /&gt;
Minimum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_max --&amp;gt;&lt;br /&gt;
==== Maximum value ====&lt;br /&gt;
Maximum counter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounter4WrapAround --&amp;gt;&lt;br /&gt;
==== Wrap around ====&lt;br /&gt;
Wrap around when reaching min/max.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:userCounter4Settings_switches --&amp;gt;&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_decPin --&amp;gt;&lt;br /&gt;
==== Decrement ====&lt;br /&gt;
Decrement button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_rstPin --&amp;gt;&lt;br /&gt;
==== Reset ====&lt;br /&gt;
Reset button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_incPin --&amp;gt;&lt;br /&gt;
==== Increment ====&lt;br /&gt;
Increment button pin for user counter 1.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_decPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for decrement button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_rstPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for reset button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:userCounters4_incPinMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Pin mode for increment button.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Math channels --&amp;gt;&lt;br /&gt;
= Math channels =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel1Dialog --&amp;gt;&lt;br /&gt;
== Math channel 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels1_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel2Dialog --&amp;gt;&lt;br /&gt;
== Math channel 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels2_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel3Dialog --&amp;gt;&lt;br /&gt;
== Math channel 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels3_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel4Dialog --&amp;gt;&lt;br /&gt;
== Math channel 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels4_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel5Dialog --&amp;gt;&lt;br /&gt;
== Math channel 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels5_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel6Dialog --&amp;gt;&lt;br /&gt;
== Math channel 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels6_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel7Dialog --&amp;gt;&lt;br /&gt;
== Math channel 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels7_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:mathChannel8Dialog --&amp;gt;&lt;br /&gt;
== Math channel 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_function --&amp;gt;&lt;br /&gt;
==== Function ====&lt;br /&gt;
Math function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_averaging --&amp;gt;&lt;br /&gt;
==== Averaging ====&lt;br /&gt;
Exponential averaging. A higher value will slow down the response. 0 = no averaging, 90-95 = recommended for noisy signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_isVariable --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_isVariable --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_isVariable --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_isVariable --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_isVariable --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Value&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Input Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs1_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs2_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs3_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs4_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:mathChannels8_inputs5_value --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Constant value to use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Bit builders --&amp;gt;&lt;br /&gt;
= Bit builders =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder1Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders1_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder2Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders2_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder3Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders3_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder4Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders4_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder5Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders5_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder6Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders6_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder7Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders7_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:bitBuilder8Dialog --&amp;gt;&lt;br /&gt;
== Bit builder 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 1 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 2 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 3 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 4 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 5 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 6 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 7 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_isVariable --&amp;gt;&lt;br /&gt;
==== Bit 8 ====&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_var --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Choose any variable. Keep in mind: Any non-zero value sets the bit to 1. Best used with Logic outputs or other on-off signals.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_hash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit1_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit2_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit3_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit4_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit5_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit6_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit7_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:bitBuilders8_bit8_fixed --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;0&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Analog Multi-Switch --&amp;gt;&lt;br /&gt;
= Analog Multi-Switch =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings1 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches1_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve1 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings2 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches2_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve2 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings3 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches3_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve3 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:analogMultiSwitchSettings4 --&amp;gt;&lt;br /&gt;
== Analog multi-switch 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:analogMultiSwitches4_channel_hwChannel --&amp;gt;&lt;br /&gt;
==== Analog input ====&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:analogMultiSwitchPosCurve4 --&amp;gt;&lt;br /&gt;
=== Analog Multi-Switch Position ===&lt;br /&gt;
2D curve — X: Voltage (0 to 8), Y: Position (0 to 5).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- group:Logic outputs --&amp;gt;&lt;br /&gt;
= Logic outputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput1Dialog --&amp;gt;&lt;br /&gt;
== Logic output 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs1_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput2Dialog --&amp;gt;&lt;br /&gt;
== Logic output 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs2_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput3Dialog --&amp;gt;&lt;br /&gt;
== Logic output 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs3_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput4Dialog --&amp;gt;&lt;br /&gt;
== Logic output 4 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs4_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput5Dialog --&amp;gt;&lt;br /&gt;
== Logic output 5 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs5_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput6Dialog --&amp;gt;&lt;br /&gt;
== Logic output 6 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs6_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput7Dialog --&amp;gt;&lt;br /&gt;
== Logic output 7 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs7_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput8Dialog --&amp;gt;&lt;br /&gt;
== Logic output 8 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs8_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput9Dialog --&amp;gt;&lt;br /&gt;
== Logic output 9 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs9_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:logicOutput10Dialog --&amp;gt;&lt;br /&gt;
== Logic output 10 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_enable --&amp;gt;&lt;br /&gt;
==== Enabled ====&lt;br /&gt;
Enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_inverted --&amp;gt;&lt;br /&gt;
==== Inverted ====&lt;br /&gt;
Invert output (active when conditions NOT met)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_outputFunction --&amp;gt;&lt;br /&gt;
==== Output action ====&lt;br /&gt;
Action to take when conditions are met&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Do nothing&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Turn off the engine&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Cut fuel and spark&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Limit RPM to 2000&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_turnOnDelayMs --&amp;gt;&lt;br /&gt;
==== Turn on delay ====&lt;br /&gt;
Delay before turning output on&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_turnOffDelayMs --&amp;gt;&lt;br /&gt;
==== Turn off delay ====&lt;br /&gt;
Delay before turning output off&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditionsLogic --&amp;gt;&lt;br /&gt;
==== Conditions logic ====&lt;br /&gt;
How to combine conditions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;1&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 = set, 2 = reset&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 or 3 or 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2) and 3 and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3) and 4&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 or 2 or 3 or 4 or 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;1 and 2 and 3 and 4 and 5&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;(1 or 2 or 3 or 4) and 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_controlPin --&amp;gt;&lt;br /&gt;
==== Output pin ====&lt;br /&gt;
Select a pin to control, or NONE for virtual use only&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_var --&amp;gt;&lt;br /&gt;
==== 1 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_var --&amp;gt;&lt;br /&gt;
==== 2 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_var --&amp;gt;&lt;br /&gt;
==== 3 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_var --&amp;gt;&lt;br /&gt;
==== 4 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_var --&amp;gt;&lt;br /&gt;
==== 5 ====&lt;br /&gt;
First variable to compare&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_firstHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
First Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_op --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
* &#039;&#039;&#039;Equal value (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal value (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than value (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than value (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal value (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal value (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Equal variable (==)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Not Equal variable (!=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater Than variable (&amp;gt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less Than variable (&amp;lt;)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Greater or Equal variable (&amp;gt;=)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Less or Equal variable (&amp;lt;=)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_compareValue --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Value to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_compareVar --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Variable to compare against&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_secondHash --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Second Variable Hash&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_hysteresis --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Offset from threshold to turn output off (prevents rapid on/off cycling)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions1_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions2_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions3_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions4_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:logicOutputs10_conditions5_flashMode --&amp;gt;&lt;br /&gt;
====  ====&lt;br /&gt;
Flash the physical output pin when this condition is true&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Off&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Slow (1 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Fast (5 Hz)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Very fast (10 Hz)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxAnalogInputsDialog --&amp;gt;&lt;br /&gt;
= Aux analog inputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs1 --&amp;gt;&lt;br /&gt;
==== Aux analog 1 ====&lt;br /&gt;
auxAnalogInputs 1&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs2 --&amp;gt;&lt;br /&gt;
==== Aux analog 2 ====&lt;br /&gt;
auxAnalogInputs 2&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs3 --&amp;gt;&lt;br /&gt;
==== Aux analog 3 ====&lt;br /&gt;
auxAnalogInputs 3&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs4 --&amp;gt;&lt;br /&gt;
==== Aux analog 4 ====&lt;br /&gt;
auxAnalogInputs 4&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs5 --&amp;gt;&lt;br /&gt;
==== Aux analog 5 ====&lt;br /&gt;
auxAnalogInputs 5&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs6 --&amp;gt;&lt;br /&gt;
==== Aux analog 6 ====&lt;br /&gt;
auxAnalogInputs 6&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs7 --&amp;gt;&lt;br /&gt;
==== Aux analog 7 ====&lt;br /&gt;
auxAnalogInputs 7&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:auxAnalogInputs8 --&amp;gt;&lt;br /&gt;
==== Aux analog 8 ====&lt;br /&gt;
auxAnalogInputs 8&lt;br /&gt;
?highlight=class~analog_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$adc_channel_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:auxDigitalInputsDialog --&amp;gt;&lt;br /&gt;
= Aux digital inputs =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins1 --&amp;gt;&lt;br /&gt;
==== Aux digital 1 ====&lt;br /&gt;
luaDigitalInputPins 1&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins2 --&amp;gt;&lt;br /&gt;
==== Aux digital 2 ====&lt;br /&gt;
luaDigitalInputPins 2&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins3 --&amp;gt;&lt;br /&gt;
==== Aux digital 3 ====&lt;br /&gt;
luaDigitalInputPins 3&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins4 --&amp;gt;&lt;br /&gt;
==== Aux digital 4 ====&lt;br /&gt;
luaDigitalInputPins 4&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins5 --&amp;gt;&lt;br /&gt;
==== Aux digital 5 ====&lt;br /&gt;
luaDigitalInputPins 5&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins6 --&amp;gt;&lt;br /&gt;
==== Aux digital 6 ====&lt;br /&gt;
luaDigitalInputPins 6&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins7 --&amp;gt;&lt;br /&gt;
==== Aux digital 7 ====&lt;br /&gt;
luaDigitalInputPins 7&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPins8 --&amp;gt;&lt;br /&gt;
==== Aux digital 8 ====&lt;br /&gt;
luaDigitalInputPins 8&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes1 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes2 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 2&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes3 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 3&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes4 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 4&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes5 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 5&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes6 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 6&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes7 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 7&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:luaDigitalInputPinModes8 --&amp;gt;&lt;br /&gt;
==== Mode ====&lt;br /&gt;
luaDigitalInputPinModes 8&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlDialog --&amp;gt;&lt;br /&gt;
= Cruise Control =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlSettingsDialog --&amp;gt;&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnabled --&amp;gt;&lt;br /&gt;
==== Cruise Control Enabled ====&lt;br /&gt;
Cruise Control system enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlUseVehicleSpeed --&amp;gt;&lt;br /&gt;
==== Use Vehicle Speed ====&lt;br /&gt;
Cruise Control mode uses Vehicle Speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnableTogglesState --&amp;gt;&lt;br /&gt;
==== &#039;Enable&#039; Toggles ON/OFF ====&lt;br /&gt;
Cruise Control Enable Toggles the state, ON -&amp;gt; OFF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseAlwaysEnabled --&amp;gt;&lt;br /&gt;
==== Cruise Always Enabled ====&lt;br /&gt;
Cruise is always enabled, needing just SET button to engage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlInhibitDFCO --&amp;gt;&lt;br /&gt;
==== Inhibit DFCO ====&lt;br /&gt;
Prevent DFCO from engaging while cruise control is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlAverageAdjustment --&amp;gt;&lt;br /&gt;
==== Smooth ETB Adjustment ====&lt;br /&gt;
Average cruise control adjustments to smooth the application using expaverage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_smooth_exp_average --&amp;gt;&lt;br /&gt;
==== Smooth ETB average factor (0.1 probably best to start) ====&lt;br /&gt;
ETB Transition exp Average Factor (0-1, 0.1 probably best to start)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlAllowPedalUpToEngage --&amp;gt;&lt;br /&gt;
==== Allow pedal up to Engage Pedal Level in Cruise ====&lt;br /&gt;
After latching pedal (manual cruise -&amp;gt; engage system -&amp;gt; release throttle pedal), disengage cruise at pedal level at the time of engage instead of static level&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlReadClutchPedal --&amp;gt;&lt;br /&gt;
==== Use Clutch Down Pedal to cancel cruise ====&lt;br /&gt;
Use clutch pedal to cancel cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlReadClutchUp --&amp;gt;&lt;br /&gt;
==== Use Clutch Up to cancel cruise ====&lt;br /&gt;
Use clutch up to cancel cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlReadBrakePedal --&amp;gt;&lt;br /&gt;
==== Use Brake Pedal to cancel cruise ====&lt;br /&gt;
Use Brake pedal to cancel cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlDisengageConditionsDialog --&amp;gt;&lt;br /&gt;
== Safety Conditions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_max_soft_etb --&amp;gt;&lt;br /&gt;
==== MAX ETB will be ever commanded to open to match setpoint ====&lt;br /&gt;
Soft maximum etb will be ever commanded to open&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxThrottlePedalAllowedToEngage --&amp;gt;&lt;br /&gt;
==== Max Accelerator Pedal allowed (50% recommended) ====&lt;br /&gt;
Maximum throttle allowed to engage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxThrottlePedalAllowedToStayEngaged --&amp;gt;&lt;br /&gt;
==== Max accelerator pedal once CC active and pedal released (5% recommended) ====&lt;br /&gt;
Maximum throttle allowed to stay engaged in cruise control after set&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_pedal_release_seconds --&amp;gt;&lt;br /&gt;
==== Time to release pedal to keep safety true (2 seconds recommended) ====&lt;br /&gt;
Seconds pedal is allowed to stay above cc_maxThrottlePedalAllowedToStayEngaged to keep safety true, 0 to disable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_unsafeTps --&amp;gt;&lt;br /&gt;
==== HARD Max Throttle Opening (75% recommended) ====&lt;br /&gt;
Cruise control unsafe TPS level&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxRpm --&amp;gt;&lt;br /&gt;
==== Max Engine RPM (4000 recommended) ====&lt;br /&gt;
Cruise control maximmum safeguard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_minRpm --&amp;gt;&lt;br /&gt;
==== Min Engine RPM (1000 recommended) ====&lt;br /&gt;
Cruise control maximmum safeguard&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxSpeed --&amp;gt;&lt;br /&gt;
==== Max Vehicle Speed (120 recommended) ====&lt;br /&gt;
Cruise control maximmum speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_minSpeed --&amp;gt;&lt;br /&gt;
==== Min Vehicle Speed (10 recommended) ====&lt;br /&gt;
Cruise control minimum speed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_accdec_request_timeout --&amp;gt;&lt;br /&gt;
==== Acceleration/Deceleration request timeout (INC/DEC/RESUME) ====&lt;br /&gt;
Seconds that can pass after inc/dec request for the rpm band to come into alignment before cancelling cruise&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmBandHigh --&amp;gt;&lt;br /&gt;
==== Engine	RPM Over Target (350 recommended) ====&lt;br /&gt;
If rpm is higher than this from setpoint, disengage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmBandLow --&amp;gt;&lt;br /&gt;
==== Engine RPM Under Target (350 recommended) ====&lt;br /&gt;
If rpm is lower than this from setpoint, disengage cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedBandHigh --&amp;gt;&lt;br /&gt;
==== Vehicle Speed Over Target (5 recommended) ====&lt;br /&gt;
if speed is higher than this from setpoint, disenagege cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedBandLow --&amp;gt;&lt;br /&gt;
==== Vehicle Speed Under Target (5 recommended) ====&lt;br /&gt;
if speed is higher than this from setpoint, disenagege cruise control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlAdjustmentConditionsDialog --&amp;gt;&lt;br /&gt;
== Adjustment Conditions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_proportionalGainRPM --&amp;gt;&lt;br /&gt;
==== Proportional gain for RPM error - 0.0000 to 10 (0.1 recommended) ====&lt;br /&gt;
proportional gain for rpm error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_proportionalGainSPEED --&amp;gt;&lt;br /&gt;
==== Proportional gain for SPEED error - 0.0000 to 10 (1 recommended) ====&lt;br /&gt;
proportional gain speed error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxEtbAdjustmentOpen --&amp;gt;&lt;br /&gt;
==== Max ETB adjustment from setpoint (open) - 0 to 100 (30 recommended) ====&lt;br /&gt;
maximum etb open adjustment cruise control is allowed to make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_maxEtbAdjustmentClose --&amp;gt;&lt;br /&gt;
==== Max ETB adjustment from setpoint (close) - 0 to 100 (30 recommended) ====&lt;br /&gt;
maximum etb close adjustment cruise control is allowed to make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmDeadBandHigh --&amp;gt;&lt;br /&gt;
==== RPM deadband high (40 recommended) ====&lt;br /&gt;
High RPM adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmDeadBandLow --&amp;gt;&lt;br /&gt;
==== RPM deadband low (40 recommended) ====&lt;br /&gt;
Low RPM adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedDeadBandHigh --&amp;gt;&lt;br /&gt;
==== Speed deadband high (0.9 recommended) ====&lt;br /&gt;
High Speed adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_speedDeadBandLow --&amp;gt;&lt;br /&gt;
==== Speed deadband low (0.9 recommended) ====&lt;br /&gt;
Low Speed adjustment deadband&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_kmhstep --&amp;gt;&lt;br /&gt;
==== KMH step (INC/DEC) (1 recommended) ====&lt;br /&gt;
KMH to inc/dec speed when requested&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_rpmstep --&amp;gt;&lt;br /&gt;
==== RPM step (INC/DEC) (100 recommended) ====&lt;br /&gt;
RPM to inc/dec speed when requested&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cc_setpoint_adjust_rate --&amp;gt;&lt;br /&gt;
==== Setpoint adjust rate 0.000001 to 0.000255, 0 to disable (0.000020 recommended) ====&lt;br /&gt;
rate at which error ticks into setpoint, 0.000001 and up&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruiseControlStateDialog --&amp;gt;&lt;br /&gt;
== Cruise Control State ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cruise_control_buttons --&amp;gt;&lt;br /&gt;
= Cruise Control Buttons (GPIO) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnablePin --&amp;gt;&lt;br /&gt;
==== Enable Button Pin ====&lt;br /&gt;
Cruise control enable/arm button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnablePinMode --&amp;gt;&lt;br /&gt;
==== Enable Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlEnablePinInverted --&amp;gt;&lt;br /&gt;
==== Enable Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlSetPin --&amp;gt;&lt;br /&gt;
==== Set/Engage Button Pin ====&lt;br /&gt;
Cruise control set/engage button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlSetPinMode --&amp;gt;&lt;br /&gt;
==== Set Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlSetPinInverted --&amp;gt;&lt;br /&gt;
==== Set Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlResumePin --&amp;gt;&lt;br /&gt;
==== Resume Button Pin ====&lt;br /&gt;
Cruise control resume button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlResumePinMode --&amp;gt;&lt;br /&gt;
==== Resume Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlResumePinInverted --&amp;gt;&lt;br /&gt;
==== Resume Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlIncPin --&amp;gt;&lt;br /&gt;
==== Increase Button Pin ====&lt;br /&gt;
Cruise control increase button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlIncPinMode --&amp;gt;&lt;br /&gt;
==== Inc Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlIncPinInverted --&amp;gt;&lt;br /&gt;
==== Inc Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlDecPin --&amp;gt;&lt;br /&gt;
==== Decrease Button Pin ====&lt;br /&gt;
Cruise control decrease button&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlDecPinMode --&amp;gt;&lt;br /&gt;
==== Dec Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlDecPinInverted --&amp;gt;&lt;br /&gt;
==== Dec Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlOffPin --&amp;gt;&lt;br /&gt;
==== Off/Cancel Button Pin ====&lt;br /&gt;
Cruise control off/cancel button (optional)&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlOffPinMode --&amp;gt;&lt;br /&gt;
==== Off Button Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:cruiseControlOffPinInverted --&amp;gt;&lt;br /&gt;
==== Off Pin Inverted ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageDialog --&amp;gt;&lt;br /&gt;
= Long Storage =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageDialogWest --&amp;gt;&lt;br /&gt;
== Long Storage ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:tripFuelCorrection --&amp;gt;&lt;br /&gt;
==== Trip Fuel Correction multiplier for fuel used ====&lt;br /&gt;
Trip fuel Correction multiplier for fuel used&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTankSize1 --&amp;gt;&lt;br /&gt;
==== Fuel tank size for fuel tank 1 ====&lt;br /&gt;
Fuel tank size for fuel tank 1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTankSize2 --&amp;gt;&lt;br /&gt;
==== Fuel tank size for fuel tank 2 ====&lt;br /&gt;
Fuel tank size for fuel tank 2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fuelTankSize3 --&amp;gt;&lt;br /&gt;
==== Fuel tank size for fuel tank 3 ====&lt;br /&gt;
Fuel tank size for fuel tank 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageGaugeCategory1 --&amp;gt;&lt;br /&gt;
== Fuel Tank 1 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageGaugeCategory2 --&amp;gt;&lt;br /&gt;
== Fuel Tank 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageGaugeCategory3 --&amp;gt;&lt;br /&gt;
== Fuel Tank 3 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:longStorageDialogEast --&amp;gt;&lt;br /&gt;
== Long Storage ==&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=474</id>
		<title>Config:Idle</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=474"/>
		<updated>2026-06-06T22:14:38Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:idleSettings --&amp;gt;&lt;br /&gt;
= Idle settings =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleBasicSettings --&amp;gt;&lt;br /&gt;
== Idle settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleMode --&amp;gt;&lt;br /&gt;
==== Idle control mode ====&lt;br /&gt;
See also idleRpmPid&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Open Loop + Closed Loop&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Open Loop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidDeactivationTpsThreshold --&amp;gt;&lt;br /&gt;
==== TPS threshold ====&lt;br /&gt;
Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleBelowTpsThreshold --&amp;gt;&lt;br /&gt;
==== Force idle below throttle threshold ====&lt;br /&gt;
Force idle STATE below DriveIntent threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionBelowTps --&amp;gt;&lt;br /&gt;
==== Force timing only below pedal threshold ====&lt;br /&gt;
Force idle ignition (delta target only) below DriverThreshold threshold, only for ignition timing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionUseDFCO --&amp;gt;&lt;br /&gt;
==== Idle force delayed by DFCO ====&lt;br /&gt;
Do not force idle ignition while DFCO is active for either of the above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleDeltaRpmAdjAvgFactor --&amp;gt;&lt;br /&gt;
==== Delta target rpm smoothing factor ====&lt;br /&gt;
Smoothing factor for delta target rpm ignition adjustment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmUpperLimit --&amp;gt;&lt;br /&gt;
==== RPM upper limit ====&lt;br /&gt;
How far above idle speed do we consider idling, i.e. coasting detection threshold.&lt;br /&gt;
For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmDeadZone --&amp;gt;&lt;br /&gt;
==== RPM deadzone ====&lt;br /&gt;
If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:maxIdleVss --&amp;gt;&lt;br /&gt;
==== Max vehicle speed ====&lt;br /&gt;
Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOverrides --&amp;gt;&lt;br /&gt;
== Idle overrides ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateAdvanceForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle ignition table ====&lt;br /&gt;
This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra advance at low idle speeds will prevent stalling and extra retard at high idle speeds can help reduce engine power and slow the idle speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoasting --&amp;gt;&lt;br /&gt;
==== Use idle ignition table while coasting ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoastingMaxRpm --&amp;gt;&lt;br /&gt;
==== Max RPM for idle advance while coasting ====&lt;br /&gt;
Maximum RPM for which idle advance while coasting is enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateVeForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle VE table ====&lt;br /&gt;
This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleVeOverrideMode --&amp;gt;&lt;br /&gt;
==== Override Idle VE table load axis ====&lt;br /&gt;
Allows you to change the default load axis used for the VE table, which is typically MAP (manifold absolute pressure).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MAP&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;TPS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PERCENT BARO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRamp --&amp;gt;&lt;br /&gt;
==== Ramp target RPM on return to idle ====&lt;br /&gt;
Ramp the idle target down from the entry threshold over N seconds when returning to idle. Helps prevent overshooting (below) the idle target while returning to idle from coasting.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRampDuration --&amp;gt;&lt;br /&gt;
==== Ramp target duration ====&lt;br /&gt;
idle return target ramp duration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateIdleTablesForCrankingTaper --&amp;gt;&lt;br /&gt;
==== Separate idle tables for cranking taper ====&lt;br /&gt;
This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacTableForCoasting --&amp;gt;&lt;br /&gt;
==== Separate coasting idle table ====&lt;br /&gt;
Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOpenLoop --&amp;gt;&lt;br /&gt;
== Open Loop Idle ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== A/C adder ====&lt;br /&gt;
Additional idle % while A/C is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== A/C RPM target ====&lt;br /&gt;
Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #1 adder ====&lt;br /&gt;
Additional idle % when fan #1 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #1 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #1 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #2 adder ====&lt;br /&gt;
Additional idle % when fan #2 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #2 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #2 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpRpm --&amp;gt;&lt;br /&gt;
==== CAN idle-up target RPM adder ====&lt;br /&gt;
can box idle up demand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpPercentage --&amp;gt;&lt;br /&gt;
==== CAN idle-up % adder ====&lt;br /&gt;
can box idle up demand %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlePidSettings --&amp;gt;&lt;br /&gt;
== Closed Loop Idle ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMin --&amp;gt;&lt;br /&gt;
==== iTerm Min ====&lt;br /&gt;
iTerm min value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMax --&amp;gt;&lt;br /&gt;
==== iTerm Max ====&lt;br /&gt;
iTerm max value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:pidExtraForLowRpm --&amp;gt;&lt;br /&gt;
==== PID Extra for low RPM ====&lt;br /&gt;
Increases PID reaction for RPM&amp;lt;target by adding extra percent to PID-error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacPidMultTable --&amp;gt;&lt;br /&gt;
==== Use PID output gain table ====&lt;br /&gt;
This flag allows to use a special &#039;PID Multiplier&#039; table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:etbIdle --&amp;gt;&lt;br /&gt;
== ETB idle settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:dashpotEmulation --&amp;gt;&lt;br /&gt;
== Dashpot emulation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaper --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder ====&lt;br /&gt;
This value is an added for base idle value. Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time ====&lt;br /&gt;
How long initial idle adder is held before starting to decay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaperAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder(AC ON) ====&lt;br /&gt;
This value is an added for base idle value(AC ON). Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time(AC ON) ====&lt;br /&gt;
How long initial idle adder is held before starting to decay(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time(AC ON) ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdle --&amp;gt;&lt;br /&gt;
== Ignition idle settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetError --&amp;gt;&lt;br /&gt;
==== Open loop idle timing (RPM-error) ====&lt;br /&gt;
Use Idle Target Error Delta timing curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetErrorMode --&amp;gt;&lt;br /&gt;
==== Include corrections in idle timing ====&lt;br /&gt;
If enabled, adds the result from the RPM-error curve to the corrected idle advance. If disabled, it discards all corrections (IAT, CLT, PID etc.) and uses the curve value directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdlePid --&amp;gt;&lt;br /&gt;
=== Closed loop ignition timing (PID) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingPidControl --&amp;gt;&lt;br /&gt;
==== Enable PID control ====&lt;br /&gt;
Gain is in degrees advance per rpm away from target, a good starting point is 0.1 = 10 deg per 100 rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_minValue --&amp;gt;&lt;br /&gt;
==== Min adjustment (retard) ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max adjustment (advance) ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingSoftEntryTime --&amp;gt;&lt;br /&gt;
==== Soft entry time ====&lt;br /&gt;
When entering idle, and the PID settings are aggressive, it&#039;s good to make a soft entry upon entering closed loop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlehw --&amp;gt;&lt;br /&gt;
= Idle hardware =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleSolenoid --&amp;gt;&lt;br /&gt;
== Solenoid ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Primary output ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isDoubleSolenoidIdle --&amp;gt;&lt;br /&gt;
==== Double Solenoid Mode ====&lt;br /&gt;
Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:secondSolenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Secondary output ====&lt;br /&gt;
Some Subaru and some Mazda use double-solenoid idle air valve&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPinMode --&amp;gt;&lt;br /&gt;
==== Idle Solenoid output(s) Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidFrequency --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Frequency ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleRPMCurve --&amp;gt;&lt;br /&gt;
= Idle target RPM =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleTable --&amp;gt;&lt;br /&gt;
= Idle open loop position =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltCrankingCurveDialog --&amp;gt;&lt;br /&gt;
= Idle cranking position =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange#1 --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:cltCrankingCurve --&amp;gt;&lt;br /&gt;
== Cranking Idle Valve Curve ==&lt;br /&gt;
2D curve — X: Coolant (-40 to 120), Y: Percent (0 to 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:afterCrankingIACtaperDurationDialog --&amp;gt;&lt;br /&gt;
= Idle after start (crank-to-run) taper =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:afterCrankingIACtaperCurve --&amp;gt;&lt;br /&gt;
== Idle valve Crank-to-Run Taper ==&lt;br /&gt;
2D curve — X: Coolant (-40 to 120), Y: cycles (0 to 500).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacPidMultTbl --&amp;gt;&lt;br /&gt;
= Idle PID output gain =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleExtraPidCurve --&amp;gt;&lt;br /&gt;
= Idle PID error gain =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacCoastingCurve --&amp;gt;&lt;br /&gt;
= Coasting idle position override =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleValveForceClose --&amp;gt;&lt;br /&gt;
= Valve force close / stepper re-park =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseRpm --&amp;gt;&lt;br /&gt;
==== Force close: RPM threshold ====&lt;br /&gt;
Gradually close the idle valve and re-park the stepper when RPM is above this value AND TPS is above idleValveForceCloseTps. Prevents manifold pressure leakage through the valve at cruise, and resets accumulated stepper step-loss errors. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseDelay --&amp;gt;&lt;br /&gt;
==== Force close: delay (s) ====&lt;br /&gt;
Seconds to wait after RPM and TPS conditions are both met before beginning to close the idle valve. Prevents closing on brief throttle blips.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTps --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper start (%) ====&lt;br /&gt;
TPS at which the idle valve starts closing toward zero (taper start). Used together with idleValveForceCloseRpm and idleValveForceCloseTpsEnd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTpsEnd --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper end (%) ====&lt;br /&gt;
TPS at which the idle valve reaches fully closed and the stepper is re-parked (taper end). Position is linearly interpolated from current to zero between idleValveForceCloseTps and this value. Should be greater than idleValveForceCloseTps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseReparkSteps --&amp;gt;&lt;br /&gt;
==== Force close: re-park overstep (steps) ====&lt;br /&gt;
Number of extra steps to overstep toward closed when re-parking after force-close. Compensates for stepper drift without needing the full startup homing sequence. 5 is a good starting point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:IdleTimingTargetErrorDialog --&amp;gt;&lt;br /&gt;
= Open loop ignition idle timing (RPM-error) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- curve:idleTimingTargetErrorCRV --&amp;gt;&lt;br /&gt;
== Idle Target Error ==&lt;br /&gt;
2D curve — X: Delta (-500 to 500), Y: Deg (-30 to 30).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleVeTableTbl --&amp;gt;&lt;br /&gt;
= Idle fuel table =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleAdvanceCurve --&amp;gt;&lt;br /&gt;
= Idle ignition table =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:rotIdleDialog --&amp;gt;&lt;br /&gt;
= Rotational idle =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleEnabled --&amp;gt;&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePin --&amp;gt;&lt;br /&gt;
==== Pin ====&lt;br /&gt;
Pin that activates the rotational idle.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePinMode --&amp;gt;&lt;br /&gt;
==== Pin Mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_zero_stft --&amp;gt;&lt;br /&gt;
==== Stop STFT for rotational idle (no fuel trim) ====&lt;br /&gt;
Zero STFT for rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_spark --&amp;gt;&lt;br /&gt;
==== Rotational cut spark ====&lt;br /&gt;
Rotational cut spark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_fuel --&amp;gt;&lt;br /&gt;
==== Rotational cut fuel ====&lt;br /&gt;
Rotational cut fuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage --&amp;gt;&lt;br /&gt;
==== Enable automatic engagement for TPS ====&lt;br /&gt;
Enable automatic engagement of rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps --&amp;gt;&lt;br /&gt;
==== Engage rotational idle below this Driver Intent(TPS/PPS) ====&lt;br /&gt;
Engage rotational idle under this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt_enable --&amp;gt;&lt;br /&gt;
==== Enable auto engage for CLT ====&lt;br /&gt;
Enable Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt --&amp;gt;&lt;br /&gt;
==== Auto engage above this CLT ====&lt;br /&gt;
Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_clt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
Minimum CLT for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps_global --&amp;gt;&lt;br /&gt;
==== Maximum TPS/PPS  (0 to disable) ====&lt;br /&gt;
Disengage rotational idle above this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_rpm --&amp;gt;&lt;br /&gt;
==== Minimum RPM ====&lt;br /&gt;
Minimum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_rpm --&amp;gt;&lt;br /&gt;
==== Maximum RPM ====&lt;br /&gt;
Maximum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_disable_closed_loop_idle --&amp;gt;&lt;br /&gt;
==== Disable closed loop idle when rotational idle active ====&lt;br /&gt;
Disable closed loop idle control when rotational idle is active.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air --&amp;gt;&lt;br /&gt;
==== Add idle % idle output ====&lt;br /&gt;
Add air to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air_percent --&amp;gt;&lt;br /&gt;
==== Add/Remove air percentage ====&lt;br /&gt;
Percentage of air to add/remove to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_override_etb_authority --&amp;gt;&lt;br /&gt;
==== Override ETB Idle Authority (0 to disable override) ====&lt;br /&gt;
Override the ETB authority for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleFuelMultiplierPercent --&amp;gt;&lt;br /&gt;
==== Fuel Multiplier (1.5 = 150% , 0 to 2.5) ====&lt;br /&gt;
Rotational idle fuel multiplier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleIgnitionAdder --&amp;gt;&lt;br /&gt;
==== Rotational Absolute Timing (-30 = 30 ATDC, 0 =  original timing, 10 - -100) ====&lt;br /&gt;
Rotational idle absolute ignition (-20 = atdc 20 degrees)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:old_new_rotational_idle_logic --&amp;gt;&lt;br /&gt;
==== Old rotational idle logic (true = old, false = new) - see tooltip ====&lt;br /&gt;
Old rotational idle logic, New logic is based on global spark counter, the three layers of accumulators and adders run at the same time, offset shifts the pattern forward or backward with relation to each other, this should allow different sound patterns by combining different offsets;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_fuel_offset --&amp;gt;&lt;br /&gt;
==== Rotational Fuel Offset (should be 0, this shifts fuel cut in relation to ignition signal) ====&lt;br /&gt;
Rotational idle fuel offset (should be 0, this shifts fuel cut in relation to ignition signal). At 0, in sequential injection/ignition the fuel pulse is cut before the ignition pulse. so fuel is not wasted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max1 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 1 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder1 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 1 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset1 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 1 ====&lt;br /&gt;
Rotational pattern shift #1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max2 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 2 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder2 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 2 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset2 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 2 ====&lt;br /&gt;
Rotational pattern shift #2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max3 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 3 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder3 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 3 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset3 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 3 ====&lt;br /&gt;
Rotational pattern shift #3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:transmissionIdleUpSettings --&amp;gt;&lt;br /&gt;
= Transmission idle compensation =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPin --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch ====&lt;br /&gt;
Transmission idle up switch input&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPinMode --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch mode ====&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=473</id>
		<title>Config:Idle</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=473"/>
		<updated>2026-06-06T22:04:11Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- section:idleSettings --&amp;gt;&lt;br /&gt;
= Idle settings =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleBasicSettings --&amp;gt;&lt;br /&gt;
== Idle settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleMode --&amp;gt;&lt;br /&gt;
==== Idle control mode ====&lt;br /&gt;
See also idleRpmPid&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Open Loop + Closed Loop&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Open Loop&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidDeactivationTpsThreshold --&amp;gt;&lt;br /&gt;
==== TPS threshold ====&lt;br /&gt;
Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleBelowTpsThreshold --&amp;gt;&lt;br /&gt;
==== Force idle below throttle threshold ====&lt;br /&gt;
Force idle STATE below DriveIntent threshold.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionBelowTps --&amp;gt;&lt;br /&gt;
==== Force timing only below pedal threshold ====&lt;br /&gt;
Force idle ignition (delta target only) below DriverThreshold threshold, only for ignition timing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:forceIdleIgnitionUseDFCO --&amp;gt;&lt;br /&gt;
==== Idle force delayed by DFCO ====&lt;br /&gt;
Do not force idle ignition while DFCO is active for either of the above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleDeltaRpmAdjAvgFactor --&amp;gt;&lt;br /&gt;
==== Delta target rpm smoothing factor ====&lt;br /&gt;
Smoothing factor for delta target rpm ignition adjustment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmUpperLimit --&amp;gt;&lt;br /&gt;
==== RPM upper limit ====&lt;br /&gt;
How far above idle speed do we consider idling, i.e. coasting detection threshold.&lt;br /&gt;
For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlePidRpmDeadZone --&amp;gt;&lt;br /&gt;
==== RPM deadzone ====&lt;br /&gt;
If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:maxIdleVss --&amp;gt;&lt;br /&gt;
==== Max vehicle speed ====&lt;br /&gt;
Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOverrides --&amp;gt;&lt;br /&gt;
== Idle overrides ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateAdvanceForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle ignition table ====&lt;br /&gt;
This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra advance at low idle speeds will prevent stalling and extra retard at high idle speeds can help reduce engine power and slow the idle speed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoasting --&amp;gt;&lt;br /&gt;
==== Use idle ignition table while coasting ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleAdvanceWhileCoastingMaxRpm --&amp;gt;&lt;br /&gt;
==== Max RPM for idle advance while coasting ====&lt;br /&gt;
Maximum RPM for which idle advance while coasting is enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateVeForIdle --&amp;gt;&lt;br /&gt;
==== Separate idle VE table ====&lt;br /&gt;
This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleVeOverrideMode --&amp;gt;&lt;br /&gt;
==== Override Idle VE table load axis ====&lt;br /&gt;
Allows you to change the default load axis used for the VE table, which is typically MAP (manifold absolute pressure).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;MAP&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;TPS&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;PERCENT BARO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRamp --&amp;gt;&lt;br /&gt;
==== Ramp target RPM on return to idle ====&lt;br /&gt;
Ramp the idle target down from the entry threshold over N seconds when returning to idle. Helps prevent overshooting (below) the idle target while returning to idle from coasting.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;no&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleReturnTargetRampDuration --&amp;gt;&lt;br /&gt;
==== Ramp target duration ====&lt;br /&gt;
idle return target ramp duration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useSeparateIdleTablesForCrankingTaper --&amp;gt;&lt;br /&gt;
==== Separate idle tables for cranking taper ====&lt;br /&gt;
This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacTableForCoasting --&amp;gt;&lt;br /&gt;
==== Separate coasting idle table ====&lt;br /&gt;
Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleOpenLoop --&amp;gt;&lt;br /&gt;
== Open Loop Idle ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== A/C adder ====&lt;br /&gt;
Additional idle % while A/C is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:acIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== A/C RPM target ====&lt;br /&gt;
Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #1 adder ====&lt;br /&gt;
Additional idle % when fan #1 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan1ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #1 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #1 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdle --&amp;gt;&lt;br /&gt;
==== Fan #2 adder ====&lt;br /&gt;
Additional idle % when fan #2 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:fan2ExtraIdleRpmTarget --&amp;gt;&lt;br /&gt;
==== Fan #2 RPM target ====&lt;br /&gt;
Idle RPM target adder when fan #2 is active. Raises the idle RPM target so the closed-loop PID does not fight the open-loop IAC adder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpRpm --&amp;gt;&lt;br /&gt;
==== CAN idle-up target RPM adder ====&lt;br /&gt;
can box idle up demand&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:canBoxIdleUpPercentage --&amp;gt;&lt;br /&gt;
==== CAN idle-up % adder ====&lt;br /&gt;
can box idle up demand %&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlePidSettings --&amp;gt;&lt;br /&gt;
== Closed Loop Idle ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_minValue --&amp;gt;&lt;br /&gt;
==== Min ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleRpmPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMin --&amp;gt;&lt;br /&gt;
==== iTerm Min ====&lt;br /&gt;
iTerm min value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idlerpmpid_iTermMax --&amp;gt;&lt;br /&gt;
==== iTerm Max ====&lt;br /&gt;
iTerm max value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:pidExtraForLowRpm --&amp;gt;&lt;br /&gt;
==== PID Extra for low RPM ====&lt;br /&gt;
Increases PID reaction for RPM&amp;lt;target by adding extra percent to PID-error&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIacPidMultTable --&amp;gt;&lt;br /&gt;
==== Use PID output gain table ====&lt;br /&gt;
This flag allows to use a special &#039;PID Multiplier&#039; table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:etbIdle --&amp;gt;&lt;br /&gt;
== ETB idle settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:dashpotEmulation --&amp;gt;&lt;br /&gt;
== Dashpot emulation ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaper --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder ====&lt;br /&gt;
This value is an added for base idle value. Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time ====&lt;br /&gt;
How long initial idle adder is held before starting to decay.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTime --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsTaperAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Initial idle Adder(AC ON) ====&lt;br /&gt;
This value is an added for base idle value(AC ON). Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsHoldTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Hold time(AC ON) ====&lt;br /&gt;
How long initial idle adder is held before starting to decay(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:iacByTpsDecayTimeAC --&amp;gt;&lt;br /&gt;
==== Dashpot coasting-to-idle Decay time(AC ON) ====&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle(AC ON).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdle --&amp;gt;&lt;br /&gt;
== Ignition idle settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetError --&amp;gt;&lt;br /&gt;
==== Open loop idle timing (RPM-error) ====&lt;br /&gt;
Use Idle Target Error Delta timing curve&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingTargetErrorMode --&amp;gt;&lt;br /&gt;
==== Include corrections in idle timing ====&lt;br /&gt;
If enabled, adds the result from the RPM-error curve to the corrected idle advance. If disabled, it discards all corrections (IAT, CLT, PID etc.) and uses the curve value directly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:ignitionIdlePid --&amp;gt;&lt;br /&gt;
=== Closed loop ignition timing (PID) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:useIdleTimingPidControl --&amp;gt;&lt;br /&gt;
==== Enable PID control ====&lt;br /&gt;
Gain is in degrees advance per rpm away from target, a good starting point is 0.1 = 10 deg per 100 rpm&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_pFactor --&amp;gt;&lt;br /&gt;
==== P gain ====&lt;br /&gt;
Proportional value.&lt;br /&gt;
See https://content.epicefi.com/wiki/index.php/Guides:PID_Control&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_iFactor --&amp;gt;&lt;br /&gt;
==== I gain ====&lt;br /&gt;
Integral value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_dFactor --&amp;gt;&lt;br /&gt;
==== D gain ====&lt;br /&gt;
Derivative value&lt;br /&gt;
 See https://content.epicefi.com/wiki/index.php/Guides:PID_Control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_minValue --&amp;gt;&lt;br /&gt;
==== Min adjustment (retard) ====&lt;br /&gt;
PID controller output minimum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingPid_maxValue --&amp;gt;&lt;br /&gt;
==== Max adjustment (advance) ====&lt;br /&gt;
PID controller output maximum duty value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleTimingSoftEntryTime --&amp;gt;&lt;br /&gt;
==== Soft entry time ====&lt;br /&gt;
When entering idle, and the PID settings are aggressive, it&#039;s good to make a soft entry upon entering closed loop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idlehw --&amp;gt;&lt;br /&gt;
= Idle hardware =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleSolenoid --&amp;gt;&lt;br /&gt;
== Solenoid ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Primary output ====&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:isDoubleSolenoidIdle --&amp;gt;&lt;br /&gt;
==== Double Solenoid Mode ====&lt;br /&gt;
Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:secondSolenoidPin --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Secondary output ====&lt;br /&gt;
Some Subaru and some Mazda use double-solenoid idle air valve&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$output_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidPinMode --&amp;gt;&lt;br /&gt;
==== Idle Solenoid output(s) Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_output_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idle_solenoidFrequency --&amp;gt;&lt;br /&gt;
==== Idle Solenoid Frequency ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleRPMCurve --&amp;gt;&lt;br /&gt;
= Idle target RPM =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltIdleTable --&amp;gt;&lt;br /&gt;
= Idle open loop position =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:cltCrankingCurveDialog --&amp;gt;&lt;br /&gt;
= Idle cranking position =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:etbIdleThrottleRange#1 --&amp;gt;&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:afterCrankingIACtaperDurationDialog --&amp;gt;&lt;br /&gt;
= Idle after start (crank-to-run) taper =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacPidMultTbl --&amp;gt;&lt;br /&gt;
= Idle PID output gain =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleExtraPidCurve --&amp;gt;&lt;br /&gt;
= Idle PID error gain =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:iacCoastingCurve --&amp;gt;&lt;br /&gt;
= Coasting idle position override =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleValveForceClose --&amp;gt;&lt;br /&gt;
= Valve force close / stepper re-park =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseRpm --&amp;gt;&lt;br /&gt;
==== Force close: RPM threshold ====&lt;br /&gt;
Gradually close the idle valve and re-park the stepper when RPM is above this value AND TPS is above idleValveForceCloseTps. Prevents manifold pressure leakage through the valve at cruise, and resets accumulated stepper step-loss errors. Set to 0 to disable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseDelay --&amp;gt;&lt;br /&gt;
==== Force close: delay (s) ====&lt;br /&gt;
Seconds to wait after RPM and TPS conditions are both met before beginning to close the idle valve. Prevents closing on brief throttle blips.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTps --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper start (%) ====&lt;br /&gt;
TPS at which the idle valve starts closing toward zero (taper start). Used together with idleValveForceCloseRpm and idleValveForceCloseTpsEnd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseTpsEnd --&amp;gt;&lt;br /&gt;
==== Force close: TPS taper end (%) ====&lt;br /&gt;
TPS at which the idle valve reaches fully closed and the stepper is re-parked (taper end). Position is linearly interpolated from current to zero between idleValveForceCloseTps and this value. Should be greater than idleValveForceCloseTps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:idleValveForceCloseReparkSteps --&amp;gt;&lt;br /&gt;
==== Force close: re-park overstep (steps) ====&lt;br /&gt;
Number of extra steps to overstep toward closed when re-parking after force-close. Compensates for stepper drift without needing the full startup homing sequence. 5 is a good starting point.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:IdleTimingTargetErrorDialog --&amp;gt;&lt;br /&gt;
= Open loop ignition idle timing (RPM-error) =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleVeTableTbl --&amp;gt;&lt;br /&gt;
= Idle fuel table =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:idleAdvanceCurve --&amp;gt;&lt;br /&gt;
= Idle ignition table =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:rotIdleDialog --&amp;gt;&lt;br /&gt;
= Rotational idle =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleEnabled --&amp;gt;&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePin --&amp;gt;&lt;br /&gt;
==== Pin ====&lt;br /&gt;
Pin that activates the rotational idle.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotationalIdlePinMode --&amp;gt;&lt;br /&gt;
==== Pin Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_zero_stft --&amp;gt;&lt;br /&gt;
==== Stop STFT for rotational idle (no fuel trim) ====&lt;br /&gt;
Zero STFT for rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_spark --&amp;gt;&lt;br /&gt;
==== Rotational cut spark ====&lt;br /&gt;
Rotational cut spark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotational_cut_fuel --&amp;gt;&lt;br /&gt;
==== Rotational cut fuel ====&lt;br /&gt;
Rotational cut fuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage --&amp;gt;&lt;br /&gt;
==== Enable automatic engagement for TPS ====&lt;br /&gt;
Enable automatic engagement of rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps --&amp;gt;&lt;br /&gt;
==== Engage rotational idle below this Driver Intent(TPS/PPS) ====&lt;br /&gt;
Engage rotational idle under this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt_enable --&amp;gt;&lt;br /&gt;
==== Enable auto engage for CLT ====&lt;br /&gt;
Enable Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_auto_engage_clt --&amp;gt;&lt;br /&gt;
==== Auto engage above this CLT ====&lt;br /&gt;
Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_clt --&amp;gt;&lt;br /&gt;
==== Minimum CLT ====&lt;br /&gt;
Minimum CLT for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_tps_global --&amp;gt;&lt;br /&gt;
==== Maximum TPS/PPS  (0 to disable) ====&lt;br /&gt;
Disengage rotational idle above this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_min_rpm --&amp;gt;&lt;br /&gt;
==== Minimum RPM ====&lt;br /&gt;
Minimum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_max_rpm --&amp;gt;&lt;br /&gt;
==== Maximum RPM ====&lt;br /&gt;
Maximum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_disable_closed_loop_idle --&amp;gt;&lt;br /&gt;
==== Disable closed loop idle when rotational idle active ====&lt;br /&gt;
Disable closed loop idle control when rotational idle is active.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air --&amp;gt;&lt;br /&gt;
==== Add idle % idle output ====&lt;br /&gt;
Add air to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_add_air_percent --&amp;gt;&lt;br /&gt;
==== Add/Remove air percentage ====&lt;br /&gt;
Percentage of air to add/remove to the idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_override_etb_authority --&amp;gt;&lt;br /&gt;
==== Override ETB Idle Authority (0 to disable override) ====&lt;br /&gt;
Override the ETB authority for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleFuelMultiplierPercent --&amp;gt;&lt;br /&gt;
==== Fuel Multiplier (1.5 = 150% , 0 to 2.5) ====&lt;br /&gt;
Rotational idle fuel multiplier&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rotIdleIgnitionAdder --&amp;gt;&lt;br /&gt;
==== Rotational Absolute Timing (-30 = 30 ATDC, 0 =  original timing, 10 - -100) ====&lt;br /&gt;
Rotational idle absolute ignition (-20 = atdc 20 degrees)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:old_new_rotational_idle_logic --&amp;gt;&lt;br /&gt;
==== Old rotational idle logic (true = old, false = new) - see tooltip ====&lt;br /&gt;
Old rotational idle logic, New logic is based on global spark counter, the three layers of accumulators and adders run at the same time, offset shifts the pattern forward or backward with relation to each other, this should allow different sound patterns by combining different offsets;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_fuel_offset --&amp;gt;&lt;br /&gt;
==== Rotational Fuel Offset (should be 0, this shifts fuel cut in relation to ignition signal) ====&lt;br /&gt;
Rotational idle fuel offset (should be 0, this shifts fuel cut in relation to ignition signal). At 0, in sequential injection/ignition the fuel pulse is cut before the ignition pulse. so fuel is not wasted.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max1 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 1 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder1 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 1 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset1 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 1 ====&lt;br /&gt;
Rotational pattern shift #1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max2 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 2 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder2 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 2 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset2 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 2 ====&lt;br /&gt;
Rotational pattern shift #2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_max3 --&amp;gt;&lt;br /&gt;
==== Accumulator Max 3 ====&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_acc_adder3 --&amp;gt;&lt;br /&gt;
==== Accumulator Adder 3 ====&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:rot_idle_offset3 --&amp;gt;&lt;br /&gt;
==== Accumulator Offset 3 ====&lt;br /&gt;
Rotational pattern shift #3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- section:transmissionIdleUpSettings --&amp;gt;&lt;br /&gt;
= Transmission idle compensation =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPin --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch ====&lt;br /&gt;
Transmission idle up switch input&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$switch_input_pin_e_list&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleUpPinMode --&amp;gt;&lt;br /&gt;
==== Transmission idle up switch mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;$pin_input_mode_e_enum&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleExtraOffset#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up adder ====&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- field:transmissionIdleRpmTarget#1 --&amp;gt;&lt;br /&gt;
==== Transmission idle up RPM target ====&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Guides:PID_Control&amp;diff=449</id>
		<title>Guides:PID Control</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Guides:PID_Control&amp;diff=449"/>
		<updated>2026-03-28T23:28:46Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;TODO:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO:&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=324</id>
		<title>Config:Cranking</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=324"/>
		<updated>2026-02-12T22:31:37Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Cranking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cranking =&lt;br /&gt;
The cranking menu handles fuel and ignition during cranking conditions. Cranking conditions are defined as RPM below [[Config:Cranking#Cranking RPM limit|the cranking threshold]].&lt;br /&gt;
&lt;br /&gt;
= Cranking settings =&lt;br /&gt;
&lt;br /&gt;
==== Cranking RPM limit ====&lt;br /&gt;
This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. &lt;br /&gt;
&lt;br /&gt;
=== Fuel ===&lt;br /&gt;
&lt;br /&gt;
==== Injection mode ====&lt;br /&gt;
This is the injection strategy during engine start. See [[Config:Fuel#Mode|Fuel settings]] for more detail. It is suggested to use &amp;quot;Simultaneous&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Cranking fuel table ====&lt;br /&gt;
For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table).&lt;br /&gt;
&lt;br /&gt;
=== Ignition ===&lt;br /&gt;
&lt;br /&gt;
==== Timing Advance mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Constant mode&#039;&#039;&#039; - Timing is automatically tapered to running as RPM increases.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Table mode&#039;&#039;&#039; - The &amp;quot;Cranking ignition advance&amp;quot; table is used directly.&lt;br /&gt;
&lt;br /&gt;
==== Fixed cranking advance ====&lt;br /&gt;
Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.&lt;br /&gt;
&lt;br /&gt;
There is tapering towards running timing advance.&lt;br /&gt;
&lt;br /&gt;
==== Fixed Cranking Dwell ====&lt;br /&gt;
Dwell duration while cranking&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
==== Flood clear ====&lt;br /&gt;
When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders.&lt;br /&gt;
&lt;br /&gt;
==== Faster engine spin-up ====&lt;br /&gt;
If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled.&lt;br /&gt;
&lt;br /&gt;
==== Use Advance Corrections for cranking ====&lt;br /&gt;
This enables the various ignition corrections during cranking (IAT, CLT and PID idle).&lt;br /&gt;
&lt;br /&gt;
You probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
==== Separate Flex Fuel cranking table ====&lt;br /&gt;
Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor.&lt;br /&gt;
&lt;br /&gt;
= Cranking Air Amount vs CLT =&lt;br /&gt;
If electronic throttle is used, this table defines the limit of the blade angle that the idle controller authority has, the idle controller will not open the throttle valve more than this amount.&lt;br /&gt;
&lt;br /&gt;
If not using electronic throttle, this table defines the maximum duty or stepper range.&lt;br /&gt;
&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
= After-start enrichment (ASE) =&lt;br /&gt;
After start Enrichment, or ASE, is an initial, short lived duration of extra fuel enrichment to help the engine stabilise after cranking and initial fire-up. This table defines the fuel multiplier for ASE.&lt;br /&gt;
&lt;br /&gt;
= Priming pulse =&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel pump prime on power on ====&lt;br /&gt;
This disables the fuel pump prime. &lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not fire the initial priming pulse of the injectors.&lt;br /&gt;
&lt;br /&gt;
==== Fuel pump prime delay after power ====&lt;br /&gt;
How long to delay fuel pump prime from ignition-on detection&lt;br /&gt;
&lt;br /&gt;
==== Injector Priming delay (after fuel pump delay) ====&lt;br /&gt;
Delay to allow fuel pressure to build before firing the priming pulse.&lt;br /&gt;
&lt;br /&gt;
==== Priming pulse fuel mass ====&lt;br /&gt;
This is the fuel mass in mg that will be injected on priming pulse.&lt;br /&gt;
&lt;br /&gt;
= Cranking Base Fuel (Engine Cycle vs CLT) =&lt;br /&gt;
This is the percentage of required fuel, 100% means inject fuel for stoichometric combustion. This is then modified by the multipliers for IAT, TPS ect, to give the final cranking pulse width.&lt;br /&gt;
A reasonable starting point is 70%.&lt;br /&gt;
&lt;br /&gt;
= CLT Cranking Fuel Multiplier (E0) =&lt;br /&gt;
This is the cranking fuel multiplier at zero ethanol content (also used when no flex fuel is used).&lt;br /&gt;
&lt;br /&gt;
= CLT Flex Cranking Fuel Multiplier (E85) =&lt;br /&gt;
This is the cranking fuel multiplier at 85% ethanol content (requires [[Flex Fuel]] sensor).&lt;br /&gt;
&lt;br /&gt;
= CLT Cranking ignition advance =&lt;br /&gt;
Optional timing advance table for cranking, see [[Config:Cranking#Timing Advance mode|Timing Advance mode.]]&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=323</id>
		<title>Config:Cranking</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=323"/>
		<updated>2026-02-12T22:31:18Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Cranking RPM limit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cranking =&lt;br /&gt;
The cranking menu handles fuel and ignition during cranking conditions. Cranking conditions are defined as RPM below the cranking threshold.&lt;br /&gt;
&lt;br /&gt;
= Cranking settings =&lt;br /&gt;
&lt;br /&gt;
==== Cranking RPM limit ====&lt;br /&gt;
This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. &lt;br /&gt;
&lt;br /&gt;
=== Fuel ===&lt;br /&gt;
&lt;br /&gt;
==== Injection mode ====&lt;br /&gt;
This is the injection strategy during engine start. See [[Config:Fuel#Mode|Fuel settings]] for more detail. It is suggested to use &amp;quot;Simultaneous&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Cranking fuel table ====&lt;br /&gt;
For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table).&lt;br /&gt;
&lt;br /&gt;
=== Ignition ===&lt;br /&gt;
&lt;br /&gt;
==== Timing Advance mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Constant mode&#039;&#039;&#039; - Timing is automatically tapered to running as RPM increases.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Table mode&#039;&#039;&#039; - The &amp;quot;Cranking ignition advance&amp;quot; table is used directly.&lt;br /&gt;
&lt;br /&gt;
==== Fixed cranking advance ====&lt;br /&gt;
Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.&lt;br /&gt;
&lt;br /&gt;
There is tapering towards running timing advance.&lt;br /&gt;
&lt;br /&gt;
==== Fixed Cranking Dwell ====&lt;br /&gt;
Dwell duration while cranking&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
==== Flood clear ====&lt;br /&gt;
When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders.&lt;br /&gt;
&lt;br /&gt;
==== Faster engine spin-up ====&lt;br /&gt;
If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled.&lt;br /&gt;
&lt;br /&gt;
==== Use Advance Corrections for cranking ====&lt;br /&gt;
This enables the various ignition corrections during cranking (IAT, CLT and PID idle).&lt;br /&gt;
&lt;br /&gt;
You probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
==== Separate Flex Fuel cranking table ====&lt;br /&gt;
Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor.&lt;br /&gt;
&lt;br /&gt;
= Cranking Air Amount vs CLT =&lt;br /&gt;
If electronic throttle is used, this table defines the limit of the blade angle that the idle controller authority has, the idle controller will not open the throttle valve more than this amount.&lt;br /&gt;
&lt;br /&gt;
If not using electronic throttle, this table defines the maximum duty or stepper range.&lt;br /&gt;
&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
= After-start enrichment (ASE) =&lt;br /&gt;
After start Enrichment, or ASE, is an initial, short lived duration of extra fuel enrichment to help the engine stabilise after cranking and initial fire-up. This table defines the fuel multiplier for ASE.&lt;br /&gt;
&lt;br /&gt;
= Priming pulse =&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel pump prime on power on ====&lt;br /&gt;
This disables the fuel pump prime. &lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not fire the initial priming pulse of the injectors.&lt;br /&gt;
&lt;br /&gt;
==== Fuel pump prime delay after power ====&lt;br /&gt;
How long to delay fuel pump prime from ignition-on detection&lt;br /&gt;
&lt;br /&gt;
==== Injector Priming delay (after fuel pump delay) ====&lt;br /&gt;
Delay to allow fuel pressure to build before firing the priming pulse.&lt;br /&gt;
&lt;br /&gt;
==== Priming pulse fuel mass ====&lt;br /&gt;
This is the fuel mass in mg that will be injected on priming pulse.&lt;br /&gt;
&lt;br /&gt;
= Cranking Base Fuel (Engine Cycle vs CLT) =&lt;br /&gt;
This is the percentage of required fuel, 100% means inject fuel for stoichometric combustion. This is then modified by the multipliers for IAT, TPS ect, to give the final cranking pulse width.&lt;br /&gt;
A reasonable starting point is 70%.&lt;br /&gt;
&lt;br /&gt;
= CLT Cranking Fuel Multiplier (E0) =&lt;br /&gt;
This is the cranking fuel multiplier at zero ethanol content (also used when no flex fuel is used).&lt;br /&gt;
&lt;br /&gt;
= CLT Flex Cranking Fuel Multiplier (E85) =&lt;br /&gt;
This is the cranking fuel multiplier at 85% ethanol content (requires [[Flex Fuel]] sensor).&lt;br /&gt;
&lt;br /&gt;
= CLT Cranking ignition advance =&lt;br /&gt;
Optional timing advance table for cranking, see [[Config:Cranking#Timing Advance mode|Timing Advance mode.]]&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=322</id>
		<title>Config:Idle</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Idle&amp;diff=322"/>
		<updated>2026-02-12T22:30:23Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;= Idle =  == Idle settings ==  &amp;#039;&amp;#039;&amp;#039;Idle control mode&amp;#039;&amp;#039;&amp;#039;  See also idleRpmPid  === Idle Detection Thresholds ===  &amp;#039;&amp;#039;&amp;#039;TPS threshold&amp;#039;&amp;#039;&amp;#039;  Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.  &amp;#039;&amp;#039;&amp;#039;Force Idle State Below DriverThrottleIntent Threshold&amp;#039;&amp;#039;&amp;#039;  Force idle STATE below DriveIntent threshold.  &amp;#039;&amp;#039;&amp;#039;Force Idle Ignition ONLY Below Driv...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Idle =&lt;br /&gt;
&lt;br /&gt;
== Idle settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle control mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also idleRpmPid&lt;br /&gt;
&lt;br /&gt;
=== Idle Detection Thresholds ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Force Idle State Below DriverThrottleIntent Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Force idle STATE below DriveIntent threshold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Force Idle Ignition ONLY Below DriverThrottleIntent Threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Force idle ignition (delta target only) below DriverThreshold threshold, only for ignition timing&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle force delayed by DFCO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not force idle ignition while DFCO is active for either of the above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta target rpm smoothing factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smoothing factor for delta target rpm ignition adjustment&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM upper limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How far above idle speed do we consider idling, i.e. coasting detection threshold.&lt;br /&gt;
For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM deadzone&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max vehicle speed&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).&lt;br /&gt;
&lt;br /&gt;
=== Open Loop Idle ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A/C adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % while A/C is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A/C RPM target&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up RPM target&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fan #1 adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % when fan #1 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fan #2 adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % when fan #2 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
=== Closed Loop Idle ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;P-factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;I-factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D-factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Output Min Duty Cycle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Output Max Duty Cycle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iTerm Min&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iTerm min value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iTerm Max&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
iTerm max value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PID Extra for low RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Increases PID reaction for RPM&amp;lt;target by adding extra percent to PID-error&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use IAC PID Multiplier Table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This flag allows to use a special &#039;PID Multiplier&#039; table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller&lt;br /&gt;
&lt;br /&gt;
=== Extra Idle Features ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Separate idle ignition table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra advance at low idle speeds will prevent stalling and extra retard at high idle speeds can help reduce engine power and slow the idle speed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use idle ignition table while coasting&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Separate idle VE table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override Idle VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Allows you to change the default load axis used for the VE table, which is typically MAP (manifold absolute pressure).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ramp target RPM on return to idle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ramp the idle target down from the entry threshold over N seconds when returning to idle. Helps prevent overshooting (below) the idle target while returning to idle from coasting.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ramp target duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
idle return target ramp duration&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Separate idle tables for cranking taper&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Separate coasting idle table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashpot coasting-to-idle Initial idle Adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value is an added for base idle value. Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashpot coasting-to-idle Hold time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long initial idle adder is held before starting to decay.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashpot coasting-to-idle Decay time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashpot coasting-to-idle Initial idle Adder(AC ON)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This value is an added for base idle value(AC ON). Idle Value added when coasting and transitioning into idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashpot coasting-to-idle Hold time(AC ON)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long initial idle adder is held before starting to decay(AC ON).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashpot coasting-to-idle Decay time(AC ON)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long it takes to remove initial IAC adder to return to normal idle(AC ON).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN box extra idle-up target RPM adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
can box idle up demand&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN box extra idle-up % adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
can box idle up demand %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Idle Timing Target Error curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Idle Target Error Delta timing curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Timing Target Error is Adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = replace, 1 = add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable closed loop idle ignition timing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Idle hardware ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Stepper&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Electronic throttle idle range&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
=== Idle Valve Hardware ===&lt;br /&gt;
&lt;br /&gt;
=== Solenoid ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Solenoid Primary output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Double Solenoid Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Solenoid Secondary output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some Subaru and some Mazda use double-solenoid idle air valve&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Solenoid output(s) Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Solenoid Frequency&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Stepper ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive stepper with dual H bridges&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled we use two H-bridges to drive stepper idle air valve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive stepper with PushPull outputs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper reaction time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper total steps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper parking extra steps, %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Force parking every restart&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Stepper Controller Hardware ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Stepper Step Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Stepper Dir Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Stepper Dir Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Stepper Enable Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idle Stepper Enable Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Stepper H-Bridge Hardware ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inverted driver pins&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)&lt;br /&gt;
&lt;br /&gt;
=== H-Bridge Hardware No1 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No1 Direction #1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No1 Direction #2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No1 Control&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Acts as EN pin in two-wire mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No1 Disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== H-Bridge Hardware No2 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No2 Direction #1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No2 Direction #2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No2 Control&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Acts as EN pin in two-wire mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No2 Disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Stepper Direct-Drive Hardware ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper A+&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
stepper_raw_output 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper A-&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
stepper_raw_output 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper B+&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
stepper_raw_output 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepper B-&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
stepper_raw_output 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
=== Micro-Stepping ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stepping Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For micro-stepping, make sure that PWM frequency (etbFreq) is high enough&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min. Duty Cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use to limit the current when the stepper motor is idle, not moving (100% = no limit)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max. Duty Cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use to limit the max.current through the stepper motor (100% = no limit)&lt;br /&gt;
&lt;br /&gt;
== Open Loop Idle ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A/C adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % while A/C is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A/C RPM target&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up RPM target&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fan #1 adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % when fan #1 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fan #2 adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % when fan #2 is active. In PWM mode this is scaled according to PWM %&lt;br /&gt;
&lt;br /&gt;
== Transmission Idle Up ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up switch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Transmission idle up switch input&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up switch mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up adder&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Additional idle % while transmission idle up is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Transmission idle up RPM target&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Idle target speed when transmission idle up is enabled. Some transmissions need extra idle speed when engaged.&lt;br /&gt;
&lt;br /&gt;
== Idle Target RPM from CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Idle Position from CLT vs Idle Target RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Idle After Start (Crank-to-Run) Taper vs CLT ==&lt;br /&gt;
&lt;br /&gt;
== Closed-loop Ignition idle timing ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Proportional gain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Integral gain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Derivative gain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min adjustment (retard)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Output Min Duty Cycle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max adjustment (advance)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Output Max Duty Cycle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Soft entry time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When entering idle, and the PID settings are aggressive, it&#039;s good to make a soft entry upon entering closed loop&lt;br /&gt;
&lt;br /&gt;
== Target Delta ignition idle timing ==&lt;br /&gt;
&lt;br /&gt;
== Idle PID multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Idle extra PID ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Coasting Idle position ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Idle VE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Idle Target RPM Ignition advance ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Rotational Idle ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pin that activates the rotational idle.&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stop STFT for rotational idle (no fuel trim)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Zero STFT for rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rotational cut spark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational cut spark.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rotational cut fuel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational cut fuel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable automatic engagement for TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable automatic engagement of rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Engage rotational idle below this Driver Intent(TPS/PPS)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Engage rotational idle under this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable auto engage for CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auto engage above this CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational Idle Auto engage CLT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum CLT for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum TPS/PPS  (0 to disable)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disengage rotational idle above this Driver Intent.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum RPM for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add idle % idle output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Add air to the idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Add/Remove air percentage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Percentage of air to add/remove to the idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override ETB Idle Authority (0 to disable override)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the ETB authority for the rotational idle.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel Multiplier (1.5 = 150% , 0 to 2.5)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational idle fuel multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rotational Absolute Timing (-30 = 30 ATDC, 0 =  original timing, 10 - -100)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational idle absolute ignition (-20 = atdc 20 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Old rotational idle logic (true = old, false = new) - see tooltip&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Old rotational idle logic, New logic is based on global spark counter, the three layers of accumulators and adders run at the same time, offset shifts the pattern forward or backward with relation to each other, this should allow different sound patterns by combining different offsets;&amp;quot;true = old, false = new&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rotational Fuel Offset (should be 0, this shifts fuel cut in relation to ignition signal)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational idle fuel offset (should be 0, this shifts fuel cut in relation to ignition signal). At 0, in sequential injection/ignition the fuel pulse is cut before the ignition pulse. so fuel is not wasted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Max 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Adder 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Offset 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational pattern shift #1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Max 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Adder 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Offset 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational pattern shift #2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Max 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Max value for the rotational idle accumulator to skip&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Adder 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Accumulator adder&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Accumulator Offset 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rotational pattern shift #3&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=321</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=321"/>
		<updated>2026-02-12T22:30:04Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration of the epicEFI firmware is done via [https://www.tunerstudio.com/ TunerStudio] from EFIAnalytics. TunerStudio allows the user to edit the main controller configuration as well to change the various tables inside of the firmware.&lt;br /&gt;
&lt;br /&gt;
== Installing TunerStudio ==&lt;br /&gt;
Navigate to [https://www.tunerstudio.com/index.php/downloads the TunerStudio download page]and download the latest TunerStudio for your platform. TunerStudio supports auto-update, so the latest available version will be installed once the auto-updater is ran at first startup.&lt;br /&gt;
&lt;br /&gt;
== Tuner Studio options ==&lt;br /&gt;
To access the individual TunerStudio options, use the following links:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Setup]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* [[Config:Fuel|&amp;lt;big&amp;gt;Fuel&amp;lt;/big&amp;gt;]]&lt;br /&gt;
* [[Config:Ignition|&amp;lt;big&amp;gt;Ignition&amp;lt;/big&amp;gt;]]&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Cranking|Cranking]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Config:Idle|Idle]]&amp;lt;/big&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=320</id>
		<title>Config:Cranking</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=320"/>
		<updated>2026-02-12T22:28:51Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Cranking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cranking =&lt;br /&gt;
The cranking menu handles fuel and ignition during cranking conditions. Cranking conditions are defined as RPM below the cranking threshold.&lt;br /&gt;
&lt;br /&gt;
= Cranking settings =&lt;br /&gt;
&lt;br /&gt;
==== Cranking RPM limit ====&lt;br /&gt;
This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. &lt;br /&gt;
set cranking_rpm X&lt;br /&gt;
&lt;br /&gt;
=== Fuel ===&lt;br /&gt;
&lt;br /&gt;
==== Injection mode ====&lt;br /&gt;
This is the injection strategy during engine start. See [[Config:Fuel#Mode|Fuel settings]] for more detail. It is suggested to use &amp;quot;Simultaneous&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Cranking fuel table ====&lt;br /&gt;
For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table).&lt;br /&gt;
&lt;br /&gt;
=== Ignition ===&lt;br /&gt;
&lt;br /&gt;
==== Timing Advance mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Constant mode&#039;&#039;&#039; - Timing is automatically tapered to running as RPM increases.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Table mode&#039;&#039;&#039; - The &amp;quot;Cranking ignition advance&amp;quot; table is used directly.&lt;br /&gt;
&lt;br /&gt;
==== Fixed cranking advance ====&lt;br /&gt;
Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.&lt;br /&gt;
&lt;br /&gt;
There is tapering towards running timing advance.&lt;br /&gt;
&lt;br /&gt;
==== Fixed Cranking Dwell ====&lt;br /&gt;
Dwell duration while cranking&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
==== Flood clear ====&lt;br /&gt;
When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders.&lt;br /&gt;
&lt;br /&gt;
==== Faster engine spin-up ====&lt;br /&gt;
If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled.&lt;br /&gt;
&lt;br /&gt;
==== Use Advance Corrections for cranking ====&lt;br /&gt;
This enables the various ignition corrections during cranking (IAT, CLT and PID idle).&lt;br /&gt;
&lt;br /&gt;
You probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
==== Separate Flex Fuel cranking table ====&lt;br /&gt;
Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor.&lt;br /&gt;
&lt;br /&gt;
= Cranking Air Amount vs CLT =&lt;br /&gt;
If electronic throttle is used, this table defines the limit of the blade angle that the idle controller authority has, the idle controller will not open the throttle valve more than this amount.&lt;br /&gt;
&lt;br /&gt;
If not using electronic throttle, this table defines the maximum duty or stepper range.&lt;br /&gt;
&lt;br /&gt;
==== ETB idle maximum angle ====&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
= After-start enrichment (ASE) =&lt;br /&gt;
After start Enrichment, or ASE, is an initial, short lived duration of extra fuel enrichment to help the engine stabilise after cranking and initial fire-up. This table defines the fuel multiplier for ASE.&lt;br /&gt;
&lt;br /&gt;
= Priming pulse =&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel pump prime on power on ====&lt;br /&gt;
This disables the fuel pump prime. &lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not fire the initial priming pulse of the injectors.&lt;br /&gt;
&lt;br /&gt;
==== Fuel pump prime delay after power ====&lt;br /&gt;
How long to delay fuel pump prime from ignition-on detection&lt;br /&gt;
&lt;br /&gt;
==== Injector Priming delay (after fuel pump delay) ====&lt;br /&gt;
Delay to allow fuel pressure to build before firing the priming pulse.&lt;br /&gt;
&lt;br /&gt;
==== Priming pulse fuel mass ====&lt;br /&gt;
This is the fuel mass in mg that will be injected on priming pulse.&lt;br /&gt;
&lt;br /&gt;
= Cranking Base Fuel (Engine Cycle vs CLT) =&lt;br /&gt;
This is the percentage of required fuel, 100% means inject fuel for stoichometric combustion. This is then modified by the multipliers for IAT, TPS ect, to give the final cranking pulse width.&lt;br /&gt;
A reasonable starting point is 70%.&lt;br /&gt;
&lt;br /&gt;
= CLT Cranking Fuel Multiplier (E0) =&lt;br /&gt;
This is the cranking fuel multiplier at zero ethanol content (also used when no flex fuel is used).&lt;br /&gt;
&lt;br /&gt;
= CLT Flex Cranking Fuel Multiplier (E85) =&lt;br /&gt;
This is the cranking fuel multiplier at 85% ethanol content (requires [[Flex Fuel]] sensor).&lt;br /&gt;
&lt;br /&gt;
= CLT Cranking ignition advance =&lt;br /&gt;
Optional timing advance table for cranking, see [[Config:Cranking#Timing Advance mode|Timing Advance mode.]]&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=319</id>
		<title>Config:Cranking</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Cranking&amp;diff=319"/>
		<updated>2026-02-12T22:16:29Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;= Cranking =  == Cranking settings ==  &amp;#039;&amp;#039;&amp;#039;Cranking RPM limit&amp;#039;&amp;#039;&amp;#039;  This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm.  set cranking_rpm X  === Fuel ===  &amp;#039;&amp;#039;&amp;#039;Injection mode&amp;#039;&amp;#039;&amp;#039;  This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use &amp;quot;Simultaneous&amp;quot;.  &amp;#039;&amp;#039;&amp;#039;Cranking fuel table&amp;#039;&amp;#039;&amp;#039;  For cranking either use the specified fixed base fuel mass, or us...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cranking =&lt;br /&gt;
&lt;br /&gt;
== Cranking settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cranking RPM limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. &lt;br /&gt;
set cranking_rpm X&lt;br /&gt;
&lt;br /&gt;
=== Fuel ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use &amp;quot;Simultaneous&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cranking fuel table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table).&lt;br /&gt;
&lt;br /&gt;
=== Ignition ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Timing Advance mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In Constant mode, timing is automatically tapered to running as RPM increases.&lt;br /&gt;
In Table mode, the &amp;quot;Cranking ignition advance&amp;quot; table is used directly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fixed cranking advance&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.&lt;br /&gt;
There is tapering towards running timing advance&lt;br /&gt;
set cranking_timing_angle X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fixed Cranking Dwell&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dwell duration while cranking&lt;br /&gt;
&lt;br /&gt;
=== Advanced ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flood clear&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Faster engine spin-up&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use Advance Corrections for cranking&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This enables the various ignition corrections during cranking (IAT, CLT and PID idle).&lt;br /&gt;
You probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Separate Flex Fuel cranking table&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor.&lt;br /&gt;
&lt;br /&gt;
== Cranking Air Amount vs CLT ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ETB idle maximum angle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.&lt;br /&gt;
&lt;br /&gt;
== After-start enrichment ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Priming pulse ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel pump prime on power on&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable injector prime pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel pump prime delay after power&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to delay fuel pump prime from ign on&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector Priming delay (after fuel pump delay)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay to allow fuel pressure to build before firing the priming pulse.&lt;br /&gt;
&lt;br /&gt;
== Cranking Base Fuel (Engine Cycle vs CLT) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== CLT Cranking Fuel Multiplier (E0) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== CLT Flex Cranking Fuel Multiplier (E85) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== CLT Cranking ignition advance ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=318</id>
		<title>Config:Ignition</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=318"/>
		<updated>2026-02-11T23:19:35Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ignition menu.jpg|thumb|Ignition menu]]&lt;br /&gt;
&lt;br /&gt;
= Ignition =&lt;br /&gt;
The Ignition menu is used to configure all aspects of ignition control, including [[Config:Ignition#Knock Control|Knock Control]].&lt;br /&gt;
&lt;br /&gt;
= Ignition advance =&lt;br /&gt;
This is the main ignition table, in degrees BTDC before any corrections. This defines the baseline ignition angle.&lt;br /&gt;
&lt;br /&gt;
= CLT timing correction =&lt;br /&gt;
This table defines the coolant temperature ignition correction. Used to prevent knock on very hot engines.&lt;br /&gt;
&lt;br /&gt;
= IAT timing correction =&lt;br /&gt;
This table defines the intake air temperature ignition correction. Use this table to prevent knock on bad intake setups or poor charge air cooling.&lt;br /&gt;
&lt;br /&gt;
= Dwell Table =&lt;br /&gt;
This table defines the dwell time for the ignition system, defined in miliseconds. This table is defined in the Y axis by the battery voltage, used to correct for poor spark during cranking by introducing more dwell time.&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware Angle Correction =&lt;br /&gt;
Compensates for trigger delay due to belt stretch, or other electro-mechanical issues. Also used to compensate for the ignition system delay.&lt;br /&gt;
{{Warning|This is correction in degrees by RPM. Beware that raising this value is directly added to the advance and this advances ignition timing!}}&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware =&lt;br /&gt;
&lt;br /&gt;
==== Spark ====&lt;br /&gt;
If ignition is enabled.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Single coil&#039;&#039;&#039; - Simple distributor&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Individual coils&#039;&#039;&#039; - One coil per cylinder (coil-on-plug or coil-near-plug). Requires sequential mode or [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wasted spark&#039;&#039;&#039; - Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder. Choose this if you have coil-on-plug or coil-near-plug but no camshaft sensor or you do not want to use [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]]. Enable [[Config:Ignition#Individually wired Wasted Spark|Individually wired Wasted Spark]] for such a setup.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Two distributors&#039;&#039;&#039; - A pair of distributors, found on some BMW, Porsche, Toyota and other engines.&lt;br /&gt;
&lt;br /&gt;
==== Dwell duty cycle limit ====&lt;br /&gt;
Clamp dwell duration to this % of time slot (100=do not clamp)&lt;br /&gt;
&lt;br /&gt;
Just like injectors, ignition coils have duty cycle, if duty cycle gets close to or exceeds 100%, ignition stops working&lt;br /&gt;
&lt;br /&gt;
==== Individually wired Wasted Spark ====&lt;br /&gt;
This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).&lt;br /&gt;
&lt;br /&gt;
==== Override ignition table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the ignition table.&lt;br /&gt;
{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Timing Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Dynamic&#039;&#039;&#039; - Ignition behaves normally using the ignition table and any corrections applied to it.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Static&#039;&#039;&#039; - Fixes the timing to the value set below.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
==== Fixed Timing ====&lt;br /&gt;
The fixed timing value when fixed timing is used.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
=== Ignition Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output Mode ====&lt;br /&gt;
See [[Hardware:ECU output mode selection|ECU output mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output x ====&lt;br /&gt;
This is the physical output pin for the ignition output.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable ignition outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition x  disable ====&lt;br /&gt;
This disables the specified ignition output. Used for testing/debugging.&lt;br /&gt;
&lt;br /&gt;
= Ignition Table Switch =&lt;br /&gt;
This is used for ignition table switching.&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Pin ====&lt;br /&gt;
This is the pin to toggle the table switch.&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Parameter ====&lt;br /&gt;
This changes the ignition table switch X axis parameter&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Y axis override ====&lt;br /&gt;
This changes the ignition switch table Y axis.{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch x ==&lt;br /&gt;
This is the ignition switch OR blend table as defined by [[Config:Ignition#Ignition Table Switch x Blend Mode|Ignition Table Switch x Blend Mode]]&lt;br /&gt;
&lt;br /&gt;
= Cylinder Ignition Trim =&lt;br /&gt;
This is individual cylinder ignition trim.&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl x (deg) ==&lt;br /&gt;
This table trims the ignition by the specified number of degrees in relation to load.&lt;br /&gt;
&lt;br /&gt;
== Switchable Ignition Adders ==&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x pin ====&lt;br /&gt;
This is the physical input pin that enables the ignition adder.&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x value ====&lt;br /&gt;
Random ignition adder x value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
= Knock Control =&lt;br /&gt;
This is the epicEFI software-defined knock control. The knock control on epicEFI is software-based, ie. the software does the raw sensor sampling, the digital filtering, [[wikipedia:Band-pass_filter|bandpassing]] and windowing (only listening to knock on specific crank angles).&lt;br /&gt;
&lt;br /&gt;
Special thanks to [https://github.com/mck1117 Matthew Kennedy] for implementing this feature and testing it on his engines (of which he destroyed a few in the process).&lt;br /&gt;
{{Warning|The Knock retard functionality is a tool to detect engine knock, but with wrong settings it can cause engine damages. Use with caution!}}&lt;br /&gt;
&lt;br /&gt;
==== Software Knock Sense Enable ====&lt;br /&gt;
Enable or disable knock control.&lt;br /&gt;
&lt;br /&gt;
==== Linear scale ====&lt;br /&gt;
Changes knock sensor values from logarithmic (dB) to a linear scale starting at 0.&lt;br /&gt;
&lt;br /&gt;
==== Linear scale gain ====&lt;br /&gt;
This defines the linear scale gain.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder Bore ====&lt;br /&gt;
Cylinder diameter in mm&lt;br /&gt;
&lt;br /&gt;
==== Estimated Knock Frequency ====&lt;br /&gt;
If you want to define the knock frequency manually, use this input field. If this field is non-zero, the [[Config:Ignition#Cylinder Bore|Cylinder Bore]]-based knock frequency calculation is ignored.&lt;br /&gt;
&lt;br /&gt;
==== Detection mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;First harmonic&#039;&#039;&#039; - The basic calculated or defined frequency&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Second harmonic&#039;&#039;&#039; - The first harmonic frequency, but doubled. This is possible because the pressure wave can fit two half-waves across the bore instead of one. It’s weaker than the first harmonic, but its much cleaner (less contaminated by valvetrain, piston slap, mechanical noise) and extremely useful at high RPM where the fundamental gets buried in engine noise.&lt;br /&gt;
&lt;br /&gt;
==== Detection Window Start ====&lt;br /&gt;
The windowed knock control start window in degrees BTDC.&lt;br /&gt;
&lt;br /&gt;
==== Sampling Duration ====&lt;br /&gt;
The angular duration of the knock window. Defined in crankshaft angle.&lt;br /&gt;
&lt;br /&gt;
==== Enable Knock Spectrogram ====&lt;br /&gt;
Available via TS Plugin see https://rusefi.com/s/knock&lt;br /&gt;
&lt;br /&gt;
==== Enable Knock Spectrogram Filter ====&lt;br /&gt;
This defines a filter for the spectrogram.&lt;br /&gt;
&lt;br /&gt;
==== Knock Spectrum Sensitivity ====&lt;br /&gt;
This defines the relative sensitivity of the knock spectrogram.&lt;br /&gt;
&lt;br /&gt;
=== Select the nearest sensor for each cylinder ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
This defines what cylinder is closes the the physical knock sensor.&lt;br /&gt;
&lt;br /&gt;
=== Response ===&lt;br /&gt;
&lt;br /&gt;
==== knockRetardAggression ====&lt;br /&gt;
Ignition timing to remove when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
==== knockRetardReapplyRate ====&lt;br /&gt;
After a knock event, reapply timing at this rate.&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrimAggression ====&lt;br /&gt;
Fuel to odd when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrimReapplyRate ====&lt;br /&gt;
After a knock event, reapply fuel at this rate.&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrim ====&lt;br /&gt;
Fuel trim when knock, max 30%&lt;br /&gt;
&lt;br /&gt;
==== knockSuppressMinTps ====&lt;br /&gt;
Below TPS value all knock suppression will be disabled.&lt;br /&gt;
&lt;br /&gt;
==== knockSuppressMinRpm ====&lt;br /&gt;
Below RPM value all knock suppression will be disabled&lt;br /&gt;
&lt;br /&gt;
== Knock threshold ==&lt;br /&gt;
&lt;br /&gt;
Knock sensor output knock detection threshold depending on current RPM. This is the threshold above which engine noise is considered as knock and [[Config:Ignition#Response|response]] starts to get applied.&lt;br /&gt;
&lt;br /&gt;
= Max knock retard =&lt;br /&gt;
This table defines the maximum allowed knock retard.&lt;br /&gt;
&lt;br /&gt;
= Per cylinder knock gains =&lt;br /&gt;
This table defines the per-cylinder knock gain (used when lots of cylinders share a single knock sensor).&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=317</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=317"/>
		<updated>2026-02-11T23:19:17Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Tuner Studio options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration of the epicEFI firmware is done via [https://www.tunerstudio.com/ TunerStudio] from EFIAnalytics. TunerStudio allows the user to edit the main controller configuration as well to change the various tables inside of the firmware.&lt;br /&gt;
&lt;br /&gt;
== Installing TunerStudio ==&lt;br /&gt;
Navigate to [https://www.tunerstudio.com/index.php/downloads the TunerStudio download page]and download the latest TunerStudio for your platform. TunerStudio supports auto-update, so the latest available version will be installed once the auto-updater is ran at first startup.&lt;br /&gt;
&lt;br /&gt;
== Tuner Studio options ==&lt;br /&gt;
To access the individual TunerStudio options, use the following links:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Setup]]&amp;lt;/big&amp;gt;&lt;br /&gt;
* [[Config:Fuel|&amp;lt;big&amp;gt;Fuel&amp;lt;/big&amp;gt;]]&lt;br /&gt;
* [[Config:Ignition|&amp;lt;big&amp;gt;Ignition&amp;lt;/big&amp;gt;]]&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=316</id>
		<title>Config:Ignition</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=316"/>
		<updated>2026-02-11T23:18:03Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Linear scale gain */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ignition menu.jpg|thumb|Ignition menu]]&lt;br /&gt;
&lt;br /&gt;
= Ignition =&lt;br /&gt;
The Ignition menu is used to configure all aspects of ignition control, including [[Knock Control]].&lt;br /&gt;
&lt;br /&gt;
= Ignition advance =&lt;br /&gt;
This is the main ignition table, in degrees BTDC before any corrections. This defines the baseline ignition angle.&lt;br /&gt;
&lt;br /&gt;
= CLT timing correction =&lt;br /&gt;
This table defines the coolant temperature ignition correction. Used to prevent knock on very hot engines.&lt;br /&gt;
&lt;br /&gt;
= IAT timing correction =&lt;br /&gt;
This table defines the intake air temperature ignition correction. Use this table to prevent knock on bad intake setups or poor charge air cooling.&lt;br /&gt;
&lt;br /&gt;
= Dwell Table =&lt;br /&gt;
This table defines the dwell time for the ignition system, defined in miliseconds. This table is defined in the Y axis by the battery voltage, used to correct for poor spark during cranking by introducing more dwell time.&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware Angle Correction =&lt;br /&gt;
Compensates for trigger delay due to belt stretch, or other electro-mechanical issues. Also used to compensate for the ignition system delay.&lt;br /&gt;
{{Warning|This is correction in degrees by RPM. Beware that raising this value is directly added to the advance and this advances ignition timing!}}&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware =&lt;br /&gt;
&lt;br /&gt;
==== Spark ====&lt;br /&gt;
If ignition is enabled.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Single coil&#039;&#039;&#039; - Simple distributor&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Individual coils&#039;&#039;&#039; - One coil per cylinder (coil-on-plug or coil-near-plug). Requires sequential mode or [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wasted spark&#039;&#039;&#039; - Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder. Choose this if you have coil-on-plug or coil-near-plug but no camshaft sensor or you do not want to use [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]]. Enable [[Config:Ignition#Individually wired Wasted Spark|Individually wired Wasted Spark]] for such a setup.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Two distributors&#039;&#039;&#039; - A pair of distributors, found on some BMW, Porsche, Toyota and other engines.&lt;br /&gt;
&lt;br /&gt;
==== Dwell duty cycle limit ====&lt;br /&gt;
Clamp dwell duration to this % of time slot (100=do not clamp)&lt;br /&gt;
&lt;br /&gt;
Just like injectors, ignition coils have duty cycle, if duty cycle gets close to or exceeds 100%, ignition stops working&lt;br /&gt;
&lt;br /&gt;
==== Individually wired Wasted Spark ====&lt;br /&gt;
This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).&lt;br /&gt;
&lt;br /&gt;
==== Override ignition table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the ignition table.&lt;br /&gt;
{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Timing Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Dynamic&#039;&#039;&#039; - Ignition behaves normally using the ignition table and any corrections applied to it.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Static&#039;&#039;&#039; - Fixes the timing to the value set below.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
==== Fixed Timing ====&lt;br /&gt;
The fixed timing value when fixed timing is used.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
=== Ignition Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output Mode ====&lt;br /&gt;
See [[Hardware:ECU output mode selection|ECU output mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output x ====&lt;br /&gt;
This is the physical output pin for the ignition output.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable ignition outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition x  disable ====&lt;br /&gt;
This disables the specified ignition output. Used for testing/debugging.&lt;br /&gt;
&lt;br /&gt;
= Ignition Table Switch =&lt;br /&gt;
This is used for ignition table switching.&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Pin ====&lt;br /&gt;
This is the pin to toggle the table switch.&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Parameter ====&lt;br /&gt;
This changes the ignition table switch X axis parameter&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Y axis override ====&lt;br /&gt;
This changes the ignition switch table Y axis.{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch x ==&lt;br /&gt;
This is the ignition switch OR blend table as defined by [[Config:Ignition#Ignition Table Switch x Blend Mode|Ignition Table Switch x Blend Mode]]&lt;br /&gt;
&lt;br /&gt;
= Cylinder Ignition Trim =&lt;br /&gt;
This is individual cylinder ignition trim.&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl x (deg) ==&lt;br /&gt;
This table trims the ignition by the specified number of degrees in relation to load.&lt;br /&gt;
&lt;br /&gt;
== Switchable Ignition Adders ==&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x pin ====&lt;br /&gt;
This is the physical input pin that enables the ignition adder.&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x value ====&lt;br /&gt;
Random ignition adder x value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
= Knock Control =&lt;br /&gt;
This is the epicEFI software-defined knock control. The knock control on epicEFI is software-based, ie. the software does the raw sensor sampling, the digital filtering, [[wikipedia:Band-pass_filter|bandpassing]] and windowing (only listening to knock on specific crank angles).&lt;br /&gt;
&lt;br /&gt;
Special thanks to [https://github.com/mck1117 Matthew Kennedy] for implementing this feature and testing it on his engines (of which he destroyed a few in the process).&lt;br /&gt;
{{Warning|The Knock retard functionality is a tool to detect engine knock, but with wrong settings it can cause engine damages. Use with caution!}}&lt;br /&gt;
&lt;br /&gt;
==== Software Knock Sense Enable ====&lt;br /&gt;
Enable or disable knock control.&lt;br /&gt;
&lt;br /&gt;
==== Linear scale ====&lt;br /&gt;
Changes knock sensor values from logarithmic (dB) to a linear scale starting at 0.&lt;br /&gt;
&lt;br /&gt;
==== Linear scale gain ====&lt;br /&gt;
This defines the linear scale gain.&lt;br /&gt;
&lt;br /&gt;
==== Cylinder Bore ====&lt;br /&gt;
Cylinder diameter in mm&lt;br /&gt;
&lt;br /&gt;
==== Estimated Knock Frequency ====&lt;br /&gt;
If you want to define the knock frequency manually, use this input field. If this field is non-zero, the [[Config:Ignition#Cylinder Bore|Cylinder Bore]]-based knock frequency calculation is ignored.&lt;br /&gt;
&lt;br /&gt;
==== Detection mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;First harmonic&#039;&#039;&#039; - The basic calculated or defined frequency&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Second harmonic&#039;&#039;&#039; - The first harmonic frequency, but doubled. This is possible because the pressure wave can fit two half-waves across the bore instead of one. It’s weaker than the first harmonic, but its much cleaner (less contaminated by valvetrain, piston slap, mechanical noise) and extremely useful at high RPM where the fundamental gets buried in engine noise.&lt;br /&gt;
&lt;br /&gt;
==== Detection Window Start ====&lt;br /&gt;
The windowed knock control start window in degrees BTDC.&lt;br /&gt;
&lt;br /&gt;
==== Sampling Duration ====&lt;br /&gt;
The angular duration of the knock window. Defined in crankshaft angle.&lt;br /&gt;
&lt;br /&gt;
==== Enable Knock Spectrogram ====&lt;br /&gt;
Available via TS Plugin see https://rusefi.com/s/knock&lt;br /&gt;
&lt;br /&gt;
==== Enable Knock Spectrogram Filter ====&lt;br /&gt;
This defines a filter for the spectrogram.&lt;br /&gt;
&lt;br /&gt;
==== Knock Spectrum Sensitivity ====&lt;br /&gt;
This defines the relative sensitivity of the knock spectrogram.&lt;br /&gt;
&lt;br /&gt;
=== Select the nearest sensor for each cylinder ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
This defines what cylinder is closes the the physical knock sensor.&lt;br /&gt;
&lt;br /&gt;
=== Response ===&lt;br /&gt;
&lt;br /&gt;
==== knockRetardAggression ====&lt;br /&gt;
Ignition timing to remove when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
==== knockRetardReapplyRate ====&lt;br /&gt;
After a knock event, reapply timing at this rate.&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrimAggression ====&lt;br /&gt;
Fuel to odd when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrimReapplyRate ====&lt;br /&gt;
After a knock event, reapply fuel at this rate.&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrim ====&lt;br /&gt;
Fuel trim when knock, max 30%&lt;br /&gt;
&lt;br /&gt;
==== knockSuppressMinTps ====&lt;br /&gt;
Below TPS value all knock suppression will be disabled.&lt;br /&gt;
&lt;br /&gt;
==== knockSuppressMinRpm ====&lt;br /&gt;
Below RPM value all knock suppression will be disabled&lt;br /&gt;
&lt;br /&gt;
== Knock threshold ==&lt;br /&gt;
&lt;br /&gt;
Knock sensor output knock detection threshold depending on current RPM. This is the threshold above which engine noise is considered as knock and [[Config:Ignition#Response|response]] starts to get applied.&lt;br /&gt;
&lt;br /&gt;
= Max knock retard =&lt;br /&gt;
This table defines the maximum allowed knock retard.&lt;br /&gt;
&lt;br /&gt;
= Per cylinder knock gains =&lt;br /&gt;
This table defines the per-cylinder knock gain (used when lots of cylinders share a single knock sensor).&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=315</id>
		<title>Config:Ignition</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=315"/>
		<updated>2026-02-11T23:16:38Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Ignition Table Switch 1 Settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ignition menu.jpg|thumb|Ignition menu]]&lt;br /&gt;
&lt;br /&gt;
= Ignition =&lt;br /&gt;
The Ignition menu is used to configure all aspects of ignition control, including [[Knock Control]].&lt;br /&gt;
&lt;br /&gt;
= Ignition advance =&lt;br /&gt;
This is the main ignition table, in degrees BTDC before any corrections. This defines the baseline ignition angle.&lt;br /&gt;
&lt;br /&gt;
= CLT timing correction =&lt;br /&gt;
This table defines the coolant temperature ignition correction. Used to prevent knock on very hot engines.&lt;br /&gt;
&lt;br /&gt;
= IAT timing correction =&lt;br /&gt;
This table defines the intake air temperature ignition correction. Use this table to prevent knock on bad intake setups or poor charge air cooling.&lt;br /&gt;
&lt;br /&gt;
= Dwell Table =&lt;br /&gt;
This table defines the dwell time for the ignition system, defined in miliseconds. This table is defined in the Y axis by the battery voltage, used to correct for poor spark during cranking by introducing more dwell time.&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware Angle Correction =&lt;br /&gt;
Compensates for trigger delay due to belt stretch, or other electro-mechanical issues. Also used to compensate for the ignition system delay.&lt;br /&gt;
{{Warning|This is correction in degrees by RPM. Beware that raising this value is directly added to the advance and this advances ignition timing!}}&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware =&lt;br /&gt;
&lt;br /&gt;
==== Spark ====&lt;br /&gt;
If ignition is enabled.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Single coil&#039;&#039;&#039; - Simple distributor&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Individual coils&#039;&#039;&#039; - One coil per cylinder (coil-on-plug or coil-near-plug). Requires sequential mode or [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wasted spark&#039;&#039;&#039; - Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder. Choose this if you have coil-on-plug or coil-near-plug but no camshaft sensor or you do not want to use [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]]. Enable [[Config:Ignition#Individually wired Wasted Spark|Individually wired Wasted Spark]] for such a setup.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Two distributors&#039;&#039;&#039; - A pair of distributors, found on some BMW, Porsche, Toyota and other engines.&lt;br /&gt;
&lt;br /&gt;
==== Dwell duty cycle limit ====&lt;br /&gt;
Clamp dwell duration to this % of time slot (100=do not clamp)&lt;br /&gt;
&lt;br /&gt;
Just like injectors, ignition coils have duty cycle, if duty cycle gets close to or exceeds 100%, ignition stops working&lt;br /&gt;
&lt;br /&gt;
==== Individually wired Wasted Spark ====&lt;br /&gt;
This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).&lt;br /&gt;
&lt;br /&gt;
==== Override ignition table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the ignition table.&lt;br /&gt;
{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Timing Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Dynamic&#039;&#039;&#039; - Ignition behaves normally using the ignition table and any corrections applied to it.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Static&#039;&#039;&#039; - Fixes the timing to the value set below.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
==== Fixed Timing ====&lt;br /&gt;
The fixed timing value when fixed timing is used.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
=== Ignition Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output Mode ====&lt;br /&gt;
See [[Hardware:ECU output mode selection|ECU output mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output x ====&lt;br /&gt;
This is the physical output pin for the ignition output.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable ignition outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition x  disable ====&lt;br /&gt;
This disables the specified ignition output. Used for testing/debugging.&lt;br /&gt;
&lt;br /&gt;
= Ignition Table Switch =&lt;br /&gt;
This is used for ignition table switching.&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Pin ====&lt;br /&gt;
This is the pin to toggle the table switch.&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Parameter ====&lt;br /&gt;
This changes the ignition table switch X axis parameter&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Ignition Table Switch x Y axis override ====&lt;br /&gt;
This changes the ignition switch table Y axis.{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch x ==&lt;br /&gt;
This is the ignition switch OR blend table as defined by [[Config:Ignition#Ignition Table Switch x Blend Mode|Ignition Table Switch x Blend Mode]]&lt;br /&gt;
&lt;br /&gt;
= Cylinder Ignition Trim =&lt;br /&gt;
This is individual cylinder ignition trim.&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl x (deg) ==&lt;br /&gt;
This table trims the ignition by the specified number of degrees in relation to load.&lt;br /&gt;
&lt;br /&gt;
== Switchable Ignition Adders ==&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x pin ====&lt;br /&gt;
This is the physical input pin that enables the ignition adder.&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition adder x value ====&lt;br /&gt;
Random ignition adder x value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
= Knock Control =&lt;br /&gt;
This is the epicEFI software-defined knock control. The knock control on epicEFI is software-based, ie. the software does the raw sensor sampling, the digital filtering, [[wikipedia:Band-pass_filter|bandpassing]] and windowing (only listening to knock on specific crank angles).&lt;br /&gt;
&lt;br /&gt;
Special thanks to [https://github.com/mck1117 Matthew Kennedy] for implementing this feature and testing it on his engines (of which he destroyed a few in the process).&lt;br /&gt;
{{Warning|The Knock retard functionality is a tool to detect engine knock, but with wrong settings it can cause engine damages. Use with caution!}}&lt;br /&gt;
&lt;br /&gt;
==== Software Knock Sense Enable ====&lt;br /&gt;
Enable or disable knock control.&lt;br /&gt;
&lt;br /&gt;
==== Linear scale ====&lt;br /&gt;
Changes knock sensor values from logarithmic (dB) to a linear scale starting at 0.&lt;br /&gt;
&lt;br /&gt;
==== Linear scale gain ====&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
==== Cylinder Bore ====&lt;br /&gt;
Cylinder diameter in mm&lt;br /&gt;
&lt;br /&gt;
==== Estimated Knock Frequency ====&lt;br /&gt;
If you want to define the knock frequency manually, use this input field. If this field is non-zero, the [[Config:Ignition#Cylinder Bore|Cylinder Bore]]-based knock frequency calculation is ignored.&lt;br /&gt;
&lt;br /&gt;
==== Detection mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;First harmonic&#039;&#039;&#039; - The basic calculated or defined frequency&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Second harmonic&#039;&#039;&#039; - The first harmonic frequency, but doubled. This is possible because the pressure wave can fit two half-waves across the bore instead of one. It’s weaker than the first harmonic, but its much cleaner (less contaminated by valvetrain, piston slap, mechanical noise) and extremely useful at high RPM where the fundamental gets buried in engine noise.&lt;br /&gt;
&lt;br /&gt;
==== Detection Window Start ====&lt;br /&gt;
The windowed knock control start window in degrees BTDC.&lt;br /&gt;
&lt;br /&gt;
==== Sampling Duration ====&lt;br /&gt;
The angular duration of the knock window. Defined in crankshaft angle.&lt;br /&gt;
&lt;br /&gt;
==== Enable Knock Spectrogram ====&lt;br /&gt;
Available via TS Plugin see https://rusefi.com/s/knock&lt;br /&gt;
&lt;br /&gt;
==== Enable Knock Spectrogram Filter ====&lt;br /&gt;
This defines a filter for the spectrogram.&lt;br /&gt;
&lt;br /&gt;
==== Knock Spectrum Sensitivity ====&lt;br /&gt;
This defines the relative sensitivity of the knock spectrogram.&lt;br /&gt;
&lt;br /&gt;
=== Select the nearest sensor for each cylinder ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
This defines what cylinder is closes the the physical knock sensor.&lt;br /&gt;
&lt;br /&gt;
=== Response ===&lt;br /&gt;
&lt;br /&gt;
==== knockRetardAggression ====&lt;br /&gt;
Ignition timing to remove when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
==== knockRetardReapplyRate ====&lt;br /&gt;
After a knock event, reapply timing at this rate.&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrimAggression ====&lt;br /&gt;
Fuel to odd when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrimReapplyRate ====&lt;br /&gt;
After a knock event, reapply fuel at this rate.&lt;br /&gt;
&lt;br /&gt;
==== knockFuelTrim ====&lt;br /&gt;
Fuel trim when knock, max 30%&lt;br /&gt;
&lt;br /&gt;
==== knockSuppressMinTps ====&lt;br /&gt;
Below TPS value all knock suppression will be disabled.&lt;br /&gt;
&lt;br /&gt;
==== knockSuppressMinRpm ====&lt;br /&gt;
Below RPM value all knock suppression will be disabled&lt;br /&gt;
&lt;br /&gt;
== Knock threshold ==&lt;br /&gt;
&lt;br /&gt;
Knock sensor output knock detection threshold depending on current RPM. This is the threshold above which engine noise is considered as knock and [[Config:Ignition#Response|response]] starts to get applied.&lt;br /&gt;
&lt;br /&gt;
= Max knock retard =&lt;br /&gt;
This table defines the maximum allowed knock retard.&lt;br /&gt;
&lt;br /&gt;
= Per cylinder knock gains =&lt;br /&gt;
This table defines the per-cylinder knock gain (used when lots of cylinders share a single knock sensor).&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=314</id>
		<title>Config:Ignition</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=314"/>
		<updated>2026-02-11T22:50:26Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Ignition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Ignition menu.jpg|thumb|Ignition menu]]&lt;br /&gt;
&lt;br /&gt;
= Ignition =&lt;br /&gt;
The Ignition menu is used to configure all aspects of ignition control, including [[Knock Control]].&lt;br /&gt;
&lt;br /&gt;
= Ignition advance =&lt;br /&gt;
This is the main ignition table, in degrees BTDC before any corrections. This defines the baseline ignition angle.&lt;br /&gt;
&lt;br /&gt;
= CLT timing correction =&lt;br /&gt;
This table defines the coolant temperature ignition correction. Used to prevent knock on very hot engines.&lt;br /&gt;
&lt;br /&gt;
= IAT timing correction =&lt;br /&gt;
This table defines the intake air temperature ignition correction. Use this table to prevent knock on bad intake setups or poor charge air cooling.&lt;br /&gt;
&lt;br /&gt;
= Dwell Table =&lt;br /&gt;
This table defines the dwell time for the ignition system, defined in miliseconds. This table is defined in the Y axis by the battery voltage, used to correct for poor spark during cranking by introducing more dwell time.&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware Angle Correction =&lt;br /&gt;
Compensates for trigger delay due to belt stretch, or other electro-mechanical issues. Also used to compensate for the ignition system delay.&lt;br /&gt;
{{Warning|This is correction in degrees by RPM. Beware that raising this value is directly added to the advance and this advances ignition timing!}}&lt;br /&gt;
&lt;br /&gt;
= Ignition Hardware =&lt;br /&gt;
&lt;br /&gt;
==== Spark ====&lt;br /&gt;
If ignition is enabled.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Single coil&#039;&#039;&#039; - Simple distributor&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Individual coils&#039;&#039;&#039; - One coil per cylinder (coil-on-plug or coil-near-plug). Requires sequential mode or [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]].&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Wasted spark&#039;&#039;&#039; - Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder. Choose this if you have coil-on-plug or coil-near-plug but no camshaft sensor or you do not want to use [[Config:Setup#Guess sync RPM threshold(rpm)|phase guessing]]. Enable [[Config:Ignition#Individually wired Wasted Spark|Individually wired Wasted Spark]] for such a setup.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Two distributors&#039;&#039;&#039; - A pair of distributors, found on some BMW, Porsche, Toyota and other engines.&lt;br /&gt;
&lt;br /&gt;
==== Dwell duty cycle limit ====&lt;br /&gt;
Clamp dwell duration to this % of time slot (100=do not clamp)&lt;br /&gt;
&lt;br /&gt;
Just like injectors, ignition coils have duty cycle, if duty cycle gets close to or exceeds 100%, ignition stops working&lt;br /&gt;
&lt;br /&gt;
==== Individually wired Wasted Spark ====&lt;br /&gt;
This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).&lt;br /&gt;
&lt;br /&gt;
==== Override ignition table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the ignition table.&lt;br /&gt;
{{Warning Mild|Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Timing Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Dynamic&#039;&#039;&#039; - Ignition behaves normally using the ignition table and any corrections applied to it.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Static&#039;&#039;&#039; - Fixes the timing to the value set below.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
==== Fixed Timing ====&lt;br /&gt;
The fixed timing value when fixed timing is used.&lt;br /&gt;
{{Warning Mild|Only used fixed timing to verify trigger configuration with a timing light, never during normal driving conditions.}}&lt;br /&gt;
&lt;br /&gt;
=== Ignition Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output Mode ====&lt;br /&gt;
See [[Hardware:ECU output mode selection|ECU output mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Ignition Output x ====&lt;br /&gt;
This is the physical output pin for the ignition output.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable ignition outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Ignition x  disable ====&lt;br /&gt;
This disables the specified ignition output. Used for testing/debugging.&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 1 (deg) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 2 (deg) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Switchable Ignition Adders ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 1 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 2 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 3 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 4 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
== Knock Control ==&lt;br /&gt;
&lt;br /&gt;
=== Sense ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software Knock Sense Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linear scale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Changes knock sensor values from logarithmic (dB) to a linear scale starting at 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linear scale gain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder Bore&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cylinder diameter in mm&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Estimated Knock Frequency&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Estimated knock frequency, ignore cylinderBore if this one &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Detection mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Second harmonic (aka double) is usually quieter background noise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Detection Window Start&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sampling Duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Knock Spectrogram&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Available via TS Plugin see https://rusefi.com/s/knock&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Knock Spectrogram Filter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Knock Spectrum Sensitivity&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Select the nearest sensor for each cylinder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Response ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockRetardAggression&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ignition timing to remove when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockRetardReapplyRate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a knock event, reapply timing at this rate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockFuelTrimAggression&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel to odd when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockFuelTrimReapplyRate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a knock event, reapply fuel at this rate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockFuelTrim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel trim when knock, max 30%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockSuppressMinTps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below TPS value all knock suppression will be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockSuppressMinRpm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below RPM value all knock suppression will be disabled&lt;br /&gt;
&lt;br /&gt;
== Knock threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Max knock retard ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Per cylinder knock gains ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=File:Ignition_menu.jpg&amp;diff=313</id>
		<title>File:Ignition menu.jpg</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=File:Ignition_menu.jpg&amp;diff=313"/>
		<updated>2026-02-11T22:21:24Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ignition menu&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=312</id>
		<title>Config:Ignition</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Ignition&amp;diff=312"/>
		<updated>2026-02-11T22:17:12Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;= Ignition =  == Ignition advance ==  == CLT timing correction ==  ~~PLACEHOLDER~~  == IAT timing correction ==  ~~PLACEHOLDER~~  == Dwell Table ==  ~~PLACEHOLDER~~  == Ignition Hardware Angle Correction ==  == Ignition Hardware ==  &amp;#039;&amp;#039;&amp;#039;Spark&amp;#039;&amp;#039;&amp;#039;  Ignition is enabled  &amp;#039;&amp;#039;&amp;#039;Mode&amp;#039;&amp;#039;&amp;#039;  Single coil = distributor Individual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode Wasted spark = Fires pairs of cylinders together, either one coil per pair of cyl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ignition =&lt;br /&gt;
&lt;br /&gt;
== Ignition advance ==&lt;br /&gt;
&lt;br /&gt;
== CLT timing correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== IAT timing correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Dwell Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Hardware Angle Correction ==&lt;br /&gt;
&lt;br /&gt;
== Ignition Hardware ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Spark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ignition is enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Single coil = distributor&lt;br /&gt;
Individual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode&lt;br /&gt;
Wasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder&lt;br /&gt;
Two distributors = A pair of distributors, found on some BMW, Toyota and other engines&lt;br /&gt;
set ignition_mode X&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dwell duty cycle limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Clamp dwell duration to this % of time slot (100=do not clamp)&lt;br /&gt;
Just like injectors, ignition coils have duty cycle, if duty cycle gets close to or exceeds 100%, ignition stops working&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Individually wired Wasted Spark&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override ignition table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the ignition table.&lt;br /&gt;
Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Timing Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dynamic uses the timing map to decide the ignition timing&lt;br /&gt;
Static timing fixes the timing to the value set below (only use for checking static timing with a timing light).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fixed Timing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed timing, useful for TDC testing&lt;br /&gt;
&lt;br /&gt;
=== Ignition Outputs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ignitionPins 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
=== Enable/Disable ignition outputs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 1  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 1&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 2  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 3  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 4  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 5  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 6  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 6&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 7  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 7&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition 8  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable ignition 8&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 1 (deg) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 2 (deg) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Ignition trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Switchable Ignition Adders ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 1 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 2 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 3 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition adder 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random ignition adder 4 value (-60 to 60 degrees)&lt;br /&gt;
&lt;br /&gt;
== Knock Control ==&lt;br /&gt;
&lt;br /&gt;
=== Sense ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Software Knock Sense Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linear scale&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Changes knock sensor values from logarithmic (dB) to a linear scale starting at 0.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linear scale gain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder Bore&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cylinder diameter in mm&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Estimated Knock Frequency&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Estimated knock frequency, ignore cylinderBore if this one &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Detection mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Second harmonic (aka double) is usually quieter background noise&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Detection Window Start&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sampling Duration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Knock Spectrogram&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Available via TS Plugin see https://rusefi.com/s/knock&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Knock Spectrogram Filter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Knock Spectrum Sensitivity&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Select the nearest sensor for each cylinder ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Response ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockRetardAggression&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ignition timing to remove when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockRetardReapplyRate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a knock event, reapply timing at this rate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockFuelTrimAggression&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel to odd when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockFuelTrimReapplyRate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a knock event, reapply fuel at this rate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockFuelTrim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel trim when knock, max 30%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockSuppressMinTps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below TPS value all knock suppression will be disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;knockSuppressMinRpm&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below RPM value all knock suppression will be disabled&lt;br /&gt;
&lt;br /&gt;
== Knock threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Max knock retard ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Per cylinder knock gains ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=311</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=311"/>
		<updated>2026-02-04T08:44:09Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration of the epicEFI firmware is done via [https://www.tunerstudio.com/ TunerStudio] from EFIAnalytics. TunerStudio allows the user to edit the main controller configuration as well to change the various tables inside of the firmware.&lt;br /&gt;
&lt;br /&gt;
== Installing TunerStudio ==&lt;br /&gt;
Navigate to [https://www.tunerstudio.com/index.php/downloads the TunerStudio download page]and download the latest TunerStudio for your platform. TunerStudio supports auto-update, so the latest available version will be installed once the auto-updater is ran at first startup.&lt;br /&gt;
&lt;br /&gt;
== Tuner Studio options ==&lt;br /&gt;
To access the individual TunerStudio options, use the following links:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Setup]]&amp;lt;/big&amp;gt;&lt;br /&gt;
** [[Setup#Vehicle Information|Vehicle Information]]&lt;br /&gt;
** [[Setup#Limits|Limits and protection]]&lt;br /&gt;
*** [[Setup#Limits and Fallbacks|Limits and Fallbacks]]&lt;br /&gt;
*** [[Setup#Low oil pressure protection|Low oil pressure protection]]&lt;br /&gt;
*** [[Setup#High oil pressure protection|High oil pressure protection]]&lt;br /&gt;
*** [[Setup#Lambda Protection|Lambda Protection]]&lt;br /&gt;
** [[Setup#Trigger|Trigger]]&lt;br /&gt;
** [[Setup#Custom Firing Order|Custom Firing Order]]&lt;br /&gt;
** [[Setup#Universal Cam|Universal Cam]]&lt;br /&gt;
** [[Setup#Universal Crank|Universal Crank]]&lt;br /&gt;
** [[Setup#Missfire detection|Missfire Detection]]&lt;br /&gt;
** [[Setup#Odd Fire Cylinder Offsets|Odd Fire Cylinder Offsets]]&lt;br /&gt;
** [[Setup#SD Card|SD Card]]&lt;br /&gt;
** [[Setup#Outputs|Outputs]]&lt;br /&gt;
** [[Setup#Fan x PWM curve|Fan x PWM curve]]&lt;br /&gt;
** [[Setup#Water Pump x PWM curve|Water Pump x PWM curve]]&lt;br /&gt;
** [[Setup#Tach Correction Curve|Tach Correction Curve]]&lt;br /&gt;
** [[Setup#Speedo Correction Curve|Speedo Correction Curve]]&lt;br /&gt;
** [[Setup#Air Conditioning|Air Conditioning]]&lt;br /&gt;
** [[Setup#Programmable Ports|Programmable Ports]]&lt;br /&gt;
** [[Setup#Check Engine Light (CEL)|Check Engine Light (CEL)]]&lt;br /&gt;
* [[Config:Fuel|&amp;lt;big&amp;gt;Fuel&amp;lt;/big&amp;gt;]]&lt;br /&gt;
** [[Config:Fuel#VE Table|VE Table]]&lt;br /&gt;
** [[Config:Fuel#Injector setup|Injector setup]]&lt;br /&gt;
*** [[Config:Fuel#Injection configuration|Injection configuration]]&lt;br /&gt;
*** [[Config:Fuel#Injection hardware|Injection hardware]]&lt;br /&gt;
*** [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
*** [[Config:Fuel#Injector Timing Advance|Injector Timing Advance]]&lt;br /&gt;
*** [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
*** [[Config:Fuel#Primary Injector Small Pulsewth vs BatV multiplier|Primary Injector Small Pulsewth vs BatV multiplier]]&lt;br /&gt;
*** [[Config:Fuel#Injector deadtime assisted tuning|Injector deadtime assisted tuning]]&lt;br /&gt;
*** [[Config:Fuel#Injector Advance Assisted Tuning|Injector Advance Assisted Tuning]]&lt;br /&gt;
*** [[Config:Fuel#Fuel trim cyl x|Fuel trim cyl x]]&lt;br /&gt;
** [[Config:Fuel#Staged injection|Staged injection]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector Settings|Staged Injector Settings]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector Deadtimes|Staged Injector Deadtimes]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector outputs|Staged Injector outputs]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector% table|Staged Injector % table]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector Small Pulsewidth Table|Staged Injector Small Pulsewidth Table]]&lt;br /&gt;
** [[Config:Fuel#Target AFR|Target AFR]]&lt;br /&gt;
** [[Config:Fuel#Target AFR warmup enrichment (CLT)|Target AFR warmup enrichment (CLT)]]&lt;br /&gt;
** [[Config:Fuel#Manual warmup enrichment (CLT)|Manual warmup enrichment (CLT)]]&lt;br /&gt;
** [[Config:Fuel#Intake air temp correction (IAT)|Intake air temp correction (IAT)]]&lt;br /&gt;
** [[Config:Fuel#Deceleration fuel cutoff (DFCO)|Deceleration fuel cutoff (DFCO)]]&lt;br /&gt;
** [[Config:Fuel#DFCO MAP to RPM threshold|DFCO MAP to RPM threshold]]&lt;br /&gt;
** [[Config:Fuel#Long Term Fuel Trim|Long Term Fuel Trim]]&lt;br /&gt;
*** [[Config:Fuel#Long term fuel trims|Long term fuel trims]]&lt;br /&gt;
*** [[Config:Fuel#Long Term Fuel Trim Bank 1 - BACKUP|Long Term Fuel Trim Bank 1 - BACKUP]]&lt;br /&gt;
*** [[Config:Fuel#Long Term Fuel Trim Bank 2 - BACKUP|Long Term Fuel Trim Bank 2 - BACKUP]]&lt;br /&gt;
** [[Config:Fuel#Short Term Fuel Trim|Short Term Fuel Trim]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Setup|Short term fuel trim Setup]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Time Constant (I)|Short term fuel trim Time Constant (I)]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Add Authority (+)|Short term fuel trim Add Authority (+)]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Remove Authority (-)|Short term fuel trim Remove Authority (-)]]&lt;br /&gt;
** [[Config:Fuel#VE Table Switch|VE Table Switch]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 1 Settings|VE Table Switch 1 Settings]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 1|VE Table Switch 1]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 2 Settings|VE Table Switch 2 Settings]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 2|VE Table Switch 2]]&lt;br /&gt;
** [[Config:Fuel#Target AFR Table Switch|Target AFR Table Switch]]&lt;br /&gt;
*** [[Config:Fuel#Target AFR Table Switch 1 Settings|Target AFR Table Switch 1 Settings]]&lt;br /&gt;
*** [[Config:Fuel#Target AFR Table Switch 1|Target AFR Table Switch 1]]&lt;br /&gt;
** [[Config:Fuel#Fuel Corrections|Fuel Corrections]]&lt;br /&gt;
*** [[Config:Fuel#Barometric pressure correction|Barometric pressure correction]]&lt;br /&gt;
*** [[Config:Fuel#Charge temperature estimation|Charge temperature estimation]]&lt;br /&gt;
**[[Config:Fuel#User Switchable Lambda Target Multipliers|User Switchable Lambda Target Multipliers]]&lt;br /&gt;
**[[Config:Fuel#TPS Acceleration Enrichment/Wall Wetting AE|TPS Acceleration Enrichment/Wall Wetting AE]]    &lt;br /&gt;
***[[Config:Fuel#Acceleration enrichment Base settings(AE)|Acceleration enrichment Base settings(AE)]]   &lt;br /&gt;
***[[Config:Fuel#TPS AE: Settings|TPS AE: Settings]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: Fuel multiplier by engine cycle|TPS AE: Fuel multiplier by engine cycle]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: Delta TPS Average Multiplier for Dynamic Threshold|TPS AE: Delta TPS Average Multiplier for Dynamic Threshold]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: TPS change threshold by RPM|TPS AE: TPS change threshold by RPM]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: TPS vs CLT AE SCALE|TPS AE: TPS vs CLT AE SCALE]]&lt;br /&gt;
***[[Config:Fuel#Predictive Map Blend Duration|Predictive Map Blend Duration]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: RPM correction|TPS AE: RPM correction]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: CLT correction|TPS AE: CLT correction]]&lt;br /&gt;
***[[Config:Fuel#MAP estimate table|MAP estimate table]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs RPM|TPS AE instant pulse multiplier vs RPM]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs TPS|TPS AE instant pulse multiplier vs TPS]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs MAP|TPS AE instant pulse multiplier vs MAP]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs CLT|TPS AE instant pulse multiplier vs CLT]]&lt;br /&gt;
***[[Config:Fuel#Evap from wall time|Evap from wall time]]&lt;br /&gt;
***[[Config:Fuel#Stick to wall fraction|Stick to wall fraction]]&lt;br /&gt;
***[[Config:Fuel#Evap from wall table|Evap from wall table]]&lt;br /&gt;
***[[Config:Fuel#Stick to wall table|Stick to wall table]]&lt;br /&gt;
**[[Config:Fuel#Throttle Model Flow|Throttle Model Flow]]&lt;br /&gt;
***[[Config:Fuel#Throttle effective % area (TPS -%3E% throttle boy area)|Throttle effective % area (TPS -&amp;gt; % tb1 area)]]&lt;br /&gt;
***[[Config:Fuel#Throttle Model Flow Discharge Coefficient|Throttle Model Flow Discharge Coefficient]]&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=310</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=310"/>
		<updated>2026-02-02T08:27:18Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration of the epicEFI firmware is done via [https://www.tunerstudio.com/ TunerStudio] from EFIAnalytics. TunerStudio allows the user to edit the main controller configuration as well to change the various tables inside of the firmware.&lt;br /&gt;
&lt;br /&gt;
== Installing TunerStudio ==&lt;br /&gt;
Navigate to [https://www.tunerstudio.com/index.php/downloads the TunerStudio download page]and download the latest TunerStudio for your platform. TunerStudio supports auto-update, so the latest available version will be installed once the auto-updater is ran at first startup.&lt;br /&gt;
&lt;br /&gt;
== Tuner Studio options ==&lt;br /&gt;
To access the individual TunerStudio options, use the following links:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Setup]]&amp;lt;/big&amp;gt;&lt;br /&gt;
** [[Setup#Vehicle Information|Vehicle Information]]&lt;br /&gt;
** [[Setup#Limits|Limits and protection]]&lt;br /&gt;
*** [[Setup#Limits and Fallbacks|Limits and Fallbacks]]&lt;br /&gt;
*** [[Setup#Low oil pressure protection|Low oil pressure protection]]&lt;br /&gt;
*** [[Setup#High oil pressure protection|High oil pressure protection]]&lt;br /&gt;
*** [[Setup#Lambda Protection|Lambda Protection]]&lt;br /&gt;
** [[Setup#Trigger|Trigger]]&lt;br /&gt;
** [[Setup#Custom Firing Order|Custom Firing Order]]&lt;br /&gt;
** [[Setup#Universal Cam|Universal Cam]]&lt;br /&gt;
** [[Setup#Universal Crank|Universal Crank]]&lt;br /&gt;
** [[Setup#Missfire detection|Missfire Detection]]&lt;br /&gt;
** [[Setup#Odd Fire Cylinder Offsets|Odd Fire Cylinder Offsets]]&lt;br /&gt;
** [[Setup#SD Card|SD Card]]&lt;br /&gt;
** [[Setup#Outputs|Outputs]]&lt;br /&gt;
** [[Setup#Fan x PWM curve|Fan x PWM curve]]&lt;br /&gt;
** [[Setup#Water Pump x PWM curve|Water Pump x PWM curve]]&lt;br /&gt;
** [[Setup#Tach Correction Curve|Tach Correction Curve]]&lt;br /&gt;
** [[Setup#Speedo Correction Curve|Speedo Correction Curve]]&lt;br /&gt;
** [[Setup#Air Conditioning|Air Conditioning]]&lt;br /&gt;
** [[Setup#Programmable Ports|Programmable Ports]]&lt;br /&gt;
** [[Setup#Check Engine Light (CEL)|Check Engine Light (CEL)]]&lt;br /&gt;
* [[Config:Fuel|Fuel]]&lt;br /&gt;
** [[Config:Fuel#VE Table|VE Table]]&lt;br /&gt;
** [[Config:Fuel#Injector setup|Injector setup]]&lt;br /&gt;
*** [[Config:Fuel#Injection configuration|Injection configuration]]&lt;br /&gt;
*** [[Config:Fuel#Injection hardware|Injection hardware]]&lt;br /&gt;
*** [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
*** [[Config:Fuel#Injector Timing Advance|Injector Timing Advance]]&lt;br /&gt;
*** [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
*** [[Config:Fuel#Primary Injector Small Pulsewth vs BatV multiplier|Primary Injector Small Pulsewth vs BatV multiplier]]&lt;br /&gt;
*** [[Config:Fuel#Injector deadtime assisted tuning|Injector deadtime assisted tuning]]&lt;br /&gt;
*** [[Config:Fuel#Injector Advance Assisted Tuning|Injector Advance Assisted Tuning]]&lt;br /&gt;
*** [[Config:Fuel#Fuel trim cyl x|Fuel trim cyl x]]&lt;br /&gt;
** [[Config:Fuel#Staged injection|Staged injection]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector Settings|Staged Injector Settings]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector Deadtimes|Staged Injector Deadtimes]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector outputs|Staged Injector outputs]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector% table|Staged Injector % table]]&lt;br /&gt;
*** [[Config:Fuel#Staged Injector Small Pulsewidth Table|Staged Injector Small Pulsewidth Table]]&lt;br /&gt;
** [[Config:Fuel#Target AFR|Target AFR]]&lt;br /&gt;
** [[Config:Fuel#Target AFR warmup enrichment (CLT)|Target AFR warmup enrichment (CLT)]]&lt;br /&gt;
** [[Config:Fuel#Manual warmup enrichment (CLT)|Manual warmup enrichment (CLT)]]&lt;br /&gt;
** [[Config:Fuel#Intake air temp correction (IAT)|Intake air temp correction (IAT)]]&lt;br /&gt;
** [[Config:Fuel#Deceleration fuel cutoff (DFCO)|Deceleration fuel cutoff (DFCO)]]&lt;br /&gt;
** [[Config:Fuel#DFCO MAP to RPM threshold|DFCO MAP to RPM threshold]]&lt;br /&gt;
** [[Config:Fuel#Long Term Fuel Trim|Long Term Fuel Trim]]&lt;br /&gt;
*** [[Config:Fuel#Long term fuel trims|Long term fuel trims]]&lt;br /&gt;
*** [[Config:Fuel#Long Term Fuel Trim Bank 1 - BACKUP|Long Term Fuel Trim Bank 1 - BACKUP]]&lt;br /&gt;
*** [[Config:Fuel#Long Term Fuel Trim Bank 2 - BACKUP|Long Term Fuel Trim Bank 2 - BACKUP]]&lt;br /&gt;
** [[Config:Fuel#Short Term Fuel Trim|Short Term Fuel Trim]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Setup|Short term fuel trim Setup]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Time Constant (I)|Short term fuel trim Time Constant (I)]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Add Authority (+)|Short term fuel trim Add Authority (+)]]&lt;br /&gt;
*** [[Config:Fuel#Short term fuel trim Remove Authority (-)|Short term fuel trim Remove Authority (-)]]&lt;br /&gt;
** [[Config:Fuel#VE Table Switch|VE Table Switch]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 1 Settings|VE Table Switch 1 Settings]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 1|VE Table Switch 1]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 2 Settings|VE Table Switch 2 Settings]]&lt;br /&gt;
*** [[Config:Fuel#VE Table Switch 2|VE Table Switch 2]]&lt;br /&gt;
** [[Config:Fuel#Target AFR Table Switch|Target AFR Table Switch]]&lt;br /&gt;
*** [[Config:Fuel#Target AFR Table Switch 1 Settings|Target AFR Table Switch 1 Settings]]&lt;br /&gt;
*** [[Config:Fuel#Target AFR Table Switch 1|Target AFR Table Switch 1]]&lt;br /&gt;
** [[Config:Fuel#Fuel Corrections|Fuel Corrections]]&lt;br /&gt;
*** [[Config:Fuel#Barometric pressure correction|Barometric pressure correction]]&lt;br /&gt;
*** [[Config:Fuel#Charge temperature estimation|Charge temperature estimation]]&lt;br /&gt;
**[[Config:Fuel#User Switchable Lambda Target Multipliers|User Switchable Lambda Target Multipliers]]&lt;br /&gt;
**[[Config:Fuel#TPS Acceleration Enrichment/Wall Wetting AE|TPS Acceleration Enrichment/Wall Wetting AE]]    &lt;br /&gt;
***[[Config:Fuel#Acceleration enrichment Base settings(AE)|Acceleration enrichment Base settings(AE)]]   &lt;br /&gt;
***[[Config:Fuel#TPS AE: Settings|TPS AE: Settings]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: Fuel multiplier by engine cycle|TPS AE: Fuel multiplier by engine cycle]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: Delta TPS Average Multiplier for Dynamic Threshold|TPS AE: Delta TPS Average Multiplier for Dynamic Threshold]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: TPS change threshold by RPM|TPS AE: TPS change threshold by RPM]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: TPS vs CLT AE SCALE|TPS AE: TPS vs CLT AE SCALE]]&lt;br /&gt;
***[[Config:Fuel#Predictive Map Blend Duration|Predictive Map Blend Duration]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: RPM correction|TPS AE: RPM correction]]&lt;br /&gt;
***[[Config:Fuel#TPS AE: CLT correction|TPS AE: CLT correction]]&lt;br /&gt;
***[[Config:Fuel#MAP estimate table|MAP estimate table]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs RPM|TPS AE instant pulse multiplier vs RPM]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs TPS|TPS AE instant pulse multiplier vs TPS]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs MAP|TPS AE instant pulse multiplier vs MAP]]&lt;br /&gt;
***[[Config:Fuel#TPS AE instant pulse multiplier vs CLT|TPS AE instant pulse multiplier vs CLT]]&lt;br /&gt;
***[[Config:Fuel#Evap from wall time|Evap from wall time]]&lt;br /&gt;
***[[Config:Fuel#Stick to wall fraction|Stick to wall fraction]]&lt;br /&gt;
***[[Config:Fuel#Evap from wall table|Evap from wall table]]&lt;br /&gt;
***[[Config:Fuel#Stick to wall table|Stick to wall table]]&lt;br /&gt;
**[[Config:Fuel#Throttle Model Flow|Throttle Model Flow]]&lt;br /&gt;
***[[Config:Fuel#Throttle effective % area (TPS -%3E% throttle boy area)|Throttle effective % area (TPS -&amp;gt; % tb1 area)]]&lt;br /&gt;
***[[Config:Fuel#Throttle Model Flow Discharge Coefficient|Throttle Model Flow Discharge Coefficient]]&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=309</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=309"/>
		<updated>2026-02-02T08:18:43Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Inhibit closed loop fuel after cut */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
Dtaged injector % table is how much of the staged injector to be used at RPM vs load. 0% means here all primary, and 100% all secondary fuel injectors.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== Use DFCO exit enrichment ====&lt;br /&gt;
When exiting DCFO and all the fuel film from the intake runners has evaporated, there is a lean condition on the first few combustion events when resuming normal injection. This attempts to fix that by injecting extra fuel on DCFO exit.&lt;br /&gt;
&lt;br /&gt;
==== DFCO exit enrichment max RPM ====&lt;br /&gt;
This is the maximum RPM for DCFO exit enrichment.&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
For example, if you want the system to only add fuel in boost and never remove it, you can set the &#039;&#039;&#039;Remove Map&#039;&#039;&#039; to 0 above 100 kPa and above, say, 2000 RPM.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
If you want the fuel trim to reset immediately on lift-off (when vacuum drops very low and the engine rides the bottom row of the map), you can set the authority to 0 in that area.&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
This is the barometric pressure correction in regards with a baro sensor.&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
This is the charge air estimation used to approximate the cylinder air/fuel charge temperature based on CLT and IAT.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RPM+TPS&#039;&#039;&#039; - Use RPM and TPS for air charge estimation&lt;br /&gt;
* &#039;&#039;&#039;Air Mass Interpolation&#039;&#039;&#039; - Use the air mass interpolation method for charge air estimation&lt;br /&gt;
* &#039;&#039;&#039;Table&#039;&#039;&#039; - Use the table for charge temperature estimation&lt;br /&gt;
&lt;br /&gt;
==== Increase rate limit ====&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
==== Decrease rate limit ====&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/Low TPS ====&lt;br /&gt;
The low RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/High TPS ====&lt;br /&gt;
The low RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/Low TPS ====&lt;br /&gt;
The high RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/High TPS ====&lt;br /&gt;
The high RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
&lt;br /&gt;
* 0 means the air charge is fully heated to the same temperature as the coolant temperature&lt;br /&gt;
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== High flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== Max air flow ====&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
This affects the AFR target output, this is a multiplier, and the value stacks with the multipliers.&lt;br /&gt;
&lt;br /&gt;
0.9 = MORE fuel (lower lambda)&lt;br /&gt;
&lt;br /&gt;
1.1 = LESS fuel (higher lambda)&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin ====&lt;br /&gt;
This is the physical input pin for the lambda multiplier.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x value ====&lt;br /&gt;
This is the multiplier value for the lambda target.&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
This is the acceleration enrichment (AE) setting. They can be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Delta-TPS based&#039;&#039;&#039; - The TPS delta (TPS speed) is used for acceleration enrichment (simpler)&lt;br /&gt;
* &#039;&#039;&#039;Wall Wetting&#039;&#039;&#039; - Complex wall-wetting algorithm based on fuel evaporation time&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Enable wall wetting Acceleration Enrichment ====&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Use MAP estimate during transient ====&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
==== Wall fueling model type ====&lt;br /&gt;
Specifies the wall-wetting mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Basic&#039;&#039;&#039; - Constants are used to vary tau/beta&lt;br /&gt;
* &#039;&#039;&#039;Advanced&#039;&#039;&#039; - Tables are used to vary tau/beta&lt;br /&gt;
&lt;br /&gt;
==== evaporation time constant / tau ====&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
==== added to wall coef / beta ====&lt;br /&gt;
&lt;br /&gt;
* 0 = No fuel settling on port walls &lt;br /&gt;
* 1 = All the fuel settling on port walls &lt;br /&gt;
&lt;br /&gt;
Setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== TPS AE fast or slow callback ====&lt;br /&gt;
This is how fast the AE callback is invoked (how fast the AE is calculated)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - 200Hz&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - 20Hz&lt;br /&gt;
&lt;br /&gt;
==== Delta TPS Average Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&lt;br /&gt;
1 means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
==== Use calculated threshold from averaged delta TPS ====&lt;br /&gt;
Use calcualted threshold from averaged delta TPS&lt;br /&gt;
&lt;br /&gt;
==== Average static threshold curve and dynamic threshold ====&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
==== Sample Length ====&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse ====&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Multiplier (global) ====&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Inhibit Cycles ====&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
==== TPS AE Burn Skip count ====&lt;br /&gt;
Hitting  &amp;quot;Burn&amp;quot; sometimes causes a spike in sensors, TPS AE burn skip count ignores AE triggers for the duration of that.&lt;br /&gt;
&lt;br /&gt;
==== TPS Accel resets EGO to 0% ====&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after accel ====&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
This is a TPS acceleration enrichment multiplier based on engine cycle&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
Delta TPS average multiplier curve&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
Above this curve, the engine is considered to be in acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
This is the acceleration enrichment scale based on CLT&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
This is the duration for the [[Config:Fuel#MAP estimate table|MAP estimation]].&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
This is the RPM correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
This is the CLT correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
This table represents MAP at a given TPS vs RPM, which we use if our MAP sensor has failed, or if we are using MAP Prediciton. This table should be a direct representation of MAP, you can tune it manually by disconnecting MAP sensor, and filling out the table with values that match an external gauge that shows MAP. Additionally, you can also use MLV to get the map values and/or generate the table for you.&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
This is the RPM multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
This is the TPS multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
This is the MAP multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
This is the CLT multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
This is the base evaporation time of the fuel based on coolant temperature (Tau)&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
This is the base impact fraction basaed on coolant temperature (Beta)&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
This is the Tau table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
This is the Beta table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
Uses &amp;quot;flow through an orifice&amp;quot; set of [[wikipedia:Bernoulli&#039;s_principle|Bernouli&#039;s equations]] to attempt to calculate air mass. &lt;br /&gt;
{{Warning Mild|This is experimental/for educational purposes only.}}&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt;% throttle boy area) ==&lt;br /&gt;
&lt;br /&gt;
This is the transfer function between TPS percentage and the throttle body area percentage.&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
This is the discharge coefficient.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=308</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=308"/>
		<updated>2026-02-01T19:53:17Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Predictive Map Blend Duration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
Dtaged injector % table is how much of the staged injector to be used at RPM vs load. 0% means here all primary, and 100% all secondary fuel injectors.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
For example, if you want the system to only add fuel in boost and never remove it, you can set the &#039;&#039;&#039;Remove Map&#039;&#039;&#039; to 0 above 100 kPa and above, say, 2000 RPM.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
If you want the fuel trim to reset immediately on lift-off (when vacuum drops very low and the engine rides the bottom row of the map), you can set the authority to 0 in that area.&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
This is the barometric pressure correction in regards with a baro sensor.&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
This is the charge air estimation used to approximate the cylinder air/fuel charge temperature based on CLT and IAT.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RPM+TPS&#039;&#039;&#039; - Use RPM and TPS for air charge estimation&lt;br /&gt;
* &#039;&#039;&#039;Air Mass Interpolation&#039;&#039;&#039; - Use the air mass interpolation method for charge air estimation&lt;br /&gt;
* &#039;&#039;&#039;Table&#039;&#039;&#039; - Use the table for charge temperature estimation&lt;br /&gt;
&lt;br /&gt;
==== Increase rate limit ====&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
==== Decrease rate limit ====&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/Low TPS ====&lt;br /&gt;
The low RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/High TPS ====&lt;br /&gt;
The low RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/Low TPS ====&lt;br /&gt;
The high RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/High TPS ====&lt;br /&gt;
The high RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
&lt;br /&gt;
* 0 means the air charge is fully heated to the same temperature as the coolant temperature&lt;br /&gt;
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== High flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== Max air flow ====&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
This affects the AFR target output, this is a multiplier, and the value stacks with the multipliers.&lt;br /&gt;
&lt;br /&gt;
0.9 = MORE fuel (lower lambda)&lt;br /&gt;
&lt;br /&gt;
1.1 = LESS fuel (higher lambda)&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin ====&lt;br /&gt;
This is the physical input pin for the lambda multiplier.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x value ====&lt;br /&gt;
This is the multiplier value for the lambda target.&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
This is the acceleration enrichment (AE) setting. They can be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Delta-TPS based&#039;&#039;&#039; - The TPS delta (TPS speed) is used for acceleration enrichment (simpler)&lt;br /&gt;
* &#039;&#039;&#039;Wall Wetting&#039;&#039;&#039; - Complex wall-wetting algorithm based on fuel evaporation time&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Enable wall wetting Acceleration Enrichment ====&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Use MAP estimate during transient ====&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
==== Wall fueling model type ====&lt;br /&gt;
Specifies the wall-wetting mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Basic&#039;&#039;&#039; - Constants are used to vary tau/beta&lt;br /&gt;
* &#039;&#039;&#039;Advanced&#039;&#039;&#039; - Tables are used to vary tau/beta&lt;br /&gt;
&lt;br /&gt;
==== evaporation time constant / tau ====&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
==== added to wall coef / beta ====&lt;br /&gt;
&lt;br /&gt;
* 0 = No fuel settling on port walls &lt;br /&gt;
* 1 = All the fuel settling on port walls &lt;br /&gt;
&lt;br /&gt;
Setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== TPS AE fast or slow callback ====&lt;br /&gt;
This is how fast the AE callback is invoked (how fast the AE is calculated)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - 200Hz&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - 20Hz&lt;br /&gt;
&lt;br /&gt;
==== Delta TPS Average Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&lt;br /&gt;
1 means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
==== Use calculated threshold from averaged delta TPS ====&lt;br /&gt;
Use calcualted threshold from averaged delta TPS&lt;br /&gt;
&lt;br /&gt;
==== Average static threshold curve and dynamic threshold ====&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
==== Sample Length ====&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse ====&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Multiplier (global) ====&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Inhibit Cycles ====&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
==== TPS AE Burn Skip count ====&lt;br /&gt;
Hitting  &amp;quot;Burn&amp;quot; sometimes causes a spike in sensors, TPS AE burn skip count ignores AE triggers for the duration of that.&lt;br /&gt;
&lt;br /&gt;
==== TPS Accel resets EGO to 0% ====&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after accel ====&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
This is a TPS acceleration enrichment multiplier based on engine cycle&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
Delta TPS average multiplier curve&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
Above this curve, the engine is considered to be in acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
This is the acceleration enrichment scale based on CLT&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
This is the duration for the [[Config:Fuel#MAP estimate table|MAP estimation]].&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
This is the RPM correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
This is the CLT correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
This table represents MAP at a given TPS vs RPM, which we use if our MAP sensor has failed, or if we are using MAP Prediciton. This table should be a direct representation of MAP, you can tune it manually by disconnecting MAP sensor, and filling out the table with values that match an external gauge that shows MAP. Additionally, you can also use MLV to get the map values and/or generate the table for you.&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
This is the RPM multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
This is the TPS multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
This is the MAP multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
This is the CLT multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
This is the base evaporation time of the fuel based on coolant temperature (Tau)&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
This is the base impact fraction basaed on coolant temperature (Beta)&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
This is the Tau table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
This is the Beta table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
Uses &amp;quot;flow through an orifice&amp;quot; set of [[wikipedia:Bernoulli&#039;s_principle|Bernouli&#039;s equations]] to attempt to calculate air mass. &lt;br /&gt;
{{Warning Mild|This is experimental/for educational purposes only.}}&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt;% throttle boy area) ==&lt;br /&gt;
&lt;br /&gt;
This is the transfer function between TPS percentage and the throttle body area percentage.&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
This is the discharge coefficient.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=307</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=307"/>
		<updated>2026-02-01T19:52:05Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* TPS AE instant pulse multiplier vs RPM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
Dtaged injector % table is how much of the staged injector to be used at RPM vs load. 0% means here all primary, and 100% all secondary fuel injectors.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
For example, if you want the system to only add fuel in boost and never remove it, you can set the &#039;&#039;&#039;Remove Map&#039;&#039;&#039; to 0 above 100 kPa and above, say, 2000 RPM.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
Define how much fuel the short-term trim system is allowed to add at a given RPM vs. load (MAP/AFR) point.&lt;br /&gt;
&lt;br /&gt;
If you want the fuel trim to reset immediately on lift-off (when vacuum drops very low and the engine rides the bottom row of the map), you can set the authority to 0 in that area.&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
This is the barometric pressure correction in regards with a baro sensor.&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
This is the charge air estimation used to approximate the cylinder air/fuel charge temperature based on CLT and IAT.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RPM+TPS&#039;&#039;&#039; - Use RPM and TPS for air charge estimation&lt;br /&gt;
* &#039;&#039;&#039;Air Mass Interpolation&#039;&#039;&#039; - Use the air mass interpolation method for charge air estimation&lt;br /&gt;
* &#039;&#039;&#039;Table&#039;&#039;&#039; - Use the table for charge temperature estimation&lt;br /&gt;
&lt;br /&gt;
==== Increase rate limit ====&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
==== Decrease rate limit ====&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/Low TPS ====&lt;br /&gt;
The low RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/High TPS ====&lt;br /&gt;
The low RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/Low TPS ====&lt;br /&gt;
The high RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/High TPS ====&lt;br /&gt;
The high RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
&lt;br /&gt;
* 0 means the air charge is fully heated to the same temperature as the coolant temperature&lt;br /&gt;
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== High flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== Max air flow ====&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
This affects the AFR target output, this is a multiplier, and the value stacks with the multipliers.&lt;br /&gt;
&lt;br /&gt;
0.9 = MORE fuel (lower lambda)&lt;br /&gt;
&lt;br /&gt;
1.1 = LESS fuel (higher lambda)&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin ====&lt;br /&gt;
This is the physical input pin for the lambda multiplier.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x value ====&lt;br /&gt;
This is the multiplier value for the lambda target.&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
This is the acceleration enrichment (AE) setting. They can be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Delta-TPS based&#039;&#039;&#039; - The TPS delta (TPS speed) is used for acceleration enrichment (simpler)&lt;br /&gt;
* &#039;&#039;&#039;Wall Wetting&#039;&#039;&#039; - Complex wall-wetting algorithm based on fuel evaporation time&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Enable wall wetting Acceleration Enrichment ====&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Use MAP estimate during transient ====&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
==== Wall fueling model type ====&lt;br /&gt;
Specifies the wall-wetting mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Basic&#039;&#039;&#039; - Constants are used to vary tau/beta&lt;br /&gt;
* &#039;&#039;&#039;Advanced&#039;&#039;&#039; - Tables are used to vary tau/beta&lt;br /&gt;
&lt;br /&gt;
==== evaporation time constant / tau ====&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
==== added to wall coef / beta ====&lt;br /&gt;
&lt;br /&gt;
* 0 = No fuel settling on port walls &lt;br /&gt;
* 1 = All the fuel settling on port walls &lt;br /&gt;
&lt;br /&gt;
Setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== TPS AE fast or slow callback ====&lt;br /&gt;
This is how fast the AE callback is invoked (how fast the AE is calculated)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - 200Hz&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - 20Hz&lt;br /&gt;
&lt;br /&gt;
==== Delta TPS Average Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&lt;br /&gt;
1 means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
==== Use calculated threshold from averaged delta TPS ====&lt;br /&gt;
Use calcualted threshold from averaged delta TPS&lt;br /&gt;
&lt;br /&gt;
==== Average static threshold curve and dynamic threshold ====&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
==== Sample Length ====&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse ====&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Multiplier (global) ====&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Inhibit Cycles ====&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
==== TPS AE Burn Skip count ====&lt;br /&gt;
Hitting  &amp;quot;Burn&amp;quot; sometimes causes a spike in sensors, TPS AE burn skip count ignores AE triggers for the duration of that.&lt;br /&gt;
&lt;br /&gt;
==== TPS Accel resets EGO to 0% ====&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after accel ====&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
This is a TPS acceleration enrichment multiplier based on engine cycle&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
Delta TPS average multiplier curve&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
Above this curve, the engine is considered to be in acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
This is the acceleration enrichment scale based on CLT&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
This is the RPM correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
This is the CLT correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
This table represents MAP at a given TPS vs RPM, which we use if our MAP sensor has failed, or if we are using MAP Prediciton. This table should be a direct representation of MAP, you can tune it manually by disconnecting MAP sensor, and filling out the table with values that match an external gauge that shows MAP. Additionally, you can also use MLV to get the map values and/or generate the table for you.&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
This is the RPM multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
This is the TPS multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
This is the MAP multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
This is the CLT multiplier for the [[Config:Fuel#Instant Fuel Pulse|instant fuel pulse.]] &lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
This is the base evaporation time of the fuel based on coolant temperature (Tau)&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
This is the base impact fraction basaed on coolant temperature (Beta)&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
This is the Tau table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
This is the Beta table in regards to MAP.&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
Uses &amp;quot;flow through an orifice&amp;quot; set of [[wikipedia:Bernoulli&#039;s_principle|Bernouli&#039;s equations]] to attempt to calculate air mass. &lt;br /&gt;
{{Warning Mild|This is experimental/for educational purposes only.}}&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt;% throttle boy area) ==&lt;br /&gt;
&lt;br /&gt;
This is the transfer function between TPS percentage and the throttle body area percentage.&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
This is the discharge coefficient.&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=306</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=306"/>
		<updated>2026-02-01T19:43:54Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Fuel Corrections */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
This is the barometric pressure correction in regards with a baro sensor.&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
This is the charge air estimation used to approximate the cylinder air/fuel charge temperature based on CLT and IAT.&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RPM+TPS&#039;&#039;&#039; - Use RPM and TPS for air charge estimation&lt;br /&gt;
* &#039;&#039;&#039;Air Mass Interpolation&#039;&#039;&#039; - Use the air mass interpolation method for charge air estimation&lt;br /&gt;
* &#039;&#039;&#039;Table&#039;&#039;&#039; - Use the table for charge temperature estimation&lt;br /&gt;
&lt;br /&gt;
==== Increase rate limit ====&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
==== Decrease rate limit ====&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/Low TPS ====&lt;br /&gt;
The low RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== Low RPM/High TPS ====&lt;br /&gt;
The low RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/Low TPS ====&lt;br /&gt;
The high RPM/low TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
==== High RPM/High TPS ====&lt;br /&gt;
The high RPM/high TPS coefficient for estimation.&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
==== Low flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
&lt;br /&gt;
* 0 means the air charge is fully heated to the same temperature as the coolant temperature&lt;br /&gt;
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== High flow coefficient ====&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
==== Max air flow ====&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
This affects the AFR target output, this is a multiplier, and the value stacks with the multipliers.&lt;br /&gt;
&lt;br /&gt;
0.9 = MORE fuel (lower lambda)&lt;br /&gt;
&lt;br /&gt;
1.1 = LESS fuel (higher lambda)&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin ====&lt;br /&gt;
This is the physical input pin for the lambda multiplier.&lt;br /&gt;
&lt;br /&gt;
To find the actual value for your hardware, see [[Hardware]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x pin mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target Lambda Multiplier x value ====&lt;br /&gt;
This is the multiplier value for the lambda target.&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
This is the acceleration enrichment (AE) setting. They can be&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Delta-TPS based&#039;&#039;&#039; - The TPS delta (TPS speed) is used for acceleration enrichment (simpler)&lt;br /&gt;
* &#039;&#039;&#039;Wall Wetting&#039;&#039;&#039; - Complex wall-wetting algorithm based on fuel evaporation time&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Enable wall wetting Acceleration Enrichment ====&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== Use MAP estimate during transient ====&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
==== Wall fueling model type ====&lt;br /&gt;
Specifies the wall-wetting mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Basic&#039;&#039;&#039; - Constants are used to vary tau/beta&lt;br /&gt;
* &#039;&#039;&#039;Advanced&#039;&#039;&#039; - Tables are used to vary tau/beta&lt;br /&gt;
&lt;br /&gt;
==== evaporation time constant / tau ====&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
==== added to wall coef / beta ====&lt;br /&gt;
&lt;br /&gt;
* 0 = No fuel settling on port walls &lt;br /&gt;
* 1 = All the fuel settling on port walls &lt;br /&gt;
&lt;br /&gt;
Setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Enable TPS Acceleration Enrichment ====&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
==== TPS AE fast or slow callback ====&lt;br /&gt;
This is how fast the AE callback is invoked (how fast the AE is calculated)&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - 200Hz&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - 20Hz&lt;br /&gt;
&lt;br /&gt;
==== Delta TPS Average Smoothing Factor ====&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&lt;br /&gt;
1 means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
==== Use calculated threshold from averaged delta TPS ====&lt;br /&gt;
Use calcualted threshold from averaged delta TPS&lt;br /&gt;
&lt;br /&gt;
==== Average static threshold curve and dynamic threshold ====&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
==== Sample Length ====&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse ====&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Multiplier (global) ====&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
==== Instant Fuel Pulse Inhibit Cycles ====&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
==== TPS AE Burn Skip count ====&lt;br /&gt;
Hitting  &amp;quot;Burn&amp;quot; sometimes causes a spike in sensors, TPS AE burn skip count ignores AE triggers for the duration of that.&lt;br /&gt;
&lt;br /&gt;
==== TPS Accel resets EGO to 0% ====&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after accel ====&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
This is a TPS acceleration enrichment multiplier based on engine cycle&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
Delta TPS average multiplier curve&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
Above this curve, the engine is considered to be in acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
This is the acceleration enrichment scale based on CLT&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
This is the RPM correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
This is the CLT correction for TPS acceleration enrichment.&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
This table represents MAP at a given TPS vs RPM, which we use if our MAP sensor has failed, or if we are using MAP Prediciton. This table should be a direct representation of MAP, you can tune it manually by disconnecting MAP sensor, and filling out the table with values that match an external gauge that shows MAP. Additionally, you can also use MLV to get the map values and/or generate the table for you.&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
This is the RPM multiplier for &lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=305</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=305"/>
		<updated>2026-02-01T19:10:33Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Injector Advance Assisted Tuning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes the &#039;&#039;&#039;Injector Advance Tuning Tool&#039;&#039;&#039;. This enables the optimization of the injector close angle (also called end-of-injection) by offsetting it on a schedule. This enables you to test out the injection end angle by listening how the engine runs.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say the injector needs to close at 90 degrees crankshaft angle and the tool is enabled and configured for -10 and +10 degrees. The injection end-of-injection will be changed by each step each number of cycles from 80 to 100 degrees.&lt;br /&gt;
&lt;br /&gt;
==== Enable ====&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
==== Degrees per step ====&lt;br /&gt;
How many degrees to increment each scheduled event.&lt;br /&gt;
&lt;br /&gt;
==== Cycles per step ====&lt;br /&gt;
How many crankshaft cycles occur per step.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Max RPM ====&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
==== Start Retard (deg) ====&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
==== End Retard (deg) ====&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl x ==&lt;br /&gt;
&lt;br /&gt;
This is the fuel trim per-cylinder.&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Staged Injection Enable ====&lt;br /&gt;
This is the master switch for staged injection.&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow ====&lt;br /&gt;
The flow rate of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow|Injector flow]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector flow compensation mode ====&lt;br /&gt;
The flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector flow compensation mode|Injector flow compensation mode]]&lt;br /&gt;
&lt;br /&gt;
==== Secondary injector reference pressure ====&lt;br /&gt;
The secondary injectors reference pressure.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector reference pressure|Injector reference pressure]]&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
See [[Config:Fuel#Use small pulsewidth correction lookup curve|Use small pulsewidth correction lookup curve]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
This is the deadtime of the secondary injectors.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Injector Deadtimes (BatV vs fuel pressure)|Injector Deadtimes (BatV vs fuel pressure)]]&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
==== Injection Stage 2 Output x ====&lt;br /&gt;
These are the physical output pins for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the small pulsewidth correction for the secondary injection stage.&lt;br /&gt;
&lt;br /&gt;
See [[Config:Fuel#Primary Injector Small Pulsewidth Table|Primary Injector Small Pulsewidth Table]]&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
This is the target lambda/air fuel ratio that is used for corrections, [[Config:Fuel#Long Term Fuel Trim|LTFT]], [[Config:Fuel#Short Term Fuel Trim|STFT]] and fuel calculations.&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
This is the AFR ratio target correction in regards to warmup enrichment.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer fuel target&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner fuel target&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
This is the manual warmup enrichment in regards to coolant temperature. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
This is the intake air temp correction curve. This is a global multiplier.&lt;br /&gt;
&lt;br /&gt;
1.0 means no correction.&lt;br /&gt;
&lt;br /&gt;
1.2 means 20% richer mixture&lt;br /&gt;
&lt;br /&gt;
0.8 means 20% leaner mixture&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&lt;br /&gt;
==== Enable Coasting Fuel Cutoff ====&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
==== Disable fuel cut on clutch ====&lt;br /&gt;
Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts.&lt;br /&gt;
&lt;br /&gt;
==== No cut below CLT ====&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
==== RPM cut fuel above ====&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
==== RPM restore fuel below ====&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed cut above ====&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Vehicle speed restore below ====&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below TPS ====&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP mode ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fixed&#039;&#039;&#039; - MAP threshold cut fuel when conditions are met&lt;br /&gt;
* &#039;&#039;&#039;Table -&#039;&#039;&#039; Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
==== Cut fuel below MAP ====&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
==== Fuel cut delay ====&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
==== Inhibit closed loop fuel after cut ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
==== Ignition retard during cut ====&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
==== After cut timing ramp-in time ====&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
DFCO will activate when operating below this curve. Used to allow a higher threshold at low RPM where less vaccuum is generated.&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Gathering Data ====&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
{{Info|To enable long term fuel trims, short term fuel trims should be configured and active.}}&lt;br /&gt;
&lt;br /&gt;
==== Time const ====&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
==== Max add ====&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
==== Max remove ====&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
==== Learning deadband ====&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Apply Correction ====&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
==== Enable Autosave LTFT ====&lt;br /&gt;
Automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
==== Enable Writes While Engine runs (experimental) every 10 minutes ====&lt;br /&gt;
This enables configuration writes every 10 minutes while the engine runs.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Refresh TS with live write every 10 minutes ====&lt;br /&gt;
Refreshes TunerStudio with the live write.&lt;br /&gt;
{{Warning|This feature is experimental and could result in tune loss on the ECU. Use with caution.}}&lt;br /&gt;
&lt;br /&gt;
==== Flash Write delay after engine off - seconds ====&lt;br /&gt;
Delay flash write after engine stop for this long.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
This is the bank 1 long term fuel trim backup. On ECU boot, this is copied into the active table.&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
==== Short term fuel trim ====&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range ADD MAX (+) (lambda) ====&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
==== CAN BOX AFR Trim range REMOVE MAX(-)(lambda) ====&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
==== Logged Tuned VE correction multiplier ====&lt;br /&gt;
Multiplier for corrections applied to tuned VE that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
==== Startup delay ====&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO delay ====&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
==== After DFCO pause or disable STFT ====&lt;br /&gt;
This eliminates the interference between [[Config:Fuel#Deceleration fuel cutoff (DFCO)|DFCO]] and SFTF.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;True&#039;&#039;&#039; - Pauses the short term fuel trim&lt;br /&gt;
* &#039;&#039;&#039;False&#039;&#039;&#039; - Disable STFT after DFCO is active   &lt;br /&gt;
&lt;br /&gt;
==== Minimum CLT for correction ====&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
==== Use AFR (Gasoline scale) or Lambda for limits ====&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
==== Minimum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum AFR for correction (Gasoline scale) ====&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Minimum Lambda for correction ====&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Lambda for correction ====&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
&lt;br /&gt;
This is corrected for current flex fuel percentage&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_rich - MAX RICH % ====&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Adjustment deadband_lean - MAX LEAN % ====&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
==== Ignore error magnitude (error is always 0.1% - simple mode) ====&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
This is the integral component of the short term fuel trim.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x Settings ==&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin ====&lt;br /&gt;
Full table switch or blend pin.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Pin Mode ====&lt;br /&gt;
This is the pin mode for the switch input pin.&lt;br /&gt;
&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== VE Table Switch x Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch x ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin ====&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Pin Mode ====&lt;br /&gt;
See [[Hardware:ECU input mode selection|ECU input mode selection]].&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Parameter ====&lt;br /&gt;
This defines the table switch parameter.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Blend Mode ====&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
==== Target AFR Table Switch 1 Y axis override ====&lt;br /&gt;
This overrides the Y axis of the table switch table.&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
This is the table which is used after switching/blending.&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Template:Info&amp;diff=304</id>
		<title>Template:Info</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Template:Info&amp;diff=304"/>
		<updated>2026-02-01T18:55:28Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.5em; border:1px var(--border-color-progressive,#f54739) solid; padding:0.5em; background-color:var(--background-color-progressive-subtle,#ffe9e5);color:var(--color-base,#202122);&amp;quot;&amp;gt;    &amp;lt;tr&amp;gt;       &amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-{{dir|{{pagelang}}|right|left}}:0.5em&amp;quot;&amp;gt; {{{1|}}}&amp;lt;/td&amp;gt;    &amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.5em; border:1px var(--border-color-progressive,#f54739) solid; padding:0.5em; background-color:var(--background-color-progressive-subtle,#ffe9e5);color:var(--color-base,#202122);&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-{{dir|{{pagelang}}|right|left}}:0.5em&amp;quot;&amp;gt; {{{1|}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=303</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=303"/>
		<updated>2026-02-01T16:40:27Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Use simultaneous */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous  [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=302</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=302"/>
		<updated>2026-02-01T16:40:02Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Use sequential */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Fuel#Mode|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=301</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=301"/>
		<updated>2026-02-01T16:37:58Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Injector deadtime assisted tuning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the [[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]] to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=300</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=300"/>
		<updated>2026-02-01T16:37:07Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Injector deadtime assisted tuning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
epicEFI firmware includes an &#039;&#039;&#039;Injector Deadtime Tuning Tool&#039;&#039;&#039; that works by alternating between sequential injection and batch injection on a schedule.&lt;br /&gt;
&lt;br /&gt;
This method works because switching between these two modes changes the number of injection events per engine cycle. In batch mode, the injector fires &#039;&#039;&#039;twice per cycle&#039;&#039;&#039;, while in sequential mode it fires &#039;&#039;&#039;once per cycle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
In both cases, the total amount of fuel delivered per cycle remains the same. The difference is that in batch mode the fuel is split into two injection events, whereas in sequential mode it is delivered in a single event. Since injector deadtime is added to every injection event, the total added deadtime per cycle differs between the two modes.&lt;br /&gt;
&lt;br /&gt;
If the deadtime values are not accurate, switching between batch and sequential injection will result in a measurable change in AFR at the exhaust.&lt;br /&gt;
&lt;br /&gt;
The epicEFI Injector Deadtime Tuning Assist automatically switches between sequential and batch modes on a set schedule, allowing you to log the AFR difference. You can then adjust the deadtime table until no AFR change is observed between the two modes, indicating that the injected fuel quantity is consistent in both cases.&lt;br /&gt;
&lt;br /&gt;
It’s advisable to disable [[Config:Fuel#Short term fuel trim Setup|short-term fuel trims]] and to run this test with the engine fully warmed up.&lt;br /&gt;
&lt;br /&gt;
At first, the engine may struggle to stay running when the mode switch occurs. This is expected if your deadtime values are off, since those inaccuracies are usually already “hidden” in the VE table.&lt;br /&gt;
&lt;br /&gt;
If the engine goes too lean and won’t stay running, you can use the &#039;&#039;&#039;[[Config:Fuel#Global Fuel Correction (1=100%)|Global Fuel Correction]]&#039;&#039;&#039; to richen the mixture enough to keep it alive.&lt;br /&gt;
&lt;br /&gt;
The Global Fuel Correction does not affect injector deadtime. It simply scales the overall fuel delivery, allowing you to keep the engine running while you dial in the correct deadtime values.&lt;br /&gt;
&lt;br /&gt;
==== Enable deadtime tuning cycle ====&lt;br /&gt;
This is the master switch for the tool.&lt;br /&gt;
&lt;br /&gt;
==== Use sequential ====&lt;br /&gt;
Enable sequential [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use batch ====&lt;br /&gt;
Enable batch [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Use simultaneous ====&lt;br /&gt;
Enable simultaneous [[Config:Setup#Fuel strategy|fuel mode]] into the scheduled switching.&lt;br /&gt;
&lt;br /&gt;
==== Cycles ====&lt;br /&gt;
Switch fuel strategy every this many cycles of the engine.&lt;br /&gt;
&lt;br /&gt;
==== Min RPM ====&lt;br /&gt;
Minimum RPM for the tool to run.&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=299</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Configuration&amp;diff=299"/>
		<updated>2026-02-01T16:26:56Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Configuration of the epicEFI firmware is done via [https://www.tunerstudio.com/ TunerStudio] from EFIAnalytics. TunerStudio allows the user to edit the main controller configuration as well to change the various tables inside of the firmware.&lt;br /&gt;
&lt;br /&gt;
== Installing TunerStudio ==&lt;br /&gt;
Navigate to [https://www.tunerstudio.com/index.php/downloads the TunerStudio download page]and download the latest TunerStudio for your platform. TunerStudio supports auto-update, so the latest available version will be installed once the auto-updater is ran at first startup.&lt;br /&gt;
&lt;br /&gt;
== Tuner Studio options ==&lt;br /&gt;
To access the individual TunerStudio options, use the following links:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;[[Setup]]&amp;lt;/big&amp;gt;&lt;br /&gt;
** [[Setup#Vehicle Information|Vehicle Information]]&lt;br /&gt;
** [[Setup#Limits|Limits and protection]]&lt;br /&gt;
*** [[Setup#Limits and Fallbacks|Limits and Fallbacks]]&lt;br /&gt;
*** [[Setup#Low oil pressure protection|Low oil pressure protection]]&lt;br /&gt;
*** [[Setup#High oil pressure protection|High oil pressure protection]]&lt;br /&gt;
*** [[Setup#Lambda Protection|Lambda Protection]]&lt;br /&gt;
** [[Setup#Trigger|Trigger]]&lt;br /&gt;
** [[Setup#Custom Firing Order|Custom Firing Order]]&lt;br /&gt;
** [[Setup#Universal Cam|Universal Cam]]&lt;br /&gt;
** [[Setup#Universal Crank|Universal Crank]]&lt;br /&gt;
** [[Setup#Missfire detection|Missfire Detection]]&lt;br /&gt;
** [[Setup#Odd Fire Cylinder Offsets|Odd Fire Cylinder Offsets]]&lt;br /&gt;
** [[Setup#SD Card|SD Card]]&lt;br /&gt;
** [[Setup#Outputs|Outputs]]&lt;br /&gt;
** [[Setup#Fan x PWM curve|Fan x PWM curve]]&lt;br /&gt;
** [[Setup#Water Pump x PWM curve|Water Pump x PWM curve]]&lt;br /&gt;
** [[Setup#Tach Correction Curve|Tach Correction Curve]]&lt;br /&gt;
** [[Setup#Speedo Correction Curve|Speedo Correction Curve]]&lt;br /&gt;
** [[Setup#Air Conditioning|Air Conditioning]]&lt;br /&gt;
** [[Setup#Programmable Ports|Programmable Ports]]&lt;br /&gt;
** [[Setup#Check Engine Light (CEL)|Check Engine Light (CEL)]]&lt;br /&gt;
* [[Config:Fuel|Fuel]]&lt;br /&gt;
** VE Table&lt;br /&gt;
** Injector setup&lt;br /&gt;
*** Injection configuration&lt;br /&gt;
*** Injection hardware&lt;br /&gt;
*** Injector Deadtimes (BatV vs fuel pressure)&lt;br /&gt;
*** Injector Timing Advance&lt;br /&gt;
*** Primary Injector Small Pulsewidth Table&lt;br /&gt;
*** Primary Injector Small Pulsewth vs BatV multiplier&lt;br /&gt;
*** Injector deadtime assisted tuning&lt;br /&gt;
*** Injector Advance Assisted Tuning&lt;br /&gt;
*** Fuel trim cyl x&lt;br /&gt;
** Staged injection&lt;br /&gt;
*** Staged Injector Settings&lt;br /&gt;
*** Staged Injector Deadtimes&lt;br /&gt;
*** Staged Injector outputs&lt;br /&gt;
*** Staged Injector % table&lt;br /&gt;
*** Staged Injector Small Pulsewidth Table&lt;br /&gt;
** Target AFR&lt;br /&gt;
** Target AFR warmup enrichment (CLT)&lt;br /&gt;
** Manual warmup enrichment (CLT)&lt;br /&gt;
** Intake air temp correction (IAT)&lt;br /&gt;
** Deceleration fuel cutoff (DFCO)&lt;br /&gt;
** DFCO MAP to RPM threshold&lt;br /&gt;
** Long Term Fuel Trim&lt;br /&gt;
*** Long term fuel trims&lt;br /&gt;
*** Long Term Fuel Trim Bank 1 - BACKUP&lt;br /&gt;
*** Long Term Fuel Trim Bank 2 - BACKUP&lt;br /&gt;
** Short Term Fuel Trim&lt;br /&gt;
*** Short term fuel trim Setup&lt;br /&gt;
*** Short term fuel trim Time Constant (I)&lt;br /&gt;
*** Short term fuel trim Add Authority (+)&lt;br /&gt;
*** Short term fuel trim Remove Authority (-)&lt;br /&gt;
** VE Table Switch&lt;br /&gt;
*** VE Table Switch 1 Settings&lt;br /&gt;
*** VE Table Switch 1&lt;br /&gt;
*** VE Table Switch 2 Settings&lt;br /&gt;
*** VE Table Switch 2&lt;br /&gt;
** Target AFR Table Switch&lt;br /&gt;
*** Target AFR Table Switch 1 Settings&lt;br /&gt;
*** Target AFR Table Switch 1&lt;br /&gt;
** Fuel Corrections&lt;br /&gt;
*** Barometric pressure correction&lt;br /&gt;
*** Charge temperature estimation&lt;br /&gt;
**User Switchable Lambda Target Multipliers&lt;br /&gt;
**TPS Acceleration Enrichment/Wall Wetting AE    &lt;br /&gt;
***Acceleration enrichment Base settings(AE)   &lt;br /&gt;
***TPS AE: Settings&lt;br /&gt;
***TPS AE: Fuel multiplier by engine cycle&lt;br /&gt;
***TPS AE: Delta TPS Average Multiplier for Dynamic Threshold&lt;br /&gt;
***TPS AE: TPS change threshold by RPM&lt;br /&gt;
***TPS AE: TPS vs CLT AE SCALE&lt;br /&gt;
***Predictive Map Blend Duration&lt;br /&gt;
***TPS AE: RPM correction&lt;br /&gt;
***TPS AE: CLT correction&lt;br /&gt;
***MAP estimate table&lt;br /&gt;
***TPS AE instant pulse multiplier vs RPM&lt;br /&gt;
***TPS AE instant pulse multiplier vs TPS&lt;br /&gt;
***TPS AE instant pulse multiplier vs MAP&lt;br /&gt;
***TPS AE instant pulse multiplier vs CLT&lt;br /&gt;
***Evap from wall time&lt;br /&gt;
***Stick to wall fraction&lt;br /&gt;
***Evap from wall table&lt;br /&gt;
***Stick to wall table&lt;br /&gt;
**Throttle Model Flow&lt;br /&gt;
***Throttle effective % area (TPS -&amp;gt; % tb1 area)&lt;br /&gt;
***Throttle Model Flow Discharge Coefficient&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=298</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=298"/>
		<updated>2026-02-01T16:13:40Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Use small pulsewidth correction lookup curve */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems, or you want to limit the minimum pulsewidth. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=297</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=297"/>
		<updated>2026-02-01T16:11:52Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Use small pulsewidth correction lookup curve */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=296</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=296"/>
		<updated>2026-02-01T16:11:40Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Primary Injector Small Pulsewth vs BatV multiplier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=295</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=295"/>
		<updated>2026-02-01T16:11:24Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Primary Injector Small Pulsewidth Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning_Mild|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Template:Warning_Mild&amp;diff=294</id>
		<title>Template:Warning Mild</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Template:Warning_Mild&amp;diff=294"/>
		<updated>2026-02-01T16:11:00Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: Created page with &amp;quot;&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.5em; border:1px var(--border-color-warning,#f54739) solid; padding:0.5em; background-color:var(--background-color-warning-subtle,#ffe9e5);color:var(--color-base,#202122);&amp;quot;&amp;gt;    &amp;lt;tr&amp;gt;       &amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-{{dir|{{pagelang}}|right|left}}:0.5em&amp;quot;&amp;gt; {{{1|}}}&amp;lt;/td&amp;gt;    &amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;margin-top:0.5em; border:1px var(--border-color-warning,#f54739) solid; padding:0.5em; background-color:var(--background-color-warning-subtle,#ffe9e5);color:var(--color-base,#202122);&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;padding-{{dir|{{pagelang}}|right|left}}:0.5em&amp;quot;&amp;gt; {{{1|}}}&amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=293</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=293"/>
		<updated>2026-02-01T16:09:29Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Primary Injector Small Pulsewidth Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]]. This table is used to re-map a small pulsewidth to a bigger one or vice-versa.&lt;br /&gt;
&lt;br /&gt;
This is used to improve idle behaviour and other transient situations.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
This is the  [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]] in relation to battery voltage. Small pulse width behavour can change with battery voltage, and this can be used to correct that behaviour.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This feature should only be needed if running very big injectors (&amp;gt;1500cc) and you have idle fueling problems. Do not use otherwise.}}&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=292</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=292"/>
		<updated>2026-02-01T16:06:32Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Use small pulsewidth correction lookup curve */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use the [[Config:Fuel#Primary Injector Small Pulsewidth Table|small pulsewidth correction table]] to correct small injector pulse width behaviour.&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]].&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=291</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=291"/>
		<updated>2026-02-01T16:05:32Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Enabled ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== Disable Fuel Pump ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== Disable injector prime pulse ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== Mode ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== Alpha-N uses IAT density correction ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Override AFR table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Injection phase control mode ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== Injector flow ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow units ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== Fuel rail pressure sensor ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== Injector flow compensation mode ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== Injector reference pressure ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== Use small pulsewidth correction lookup curve ====&lt;br /&gt;
Use small pulsewidth lookup&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== Gasoline (E0) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== Ethanol (E100) Stoichiometric ratio ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== Current Ethanol Content ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== Global Fuel Correction (1=100%) ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel flow rate smoothed alpha (display only) ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== Use absolute fuel pressure for dead time calculation ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== Injection Output x ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== Injector x  disable ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== Cylinder x ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== Override the Y axis (load) value used for the injector advance table. ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]].&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=290</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=290"/>
		<updated>2026-02-01T16:04:41Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== Override VE table load axis ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== Fuel strategy ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injection Enabled&#039;&#039;&#039; ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Disable Fuel Pump&#039;&#039;&#039; ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Disable injector prime pulse&#039;&#039;&#039; ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Mode&#039;&#039;&#039; ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Alpha-N uses IAT density correction&#039;&#039;&#039; ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override AFR table load axis&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injection phase control mode&#039;&#039;&#039; ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector flow&#039;&#039;&#039; ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector flow units&#039;&#039;&#039; ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Fuel rail pressure sensor&#039;&#039;&#039; ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector flow compensation mode&#039;&#039;&#039; ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector reference pressure&#039;&#039;&#039; ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039; ====&lt;br /&gt;
Use small pulsewidth lookup&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Gasoline (E0) Stoichiometric ratio&#039;&#039;&#039; ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Ethanol (E100) Stoichiometric ratio&#039;&#039;&#039; ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Current Ethanol Content&#039;&#039;&#039; ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Global Fuel Correction (1=100%)&#039;&#039;&#039; ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Fuel flow rate smoothed alpha (display only)&#039;&#039;&#039; ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Use absolute fuel pressure for dead time calculation&#039;&#039;&#039; ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injection Output x&#039;&#039;&#039; ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector x  disable&#039;&#039;&#039; ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Cylinder x&#039;&#039;&#039; ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override the Y axis (load) value used for the injector advance table.&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]].&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=289</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=289"/>
		<updated>2026-02-01T16:03:52Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Fuel strategy&#039;&#039;&#039; ====&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injection Enabled&#039;&#039;&#039; ====&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Disable Fuel Pump&#039;&#039;&#039; ====&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Disable injector prime pulse&#039;&#039;&#039; ====&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Mode&#039;&#039;&#039; ====&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Alpha-N uses IAT density correction&#039;&#039;&#039; ====&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override AFR table load axis&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injection phase control mode&#039;&#039;&#039; ====&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector flow&#039;&#039;&#039; ====&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector flow units&#039;&#039;&#039; ====&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Fuel rail pressure sensor&#039;&#039;&#039; ====&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector flow compensation mode&#039;&#039;&#039; ====&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector reference pressure&#039;&#039;&#039; ====&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039; ====&lt;br /&gt;
Use small pulsewidth lookup&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Gasoline (E0) Stoichiometric ratio&#039;&#039;&#039; ====&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Ethanol (E100) Stoichiometric ratio&#039;&#039;&#039; ====&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Current Ethanol Content&#039;&#039;&#039; ====&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Global Fuel Correction (1=100%)&#039;&#039;&#039; ====&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Fuel flow rate smoothed alpha (display only)&#039;&#039;&#039; ====&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Use absolute fuel pressure for dead time calculation&#039;&#039;&#039; ====&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injection Output x&#039;&#039;&#039; ====&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Injector x  disable&#039;&#039;&#039; ====&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Cylinder x&#039;&#039;&#039; ====&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Override the Y axis (load) value used for the injector advance table.&#039;&#039;&#039; ====&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]].&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=288</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=288"/>
		<updated>2026-02-01T16:02:33Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: /* Primary Injector Small Pulsewidth Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel strategy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable Fuel Pump&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable injector prime pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&#039;&#039;&#039;Alpha-N uses IAT density correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override AFR table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection phase control mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow units&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel rail pressure sensor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gasoline (E0) Stoichiometric ratio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ethanol (E100) Stoichiometric ratio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Current Ethanol Content&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Global Fuel Correction (1=100%)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel flow rate smoothed alpha (display only)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use absolute fuel pressure for dead time calculation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Output x&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector x  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder x&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override the Y axis (load) value used for the injector advance table.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector [[Config:Fuel#Use small pulsewidth correction lookup curve|small pulsewidth correction]].&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=287</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=287"/>
		<updated>2026-02-01T16:02:09Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel strategy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable Fuel Pump&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable injector prime pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&#039;&#039;&#039;Alpha-N uses IAT density correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override AFR table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection phase control mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow units&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel rail pressure sensor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gasoline (E0) Stoichiometric ratio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ethanol (E100) Stoichiometric ratio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Current Ethanol Content&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Global Fuel Correction (1=100%)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel flow rate smoothed alpha (display only)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use absolute fuel pressure for dead time calculation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This changes the deadtime calculation to use absolute pressure. Otherwise, differential pressure is used.&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Output x&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector x  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder x&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
This table defines the [[Injector Dead Time]]. The dead time is the time in milliseconds that it takes for the injector to open and start spraying fuel. It is pressure and voltage dependant.&lt;br /&gt;
&lt;br /&gt;
This table configures the relation of pressure/voltage and deadtime in ms.&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
This is injection angle in relation to TDC ignition stroke. Values are ATDC. i.e. If ignition timing is 14 advance, this value has to be -14 to match that event. -400 in this table would put injection well into the intake stroke. 50 here is 50 degrees after TDC compression stroke&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override the Y axis (load) value used for the injector advance table.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
This is the injector small pulsewidth correction.&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
	<entry>
		<id>https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=286</id>
		<title>Config:Fuel</title>
		<link rel="alternate" type="text/html" href="https://content.epicefi.com/wiki/index.php?title=Config:Fuel&amp;diff=286"/>
		<updated>2026-02-01T15:55:34Z</updated>

		<summary type="html">&lt;p&gt;Ogalic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Fuel menu.jpg|thumb|Fuel menu]]&lt;br /&gt;
&lt;br /&gt;
= Fuel =&lt;br /&gt;
This menu is used for any fuel-related configuration and tuning. &lt;br /&gt;
&lt;br /&gt;
This menu enables the configuration of:&lt;br /&gt;
&lt;br /&gt;
* Physical hardware - output pins&lt;br /&gt;
* VE tables&lt;br /&gt;
* Fuel trims (short and long)&lt;br /&gt;
* Lambda control (AFR correction)&lt;br /&gt;
* IAT/CLT/Other corrections&lt;br /&gt;
* Table switch&lt;br /&gt;
* And others...&lt;br /&gt;
&lt;br /&gt;
You can find the individual options below.&lt;br /&gt;
&lt;br /&gt;
= VE Table =&lt;br /&gt;
This is the main VE table used for fuel calculations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel strategy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See [[Setup#Fuel strategy|Fuel strategy.]]&lt;br /&gt;
&lt;br /&gt;
= Injector setup =&lt;br /&gt;
This menu enables the configuration of the physical injector layout and output configuration&lt;br /&gt;
&lt;br /&gt;
== Injection configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Injection ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel Injection is enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable Fuel Pump&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable fuel pump&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable injector prime pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Do not prime injectors&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This configures the injection model:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Simultaneous&#039;&#039;&#039; - All injectors are opened at the same time, with the fuel load being divided over the whole 720 degree cycle (a 4 cylinder engine will squirt 4 times over 720 degrees).&lt;br /&gt;
* &#039;&#039;&#039;Sequential&#039;&#039;&#039; - All injectors are opened at their commanded angle and the cycle is tracked over 720 degrees. Requires [[Cam Sensor]] or [[Setup#Guess sync RPM threshold(rpm)|phase guessing]] to function properly.&lt;br /&gt;
* &#039;&#039;&#039;Batch&#039;&#039;&#039; - Injectors are opened at their commanded angle along with their wasted pair. The same principle as wasted spark.&lt;br /&gt;
* &#039;&#039;&#039;Single Point&#039;&#039;&#039; - The same as simultaneous but with a single channel, with fuel calculations to suit.&lt;br /&gt;
{{Warning|Injectors are always wired to their respective cylinders and epicEFI handles the firing order and injector opening. Batch wiring is only needed when the ECU does not have enough outputs to wire single injectors to a single channel.}}&#039;&#039;&#039;Alpha-N uses IAT density correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When set to true, it enables intake air temperature-based corrections for Alpha-N tuning strategies.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override VE table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the VE table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override AFR table load axis&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the AFR table.&lt;br /&gt;
&lt;br /&gt;
{{Warning|This is for advanced users only. If you aren&#039;t sure you need this, you probably don&#039;t need this.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection phase control mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Defines when fuel is injected relative to the intake valve opening. Options include End of Injection or other timing references.&lt;br /&gt;
&lt;br /&gt;
=== Injector Settings ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle.&lt;br /&gt;
&lt;br /&gt;
See units setting below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow units&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel rail pressure sensor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select which fuel pressure sensor measures the pressure of the fuel at your injectors.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the injector flow compensation mode.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Manifold Referenced Pressure Regulator&#039;&#039;&#039; - The car is equipped with a manifold-pressure referenced pressure regulator.&lt;br /&gt;
* &#039;&#039;&#039;Returnless fuel system&#039;&#039;&#039; - The car is equipped with a returnless fuel system (regulator in tank or dead-head system).&lt;br /&gt;
* &#039;&#039;&#039;Sensed fuel pressure&#039;&#039;&#039;  - The car is equipped with a fuel pressure sensor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350 here.&lt;br /&gt;
&lt;br /&gt;
This is gauge pressure reference to atmospheric.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup&lt;br /&gt;
&lt;br /&gt;
=== Fuel characteristics ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gasoline (E0) Stoichiometric ratio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.&lt;br /&gt;
&lt;br /&gt;
E0 = 14.7&lt;br /&gt;
&lt;br /&gt;
E10 = 14.1&lt;br /&gt;
&lt;br /&gt;
E85 = 9.9&lt;br /&gt;
&lt;br /&gt;
E100 = 9.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ethanol (E100) Stoichiometric ratio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Current Ethanol Content&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some pump gas has ethanol in it. Please adjust this to match what you fill up with.&lt;br /&gt;
&lt;br /&gt;
Use this as default ethanol content for fueling when no flex sensor present.&lt;br /&gt;
&lt;br /&gt;
This will scale Air/Fuel ratios and fueling accordingly.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Global Fuel Correction (1=100%)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the global fuel correction applied to the final pulse width.&lt;br /&gt;
&lt;br /&gt;
{{Warning|Please note that this is a rudimentary correction and should be used only for troubleshooting and diagnostics.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel flow rate smoothed alpha (display only)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This controls the logged &amp;quot;fuel flow rate&amp;quot; and how much smoothing is applied to that logged value. This has no actual impact on fuelling and the fuelling model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use absolute fuel pressure for dead time calculation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injection hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Injector Outputs ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Output x&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the physical output pin for the injector output for cylinder x.&lt;br /&gt;
&lt;br /&gt;
=== Injector Enable/Disable ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injector x  disable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This menu is used to disable individual injector outputs for troubleshooting.&lt;br /&gt;
&lt;br /&gt;
=== Cylinder Banks - Closed Loop Feedback ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cylinder x&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor 1.&lt;br /&gt;
&lt;br /&gt;
== Injector Deadtimes (BatV vs fuel pressure) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector Timing Advance ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Override the Y axis (load) value used for the injector advance table.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Override the Y axis (load) value used for the injector advance table.&lt;br /&gt;
Advanced users only: If you aren&#039;t sure you need this, you probably don&#039;t need this.&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Primary Injector Small Pulsewth vs BatV multiplier ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Injector deadtime assisted tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable deadtime tuning cycle&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: state&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use sequential&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: sequential en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use batch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tuning: batch en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use simultaneous&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Deadtime Tunning: simultaneous en&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Switch fuel strategy every this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Minimum RPM for Deadtime Asissted TUning&lt;br /&gt;
&lt;br /&gt;
== Injector Advance Assisted Tuning ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable Injector Advance Tuning Assist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Degrees per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Degrees per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cycles per step&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Cycles per step&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Min RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Disable above this RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Start injector advance offset&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;End Retard (deg)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
End injector advance offset&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 3 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 4 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 5 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 6 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 7 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Fuel trim cyl 8 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Staged injection =&lt;br /&gt;
This is the configuration for [[Staged Injection]]. Used for staging of injectors (primary-secondary) and the associated corrections.&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Staged Injection Enable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is your injector flow at the fuel pressure used in the vehicle&lt;br /&gt;
See units setting below&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector flow compensation mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None = I have a MAP-referenced fuel pressure regulator&lt;br /&gt;
Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)&lt;br /&gt;
Sensed rail pressure = I have a fuel pressure sensor&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Secondary injector reference pressure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is the pressure at which your injector flow is known.&lt;br /&gt;
For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use small pulsewidth correction lookup curve&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use small pulsewidth lookup for staged injection&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Deadtimes ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector outputs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 1&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 2&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 3&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 4&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 5&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 6&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 6&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 7&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 7&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Injection Stage 2 Output 8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
injectionPinsStage2 8&lt;br /&gt;
?highlight=class~outputs&lt;br /&gt;
&lt;br /&gt;
== Staged Injector % table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Staged Injector Small Pulsewidth Table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR =&lt;br /&gt;
&lt;br /&gt;
= Target AFR warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Manual warmup enrichment (CLT) =&lt;br /&gt;
&lt;br /&gt;
= Intake air temp correction (IAT) =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Deceleration fuel cutoff (DFCO) =&lt;br /&gt;
&#039;&#039;&#039;Enable Coasting Fuel Cutoff&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disable fuel cut on clutch&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
True: Inhibits DFCO from activating when the clutch is pressed. This helps prevent transient knock during shifts&lt;br /&gt;
False: Do not take clutch state into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;No cut below CLT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fuel cutoff is disabled when the engine is cold.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM cut fuel above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM above which fuel cut is active.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RPM restore fuel below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed cut above&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vehicle speed restore below&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fixed: MAP threshold cut fuel when conditions are met&lt;br /&gt;
Table: Use a curve to vary the MAP threshold based on engine RPM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cut fuel below MAP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
MAP value above which fuel injection is re-enabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuel cut delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use DFCO exit enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DFCO exit enrichment max RPM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignition retard during cut&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Retard timing by this amount during DFCO. Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After cut timing ramp-in time&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Smooths the transition back from fuel cut. After fuel is restored, ramp timing back in over the period specified.&lt;br /&gt;
&lt;br /&gt;
= DFCO MAP to RPM threshold =&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Long Term Fuel Trim =&lt;br /&gt;
This configures the Long Term Fuel Trim. This is used to trim fuel over long periods of time, such as injector aging or similar factors.&lt;br /&gt;
&lt;br /&gt;
== Long term fuel trims ==&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Long term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gathering Data&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor long term fuel corrections data gathering into LTFT trim tables&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Time const&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Commonly referred as Integral gain.&lt;br /&gt;
Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 30.0 means it will try to make most of the correction within 30 seconds, and a value of 300.0 will try to correct within 5 minutes.&lt;br /&gt;
Lower values makes the correction more sensitive, higher values slow the correction down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max add&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can add&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max remove&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum % that the long term fuel trim can remove&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Learning deadband&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apply Correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Apply LTFT trims into fuel calculation on top of VE table.&lt;br /&gt;
We do not adjust VE table automatically, please click &#039;Apply to VE&#039; if you want to adjust your VE tables and reset trims.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Autosave LTFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
automatically save Long Term Fuel trim to backup&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable Writes While Engine runs (experimental) every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Refresh TS with live write every 10 minutes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flash Write delay after engine off - seconds&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay flash write after engine stop for this long&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
&lt;br /&gt;
=== Status ===&lt;br /&gt;
&lt;br /&gt;
=== Trim bank 2 ===&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 1 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
== Long Term Fuel Trim Bank 2 - BACKUP ==&lt;br /&gt;
PLACEHOLDER&lt;br /&gt;
&lt;br /&gt;
= Short Term Fuel Trim =&lt;br /&gt;
This is used to configure STFT. This trim is applied fast and used to correct the fuel in very short periods of time.&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Setup ==&lt;br /&gt;
&lt;br /&gt;
=== Bank 1 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
=== Short term fuel trim ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Short term fuel trim&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enables lambda sensor closed loop feedback for fuelling.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range ADD MAX (+) (lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
maximum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAN BOX AFR Trim range REMOVE MAX(-)(lambda)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
minimum afr trim&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Logged Tuned VE correction multiplier&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
multiplier for corrections applied to tuned ve that&#039;s logged&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Startup delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Delay after starting the engine before beginning closed loop correction.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO delay&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;After DFCO pause or disable STFT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
true=pause, false=disable STFT after DFCO is active&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum CLT for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this temperature, correction is disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use AFR (Gasoline scale) or Lambda for limits&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use Lambda or AFR for limits&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum AFR for correction (Gasoline scale)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this AFR, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minimum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Below this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maximum Lambda for correction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Above this Lambda, correction is paused&lt;br /&gt;
This is corrected for current flex fuel %&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_rich - MAX RICH %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from rich side, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Adjustment deadband_lean - MAX LEAN %&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When close to correct AFR from lean side , pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ignore error magnitude (error is always 0.1% - simple mode)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise.&lt;br /&gt;
&lt;br /&gt;
=== Bank 2 ===&lt;br /&gt;
&lt;br /&gt;
=== Input/Learning state ===&lt;br /&gt;
&lt;br /&gt;
=== Output correction ===&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Time Constant (I) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Add Authority (+) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Short term fuel trim Remove Authority (-) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= VE Table Switch =&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VE Table Switch 2 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== VE Table Switch 2 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Target AFR Table Switch =&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Full table switch or blend pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Pin Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
table switch pin mode&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Parameter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Blend Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Blend mode adds or multiplies the switch table with base, default is switch.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target AFR Table Switch 1 Y axis override&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Target AFR Table Switch 1 ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Fuel Corrections =&lt;br /&gt;
&lt;br /&gt;
== Barometric pressure correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Charge temperature estimation ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Increase rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of increase allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Decrease rate limit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Maximum allowed rate of decrease allowed for the estimated charge temperature&lt;br /&gt;
&lt;br /&gt;
=== RPM+TPS mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/Low TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High RPM/High TPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
=== Airflow interpolation mode ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Low flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at zero flow.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High flow coefficient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Heat transfer coefficient at high flow, as defined by &amp;quot;max air flow&amp;quot;.&lt;br /&gt;
0 means the air charge is fully heated to the same temperature as CLT.&lt;br /&gt;
1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Max air flow&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
High flow point for heat transfer estimation.&lt;br /&gt;
Set this to perhaps 50-75% of your maximum airflow at wide open throttle.&lt;br /&gt;
&lt;br /&gt;
= User Switchable Lambda Target Multipliers =&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 1 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 1 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 2 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 2 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 3 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 3 value&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 pin&lt;br /&gt;
?highlight=class~switch_inputs&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 pin mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target Lambda Multiplier 4 value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Random fuel multiplier 4 value&lt;br /&gt;
&lt;br /&gt;
= TPS Acceleration Enrichment/Wall Wetting AE =&lt;br /&gt;
&lt;br /&gt;
== Acceleration enrichment Base settings(AE) ==&lt;br /&gt;
&lt;br /&gt;
=== Acceleration Enrichment Methods ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable wall wetting Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wall wetting accelerating enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use MAP estimate during transient&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During the TPS AE period, use the MAP estimate table value instead of true MAP (if greater than real MAP). This basically briefly runs in alpha-n during a transient, then returns to normal speed-density mode.&lt;br /&gt;
&lt;br /&gt;
=== Wall Wetting ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wall fueling model type&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;evaporation time constant / tau&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Length of time the deposited wall fuel takes to dissipate after the start of acceleration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;added to wall coef / beta&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Settings ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enable TPS Acceleration Enrichment&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS acceleration enrichment enabled&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE fast or slow callback (20hz = false vs 200hz = true )&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delta TPS Average Smoothing Factor&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A higher alpha (closer to 1) means the EMA reacts more quickly to changes in the data.&lt;br /&gt;
&#039;1&#039; means no filtering, 0.98 would be some filtering.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use calculated threshold from averaged delta tps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
use calcualted threshold from averaged delta tps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Average static threshold curve and dynamic threshold&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
when using dynamic threshold from averaged and multiplied deltatps, average with static threshold curve&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sample Length&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Send a simultaneous shot to all injectors upon TPS AE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Multiplier (global)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extra shot multiplier&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instant Fuel Pulse Inhibit Cycles&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inhibit Extra Shot for this many cycles&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS AE Burn Skip count&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TPS Accel resets EGO to 0%&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
TPS AE resets current EGO to 0%&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhibit closed loop fuel after accel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pause closed loop fueling after acceleration fuel occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel accel.&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Fuel multiplier by engine cycle ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: Delta TPS Average Multiplier for Dynamic Threshold ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS change threshold by RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: TPS vs CLT AE SCALE ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Predictive Map Blend Duration ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: RPM correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE: CLT correction ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== MAP estimate table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs RPM ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs TPS ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs MAP ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== TPS AE instant pulse multiplier vs CLT ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Evap from wall time ==&lt;br /&gt;
&lt;br /&gt;
== Stick to wall fraction ==&lt;br /&gt;
&lt;br /&gt;
== Evap from wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Stick to wall table ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
= Throttle Model Flow =&lt;br /&gt;
&lt;br /&gt;
== Throttle effective % area (TPS -&amp;gt; % tb1 area) ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;br /&gt;
&lt;br /&gt;
== Throttle Model Flow Discharge Coefficient ==&lt;br /&gt;
&lt;br /&gt;
~~PLACEHOLDER~~&lt;/div&gt;</summary>
		<author><name>Ogalic</name></author>
	</entry>
</feed>