#alert "This INI is for test purposes only. Neither it nor the code are fully tested, and they should be used in a vehicle only with caution./n"
; add a semi-colon (;) in front of the alert to disable it
; INI date: 6:01 pm, Nov.02/10"
;-------------------------------------------------------------------------------
[MegaTune]
MTversion = 2.25 ; MegaTune itself; needs to match exec version.
versionInfo = "S" ; Put this in the title bar.
queryCommand = "Q" ; Verify against signature.
signature = "MegaShift 1.100 " ; MegaShift sends a null at 20th byte.
; 123456789.123456789.
;-------------------------------------------------------------------------------
[Constants]
;----------------------------------------------------------------------------
; Constants Definition
; --------------------
;
; Scalar Values
; -------------
; The scaling and translation values are used as follows:
; msValue = userValue / scale - translate
; userValue = (msValue + translate) * scale
;
;
; Array Values
; ------------
; Arrays are specified just like scalars, except that they have a "shape"
; entry in the fourth parameter. The shape allows you to define lists or
; tables, for example [8] defines a list with eight values and [2x4] defines
; a table with eight values (two rows and four columns). Tables may be
; stored in either "X-" or "Y-order." X-order means that memory is layed
; out like.
;
; [x1,y1] [x2,y1]...[xn,y1] [x1,y2]...
;
; Y-order would be
;
; [x1,y1] [x1,y2]...[x1,yn] [x2,y1]...
;
; To use the TableEditor, you must define two lists and a table, and
; the lengths of the lists must correspond to the shape of the table.
;
; Bit Fields
; ----------
; Bits are numbered 0-7, the rightmost being bit zero. The basic
; data word that stores bit fields must be unsigned.
;
; You need NOT supply the correct number of labels matching the
; number of bits you've specified (one bit requires 2 values, two
; bits requires 4 values and so on). If you neglect to supply enough
; labels, they will be synthesized using the sequence "1", "2" and so
; on based upon their position in the sequence (the cltType and matType
; will end up with identical lists).
;
;----------------------------------------------------------------------------
pageActivationDelay = 70 ; Milliseconds delay after burn command.
blockReadTimeout = 300 ; Milliseconds total timeout for reading page.
; The commands sent to the GPIO are formatted "command\CAN_ID\table_ID"
; %2i is the table number - 2 words
; %2o is the offset - 2 words
; %2c is the number of values to be written
; %v is the value(s) to be written
endianness = big
nPages = 2
pageSize = 554, 30
pageIdentifier = "\x01\x04", "\x01\x05"
; burnCommand = "b%2i", "b%2i"
burnCommand = "b\x01\x04", "b\x01\x05"
pageReadCommand = "r%2i%2o%2c", "r%2i%2o%2c"
pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v"
pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v"
; C Type Bits Range MegaTune INI Designation
; ------ ---- ----- ------------------------
; - char (=signed char) 8 -128 to 127 S08 (one byte offset each)
; - unsigned char 8 0 to 255 U08
; ...............................................................................................
; - int (=signed int) 16 -32768 to 32767 S16 (two byte offset each)
; (= short)
; - unsigned int 16 0 to 65535 U16
; (=unsigned short int)
; ................................................................................................
; - long (=signed long) 32 -2³¹ to 2³¹ - 1 S32 (four byte offset each)
; (=long int)
; - unsigned long 32 0 to 2³² - 1 U32
; (=unsigned long int)
; ................................................................................................
; note that variables are signed unless designated otherwise
; For the most part, the parameters below have the same names as in the source code.
; This isn't required (since it is the actual memory addressses that are used),
; but it does help when trying to undertand the source code.
page = 1
; **************************************** inpram *************************************************
;name = class, type, offset, shape, units, scale, translate, lo, hi, decimal digits
InputCaptureEdge = bits, U08, 0, [0:0], "Rising Edge", "Falling Edge"
#if NOT_METRIC
vss_table = array, U16, 1, [ 12 ], "mph", 1.00000, 0.00000, 0, 255, 0 ; vehicle speed tables
#else
vss_table = array, U16, 1, [ 12 ], "kph", 1.00000, 0.00000, 0, 255, 0 ; vehicle speed tables
#endif
LOAD_table = array, S16, 25, [ 12 ], "kpa", 1.00000, 0.00000, 0, 255, 0 ; load bins (x1)
temp_table = array, S16, 49, [ 10 ], "deg", 0.10000, 0.00000, -40, 255, 0 ; deg x 10 (C or F)
gear_table = array, U16, 69, [ 5 ], ":1", 0.00100, 0.00000, 0, 7, 3 ; gear ratio array [5] * 1000
gearR = scalar, U16, 69, ":1", 0.00100, 0.00000, 0, 7, 3, ; reverse gear * 1000
gear1 = scalar, U16, 71, ":1", 0.00100, 0.00000, 0, 7, 3, ; first gear * 1000
gear2 = scalar, U16, 73, ":1", 0.00100, 0.00000, 0, 7, 3, ; second gear * 1000
gear3 = scalar, U16, 75, ":1", 0.00100, 0.00000, 0, 7, 3, ; third gear * 1000
gear4 = scalar, U16, 77, ":1", 0.00100, 0.00000, 0, 7, 3, ; fourth gear * 1000
CAN_enabled = bits, U08, 79, [0:0], "CAN disabled", "CAN enabled"
load_type = bits, U08, 80, [0:0], "Use MAP", "Use TPS"
noTCC_temp = scalar, S16, 81, "deg", 0.10000, 0.00000, 0, 200, 1 ; no TCC lock below this temp (to aid warm-up)
minTCC_gear = scalar, S16, 83, "", 1.00000, 0.00000, 2, 4, 0 ; minimum gear (1-4) for TCC lock
noTCC_load = scalar, U16, 85, "kPa", 0.10000, 0.00000, 0, 10000, 1 ;
LUF_taper = scalar, U08, 87, "sec", 0.10000, 0.00000, 0, 255, 1 ; Lock Up feel taper time (sec x10)
PulseTol = scalar, U08, 88, "%", 1.00000, 0.00000, 0, 100, 0 ; % tolerance for next input pulse
axle_ratio = scalar, U16, 89, ":1", 0.00100, 0.00000, 1, 10, 3 ; rear axle ratio * 1000
#if NOT_METRIC
tire_diam = scalar, U16, 91, "inches", 0.01000, 0.00000, 5, 70, 2 ; tire diameter (inches*100)
#else
tire_diam = scalar, U16, 91, "cm", 0.01000, 0.00000, 15, 180, 2 ; tire diameter (centimeters*100)
#endif
under_rev_limit = scalar, U16, 93, "rpm", 1.00000, 0.00000, 0, 10000, 0 ; minimum resulting rpm for an upshift
trans_type = scalar, U08, 95, "", 1.00000, 0.00000, 0, 1, 0 ; transmission type, 0=4L60E, 1=4R70W
shift_mode = scalar, U08, 96, "", 1.00000, 0.00000, 1, 2, 0 ; Start-up mode 0=manual (disallowed), 1=auto (sequential shift), 2=auto (skip shift)
Metric_Units = bits, U08, 97, [0:0], "Imperial", "Metric"
error_check = bits, U08, 98, [0:0], "Ignore errors", "Report errors"
rpm_limit = scalar, S16, 99, "rpm", 1.00000, 0.00000, 0, 10000, 0 ; Max engine rpm for downshift
debounce = scalar, U08, 101, "", 1.00000, 0.00000, 0, 255, 0 ; Threshold for switch manifold debounce
no_teeth = scalar, U08, 102, "teeth", 1.00000, 0.00000, 1, 255, 0 ; input VSS pulses (teeth/rev)
TCC_PWM_Pd = scalar, U16, 103, "msec", 0.00100, 0.00000, 0.427, 10.888, 3 ; TCC PWM period (usec) - keep between 0.427 and 10.888 msec (92 Hertz and 2340 Hertz)
PC_PWM_Pd = scalar, U16, 105, "msec", 0.00100, 0.00000, 0.427, 10.888, 3 ; PC PWM period (usec) - keep between 0.427 and 10.888 msec (92 Hertz and 2340 Hertz)
SOL32_PWM_Pd = scalar, U16, 107, "msec", 0.00100, 0.00000, 4, 21, 3 ; Sol32 PWM period (usec)
BatFac = scalar, U08, 109, "%/V", -0.10000 0.00000, -25.5, 0, 1 ; Battery PWM correction factor (%x10 per volt)
ms2canID = scalar, U08, 110, "", 1.00000, 0.00000, 0, 16, 0 ; MS-II 'master' CAN ID
msvarBLK = scalar, U08, 111, "", 1.00000, 0.00000, 0, 16, 0 ; outpc block on MS-II
PCneutral = scalar, U08, 112, "%", -1.00000, -100.00, 40, 100, 0 ; pressure in neutral
baud = scalar, U32, 113 "", 1.00000, 0.00000, 115200, 115200, 0 ; baud rate
board_type = scalar, U08, 117, "", 1.00000, 0.00000, 0, 255, 0 ; board type (1-255) of ith board;
trans_can_id = scalar, U08, 118, "", 1.00000, 0.00000, 0, 255, 0 ; can_id (address) of this board (< MAX_CANBOARDS)
can_var_rate = scalar, U16, 119, "", 1.00000, 0.00000, 50, 255, 0 ; rate at which to get CAN variables
auto_table = array, U08, 121, [12x12], "gear", 1.00000, 0.00000, 1, 4, 0 ; The target gear for each LOAD & MPH
pc_table = array, U08, 265, [12x12], "%", -1.00000, -100.00, 40, 100, 0 ; The PWM% for PC solenoid by load and mph
trans_temp_limit = scalar, U16, 409, "deg", 1.00000, 0.00000, 0, 300, 0 ; Transmission temperature limit
pulse_mile = scalar, U16, 411, "", 1.00000, 0.00000, 100, 20000, 0 ; Pulse per mile for speedo output
rpm_check = bits, U08, 413, [0:0], "Do Not Enforce RPM Checks", "Enforce RPM Checks"
#if NOT_METRIC
gear_hyst = scalar, U08, 414, "mph", 0.10000, 0.00000, 0, 10, 1 ; Gear Hysteresis, in mph x10
#else
gear_hyst = scalar, U08, 414, "kph", 0.10000, 0.00000, 0, 10, 1 ; Gear Hysteresis, in mph x10
#endif
kpa_hyst = scalar, U08, 415, "kPa", 0.10000, 0.00000, 0, 10, 1 ; Gear Hysteresis, in kPa x10
max_shift_press = scalar, U08, 416, "%", -1.00000, -100.00, 40, 90, 0 ; Max pressure while shifting
pressure_delay = scalar, U16, 417, "msec", 8.00000, 0.00000, 0, 500, 0 ; Line pressure delay for shiting
shift_delay = scalar, U16, 419, "msec", 8.00000, 0.00000, 0, 500, 0 ; Shift solenoid - actual shift delay
LOADshortcount = scalar, U16, 421, "", 1.00000, 0.00000, 1, 4000, 0 ; LOAD short term filtering factor
LOADlongcount = scalar, U16, 423, "", 1.00000, 0.00000, 1, 600, 0 ; LOAD long term filtering factor
LOADmult = scalar, S16, 425, "kpa/volt", 0.01000, 0.00000, -300, 300, 2 ; non-CAN LOAD multplier (slope)
LOADzero = scalar, S16, 427 "kpa @ 0Volt", 0.01000, 0.00000, -300, 300, 2 ; non-CAN LOAD at 0 volts (y-intercept)
#if NOT_METRIC
minTCCspeed = scalar, U16, 429, "mph", 0.10000, 0.00000, 30, 300, 1 ; minimum TCC lock-up speed (imperial)
#else
minTCCspeed = scalar, U16, 429, "kph", 0.10000, 0.00000, 50, 450, 1 ; minimum TCC lock-up speed (metric)
#endif
PCtemp = array, S08, 431, [10], "%", -0.10000, 0.00000, -12.7, 12.7, 1 ; line pressure adjustment for temp (negative so higher values lower PC DC% = higher pressure)
Output1 = scalar, U08, 441, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for solA
Out11 = bits, U08, 441, [0:0], "Off", "On",
Out12 = bits, U08, 441, [1:1], "Off", "On",
Out13 = bits, U08, 441, [2:2], "Off", "On",
Out14 = bits, U08, 441, [3:3], "Off", "On",
Out15 = bits, U08, 441, [4:4], "Off", "On",
Out16 = bits, U08, 441, [5:5], "Off", "On",
Out17 = bits, U08, 441, [6:6], "Off", "On",
Out18 = bits, U08, 441, [7:7], "Off", "On",
Output2 = scalar, U08, 442, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for solB
Out21 = bits, U08, 442, [0:0], "Off", "On",
Out22 = bits, U08, 442, [1:1], "Off", "On",
Out23 = bits, U08, 442, [2:2], "Off", "On",
Out24 = bits, U08, 442, [3:3], "Off", "On",
Out25 = bits, U08, 442, [4:4], "Off", "On",
Out26 = bits, U08, 442, [5:5], "Off", "On",
Out27 = bits, U08, 442, [6:6], "Off", "On",
Out28 = bits, U08, 442, [7:7], "Off", "On",
Output3 = scalar, U08, 443, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for 3/2sol
Out31 = bits, U08, 443, [0:0], "Off", "On",
Out32 = bits, U08, 443, [1:1], "Off", "On",
Out33 = bits, U08, 443, [2:2], "Off", "On",
Out34 = bits, U08, 443, [3:3], "Off", "On",
Out35 = bits, U08, 443, [4:4], "Off", "On",
Out36 = bits, U08, 443, [5:5], "Off", "On",
Out37 = bits, U08, 443, [6:6], "Off", "On",
Out38 = bits, U08, 443, [7:7], "Off", "On",
out3dc = scalar, U08, 444, "%", 1.00000, 0.00000, 0, 100, 0 ; output3 duty cycle percent when on
#if NOT_METRIC
sp1speed = scalar, U16, 445, "mph", 0.10000, 0.00000, 0, 250, 1 ; spare port 1 speed threshold
sp1speed_hyst = scalar, U16, 447, "mph", 0.10000, 0.00000, 0, 250, 1 ; spare port 1 speed threshold
#else
sp1speed = scalar, U16, 445, "kph", 0.10000, 0.00000, 0, 300, 1 ; spare port 1 speed threshold
sp1speed_hyst = scalar, U16, 447, "kph", 0.10000, 0.00000, 0, 300, 1 ; spare port 1 speed threshold
#endif
sp1speed_cond = bits, U08, 449, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal", "INVALID"
sp1rpm = scalar, U16, 450, "rpm", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 rpm threshold
sp1rpm_hyst = scalar, U16, 452, "rpm", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 rpm threshold
sp1rpm_cond = bits, U08, 454, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal", "INVALID"
sp1load = scalar, U16, 455, "kPa", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 load threshold
sp1load_hyst = scalar, U16, 457, "kPa", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 load threshold
sp1load_cond = bits, U08, 459, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal", "INVALID"
sp1gear = scalar, U08, 460, "", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 gear threshold
sp1gear_cond = bits, U08, 461, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal", "INVALID"
#if NOT_METRIC
sp2speed = scalar, U16, 462, "mph", 0.10000, 0.00000, 0, 250, 1 ; spare port 1 speed threshold
sp2speed_hyst = scalar, U16, 464, "mph", 0.10000, 0.00000, 0, 250, 1 ; spare port 1 speed threshold
#else
sp2speed = scalar, U16, 462, "kph", 0.10000, 0.00000, 0, 300, 1 ; spare port 1 speed threshold
sp2speed_hyst = scalar, U16, 464, "kph", 0.10000, 0.00000, 0, 300, 1 ; spare port 1 speed threshold
#endif
sp2speed_cond = bits, U08, 466, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal", "INVALID"
sp2rpm = scalar, U16, 467, "rpm", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 rpm threshold
sp2rpm_hyst = scalar, U16, 469, "rpm", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 rpm threshold
sp2rpm_cond = bits, U08, 471, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal", "INVALID"
sp2load = scalar, U16, 472, "kPa", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 load threshold
sp2load_hyst = scalar, U16, 474, "kPa", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 load threshold
sp2load_cond = bits, U08, 476, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal" , "INVALID"
sp2gear = scalar, U08, 477, "", 1.00000, 0.00000, 0, 12000, 1 ; spare port 1 gear threshold
sp2gear_cond = bits, U08, 478, [0:1], "No Condition", ">= Greater Than or Equal", "<= Less Than or Equal" , "INVALID"
Input1 = scalar, U08, 479, "", 1.00000, 0.00000, 0, 127, 0 ; input pattern for swA
In11 = bits, U08, 479, [0:0], "Off", "On",
In12 = bits, U08, 479, [1:1], "Off", "On",
In13 = bits, U08, 479, [2:2], "Off", "On",
In14 = bits, U08, 479, [3:3], "Off", "On",
In15 = bits, U08, 479, [4:4], "Off", "On",
In16 = bits, U08, 479, [5:5], "Off", "On",
In17 = bits, U08, 479, [6:6], "Off", "On",
In18 = bits, U08, 479, [7:7], "Off", "On",
Input2 = scalar, U08, 480, "", 1.00000, 0.00000, 0, 127, 0 ; input pattern for swB
In21 = bits, U08, 480, [0:0], "Off", "On",
In22 = bits, U08, 480, [1:1], "Off", "On",
In23 = bits, U08, 480, [2:2], "Off", "On",
In24 = bits, U08, 480, [3:3], "Off", "On",
In25 = bits, U08, 480, [4:4], "Off", "On",
In26 = bits, U08, 480, [5:5], "Off", "On",
In27 = bits, U08, 480, [6:6], "Off", "On",
In28 = bits, U08, 480, [7:7], "Off", "On",
Input3 = scalar, U08, 481, "", 1.00000, 0.00000, 0, 127, 0 ; input pattern for swC
In31 = bits, U08, 481, [0:0], "Off", "On",
In32 = bits, U08, 481, [1:1], "Off", "On",
In33 = bits, U08, 481, [2:2], "Off", "On",
In34 = bits, U08, 481, [3:3], "Off", "On",
In35 = bits, U08, 481, [4:4], "Off", "On",
In36 = bits, U08, 481, [5:5], "Off", "On",
In37 = bits, U08, 481, [6:6], "Off", "On",
In38 = bits, U08, 481, [7:7], "Off", "On",
mlever_mode = bits, U08, 482, [0:0], "3 switches (GM)", "Voltages (Ford)"
mlever_vP = scalar, U16, 483, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for P (converted from ADC count)
mlever_vR = scalar, U16, 485, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for R (converted from ADC count)
mlever_vN = scalar, U16, 487, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for N (converted from ADC count)
mlever_v4 = scalar, U16, 489, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for 4 (converted from ADC count)
mlever_v3 = scalar, U16, 491, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for 3 (converted from ADC count)
mlever_v2 = scalar, U16, 493, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for 2 (converted from ADC count)
mlever_v1 = scalar, U16, 495, "volts", 0.00489, 0.00000, 0, 5.0, 2 ; Volts for 1 (converted from ADC count)
swBDC_OD = bits, U08, 497, [0:0], "Gear lever for 4th (OD)", "OD on swB (on GPI2/Amp6)"
clutch_enable = bits, U08, 498, [0:1], "Use Both Spare Ports", "Use Outputs during shifts only", "Use PT3/Amp32 for LUF and SPR2/PA0/VB2 for TCC", "INVALID"
clutch1up = scalar, U08, 499, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for upshift spare port 1 in clutch mode
clutch11u = bits, U08, 499, [0:0], "Off", "On" ; R-P
clutch12u = bits, U08, 499, [1:1], "Off", "On" ; N-R
clutch13u = bits, U08, 499, [2:2], "Off", "On" ; 4-N
clutch14u = bits, U08, 499, [3:3], "Off", "On" ; 3-4
clutch15u = bits, U08, 499, [4:4], "Off", "On" ; 2-3
clutch16u = bits, U08, 499, [5:5], "Off", "On" ; 1-2
clutch17u = bits, U08, 499, [6:6], "Off", "On" ; not used
clutch18u = bits, U08, 499, [7:7], "Off", "On" ; not used
clutch2up = scalar, U08, 500, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for upshift spare port 2 in clutch mode
clutch21u = bits, U08, 500, [0:0], "Off", "On" ; R-P
clutch22u = bits, U08, 500, [1:1], "Off", "On" ; N-R
clutch23u = bits, U08, 500, [2:2], "Off", "On" ; 4-N
clutch24u = bits, U08, 500, [3:3], "Off", "On" ; 3-4
clutch25u = bits, U08, 500, [4:4], "Off", "On" ; 2-3
clutch26u = bits, U08, 500, [5:5], "Off", "On" ; 1-2
clutch27u = bits, U08, 500, [6:6], "Off", "On" ; not used
clutch28u = bits, U08, 500, [7:7], "Off", "On" ; not used
clutch1dwn = scalar, U08, 501, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for downshift spare port 1 in clutch mode
clutch11d = bits, U08, 501, [0:0], "Off", "On" ; P-R
clutch12d = bits, U08, 501, [1:1], "Off", "On" ; R-N
clutch13d = bits, U08, 501, [2:2], "Off", "On" ; N-4
clutch14d = bits, U08, 501, [3:3], "Off", "On" ; 4-3
clutch15d = bits, U08, 501, [4:4], "Off", "On" ; 3-2
clutch16d = bits, U08, 501, [5:5], "Off", "On" ; 2-1
clutch17d = bits, U08, 501, [6:6], "Off", "On" ; not used
clutch18d = bits, U08, 501, [7:7], "Off", "On" ; not used
clutch2dwn = scalar, U08, 502, "", 1.00000, 0.00000, 0, 127, 0 ; output pattern for downshift spare port 2 in clutch mode
clutch21d = bits, U08, 502, [0:0], "Off", "On" ; P-R
clutch22d = bits, U08, 502, [1:1], "Off", "On" ; R-N
clutch23d = bits, U08, 502, [2:2], "Off", "On" ; N-4
clutch24d = bits, U08, 502, [3:3], "Off", "On" ; 4-3
clutch25d = bits, U08, 502, [4:4], "Off", "On" ; 3-2
clutch26d = bits, U08, 502, [5:5], "Off", "On" ; 2-1
clutch27d = bits, U08, 502, [6:6], "Off", "On" ; not used
clutch28d = bits, U08, 502, [7:7], "Off", "On" ; not used
FWD_factor = scalar, U16, 503, ":1", 0.00100, 0.00000, 1.960, 6.000, 3 ; Speedo correction factor in 4WD (PE1 grounded)
upshift_retard = scalar, U08, 505, "deg", 0.10, 0.00000, 0.0, 25.5, 1 ; Upshift timing retard
dwnshift_retard = scalar, U08, 506, "deg", 0.10, 0.00000, 0.0, 25.5, 1 ; Downshift timing retard
gear2_retard = scalar, U08, 507, "deg", 0.10, 0.00000, 0.0, 25.5, 1 ; 2nd gear timing retard
gear3_retard = scalar, U08, 508, "deg", 0.10, 0.00000, 0.0, 25.5, 1 ; 3rd gear timing retard
gear4_retard = scalar, U08, 509, "deg", 0.10, 0.00000, 0.0, 25.5, 1 ; 4th gear timing retard
Tretard_load = scalar, U16, 510, "kPa", 0.10, 0.00000, 0.0, 250.0, 1 ; timing retard only above load (kpax10)
LUF_off = scalar, U08, 512, "%", 1.00, 0.00000, 0.0, 100.0, 0 ; Lock-Up feel solenoid off state (%)
LUF_loLoad = scalar, U16, 513, "kPa", 0.10, 0.00000, 0.0, 255.0, 1 ; Lock Up Feel soln. low load
LUF_hiLoad = scalar, U16, 515, "kPa", 0.10, 0.00000, 0.0, 255.0, 1 ; Lock Up Feel soln. high load
LUF_loPWM = scalar, U08, 517, "%", 1.00, 0.00000, 0.0, 100.0, 0 ; Lock-Up feel solenoid PWM% at low load (%)
LUF_hiPWM = scalar, U08, 518, "%", 1.00, 0.00000, 0.0, 100.0, 0 ; Lock-up feel solenoid PWM% at high load (%)
digital_threshold = scalar, U16, 519, "volts", 0.00489, 0.00000, 0.0, 5.000, 3 ; digital threshold for ADC count to on/off
shftr_accum = scalar, U16, 521, "", 1.00, 0.00000, 0.0, 2000, 0 ; shifter accumulator - buttin sensitivity (lower is more sensitive)
#if NOT_METRIC
hyst_enable_speed = scalar, U16, 523, "mph", 0.10, 0.00000, 0.0, 15.00, 1 ; no shift hysteresis below this speed
#else
hyst_enable_speed = scalar, U16, 523, "kph", 0.10, 0.00000, 0.0, 15.00, 1 ; no shift hysteresis below this speed
#endif
vss_mask = scalar, U08, 525, "%", 1.00, 0.00000, 0.0 200.00, 0 ; VSS interrupt mask (%)
stdin_cfg = scalar, U08, 526, "", 1.00, 0.00000, 0.0, 255.00, 0 ; configure standard inputs (temp and 2/4WD)
FWD_cfg = bits, U08, 526, [0:0], "Log only", "Use to switch sepeedo"
TMP_cfg = bits, U08, 526, [1:1], "Log only", "Use as trans temperature"
TMP_adc = bits, U08, 526, [2:2], "Log ADC count", "Log temperature"
spare1 = scalar, U08, 527, "%", 1.00, 0.0000, 0.0, 255.00, 0 ;
spare2 = scalar, U08, 528, "%", 1.00, 0.0000, 0.0, 255.00, 0 ;
vss_error_max = scalar, U16, 529, "", 1.00, 0.0000, 0.0, 50000.00, 0 ;
line_units = bits, U08, 531, [0:0], "Use pressure table", "Report ADC count"
inj_flow = scalar, U16, 532, "pph", 0.01, 0.0000, 0.0, 200.00, 2 ; injector flow rate (lb/hr)
open_time = scalar, U08, 534, "msec", 0.01, 0.0000, 0.0, 2.55, 2 ; injector open time
fuel_density = scalar, U16, 535, "lb/gal", 0.001, 0.0000, 0.0, 32.000, 3 ; fuel density in pounds per gallon
nSquirts = scalar, U08, 537, "", 1.00, 0.0000, 1.0, 16.000, 0 ; number of squirts (divide by 2 if alternating)
refresh_int = scalar, U16, 538, "msec", 1.00, 0.0000, 10, 20000, 0 ; the interval time (msec) between dithers for output1 and output2
refresh_dur = scalar, U16, 540, "msec", 1.00, 0.0000, 0, 10000, 0 ; the 100% duty cycle time for output1 and output2
dither_intPC = scalar, U16, 542, "msec", 1.00, 0.0000, 10, 20000, 0 ; the interval time (msec) between dithers for the pressure control output
dither_durPC = scalar, U16, 544, "msec", 1.00, 0.0000, 0, 10000, 0 ; the 100% duty cycle time for the pressure control output
out12_pwm_off = scalar, U08, 546, "msec", 0.128, 0.0000, 0, 32.64, 3 ; output1 and output2 off duration (in 0.128 clock tics)
out12_pwm_on = scalar, U08, 547, "msec", 0.128, 0.0000, 0.128, 32.64, 3 ; output1 and output2 off duration (in 0.128 clock tics)
brake_ON_polarity = bits, U08, 548, [0:0], "Low Volts is Brake ON", "High Volts (12V) is Brake ON"
WOT_tps_threshold = scalar, U16, 549, "%", 0.0976, 0.0000, 0, 100, 1 ; TPS from MS-II over CAN
iss_mask = scalar, U08, 551, "%", 1.00, 0.00000, 0.0 200.00, 0 ; ISS interrupt mask (%)
ic2_usage = bits, U08, 552, [0:1], "Disable", "Input Shaft Speed", "Tach Input", "INVALID"
ic2_edge = bits, U08, 552, [7:7], "Rising Edge", "Falling Edge"
iss_divider = scalar, U08, 553, "teeth/rev", 1.00, 0.0000, 1.0, 255, 0 ; ISS/tach divider (number of teeth/rev)
; ****************************************************************** end inpram *********************
; pageSize = 553 + 1 = 554 (= 22A hex) bytes
page = 2
; *************** in2ram ****************************************************************************
; not used at present, but put in place for future expansion
spare21 = scalar, S16, 0, "", 1.00000, 0.00000, 0, 32000, 0 ; spare1 in in2ram
spare22 = scalar, S16, 2, "", 1.00000, 0.00000, 0, 32000, 0 ; spare2 in in2ram
spare23 = scalar, S16, 4, "", 1.00000, 0.00000, 0, 32000, 0 ; spare3 in in2ram
spare24 = scalar, S16, 6, "", 1.00000, 0.00000, 0, 32000, 0 ; spare4 in in2ram
spare25 = scalar, S16, 8, "", 1.00000, 0.00000, 0, 32000, 0 ; spare5 in in2ram
spare26 = scalar, S16, 10, "", 1.00000, 0.00000, 0, 32000, 0 ; spare6 in in2ram
spare27 = scalar, S16, 12, "", 1.00000, 0.00000, 0, 32000, 0 ; spare7 in in2ram
spare28 = scalar, S16, 14, "", 1.00000, 0.00000, 0, 32000, 0 ; spare8 in in2ram
spare29 = scalar, S16, 16, "", 1.00000, 0.00000, 0, 32000, 0 ; spare9 in in2ram
spare210 = scalar, S16, 18, "", 1.00000, 0.00000, 0, 32000, 0 ; spare10 in in2ram
spare211 = scalar, S16, 20, "", 1.00000, 0.00000, 0, 32000, 0 ; spare11 in in2ram
spare212 = scalar, S16, 22, "", 1.00000, 0.00000, 0, 32000, 0 ; spare11 in in2ram
spare213 = scalar, S16, 24, "", 1.00000, 0.00000, 0, 32000, 0 ; spare13 in in2ram
spare214 = scalar, S16, 26, "", 1.00000, 0.00000, 0, 32000, 0 ; spare14 in in2ram
spare215 = scalar, S16, 28, "", 1.00000, 0.00000, 0, 32000, 0 ; spare15 in in2ram
; ****************************************************************** end in2ram *********************
; pageSize = 28 + 2 = 30 = 1Eh
[Menu]
;----------------------------------------------------------------------------
; There are five pre-defined values that may be used to define your menus.
; The first four allow access to the "standard" dialog boxes, the last one
; merely draws a separator (horizontal line) in the menu.
;
; std_constants
; std_enrichments
; std_realtime
; std_warmup
; std_accel
;
; std_separator
;
; If you use any of the std_constants, std_enrichments or std_warmup
; editors, they may be optionally suffixed with a page number (only
; useful for multi-page code variants), which causes them to edit the
; specified page. If you leave off the page specifier, they edit logical
; page one as specified in the Constants section.
;
; There are four special menu names, which when used append to the standard
; menus of the same name instead of creating a new one. The menu names
; are "File", "Communications", "Tools" and "Help".
;
;----------------------------------------------------------------------------
menuDialog = main
menu = "&General Settings"
subMenu = revlimits, "&Rev Limits"
subMenu = gearRatios, "&Gear Ratios"
subMenu = shiftFactors, "&Shift Factors"
subMenu = PWMSettings, "Solenoid &PWM Setup"
subMenu = VSSSettings, "&VSS Setup"
subMenu = TCCSettings, "&TCC Settings"
subMenu = stdIN, "Standard &Inputs Configuration"
subMenu = Dither, "P&WM Refresh/Dither"
; subMenu = drag, "Drag Race Logging Configuration"
subMenu = ISSSettings, "ISS/&non-CAN Tach Setup"
subMenu = noCANload, "non-CAN &Load Calibration", 0, { !CAN_enabled }
subMenu = Units, "&Units"
subMenu = errorCheck, "&Error Behavior"
menuDialog = main
menu = "Shift &Logic Patterns"
subMenu = leverType, "&Configure Lever Type and 'Clutch' Outputs"
subMenu = std_separator ;----------------------------------------------
subMenu = outPattern1, "Configure &Output 1"
subMenu = outPattern2, "Configure O&utput 2"
subMenu = outPattern3, "Configure Ou&tput 3"
subMenu = std_separator ;----------------------------------------------
subMenu = InPattern1a, "Configure &Input 1", 0, {mlever_mode==0}
subMenu = InPattern1b, "Configure I&nput 1 Voltages", 0, {mlever_mode==1}
subMenu = InPattern2, "Configure In&put 2", 0, {mlever_mode==0}
subMenu = InPattern3, "Configure Inpu&t 3", 0, {mlever_mode==0}
subMenu = std_separator ;----------------------------------------------
subMenu = clutch1, "Clutc&h Pattern 1", 0, {clutch_enable==1}
subMenu = clutch2, "Clutch P&attern 2", 0, {clutch_enable==1}
subMenu = std_separator ;----------------------------------------------
subMenu = LUFparams, "&Lock-Up Feel Parameters", 0, {clutch_enable==2}
menuDialog = main
menu = "T&ables"
subMenu = geartable, "&Gear Auto-Shift Table"
subMenu = pctable, "&Pressure Control Table", 0
menuDialog = main
menu = "&Bins"
subMenu = loadBins, "Edit &MAP Bins"
subMenu = mphBins, "Edit &Speed Bins"
subMenu = tempBins, "Edit &Temperature Bins"
menuDialog = main
menu = "&Tuning"
subMenu = gearmap, "&Gear Shift Table"
subMenu = pcmap, "&Pressure Control Table", 0
subMenu = PCtemp_adjust, "&Line Pressure vs. Temp."
menuDialog = main
menu = "&Spare Ports"
subMenu = sp1, "&Spare Port 1 (VB1)", 0, {clutch_enable==0 || clutch_enable==2}
subMenu = sp2, "S&pare Port 2 (VB2)", 0, {clutch_enable==0}
menuDialog = main
menu = "T&ools"
subMenu = std_ms2gentherm, "&Calibrate T&hermistor Table..."
; subMenu = sensorCal, "&Sensor Calibration..."
subMenu = canconfig, "C&AN Configuration"
menu = "&Help"
subMenu = helpGeneral, "&MegaShift/GPIO Info"
subMenu = burnHelp, "&Burning Values to ECU"
;-------------------------------------------------------------------------------
[UserDefined]
dialog = revlimits, "Rev Limits"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gr"
field = "#Rev Limits"
field = "#(shift not allowed if it will"
field = "#result in exceeding these limits)"
field = "RPM Checking", rpm_check
field = "Lower Rev Limit", under_rev_limit, { rpm_check }
field = "Upper Rev Limit", rpm_limit, { rpm_check }
dialog = errorCheck, "Error Behavior"
topicHelp=""
field = "On error", error_check
field = "If set, errors will be displayed in 'Codes' indicator below,"
field = "on the Error gauge, and in the datalog."
field = "Otherwise they will be ignored."
dialog = VSSSettings, "VSS Settings"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gv"
field = "!Number of VSS Teeth", no_teeth
field = "!Input Capture Edge", InputCaptureEdge
field = "!VSS Input Masking", vss_mask
field = "Maximum errors to reset", vss_error_max
field = "!Axle Ratio", axle_ratio
field = "!Tire Diameter", tire_diam
field = "!Output pulse/mile(km)", pulse_mile
field = "!4WD Speedo Correction", FWD_factor, { FWD_cfg }
field = "#!Any changes require a restart to take effect"
field = "#Fuel Efficiency Factors"
field = "Injector Flow Rate", inj_flow
field = "Injector Open Time", open_time
field = "Fuel Density", fuel_density
field = "Number of Squirts", nSquirts
field = "#divide by 2 if alternating"
dialog = ISSSettings, "ISS/non-CAN Tach Settings"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gn"
field = "!ISS/Tach Input Usage", ic2_usage
field = "Pulses/Revolution", iss_divider, { ic2_usage > 0 }
field = "Input Mask", iss_mask, { ic2_usage > 0 }
field = "!Input Capture Edge", ic2_edge, { ic2_usage > 0 }
; dialog = retards, "Timing Adjustments"
; topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#"
; field = "Retard only above", Tretard_load, { CAN_enabled }
; field = "Upshift Retard", upshift_retard, { CAN_enabled }
; field = "Downshift Retard", dwnshift_retard, { CAN_enabled }
; field = "2nd Gear Retard", gear2_retard, { CAN_enabled }
; field = "3rd Gear Retard", gear3_retard, { CAN_enabled }
; field = "4th Gear Retard", gear4_retard, { CAN_enabled }
dialog = gearRatios, "Gear Ratios"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gg"
field = "First Gear", gear1
field = "Second Gear", gear2
field = "Third Gear", gear3
field = "Fourth Gear", gear4
field ="#"
field = "Reverse Gear", gearR
dialog = Dither, "PWM Refresh and Dithering"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gw"
field = "PWM Refresh Interval", refresh_int
field = "PWM Refresh Duration", refresh_dur
field = "PC Dither Interval", dither_intPC
field = "PC Dither Duration", dither_durPC
dialog = outPattern1, "Output 1 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#lo"
field = "#Output 1 - PE4/VB3/Amp23"
field = "Park", Out11
field = "Neutral", Out12
field = "Reverse", Out13
field = "First gear", Out14
field = "Second gear", Out15
field = "Third gear", Out16
field = "Fourth gear", Out17
dialog = outPattern2, "Output 2 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#lo"
field = "#Output 2 - PM2/VB4/Amp35"
field = "Park", Out21
field = "Neutral", Out22
field = "Reverse", Out23
field = "First gear", Out24
field = "Second gear", Out25
field = "Third gear", Out26
field = "Fourth gear", Out27
dialog = outPattern3, "Output 3 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#lo"
field = "#Output 3 - PT1/PWM4/Amp34"
field = "Park", Out31
field = "Neutral", Out32
field = "Reverse", Out33
field = "First gear", Out34
field = "Second gear", Out35
field = "Third gear", Out36
field = "Fourth gear", Out37
field = "#"
field = "Output3 DC when on", out3dc
dialog = leverType, "Manual Lever Type and 'Clutch' Outputs"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#lc"
field = "#Input 1 = PAD00/EGT4/Amp26"
field = "#Input 2 = PAD01/GPI2/Amp6"
field = "#Input 3 = PAD03/EGT3/Amp25"
field = "Manual Lever Mode", mlever_mode
field = "Digital Voltage Threshold", digital_threshold, {mlever_mode==0}
field = "Overdrive (4th) Selector", swBDC_OD, {mlever_mode==1}
field = "#SP1 = PT7/VB1/Amp11, SP2 = PA0/VB2/Amp12"
field = "!Spare Port Usage", clutch_enable
dialog = LUFparams, "Lock-Up Feel Parameters"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#ll"
field = "#Lock -Up Feel Solenoid (on SPR2)"
field = "PWM% when TCC Unlocked", LUF_off, {clutch_enable==2}
field = "# Lock-Up Feel Low Load:"
field = "Low Load Value", LUF_loLoad, {clutch_enable==2}
field = "PWM% at Low Load", LUF_loPWM, {clutch_enable==2}
field = "# Lock-Up Feel High Load:"
field = "High Load Value", LUF_hiLoad, {clutch_enable==2}
field = "PWM% at High Load", LUF_hiPWM, {clutch_enable==2}
field = "Lock-Up Feel Taper Time", LUF_taper, {clutch_enable==2}
dialog = clutch1, "Clutch Output1 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#lh"
field = "#Spare Output 1 - VB1/Amp11"
field = "UPSHIFTS"
; field = "SP1 on R to P", clutch11u, {clutch_enable==1}
; field = "SP1 on N to R", clutch11u, {clutch_enable==1}
; field = "SP1 on 4 to N", clutch11u, {clutch_enable==1}
field = "SP1 on 3 to 4", clutch11u, {clutch_enable==1}
field = "SP1 on 2 to 3", clutch11u, {clutch_enable==1}
field = "SP1 on 1 to 2", clutch11u, {clutch_enable==1}
field = "DOWNSHIFTS"
; field = "SP1 on P to R", clutch11d, {clutch_enable==1}
; field = "SP1 on R to N", clutch11d, {clutch_enable==1}
; field = "SP1 on N to 4", clutch11d, {clutch_enable==1}
field = "SP1 on 4 to 3", clutch11d, {clutch_enable==1}
field = "SP1 on 3 to 2", clutch11d, {clutch_enable==1}
field = "SP1 on 2 to 1", clutch11d, {clutch_enable==1}
dialog = clutch2, "Clutch Output2 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#lp"
field = "#Spare Output 1 - VB2/Amp12"
field = "UPSHIFTS"
; field = "SP2 on R to P", clutch21u, {clutch_enable==1}
; field = "SP2 on N to R", clutch21u, {clutch_enable==1}
; field = "SP2 on 4 to N", clutch21u, {clutch_enable==1}
field = "SP2 on 3 to 4", clutch21u, {clutch_enable==1}
field = "SP2 on 2 to 3", clutch21u, {clutch_enable==1}
field = "SP2 on 1 to 2", clutch21u, {clutch_enable==1}
field = "DOWNSHIFTS"
; field = "SP2 on P to R", clutch21d, {clutch_enable==1}
; field = "SP2 on R to N", clutch21d, {clutch_enable==1}
; field = "SP2 on N to 4", clutch21d, {clutch_enable==1}
field = "SP2 on 4 to 3", clutch21d, {clutch_enable==1}
field = "SP2 on 3 to 2", clutch21d, {clutch_enable==1}
field = "SP2 on 2 to 1", clutch21d, {clutch_enable==1}
dialog = InPattern1a, "Input 1 Voltages"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#li"
field = "#Input 1 - PAD00/GPI1/Amp5"
field = "Park", In11, {mlever_mode==0}
field = "Neutral", In12, {mlever_mode==0}
field = "Reverse", In13, {mlever_mode==0}
field = "First gear", In14, {mlever_mode==0}
field = "Second gear", In15, {mlever_mode==0}
field = "Third gear", In16, {mlever_mode==0}
field = "Fourth gear", In17, {mlever_mode==0}
dialog = InPattern1b, "Input 1 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#li"
field = "#Input 1 - PAD00/GPI1/Amp5"
field = "-----------"
field = "Park", mlever_vP, {mlever_mode==1}
field = "Reverse", mlever_vR, {mlever_mode==1}
field = "Neutral", mlever_vN, {mlever_mode==1}
field = "4th", mlever_v4, {mlever_mode==1}
field = "3rd", mlever_v3, {mlever_mode==1}
field = "2nd", mlever_v2, {mlever_mode==1}
field = "1st", mlever_v1, {mlever_mode==1}
dialog = InPattern2, "Input 2 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#li"
field = "#Input 2 - PAD03/EGT3/Amp25"
field = "Park", In21, {mlever_mode==0}
field = "Neutral", In22, {mlever_mode==0}
field = "Reverse", In23, {mlever_mode==0}
field = "First gear", In24, {mlever_mode==0}
field = "Second gear", In25, {mlever_mode==0}
field = "Third gear", In26, {mlever_mode==0}
field = "Fourth gear", In27, {mlever_mode==0}
dialog = InPattern3, "Input 3 Pattern"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#li"
field = "#Input 3 - "
field = "Park", In31, {mlever_mode==0}
field = "Neutral", In32, {mlever_mode==0}
field = "Reverse", In33, {mlever_mode==0}
field = "First gear", In34, {mlever_mode==0}
field = "Second gear", In35, {mlever_mode==0}
field = "Third gear", In36, {mlever_mode==0}
field = "Fourth gear", In37, {mlever_mode==0}
dialog = shiftFactors, "Shift factors"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gs"
field = "Auto Shift Mode", shift_mode, {clutch_enable==0}
field = "#1=sequential, 2=skip shift"
field = "#(always used at start-up)"
field = "Shift Button Duration", shftr_accum
field = "LOAD Smoothing Factor", LOADshortcount
; field = "LOAD Long Term Filter Factor", LOADlongcount -- implemented, but result not used, so not exposed
field = "Max. Shift Line Pressure", max_shift_press
field = "Shift Pressure Adjustment Delay", pressure_delay
field = "Shift Completion Delay", shift_delay
field = "Shift Speed Hystersis", gear_hyst
field = "Shift kPa Hystersis", kpa_hyst
field = "Hysteresis Enable Speed", hyst_enable_speed
field = "Line pressure in neutral", PCneutral
field = "WOT TPS Threshold", WOT_tps_threshold
dialog = PWMSettings, "Solenoid PWM Setup"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gp"
field = "TCC PWM Period", TCC_PWM_Pd
field = "PC PWM Period", PC_PWM_Pd
field = "PC Voltage Correction", BatFac
field = "Output3 PWM Period", SOL32_PWM_Pd
field = ""
field = "#Ouput1 and Output 2 PWM Parameters"
field = "Output1=PE4/VB3/Amp23 - Output2=PM2/VB4/Amp25"
field = "Output1/2 times are rounded to multiples of 0.128 msec"
field = "Output1/2 ON Period", out12_pwm_on, { out12_pwm_off }
field = "Output1/2 OFF Period", out12_pwm_off
field = "#PWM freq. = 1000/(ON Period + OFF Period)"
field = "#PWM percent = (ON Period/OFF Period) * 100"
field = "#Disable PWM by setting OFF Period to zero (0)"
dialog = TCCSettings, "Torque Converter Clutch Settings"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gt"
field = "Min. Gear for TCC Lock", minTCC_gear
field = "Min. TCC Lock-Up Speed", minTCCspeed
field = "Min. Temp. for TCC Lock", noTCC_temp
field = "Lock TCC Above Temperature", trans_temp_limit, { TMP_cfg }
field = "No TCC above", noTCC_load
dialog = noCANload, "Non-CAN Load Settings"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gl"
field = "Multiplier", LOADmult, { !CAN_enabled }
field = "Load at 0 volts", LOADzero, { !CAN_enabled }
field ="#Load is Voltage on pin 24"
field ="#times Multiplier,"
field ="#plus Load @ 0 volts"
dialog = stdIN, "Standard Inputs Configuration"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gi"
field = "2/4WD input usage", FWD_cfg
field = "Temperature Sensor Usage", TMP_cfg
field = "Temperature Sensor Logging", TMP_adc, { !TMP_cfg }
field = "Line Pressure Reporting", line_units
field = "Brake Signal Polarity", brake_ON_polarity
dialog = canconfig, "CAN Configuration"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#oa"
field = "#Controller Area Network set-up"
field = "!CAN Usage", CAN_enabled
field = "!CAN ID (GPIO)", trans_can_id, { CAN_enabled }
field = "CAN Load Variable", load_type, { CAN_enabled }
field = "!Board Type", board_type, { CAN_enabled }
field = "!MS-II CAN ID", ms2canID, { 0 } ; change to { 1 } to make editable
field = "!MS-II outpc block", msvarBLK, { 0 } ; change to { 1 } to make editable
field = "!CAN Fetch Rate", can_var_rate, { CAN_enabled }
field = "If CAN is disabled, load is determined"
field = "from 0-5V auxillary input on AMP pin 24"
field = "See 'General Settings/Non-CAN Load Settings'"
dialog = Units, "Units"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#gu"
field = "!Metric/Imperial Units", Metric_Units
field = "This changes the values for the controller's internal"
field = "calculations, and the values returned to MegaTune."
field = "To change the units displayed in MegaTune"
field = "(ex. from mph to kph on the gauges),"
field = "'unset' NOT_METRIC in the settings.ini using"
field = "the configurator."
; dialog = sensorCal, "Sensor Calibration"
; topicHelp = sensorHelp
; field = "#Coolant Temperature Sensor Scaling"
; field = "Offset at 0 v", clt0
; field = "Scale factor", cltmult
dialog = mphBins, "Edit Speed Bins"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#bm"
field = "#Speed Bins for all Tables"
array1D = "", "Vehicle Speed %INDEX% ", vss_table
dialog = loadBins, "Edit MAP Bins"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#bs"
field = "#MAP Bins for all Tables"
array1D = "", "Load %INDEX% ", LOAD_table
dialog = tempBins, "Edit Temperature Table Values"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#bt"
field = "#Temperature Bins for Warmup, etc."
array1D = "", "Temperature %INDEX% ", temp_table
dialog = sp1, "Spare Port 1 (PT7/VB1/Amp11)"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#ss"
field = "Speed threshold", sp1speed, {clutch_enable==0 || clutch_enable==2}
field = "Speed condition", sp1speed_cond, {clutch_enable==0 || clutch_enable==2}
field = "Speed hysteresis", sp1speed_hyst, {clutch_enable==0 || clutch_enable==2}
field = "#AND"
field = "RPM threshold", sp1rpm, {clutch_enable==0 || clutch_enable==2}
field = "RPM condition", sp1rpm_cond, {clutch_enable==0 || clutch_enable==2}
field = "RPM hysteresis", sp1rpm_hyst, {clutch_enable==0 || clutch_enable==2}
field = "#AND"
field = "Load threshold", sp1load, {clutch_enable==0 || clutch_enable==2}
field = "Load condition", sp1load_cond, {clutch_enable==0 || clutch_enable==2}
field = "Load hysteresis", sp1load_hyst, {clutch_enable==0 || clutch_enable==2}
field = "#AND"
field = "Gear threshold", sp1gear, {clutch_enable==0 || clutch_enable==2}
field = "Gear condition", sp1gear_cond, {clutch_enable==0 || clutch_enable==2}
dialog = sp2, "Spare Port 2 (PA0/VB2/Amp12)"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#sp"
field = "Speed threshold", sp2speed, {clutch_enable==0}
field = "Speed condition", sp2speed_cond, {clutch_enable==0}
field = "Speed hysteresis", sp2speed_hyst, {clutch_enable==0}
field = "#AND"
field = "RPM threshold", sp2rpm, {clutch_enable==0}
field = "RPM condition", sp2rpm_cond, {clutch_enable==0}
field = "RPM hysteresis", sp2rpm_hyst, {clutch_enable==0}
field = "#AND"
field = "Load threshold", sp2load, {clutch_enable==0}
field = "Load condition", sp2load_cond, {clutch_enable==0}
field = "Load hysteresis", sp2load_hyst, {clutch_enable==0}
field = "#AND"
field = "Gear threshold", sp2gear, {clutch_enable==0}
field = "Gear condition", sp2gear_cond, {clutch_enable==0}
help = burnHelp, "Burning Values to ECU"
webHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#hb"
text = "Occassionally, you may have trouble getting values to 'stick'"
text = "in MegaTune. There are a few things you can try if this happens:
"
text = "\tHit TAB after entering the value. This forces MegaTune to"
text = "recognize the changed value.
"
text = "\tThen 'Burn to ECU'
"
text = "If that doesn't work:
"
text = "\tChange the value (as above) and immediately save the MSQ file ('File/Save').
"
text = "\tThen reload the file you just saved, and burn it when prompted.
"
text = "This forces all the values to be burned to both flash and RAM memory, and"
text = "should solve the problem."
help = sensorHelp, "Sensor Calibration"
webHelp = "http://www.megamanual.com/megatune.htm#os"
text = "MAP Sensor Calibration
"
text = "
"
text = "For the\tMPX4115 use\t10.6 and \t121.7
"
text = "\tMPX4250\t\t10.0\t260.0
"
text = "\tMPXH6300\t1.1\t315.5
"
text = "\tGM 3-BAR\t1.1\t315.5
"
text = "\tMPXH6400\t3.5\t416.5
"
text = "
"
text = "(GM 3-bar data from Dave Hartnell, http://www.not2fast.com/electronics/component_docs/MAP_12223861.pdf)
"
text = "
"
text = "\tSensor type\tvLo\tpLo\tvHi\tpHi\tvRef
"
text = "\tMPX4115 \t0.204 v\t15 kPa\t4.794 v\t115 kPa\t5.100 v
"
text = "\tMPX4250 \t0.204 v\t20 kPa\t4.896 v\t250 kPa\t5.100 v
"
text = "\tMPXH6300\t0.306 v\t20 kPa\t4.913 v\t304 kPa\t5.100 v
"
text = "\tGM 3-BAR\t0.631 v\t40 kPa\t4.914 v\t304 kPa\t5.100 v
"
text = "\tMPXH6400\t0.200 v\t20 kPa\t4.800 v\t400 kPa\t5.000 v
"
text = "
"
text = "In general, use values derived from these equations:
"
text = "
"
text = "\tm = (pHi-pLo)/(vHi-vLo)
"
text = "\tpv1 = pLo - m * vLo
"
text = "\tpv2 = pv1 + m * vRef
"
text = "
"
text = "References:
"
text = "\thttp://www.freescale.com/files/sensors/doc/data_sheet/MPX4115A.pdf
"
text = "\thttp://www.freescale.com/files/sensors/doc/data_sheet/MPX4250A.pdf
"
text = "\thttp://www.freescale.com/files/sensors/doc/data_sheet/MPXH6300A.pdf
"
text = "\thttp://www.freescale.com/files/sensors/doc/data_sheet/MPXH6400A.pdf
"
help = helpGeneral, "GPIO/4L60E General Help"
webHelp = "http://www.megamanual.com/gpio/mshift/"
text = "Al Grippo and Bruce Bowling have created the GPIO (general purpose"
text = "input/output) board, which is an 'intelligent' input/output"
text = "expansion board that communicates with MegaSquirt-II(tm) via"
text = "a CAN (controller area network)."
text = "
"
text = "The embedded code for the GPIO MegaShift(tm) trans controller is written"
text = "in C, rather than assembly language, so it should be more accessible"
text = "to more beginning programmers
"
text = "
"
text = "For the full manual, see: www.msgpio.com/manuals/mshift/"
text = "
"
text = "For current documentation, click the Web Help button below, or for"
text = "support questions visit www.msgpio.com/forum/"
;-------------------------------------------------------------------------------
[CurveEditor]
curve = PCtemp_adjust, "Temperature v. Line Pressure Adjustments"
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#"
columnLabel = "Temp.", "PC%"
xAxis = -40, 220, 9
yAxis = -100, 100, 5
xBins = temp_table, clt
yBins = PCtemp
gauge = line_pressure
[TableEditor]
; table_id, map3d_id, "title", page
table = geartable, gearmap, "Gear Shift Table", 2
; constant, variable
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#ag"
xBins = vss_table, speedo, readonly
yBins = LOAD_table, LOAD, readonly
zBins = auto_table
upDownLabel = "UP", "DOWN"
gridHeight = 0.7
gridOrient = 230, 0, 340 ; Space 123 rotation of grid in degrees.
table = pctable, pcmap, "Pressure Control Table", 2
topicHelp = "http://www.msgpio.com/manuals/mshift/4L60E_MT.html#ap"
xBins = vss_table, speedo, readonly
yBins = LOAD_table, LOAD, readonly
zBins = pc_table
upDownLabel = "+", "-"
gridHeight = 0.7
gridOrient = 220, 0, 340
;-------------------------------------------------------------------------------
[GaugeConfigurations]
;-------------------------------------------------------------------------------
; Notes on some of the gauges.
;
; The accelEnrichGauge is now a composite of both acceleration enrichment
; and deceleration enleanment numbers. See the definition of the variable
; accDecEnrich in the OutputChannels section.
;
; David Hooke contributed the lambda gauge and associated transfer
; function files.
;
; The lambda gauge is the best way (my opinion) to report data from a
; wide band EGO gauge, it standardizes the output irrespective of fuel
; or mix of fuels, so you needn't do any brainwork to know if your 75%
; gasoline and 25% methanol is rich at 10:1 or not.
;
; Use the file WBlambda100AVR.inc, if using a standard ADC (e.g., AVR cpu).
; Use the file WBlambda100MOT.inc, if using a biased ADC (e.g., MOT cpu).
;-------------------------------------------------------------------------------
; Define a gauge's characteristics here, then go to a specific layout
; block (Tuning or FrontPage) and use the name you've defined here to
; display that gauge in a particular position.
;
; Name = Case-sensitive, user-defined name for this gauge configuration.
; Var = Case-sensitive name of variable to be displayed, see the
; OutputChannels block in this file for possible values.
; Title = Title displayed at the top of the gauge.
; Units = Units displayed below value on gauge.
; Lo = Lower scale limit of gauge.
; Hi = Upper scale limit of gauge.
; LoD = Lower limit at which danger color is used for gauge background.
; LoW = Lower limit at which warning color is used.
; HiW = Upper limit at which warning color is used.
; HiD = Upper limit at which danger color is used.
; vd = Decimal places in displayed value
; ld = Label decimal places for display of Lo and Hi, above.
;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld
AdvDegGauge = adv_deg, "Ignition Advance", "degrees", 5, 50, -1, -1, 999, 999, 1, 1
AuxVolts = aux_volts, "Aux. Channel Volts", "Volts", 0, 5, 0, 0, 5, 5, 3, 0
BatteryVolts = vBatt, "Battery Voltage", "Volts", 6, 20, 8, 10, 16, 18, 1, 0
Clock = secl, "Clock", "sec", 0, 255, 1, 2, 254, 255, 0, 0
Converter_slip = converter_slip,"Converter", "%", 0, 200, -1, -1, 200, 200, 0, 0
DShaft_RPM = os_rpm, "Driveshaft RPM", "", 0, 6000, -1, -1, 5000, 5500, 0, 0
Error = error, "Status", "", 0, 255, -1, -1, 255, 255, 0, 0
Input_Shaft_RPM = is_rpm, "Input Shaft RPM", "", 0, 9000, -1, -1, 6000, 6500, 0, 0
Manual_gear = manual_gear, "Manual Gear", "", -1, 4, -1, -1, 5, 5, 0, 0
Target_gear = target_gear, "Target Gear", "", 1, 4, -1, -1, 5, 5, 0, 0
FuelEfficiency = mileage, "Fuel Efficiency", "mpg", 0, 50, 5, 10, 99, 99, 2, 2
VSS_Hertz = VSS_Hz, "VSS Frequency" "Hz", 0, 20000, -1, -1,20001,20001, 0, 0
; sixty_foot = foot60, "60 foot time", "sec", 0, 10, -1, -1, 65, 65, 3, 3
;#if NOT_METRIC
; sixty_mph = foot60, "0-60 MPH time", "sec", 0, 10, -1, -1, 65, 65, 3, 3
;#else
; sixty_mph = foot60, "0-100 KPH time", "sec", 0, 10, -1, -1, 65, 65, 3, 3
;#endif
; quart_mile = qmile, "¼ mile time", "sec", 0, 10, -1, -1, 65, 65, 3, 3
tps = tps, "TPS", "%", 0, 100, -1, -1, 100, 100, 1, 1
current_gear = current_gear, "Current Gear", "", -1, 4, -1, -1, 5, 5, 0, 0
load = LOAD, "Load", "kpa", 0, 200, -1, -1, 250, 250, 1, 0
line_pressure = linepressure, "Line Pressure", "psi", 0, 500, 50, 100, 400, 480, 0, 0
odometer = odometer, "Trip Odometer", "miles", 0, 100, -1, -1, 255, 255, 2, 0
pcsol = PC_duty, "Pressure Control", "100-PWM%", 0, 100, -1, -1, 100, 100, 0, 0
shifterA = swADC, "ShifterA", "volts", 0, 5, 0, 0, 5, 5, 3, 0
shifterB = swBDC, "ShifterB", "volts", 0, 5, 0, 0, 5, 5, 3, 0
shifterC = swCDC, "ShifterC", "volts", 0, 5, 0, 0, 5, 5, 3, 0
#if NOT_METRIC
speedometer = speedo, "Speedometer", "mph", 0, 200, -1, -1, 160, 180, 0, 0
#else
speedometer = speedo, "Speedometer", "kph", 0, 300, -1, -1, 200, 270, 0, 0
#endif
tach = engine_rpm, "Tachometer", "rpm", 0, 8000, -1, -1, 6000, 6500, 0, 0
trans_temp = clt, "Trans. Temp." "deg", -40, 220, -20, -10, 200, 210, 1, 0
x_solst = solst, "Solenoids", "", 0, 4, -1, -1, 10, 10, 0, 0
x_tcc = lock_TCC, "TCC Locked" "", 0, 1, -1, -1, 1, 1, 0, 0
x_brakes = brake, "Brakes Applied" "", 0, 1, -1, -1, 1, 1, 0, 0
x_ic1_per_avg = ic1_period, "VSS Period" "msec/tooth", 0, 20, -1, -1, 20, 20, 3, 3
x_ic2_per_avg = ic2_period, "ISS Period" "msec/tooth", 0, 20, -1, -1, 20, 20, 3, 3
x_shift_UP = upbutton, "UpShift Pressed" "", 0, 1, -1, -1, 1, 1, 0, 0
x_shift_DOWN = downbutton, "DownShift Pressed" "", 0, 1, -1, -1, 1, 1, 0, 0
x_can_receive = CANrx, "CAN in", "messages", 0, 65535, 0, -1, 65000, 65500, 0, 0
x_can_transmit = CANtx, "CAN out", "messages", 0, 65535, 0, -1, 65000, 65500, 0, 0
x_debug = dbug, "debug", "", 0, 1000, 0, -1, 1000, 1000, 0, 0
; debug is a spare variable that can be used when developing code (it is outpc.dbug in the code) by
; assigning variables of interest to it
x_load_long = LOAD_long, "Long Load", "kpa", 0, 200, -1, -1, 250, 250, 1, 0
x_load_short = LOAD_short, "Short Load", "kpa", 0, 200, -1, -1, 250, 250, 1, 0
x_loops = loop_count, "Main Loops", "loops", 0,10000000, 0, 1,10000000, 10000000, 0, 0
x_loop_Hz = Loop_Hz, "Loop Freq.", "Hz", 0, 20000, -1, -1,20001,20001, 0, 0
x_VSSteeth = vss_teeth, "VSS Teeth", "teeth", 0, 1000000, 0, 1, 1000000, 1000000, 0, 0
; - Regardless of the order shown here, the gauges are listed in the drop-down menu in capital/uppercase
; alphabetical order, then lowercase/alphabetical order (i.e., by ASCII numbering).
; - We set the defaults to lowercase, the general use non-defaults to uppercase (so they appear near the top of
; the listing, and are easiest to select), then the debug gauges in lowercase as well - prefaced with "x_".
; - Some gauges are essentially duplications of the indicators, but are included for troubleshooting the
; indicator set-up.
;-------------------------------------------------------------------------------
[FrontPage]
; Gauges are numbered left to right, top to bottom.
;
; 1 2 3 4
; 5 6 7 8
gauge1 = speedometer
gauge2 = tach
gauge3 = line_pressure
gauge4 = current_gear
gauge5 = odometer
gauge6 = load
gauge7 = trans_temp
gauge8 = pcsol
;----------------------------------------------------------------------------
; Indicators
; expr off-label on-label, off-bg, off-fg, on-bg, on-fg
; indicator = { tpsaen }, "Not Accelerating", "AE", cyan, white, red, black
;
indicator = { downbutton }, "", "DownShift Pressed", white, black, green, blue
indicator = { upbutton }, "", "UpShift Pressed", white, black, green, blue
indicator = { brake }, "Brakes OFF", "Brakes ON", green, black, yellow, blue
indicator = { lock_TCC }, "TCC Off", "TCC Applied", green, black, yellow, blue
indicator = { current_gear }, "PNR", "In Drive", white, black, cyan, black
indicator = { current_gear < 0 }, "PND", "Reverse", white, black, cyan, black
indicator = { auto_mode }, "MANUAL Mode", "AUTO Mode", green, black, yellow, blue
indicator = { sp1 }, "SP1 OFF", "SP1 ON", yellow, black, green, blue
indicator = { sp2 }, "SP2 OFF", "SP2 ON", yellow, black, green, blue
indicator = { FWD }, "4WD", "2WD", yellow, black, green, blue
indicator = { error > 1 }, "No Codes", "Codes", white, black, red, black
;-------------------------------------------------------------------------------
[RunTime]
barHysteresis = 2.5 ; Seconds
;-------------------------------------------------------------------------------
[Tuning]
; font = "Lucida Console", 12
; font = "Courier", 14
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
cursorDepth = 2 ; Same as spot depth.
; The four radio buttons on the tuning screen select a "page" of six
; gauges. The gauge numbering is the same as the front page, across
; then down.
; 1 2
; 3 4
; 5 6
;
; gaugeColumns allows you to hide or show gauges in column 2 (i.e.,
; gauges 2, 4 and 6).
gaugeColumns = 2 ; Only 1 or 2 are valid.
; Page 1 Page 2 Page 3 Page 4
pageButtons = "&page1", "p&age2", "pa&ge3", "pag&e4"
gauge1 = tach, tach, tach, tach
gauge2 = speedometer, speedometer, speedometer, speedometer
gauge4 = load, load, load, load
gauge5 = current_gear, current_gear, current_gear, current_gear
gauge6 = pcsol, pcsol, pcsol, pcsol
;-------------------------------------------------------------------------------
[AccelerationWizard]
; not used for trans control
;-------------------------------------------------------------------------------
[BurstMode]
getCommand = "a\x01\x06"
[OutputChannels]
; These are from the outpc. structure in the main.c file of the source code
; the size and format are the same as above
deadValue = { 0 } ; Convenient unchanging value.
ochBlockSize = 79
ochGetCommand = "a\x01\x06" ; Lower case so we don't get confused.
seconds = scalar, U16, 0, "sec", 1.000, 0.0
os_rpm = scalar, U16, 2, "rpm", 1.000, 0.0
#if NOT_METRIC
speedo = scalar, U16, 4, "mph", 0.100, 0.0
odometer = scalar, U32, 6, "miles", 0.001, 0.0
#else
speedo = scalar, U16, 4, "kph", 0.100, 0.0
odometer = scalar, U32, 6, "km", 0.001, 0.0
#endif
auto_mode = scalar, U08, 10, "", 1.000, 0.0
upshift_request = scalar, U08, 11, "", 1.000, 0.0
downshift_request = scalar, U08, 12, "", 1.000, 0.0
manual_gear = scalar, S08, 13, "", 1.000, 0.0
current_gear = scalar, S08, 14, "", 1.000, 0.0
target_gear = scalar, S08, 15, "", 1.000, 0.0
lock_TCC = scalar, U08, 16, "", 1.000, 0.0
engine_rpm = scalar, S16, 17, "rpm", 1.000, 0.0
error = scalar, U08, 19, "", 1.000, 0.0
LOAD = scalar, S16, 20, "kpa", 0.100, 0.0
clt = scalar, S16, 22, "deg", 0.100, 0.0
brake = scalar, U08, 24, "", 1.000, 0.0
ic1_period = scalar, U32, 25, "msec", 0.0000526, 0.0
LOAD_short = scalar, S16, 29, "kpa", 0.100, 0.0
LOAD_long = scalar, S16, 31, "kpa", 0.100, 0.0
aux_volts = scalar, S16, 33, "V", 0.001, 0.0 // kpa (=LOAD,mafLOAD or tps)
PC_duty = scalar, U08, 35, "%", 1.000, 0.0
converter_slip = scalar, U08, 36, "%", 1.000, 0.0
loop_count = scalar, U32, 37, "loops", 1.000, 0.0
vss_teeth = scalar, U32, 41, "teeth", 1.000, 0.0
linepressure = scalar, U16, 45, "psi", 1.000, 0.0
CANtx = scalar, U16, 47, "", 1.000, 0.0
CANrx = scalar, U16, 49, "", 1.000, 0.0
dbug = scalar, U16, 51, "", 1.000, 0.0
vBatt = scalar, U16, 53, "volts", 0.100, 0.0
upbutton = scalar, S08, 55, "", 1.000, 0.0
downbutton = scalar, S08, 56, "", 1.000, 0.0
is_rpm = scalar, U16, 57, "rpm", 1.000, 0.0
sp1 = scalar, U08, 59, "", 1.000, 0.0
sp2 = scalar, U08, 60, "", 1.000, 0.0
swADC = scalar, U16, 61, "volts", 0.00488, 0.0
swBDC = scalar, U16, 63, "volts", 0.00488, 0.0
swCDC = scalar, U16, 65, "volts", 0.00488, 0.0
FWD = scalar, U08, 67, "4WD", 1.000, 0.0
adv_deg = scalar, S16, 68, "deg", 0.100, 0.0
solst = scalar, U08, 70, "", 1.000, 0.0
mileage = scalar, U16, 71, "mpg", 0.010, 0.0
tps = scalar, U16, 73, "", 0.0976,0.0
ic2_period = scalar, U32, 75, "msec", 0.0000526, 0.0
; pageSize = 75 + 4 = 79 = 4F hex
secl = { seconds % 256 }, "s" ; For runtime screen. Must go to 255 or will indicate a reset.
time = { timeNow }, "sec"
VSS_Hz = { 1000/ ic1_period }, "Hz"
Loop_Hz = { loop_count/seconds }, "Hz"
kmileage = { 235.2/mileage }, "l/100km"
;-------------------------------------------------------------------------------
;-- The entries are saved in the datalog file in the order in which they --
;-- appear in the list below. --
;-- --
;-- Channel - Case sensitive name of output channel to be logged. --
;-- Label - String written to header line of log. --
;-- Type - Data type of output, converted before writing. --
;-- Format - C-style output format of data. --
[Datalog]
; Channel Label Type Format
; -------------- ---------- ----- ------
entry = time, "Time", float, "%.3f"
entry = seconds, "Seconds", int, "%d"
entry = auto_mode, "Mode", int, "%d"
entry = speedo, "Speed", float, "%.1f"
entry = engine_rpm, "RPM", int, "%d"
#if NOT_METRIC
entry = odometer, "miles", float, "%.3f"
#else
entry = odometer, "kms", float, "%.3f"
#endif
entry = LOAD, "kpa", float, "%.1f"
entry = mileage, "mpg", float, "%.2f"
entry = swADC, "swADC", float, "%.3f"
entry = swBDC, "swBDC", float, "%.3f"
entry = swCDC, "swCDC", float, "%.3f"
entry = solst, "soln", int, "%d"
entry = current_gear, "cGear", int, "%d"
entry = target_gear, "tGear", int, "%d"
entry = manual_gear, "mGear", int, "%d"
entry = lock_TCC, "TCC", int, "%d"
entry = brake, "Brake", int, "%d"
entry = os_rpm, "OS rpm", int, "%d"
entry = is_rpm, "IS rpm", int, "%d"
entry = converter_slip, "TCslip", int, "%d"
; entry = foot60, "60ft", int, "%.3f"
;#if NOT_METRIC
; entry = mph60, "60mph", int, "%.3f"
;#else
; entry = mph60, "100kph", int, "%.3f"
;#endif
; entry = qmile, "qmile", int, "%.3f"
entry = clt, "temp", float, "%.1f"
entry = vBatt, "vBatt", float, "%.1f"
entry = linepressure, "line", int, "%d"
entry = aux_volts, "auxCH", float, "%.3f"
entry = error, "Error", int, "%d"
entry = ic1_period, "IC1per", float, "%.3f"
entry = ic2_period, "IC2per", float, "%.3f"
entry = VSS_Hz, "ICfrq", int, "%d"
entry = PC_duty, "PC%", int, "%d"
entry = sp1, "SpareOut1", int, "%d"
entry = sp2, "SpareOut2", int, "%d"
entry = LOAD_short, "lLoad", float, "%.1f"
entry = LOAD_long, "sLoad", float, "%.1f"
entry = loop_count, "mloop", int, "%d"
entry = Loop_Hz, "mlfrq", int, "%d"
entry = vss_teeth, "teeth", int, "%d"
entry = dbug, "debug", int, "%d"
entry = CANrx, "CANrx", int, "%d"
entry = CANtx, "CANtx", int, "%d"
entry = FWD, "4WD", int, "%d"
; -----------------------------------------------------------