#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" ; -----------------------------------------------------------