2016-12-27 11:35:46 -08:00
;-------------------------------------------------------------------------------
2016-07-22 00:30:35 -07:00
#unset CAN_COMMANDS
2017-03-09 16:46:11 -08:00
#unset enablehardware_test
2015-02-02 22:25:43 -08:00
[MegaTune]
MTversion = 2.25 ; MegaTune itself; needs to match exec version.
queryCommand = "Q"
2016-07-25 05:54:49 -07:00
;signature = 20
2017-05-09 20:55:26 -07:00
signature = "speeduino 201705-dev"
2016-05-31 20:19:31 -07:00
versionInfo = "S" ; Put this in the title bar.
2016-06-29 05:08:04 -07:00
;[TunerStudio]
; iniSpecVersion = 3.24
2015-02-02 22:25:43 -08:00
;-------------------------------------------------------------------------------
2016-05-22 03:12:44 -07:00
[SettingGroups]
2017-04-14 15:40:29 -07:00
; the referenceName will over-ride previous, so if you are creating a
; settingGroup with a reference name of lambdaSensor, it will replace the
2016-05-22 03:12:44 -07:00
; setting group defined in the settingGroups.xml of the TunerStudio config
; folder. If is is an undefined referenceName, it will be added.
; keyword = referenceName, DisplayName
2017-04-14 15:40:29 -07:00
;settingGroup = boostUnits, "Boost table units"
2017-02-08 19:26:21 -08:00
;settingOption = DEFAULT, "kPa"
;settingOption = BOOSTPSI, "PSI"
2017-03-09 16:46:11 -08:00
settingGroup = enablehardware_test, "Enable Hardware Test Page"
2017-04-14 15:40:29 -07:00
2016-08-08 19:58:51 -07:00
[PcVariables]
; valid types: boolean, double, int, list
2017-04-14 15:40:29 -07:00
;
; no offset as they are local variables.
2016-08-08 19:58:51 -07:00
; entry format the same as Constants, except there is no offset.
2017-04-14 15:40:29 -07:00
; arrays are not yet supported.
2016-08-08 19:58:51 -07:00
; name = class, type, shape, units, scale, translate, lo, hi, digits
; name = type, min, max;
;
; type List: value will be index.
2017-05-08 15:15:03 -07:00
tsCanId = bits, U08, [0:3], "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID"
2017-03-20 04:29:42 -07:00
rpmhigh = scalar, U16, "rpm", 1, 0, 0, 30000, 0
rpmwarn = scalar, U16, "rpm", 1, 0, 0, 30000, 0
rpmdang = scalar, U16, "rpm", 1, 0, 0, 30000, 0
2017-04-14 15:40:29 -07:00
2017-03-20 04:29:42 -07:00
idleUnits = bits, U08, [0:2], "None", "On/Off", "Duty Cycle", "Duty Cycle", "Steps", "Steps"
2016-05-22 03:12:44 -07:00
2015-02-02 22:25:43 -08:00
[Constants]
;----------------------------------------------------------------------------
; Constants Definition
; --------------------
;
; Scalar Values
; -------------
; The scaling and translation values are used as follows:
; msValue = userValue / scale - translate
; userValue = (msValue + translate) * scale
;
;
; Temperatures are fine, check out the Fielding IAC example (fastIdleT).
;
; 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).
;
; If you specify a label as "INVALID" (all upper case), then it will
; not be displayed in the combo box, so you can leave out values that
; make no sense.
;
;----------------------------------------------------------------------------
2015-05-16 05:06:05 -07:00
endianness = little
2017-01-26 14:58:21 -08:00
nPages = 10
2015-02-02 22:25:43 -08:00
burnCommand = "B"
2017-01-26 14:58:21 -08:00
pageSize = 288, 64, 288, 64, 288, 64, 64, 160, 192, 128
2017-05-08 15:15:03 -07:00
; pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A"
2015-02-02 22:25:43 -08:00
pageActivationDelay = 10
2017-01-26 14:58:21 -08:00
pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012"
pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V"
pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v"
2015-02-02 22:25:43 -08:00
; pageChunkWrite = "" ; No chunk write for standard MS
2016-05-31 20:19:31 -07:00
2016-03-23 01:45:11 -07:00
blockingFactor = 2048
2016-05-31 20:19:31 -07:00
tableBlockingFactor = 2048
2016-03-23 01:45:11 -07:00
delayAfterPortOpen = 1000
2017-04-14 15:40:29 -07:00
;validateArrayBounds = true
2016-06-29 05:08:04 -07:00
blockReadTimeout = 2000
2016-11-01 05:19:16 -07:00
;tsWriteBlocks = off
;writeBlocks = off
2016-06-29 05:08:04 -07:00
interWriteDelay = 10
2015-02-02 22:25:43 -08:00
2017-05-08 15:15:03 -07:00
;New for TS 3.0.08ish upwards, define lists of standard I/O options
2017-05-09 20:55:26 -07:00
#define tsCanId_list = "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID"
2017-05-08 15:15:03 -07:00
#define CAN_ADDRESS_HEX_02XX = "0x200", "0x201", "0x202", "0x203", "0x204", "0x205", "0x206", "0x207", "0x208", "0x209", "0x20A", "0x20B", "0x20C", "0x20D", "0x20E", "0x20F", "0x210", "0x211", "0x212", "0x213", "0x214", "0x215", "0x216", "0x217", "0x218", "0x219", "0x21A", "0x21B", "0x21C", "0x21D", "0x21E", "0x21F", "0x220", "0x221", "0x222", "0x223", "0x224", "0x225", "0x226", "0x227", "0x228", "0x229", "0x22A", "0x22B", "0x22C", "0x22D", "0x22E", "0x22F", "0x230", "0x231", "0x232", "0x233", "0x234", "0x235", "0x236", "0x237", "0x238", "0x239", "0x23A", "0x23B", "0x23C", "0x23D", "0x23E", "0x23F", "0x240", "0x241", "0x242", "0x243", "0x244", "0x245", "0x246", "0x247", "0x248", "0x249", "0x24A", "0x24B", "0x24C", "0x24D", "0x24E", "0x24F", "0x250", "0x251", "0x252", "0x253", "0x254", "0x255", "0x256", "0x257", "0x258", "0x259", "0x25A", "0x25B", "0x25C", "0x25D", "0x25E", "0x25F" ,"0x260", "0x261", "0x262", "0x263", "0x264", "0x265", "0x266", "0x267", "0x268", "0x269", "0x26A", "0x26B", "0x26C", "0x26D", "0x26E", "0x26F", "0x270", "0x271", "0x272", "0x273", "0x274", "0x275", "0x276", "0x277", "0x278", "0x279", "0x27A", "0x27B", "0x27C", "0x27D", "0x27E", "0x27F", "0x280", "0x281", "0x282", "0x283", "0x284", "0x285", "0x286", "0x287", "0x288", "0x289", "0x28A", "0x28B", "0x28C", "0x28D", "0x28E", "0x28F" ,"0x290", "0x291", "0x292", "0x293", "0x294", "0x295", "0x296", "0x297", "0x298", "0x299", "0x29A", "0x29B", "0x29C", "0x29D", "0x29E", "0x29F", "0x2A0", "0x2A1", "0x2A2", "0x2A3", "0x2A4", "0x2A5", "0x2A6", "0x2A7", "0x2A8", "0x2A9", "0x2AA", "0x2AB", "0x2AC", "0x2AD", "0x2AE", "0x2AF", "0x2B0", "0x2B1", "0x2B2", "0x2B3", "0x2B4", "0x2B5", "0x2B6", "0x2B7", "0x2B8", "0x2B9", "0x2BA", "0x2BB", "0x2BC", "0x2BD", "0x2BE", "0x2BF" ,"0x2C0", "0x2C1", "0x2C2", "0x2C3", "0x2C4", "0x2C5", "0x2C6", "0x2C7", "0x2C8", "0x2C9", "0x2CA", "0x2CB", "0x2CC", "0x2CD", "0x2CE", "0x2CF", "0x2D0", "0x2D1", "0x2D2", "0x2D3", "0x2D4", "0x2D5", "0x2D6", "0x2D7", "0x2D8", "0x2D9", "0x2DA", "0x2DB", "0x2DC", "0x2DD", "0x2DE", "0x2DF", "0x2E0", "0x2E1", "0x2E2", "0x2E3", "0x2E4", "0x2E5", "0x2E6", "0x2E7", "0x2E8", "0x2E9", "0x2EA", "0x2EB", "0x2EC", "0x2ED", "0x2EE", "0x2EF" ,"0x2F0", "0x2F1", "0x2F2", "0x2F3", "0x2F4", "0x2F5", "0x2F6", "0x2F7", "0x2F8", "0x2F9", "0x2FA", "0x2FB", "0x2FC", "0x2FD", "0x2FE", "0x2FF"
#define CAN_ADDRESS_HEX_03XX = "0x300", "0x301", "0x302", "0x303", "0x304", "0x305", "0x306", "0x307", "0x308", "0x309", "0x30A", "0x30B", "0x30C", "0x30D", "0x30E", "0x30F", "0x310", "0x311", "0x312", "0x313", "0x314", "0x315", "0x316", "0x317", "0x318", "0x319", "0x31A", "0x31B", "0x31C", "0x31D", "0x31E", "0x31F", "0x320", "0x321", "0x322", "0x323", "0x324", "0x325", "0x326", "0x327", "0x328", "0x329", "0x32A", "0x32B", "0x32C", "0x32D", "0x32E", "0x32F", "0x330", "0x331", "0x332", "0x333", "0x334", "0x335", "0x336", "0x337", "0x338", "0x339", "0x33A", "0x33B", "0x33C", "0x33D", "0x33E", "0x33F", "0x340", "0x341", "0x342", "0x343", "0x344", "0x345", "0x346", "0x347", "0x348", "0x349", "0x34A", "0x34B", "0x34C", "0x34D", "0x34E", "0x34F", "0x350", "0x351", "0x352", "0x353", "0x354", "0x355", "0x356", "0x357", "0x358", "0x359", "0x35A", "0x35B", "0x35C", "0x35D", "0x35E", "0x35F" ,"0x360", "0x361", "0x362", "0x363", "0x364", "0x365", "0x366", "0x367", "0x368", "0x369", "0x36A", "0x36B", "0x36C", "0x36D", "0x36E", "0x36F", "0x370", "0x371", "0x372", "0x373", "0x374", "0x375", "0x376", "0x377", "0x378", "0x379", "0x37A", "0x37B", "0x37C", "0x37D", "0x37E", "0x37F", "0x380", "0x381", "0x382", "0x383", "0x384", "0x385", "0x386", "0x387", "0x388", "0x389", "0x38A", "0x38B", "0x38C", "0x38D", "0x38E", "0x38F" ,"0x390", "0x391", "0x392", "0x393", "0x394", "0x395", "0x396", "0x397", "0x398", "0x399", "0x39A", "0x39B", "0x39C", "0x39D", "0x39E", "0x39F", "0x3A0", "0x3A1", "0x3A2", "0x3A3", "0x3A4", "0x3A5", "0x3A6", "0x3A7", "0x3A8", "0x3A9", "0x3AA", "0x3AB", "0x3AC", "0x3AD", "0x3AE", "0x3AF", "0x3B0", "0x3B1", "0x3B2", "0x3B3", "0x3B4", "0x3B5", "0x3B6", "0x3B7", "0x3B8", "0x3B9", "0x3BA", "0x3BB", "0x3BC", "0x3BD", "0x3BE", "0x3BF" ,"0x3C0", "0x3C1", "0x3C2", "0x3C3", "0x3C4", "0x3C5", "0x3C6", "0x3C7", "0x3C8", "0x3C9", "0x3CA", "0x3CB", "0x3CC", "0x3CD", "0x3CE", "0x3CF", "0x3D0", "0x3D1", "0x3D2", "0x3D3", "0x3D4", "0x3D5", "0x3D6", "0x3D7", "0x3D8", "0x3D9", "0x3DA", "0x3DB", "0x3DC", "0x3DD", "0x3DE", "0x3DF", "0x3E0", "0x3E1", "0x3E2", "0x3E3", "0x3E4", "0x3E5", "0x3E6", "0x3E7", "0x3E8", "0x3E9", "0x3EA", "0x3EB", "0x3EC", "0x3ED", "0x3EE", "0x3EF" ,"0x3F0", "0x3F1", "0x3F2", "0x3F3", "0x3F4", "0x3F5", "0x3F6", "0x3F7", "0x3F8", "0x3F9", "0x3FA", "0x3FB", "0x3FC", "0x3FD", "0x3FE", "0x3FF"
#define CAN_ADDRESS_HEX_04XX = "0x400", "0x401", "0x402", "0x403", "0x404", "0x405", "0x406", "0x407", "0x408", "0x409", "0x40A", "0x40B", "0x40C", "0x40D", "0x40E", "0x40F", "0x410", "0x411", "0x412", "0x413", "0x414", "0x415", "0x416", "0x417", "0x418", "0x419", "0x41A", "0x41B", "0x41C", "0x41D", "0x41E", "0x41F", "0x420", "0x421", "0x422", "0x423", "0x424", "0x425", "0x426", "0x427", "0x428", "0x429", "0x42A", "0x42B", "0x42C", "0x42D", "0x42E", "0x42F", "0x430", "0x431", "0x432", "0x433", "0x434", "0x435", "0x436", "0x437", "0x438", "0x439", "0x43A", "0x43B", "0x43C", "0x43D", "0x43E", "0x43F", "0x440", "0x441", "0x442", "0x443", "0x444", "0x445", "0x446", "0x447", "0x448", "0x449", "0x44A", "0x44B", "0x44C", "0x44D", "0x44E", "0x44F", "0x450", "0x451", "0x452", "0x453", "0x454", "0x455", "0x456", "0x457", "0x458", "0x459", "0x45A", "0x45B", "0x45C", "0x45D", "0x45E", "0x45F" ,"0x460", "0x461", "0x462", "0x463", "0x464", "0x465", "0x466", "0x467", "0x468", "0x469", "0x46A", "0x46B", "0x46C", "0x46D", "0x46E", "0x46F", "0x470", "0x471", "0x472", "0x473", "0x474", "0x475", "0x476", "0x477", "0x478", "0x479", "0x47A", "0x47B", "0x47C", "0x47D", "0x47E", "0x47F", "0x480", "0x481", "0x482", "0x483", "0x484", "0x485", "0x486", "0x487", "0x488", "0x489", "0x48A", "0x48B", "0x48C", "0x48D", "0x48E", "0x48F" ,"0x490", "0x491", "0x492", "0x493", "0x494", "0x495", "0x496", "0x497", "0x498", "0x499", "0x49A", "0x49B", "0x49C", "0x49D", "0x49E", "0x49F", "0x4A0", "0x4A1", "0x4A2", "0x4A3", "0x4A4", "0x4A5", "0x4A6", "0x4A7", "0x4A8", "0x4A9", "0x4AA", "0x4AB", "0x4AC", "0x4AD", "0x4AE", "0x4AF", "0x4B0", "0x4B1", "0x4B2", "0x4B3", "0x4B4", "0x4B5", "0x4B6", "0x4B7", "0x4B8", "0x4B9", "0x4BA", "0x4BB", "0x4BC", "0x4BD", "0x4BE", "0x4BF" ,"0x4C0", "0x4C1", "0x4C2", "0x4C3", "0x4C4", "0x4C5", "0x4C6", "0x4C7", "0x4C8", "0x4C9", "0x4CA", "0x4CB", "0x4CC", "0x4CD", "0x4CE", "0x4CF", "0x4D0", "0x4D1", "0x4D2", "0x4D3", "0x4D4", "0x4D5", "0x4D6", "0x4D7", "0x4D8", "0x4D9", "0x4DA", "0x4DB", "0x4DC", "0x4DD", "0x4DE", "0x4DF", "0x4E0", "0x4E1", "0x4E2", "0x4E3", "0x4E4", "0x4E5", "0x4E6", "0x4E7", "0x4E8", "0x4E9", "0x4EA", "0x4EB", "0x4EC", "0x4ED", "0x4EE", "0x4EF" ,"0x4F0", "0x4F1", "0x4F2", "0x4F3", "0x4F4", "0x4F5", "0x4F6", "0x4F7", "0x4F8", "0x4F9", "0x4FA", "0x4FB", "0x4FC", "0x4FD", "0x4FE", "0x4FF"
#define CAN_ADDRESS_HEX_05XX = "0x500", "0x501", "0x502", "0x503", "0x504", "0x505", "0x506", "0x507", "0x508", "0x509", "0x50A", "0x50B", "0x50C", "0x50D", "0x50E", "0x50F", "0x510", "0x511", "0x512", "0x513", "0x514", "0x515", "0x516", "0x517", "0x518", "0x519", "0x51A", "0x51B", "0x51C", "0x51D", "0x51E", "0x51F", "0x520", "0x521", "0x522", "0x523", "0x524", "0x525", "0x526", "0x527", "0x528", "0x529", "0x52A", "0x52B", "0x52C", "0x52D", "0x52E", "0x52F", "0x530", "0x531", "0x532", "0x533", "0x534", "0x535", "0x536", "0x537", "0x538", "0x539", "0x53A", "0x53B", "0x53C", "0x53D", "0x53E", "0x53F", "0x540", "0x541", "0x542", "0x543", "0x544", "0x545", "0x546", "0x547", "0x548", "0x549", "0x54A", "0x54B", "0x54C", "0x54D", "0x54E", "0x54F", "0x550", "0x551", "0x552", "0x553", "0x554", "0x555", "0x556", "0x557", "0x558", "0x559", "0x55A", "0x55B", "0x55C", "0x55D", "0x55E", "0x55F" ,"0x560", "0x561", "0x562", "0x563", "0x564", "0x565", "0x566", "0x567", "0x568", "0x569", "0x56A", "0x56B", "0x56C", "0x56D", "0x56E", "0x56F", "0x570", "0x571", "0x572", "0x573", "0x574", "0x575", "0x576", "0x577", "0x578", "0x579", "0x57A", "0x57B", "0x57C", "0x57D", "0x57E", "0x57F", "0x580", "0x581", "0x582", "0x583", "0x584", "0x585", "0x586", "0x587", "0x588", "0x589", "0x58A", "0x58B", "0x58C", "0x58D", "0x58E", "0x58F" ,"0x590", "0x591", "0x592", "0x593", "0x594", "0x595", "0x596", "0x597", "0x598", "0x599", "0x59A", "0x59B", "0x59C", "0x59D", "0x59E", "0x59F", "0x5A0", "0x5A1", "0x5A2", "0x5A3", "0x5A4", "0x5A5", "0x5A6", "0x5A7", "0x5A8", "0x5A9", "0x5AA", "0x5AB", "0x5AC", "0x5AD", "0x5AE", "0x5AF", "0x5B0", "0x5B1", "0x5B2", "0x5B3", "0x5B4", "0x5B5", "0x5B6", "0x5B7", "0x5B8", "0x5B9", "0x5BA", "0x5BB", "0x5BC", "0x5BD", "0x5BE", "0x5BF" ,"0x5C0", "0x5C1", "0x5C2", "0x5C3", "0x5C4", "0x5C5", "0x5C6", "0x5C7", "0x5C8", "0x5C9", "0x5CA", "0x5CB", "0x5CC", "0x5CD", "0x5CE", "0x5CF", "0x5D0", "0x5D1", "0x5D2", "0x5D3", "0x5D4", "0x5D5", "0x5D6", "0x5D7", "0x5D8", "0x5D9", "0x5DA", "0x5DB", "0x5DC", "0x5DD", "0x5DE", "0x5DF", "0x5E0", "0x5E1", "0x5E2", "0x5E3", "0x5E4", "0x5E5", "0x5E6", "0x5E7", "0x5E8", "0x5E9", "0x5EA", "0x5EB", "0x5EC", "0x5ED", "0x5EE", "0x5EF" ,"0x5F0", "0x5F1", "0x5F2", "0x5F3", "0x5F4", "0x5F5", "0x5F6", "0x5F7", "0x5F8", "0x5F9", "0x5FA", "0x5FB", "0x5FC", "0x5FD", "0x5FE", "0x5FF"
#define CAN_ADDRESS_HEX_06XX = "0x600", "0x601", "0x602", "0x603", "0x604", "0x605", "0x606", "0x607", "0x608", "0x609", "0x60A", "0x60B", "0x60C", "0x60D", "0x60E", "0x60F", "0x610", "0x611", "0x612", "0x613", "0x614", "0x615", "0x616", "0x617", "0x618", "0x619", "0x61A", "0x61B", "0x61C", "0x61D", "0x61E", "0x61F", "0x620", "0x621", "0x622", "0x623", "0x624", "0x625", "0x626", "0x627", "0x628", "0x629", "0x62A", "0x62B", "0x62C", "0x62D", "0x62E", "0x62F", "0x630", "0x631", "0x632", "0x633", "0x634", "0x635", "0x636", "0x637", "0x638", "0x639", "0x63A", "0x63B", "0x63C", "0x63D", "0x63E", "0x63F", "0x640", "0x641", "0x642", "0x643", "0x644", "0x645", "0x646", "0x647", "0x648", "0x649", "0x64A", "0x64B", "0x64C", "0x64D", "0x64E", "0x64F", "0x650", "0x651", "0x652", "0x653", "0x654", "0x655", "0x656", "0x657", "0x658", "0x659", "0x65A", "0x65B", "0x65C", "0x65D", "0x65E", "0x65F" ,"0x660", "0x661", "0x662", "0x663", "0x664", "0x665", "0x666", "0x667", "0x668", "0x669", "0x66A", "0x66B", "0x66C", "0x66D", "0x66E", "0x66F", "0x670", "0x671", "0x672", "0x673", "0x674", "0x675", "0x676", "0x677", "0x678", "0x679", "0x67A", "0x67B", "0x67C", "0x67D", "0x67E", "0x67F", "0x680", "0x681", "0x682", "0x683", "0x684", "0x685", "0x686", "0x687", "0x688", "0x689", "0x68A", "0x68B", "0x68C", "0x68D", "0x68E", "0x68F" ,"0x690", "0x691", "0x692", "0x693", "0x694", "0x695", "0x696", "0x697", "0x698", "0x699", "0x69A", "0x69B", "0x69C", "0x69D", "0x69E", "0x69F", "0x6A0", "0x6A1", "0x6A2", "0x6A3", "0x6A4", "0x6A5", "0x6A6", "0x6A7", "0x6A8", "0x6A9", "0x6AA", "0x6AB", "0x6AC", "0x6AD", "0x6AE", "0x6AF", "0x6B0", "0x6B1", "0x6B2", "0x6B3", "0x6B4", "0x6B5", "0x6B6", "0x6B7", "0x6B8", "0x6B9", "0x6BA", "0x6BB", "0x6BC", "0x6BD", "0x6BE", "0x6BF" ,"0x6C0", "0x6C1", "0x6C2", "0x6C3", "0x6C4", "0x6C5", "0x6C6", "0x6C7", "0x6C8", "0x6C9", "0x6CA", "0x6CB", "0x6CC", "0x6CD", "0x6CE", "0x6CF", "0x6D0", "0x6D1", "0x6D2", "0x6D3", "0x6D4", "0x6D5", "0x6D6", "0x6D7", "0x6D8", "0x6D9", "0x6DA", "0x6DB", "0x6DC", "0x6DD", "0x6DE", "0x6DF", "0x6E0", "0x6E1", "0x6E2", "0x6E3", "0x6E4", "0x6E5", "0x6E6", "0x6E7", "0x6E8", "0x6E9", "0x6EA", "0x6EB", "0x6EC", "0x6ED", "0x6EE", "0x6EF" ,"0x6F0", "0x6F1", "0x6F2", "0x6F3", "0x6F4", "0x6F5", "0x6F6", "0x6F7", "0x6F8", "0x6F9", "0x6FA", "0x6FB", "0x6FC", "0x6FD", "0x6FE", "0x6FF"
2017-05-09 20:55:26 -07:00
#define CAN_ADDRESS_HEX_07XX = "0x700", "0x701", "0x702", "0x703", "0x704", "0x705", "0x706", "0x707", "0x708", "0x709", "0x70A", "0x70B", "0x70C", "0x70D", "0x70E", "0x70F", "0x710", "0x711", "0x712", "0x713", "0x714", "0x715", "0x716", "0x717", "0x718", "0x719", "0x71A", "0x71B", "0x71C", "0x71D", "0x71E", "0x71F", "0x720", "0x721", "0x722", "0x723", "0x724", "0x725", "0x726", "0x727", "0x728", "0x729", "0x72A", "0x72B", "0x72C", "0x72D", "0x72E", "0x72F", "0x730", "0x731", "0x732", "0x733", "0x734", "0x735", "0x736", "0x737", "0x738", "0x739", "0x73A", "0x73B", "0x73C", "0x73D", "0x73E", "0x73F", "0x740", "0x741", "0x742", "0x743", "0x744", "0x745", "0x746", "0x747", "0x748", "0x749", "0x74A", "0x74B", "0x74C", "0x74D", "0x74E", "0x74F", "0x750", "0x751", "0x752", "0x753", "0x754", "0x755", "0x756", "0x757", "0x758", "0x759", "0x75A", "0x75B", "0x75C", "0x75D", "0x75E", "0x75F" ,"0x760", "0x761", "0x762", "0x763", "0x764", "0x765", "0x766", "0x767", "0x768", "0x769", "0x76A", "0x76B", "0x76C", "0x76D", "0x76E", "0x76F", "0x770", "0x771", "0x772", "0x773", "0x774", "0x775", "0x776", "0x777", "0x778", "0x779", "0x77A", "0x77B", "0x77C", "0x77D", "0x77E", "0x77F", "0x780", "0x781", "0x782", "0x783", "0x784", "0x785", "0x786", "0x787", "0x788", "0x789", "0x78A", "0x78B", "0x78C", "0x78D", "0x78E", "0x78F" ,"0x790", "0x791", "0x792", "0x793", "0x794", "0x795", "0x796", "0x797", "0x798", "0x799", "0x79A", "0x79B", "0x79C", "0x79D", "0x79E", "0x79F", "0x7A0", "0x7A1", "0x7A2", "0x7A3", "0x7A4", "0x7A5", "0x7A6", "0x7A7", "0x7A8", "0x7A9", "0x7AA", "0x7AB", "0x7AC", "0x7AD", "0x7AE", "0x7AF", "0x7B0", "0x7B1", "0x7B2", "0x7B3", "0x7B4", "0x7B5", "0x7B6", "0x7B7", "0x7B8", "0x7B9", "0x7BA", "0x7BB", "0x7BC", "0x7BD", "0x7BE", "0x7BF" ,"0x7C0", "0x7C1", "0x7C2", "0x7C3", "0x7C4", "0x7C5", "0x7C6", "0x7C7", "0x7C8", "0x7C9", "0x7CA", "0x7CB", "0x7CC", "0x7CD", "0x7CE", "0x7CF", "0x7D0", "0x7D1", "0x7D2", "0x7D3", "0x7D4", "0x7D5", "0x7D6", "0x7D7", "0x7D8", "0x7D9", "0x7DA", "0x7DB", "0x7DC", "0x7DD", "0x7DE", "0x7DF", "0x7E0", "0x7E1", "0x7E2", "0x7E3", "0x7E4", "0x7E5", "0x7E6", "0x7E7", "0x7E8", "0x7E9", "0x7EA", "0x7EB", "0x7EC", "0x7ED", "0x7EE", "0x7EF" ,"0x7F0", "0x7F1", "0x7F2", "0x7F3", "0x7F4", "0x7F5", "0x7F6", "0x7F7", "0x7F8", "0x7F9", "0x7FA", "0x7FB", "0x7FC", "0x7FD", "0x7FE", "0x7FF"
2017-05-08 15:15:03 -07:00
#define CAN_ADDRESS_HEX = $CAN_ADDRESS_HEX_02XX, $CAN_ADDRESS_HEX_03XX, $CAN_ADDRESS_HEX_04XX, $CAN_ADDRESS_HEX_05XX, $CAN_ADDRESS_HEX_06XX, $CAN_ADDRESS_HEX_07XX
2017-05-09 20:55:26 -07:00
2017-05-08 15:15:03 -07:00
#define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
#define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2017-05-09 20:55:26 -07:00
2015-06-05 00:28:31 -07:00
;Page 1 is the fuel map and axis bins only
2015-02-02 22:25:43 -08:00
page = 1
2016-08-08 19:58:51 -07:00
; name = bits, type, offset, bits
; name = array, type, offset, shape, units, scale, translate, lo, hi, digits
; name = scalar, type, offset, units, scale, translate, lo, hi, digits
2015-06-05 00:28:31 -07:00
veTable = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0
2016-08-08 19:58:51 -07:00
rpmBins = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0
2015-02-02 22:25:43 -08:00
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
;mapBins = array, U08, 272, [ 16], "kPa", 1.0, 0.0, 0.0, 255.0, 0
mapBins = array, U08, 272, [ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2015-02-02 22:25:43 -08:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
tpsBins = array, U08, 272, [ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2015-02-02 22:25:43 -08:00
#elif AIR_FLOW_METER
2015-04-21 23:49:10 -07:00
#error "Speeduino does not support MAF"
2015-02-02 22:25:43 -08:00
;#exit
#endif
2017-04-14 15:40:29 -07:00
2015-06-05 00:28:31 -07:00
;--------------------------------------------------
;Start Page 2
;Page 2 is all general settings (Previously part of page 1)
;--------------------------------------------------
page = 2
2017-05-12 01:14:14 -07:00
flexBoostLow = scalar, S08, 0, "kPa", 1.0, 0.0, -127, 127, 0
flexBoostHigh = scalar, U08, 0, "kPa", 1.0, 0.0, 0.0, 255, 0
2015-06-05 00:28:31 -07:00
asePct = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 95.0, 0
aseCount = scalar, U08, 3, "s", 1.0, 0.0, 0.0, 255, 0
2016-08-08 19:58:51 -07:00
wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0
2015-06-05 00:28:31 -07:00
crankingPct = scalar, U08, 14, "%", 1.0, 0.0, 0.0, 255, 0
2017-04-14 15:40:29 -07:00
pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2016-08-24 15:05:58 -07:00
tachoPin = bits, U08, 16, [0:5], "Board Default", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2017-01-05 13:26:11 -08:00
tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID"
2015-06-05 00:28:31 -07:00
tdePct = scalar, U08, 17, "ms", 0.1, 0.0, 0.0, 25.5, 1
taeColdA = scalar, U08, 18, "ms", 0.1, 0.0, 0.0, 25.5, 1
tpsThresh = scalar, U08, 19, "%/s", 1.0, 0.0, 0.0, 255, 0
taeTime = scalar, U08, 20, "ms", 10, 0.0, 0.0, 2550, 0
2017-04-14 15:40:29 -07:00
2015-02-28 13:27:16 -08:00
; Display (Options for what the display is showing)
2015-06-05 00:28:31 -07:00
display = bits, U08, 21, [0:2], "Unused", "Adafruit 128x32", "Generic 128x32", "Adafruit 128x64", "Generic 128x64", "INVALID", "INVALID", "INVALID"
display1 = bits U08, 21, [3:5], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT"
display2 = bits U08, 21, [6:7], "O2", "Voltage", "CPU", "Mem"
2017-04-14 15:40:29 -07:00
2015-06-05 00:28:31 -07:00
display3 = bits U08, 22, [0:2], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT"
display4 = bits U08, 22, [3:4], "O2", "Voltage", "CPU", "Mem"
display5 = bits U08, 22, [5:7], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT"
2017-04-14 15:40:29 -07:00
2015-06-05 00:28:31 -07:00
displayB1 = bits U08, 23, [0:3], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT"
displayB2 = bits U08, 23, [4:7], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT"
2017-04-14 15:40:29 -07:00
2015-06-05 00:28:31 -07:00
reqFuel = scalar, U08, 24, "ms", 0.1, 0.0, 0.0, 25.5, 1
divider = scalar, U08, 25, "", 1.0, 0.0
2016-02-29 03:23:09 -08:00
alternate = bits, U08, 26, [0:0], "Simultaneous", "Alternating"
2016-05-31 20:19:31 -07:00
multiplyMAP = bits, U08, 26, [1:1], "No", "Yes"
2016-05-31 21:57:53 -07:00
includeAFR = bits, U08, 26, [2:2], "No", "Yes"
2016-10-31 18:37:00 -07:00
unused2-26d = bits, U08, 26, [3:3], "No", "Yes"
unused2-26e = bits, U08, 26, [4:4], "No", "Yes"
unused2-26f = bits, U08, 26, [5:5], "No", "Yes"
unused2-26g = bits, U08, 26, [6:6], "No", "Yes"
2016-12-27 11:35:46 -08:00
indInjAng = bits, U08, 26, [7:7], "Disabled", "Enabled"
2015-06-05 00:28:31 -07:00
injOpen = scalar, U08, 27, "ms", 0.1, 0.0, 0.1, 25.5, 1
inj1Ang = scalar, U16, 28, "deg", 1.0, 0.0, 0.0, 360, 0
inj2Ang = scalar, U16, 30, "deg", 1.0, 0.0, 0.0, 360, 0
inj3Ang = scalar, U16, 32, "deg", 1.0, 0.0, 0.0, 360, 0
inj4Ang = scalar, U16, 34, "deg", 1.0, 0.0, 0.0, 360, 0
2015-02-02 22:25:43 -08:00
; Config1
2015-10-08 18:42:09 -07:00
mapSample = bits, U08, 36, [0:1], "Instantaneous", "Cycle Average", "Cycle Minimum", "INVALID"
2015-06-05 00:28:31 -07:00
twoStroke = bits, U08, 36, [2:2], "Four-stroke", "Two-stroke"
injType = bits, U08, 36, [3:3], "Port", "Throttle Body"
2016-12-28 13:46:20 -08:00
nCylinders = bits, U08, 36, [4:7], "INVALID","1","2","3","4","5","6","INVALID","8","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
; Config2
2015-06-05 00:28:31 -07:00
cltType = bits, U08, 37, [0:1], "GM", "Unknown1", "Unknown2", "Unknown3"
matType = bits, U08, 37, [2:3], "GM", "Unknown1", "Unknown2", "Unknown3"
2016-12-28 13:46:20 -08:00
nInjectors = bits, U08, 37, [4:7], "INVALID","1","2","3","4","5","6","INVALID","8","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
; Config3
2015-06-05 00:28:31 -07:00
engineType = bits, U08, 38, [0:0], "Even fire", "Odd fire"
2016-07-15 00:36:25 -07:00
flexEnabled = bits, U08, 38, [1:1], "Off", "On"
2015-06-05 00:28:31 -07:00
algorithm = bits, U08, 38, [2:2], "Speed Density", "Alpha-N"
baroCorr = bits, U08, 38, [3:3], "Off", "On"
2016-11-01 05:19:16 -07:00
injLayout = bits, U08, 38, [4:5], "Paired", "Semi-Sequential", "INVALID", "Sequential"
2017-05-08 15:15:03 -07:00
unused2-38f = bits, U08, 38, [6:6], "ONE", "INVALID"
2016-11-01 05:19:16 -07:00
unused2-38h = bits, U08, 38, [7:7], "No", "Yes"
2017-04-14 15:40:29 -07:00
2016-11-27 02:47:22 -08:00
primePulse = scalar, U08, 39, "ms", 0.1, 0.0, 0.0, 25.5, 1
dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 100.0, 0
flexFreqLow = scalar, U08, 41, "Hz", 1.0, 0.0, 0.0, 250.0, 0
flexFreqHigh = scalar, U08, 42, "Hz", 1.0, 0.0, 0.0, 250.0, 0
2017-04-14 15:40:29 -07:00
2017-02-25 21:33:03 -08:00
boostMaxDuty = scalar, U08, 43, "%", 1.0, 0.0, 0.0, 100.0, 0
tpsMin = scalar, U08, 44, "ADC", 1.0, 0.0, 0.0, 255.0, 0
tpsMax = scalar, U08, 45, "ADC", 1.0, 0.0, 0.0, 255.0, 0
mapMin = scalar, U08, 46, "kpa", 1.0, 0.0, 0.0, 255.0, 0
mapMax = scalar, U16, 47, "kpa", 1.0, 0.0, 0.0, 25500, 0
fpPrime = scalar, U08, 49, "s", 1.0, 0.0, 0.0, 255.0, 0
stoich = scalar, U08, 50, ":1", 0.1, 0.0, 0.0, 25.5, 1
oddfire2 = scalar, U16, 51, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte)
oddfire3 = scalar, U16, 53, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte)
oddfire4 = scalar, U16, 55, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte)
2017-04-14 15:40:29 -07:00
flexFuelLow = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 250.0, 0
flexFuelHigh = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 250.0, 0
2017-02-25 21:33:03 -08:00
flexAdvLow = scalar, U08, 59, "Deg", 1.0, 0.0, 0.0, 250.0, 0
2017-03-12 23:02:54 -07:00
flexAdvHigh = scalar, U08, 60, "Deg", 1.0, 0.0, 0.0, 250.0, 0
2017-04-14 15:40:29 -07:00
2017-02-25 21:33:03 -08:00
iacCLminDuty = scalar, U08, 61, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles when using closed loop idle
iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0
2017-04-14 15:40:29 -07:00
boostMinDuty = scalar, U08, 63, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles for boost control
2017-02-19 22:57:46 -08:00
2015-02-02 22:25:43 -08:00
;--------------------------------------------------
2015-06-05 00:28:31 -07:00
;Start Ignition table (Page 3)
2017-04-14 15:40:29 -07:00
;--------------------------------------------------
2015-06-05 00:28:31 -07:00
page = 3
2017-05-09 00:29:55 -07:00
advTable1 = array, U08, 0,[16x16], "deg", 1.0, -40, -40, 215.0, 0
2015-06-05 00:28:31 -07:00
rpmBins2 = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0
2015-02-02 22:25:43 -08:00
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
mapBins2 = array, U08, 272, [ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2015-02-02 22:25:43 -08:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
tpsBins2 = array, U08, 272, [ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2015-02-02 22:25:43 -08:00
#elif AIR_FLOW_METER
#error "Speeduino does not support MAF"
#exit
#endif
2015-06-05 00:28:31 -07:00
;--------------------------------------------------
;Start Page 4
;These are primarily ignition related settings (Previously part of page 2)
2017-04-14 15:40:29 -07:00
;--------------------------------------------------
2015-06-05 00:28:31 -07:00
page = 4
2015-08-16 01:00:24 -07:00
TrigAng = scalar, S16, 0, "Deg", 1, 0, -360, 360, 0
2015-06-05 00:28:31 -07:00
FixAng = scalar, U08, 2, "Deg", 1, 0, 0, 80, 0
2015-08-22 18:36:18 -07:00
CrankAng = scalar, U08, 3, "Deg", 1, 0, -10, 80, 0
2016-09-21 07:58:04 -07:00
TrigAngMul = scalar, U08, 4, "", 1, 0, 0, 88, 0 ; Multiplier for tooth counts that don't evenly divide into 360
2016-12-20 18:21:27 -08:00
TrigEdge = bits, U08, 5,[0:0], "Leading", "Trailing"
TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed"
IgInv = bits, U08, 5,[2:2], "Going Low", "Going High"
oddfire = bits, U08, 5,[3:3], "No", "Yes"
2017-03-31 04:39:33 -07:00
TrigPattern = bits, U08, 5,[4:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "INVALID", "INVALID"
2016-12-20 18:21:27 -08:00
TrigEdgeSec = bits, U08, 6,[0:0], "Leading", "Trailing"
2017-01-27 13:39:10 -08:00
fuelPumpPin = bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2017-03-20 23:19:07 -07:00
useResync = bits, U08, 6,[7:7], "No", "Yes"
2017-04-21 00:29:09 -07:00
sparkDur = scalar, U08, 7, "ms", 0.1, 0, 0, 25.5, 1 ; Spark duration
2015-06-05 00:28:31 -07:00
IdleAdvRPM = scalar, U08, 8, "RPM", 100, 0, 0, 1200, 0
2015-02-02 22:25:43 -08:00
#if CELSIUS
2015-12-14 17:48:59 -08:00
IdleAdvCLT = scalar, U08, 9, "C", 1, -40, -40, 102, 1
2015-02-02 22:25:43 -08:00
#else
2016-03-29 03:02:02 -07:00
IdleAdvCLT = scalar, U08, 9, "F", 1.8, -22.23, -40, 215, 0
2015-02-02 22:25:43 -08:00
#endif
2015-06-05 00:28:31 -07:00
IdleDelayTime = scalar, U08, 10, "sec", 1, 0, 0, 5, 0
StgCycles = scalar, U08, 11, "cycles", 1, 0, 0, 255, 0
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
; name = array, type, offset, shape, units, scale, translate, lo, hi, digits
; name = scalar, type, offset, units, scale, translate, lo, hi, digits
;Dwell control
2015-03-19 21:13:16 -07:00
;running dwell variable railed to 8 - who needs more than 8ms?
2015-10-17 04:23:34 -07:00
dwellcont = bits, U08, 12, [0:0], "INVALID", "Dwell control"
2015-09-07 18:17:47 -07:00
useDwellLim = bits, U08, 12, [1:1], "Off", "On"
2016-02-17 20:00:16 -08:00
sparkMode = bits, U08, 12, [2:3], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential"
2016-02-24 18:11:13 -08:00
dfcoEnabled = bits, U08, 12, [4:4], "Off", "On"
2017-04-14 15:40:29 -07:00
TrigFilter = bits, U08, 12, [5:6], "Off", "Weak", "Medium", "Aggressive"
2016-05-29 02:41:31 -07:00
ignCranklock = bits, U08, 12, [7:7], "Off", "On"
2015-10-17 04:23:34 -07:00
dwellcrank = scalar, U08, 13, "ms", 0.1, 0, 0, 25, 1
dwellrun = scalar, U08, 14, "ms", 0.1, 0, 0, 8, 1
numteeth = scalar, U08, 15, "teeth", 1.0, 0.0, 0.0, 255, 0
onetwo = scalar, U08, 16, "teeth", 1.0, 0.0, 0.0, 255, 0
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
crankRPM = scalar, U08, 17, "rpm", 100, 0.0, 100, 1000, 0
tpsflood = scalar, U08, 18, "%", 1.0, 0.0, 0.0, 255.0, 0
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;Rev Limits
2015-10-17 04:23:34 -07:00
SoftRevLim = scalar, U08, 19, "rpm", 100, 0.0, 100, 25500, 0
SoftLimRetard = scalar, U08, 20, "deg", 1.0, 0.0, 0.0, 80, 0
SoftLimMax = scalar, U08, 21, "s", 0.1, 0.0, 0.0, 25.5, 1
HardRevLim = scalar, U08, 22, "rpm", 100, 0.0, 100, 25500, 0
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;TPS based acceleration enrichment
2015-10-17 04:23:34 -07:00
taeBins = array, U08, 23, [ 4], "%/s", 10.0, 0.0, 0.00, 2550.0, 0
taeRates = array, U08, 27, [ 4], "%", 1.0, 0.0, 0.00, 255.0, 0 ; 4 bytes
2016-08-08 19:58:51 -07:00
;WUE Bins (Needed somewhere to put these
2016-03-29 03:02:02 -07:00
#if CELSIUS
2016-08-08 19:58:51 -07:00
wueBins = array, U08, 31, [10], "C", 1.0, -40, -40, 102.0, 0
2016-03-29 03:02:02 -07:00
#else
2016-08-08 19:58:51 -07:00
wueBins = array, U08, 31, [10], "F", 1.8, -22.23, -40, 215.0, 0
2016-03-29 03:02:02 -07:00
#endif
2015-03-19 21:13:16 -07:00
;Dwell config options
2015-10-17 04:23:34 -07:00
dwellLim = scalar, U08, 41, "ms", 1, 0, 0, 32, 0
dwellRates = array, U08, 42, [6], "%", 1.0, 0.0, 0.00, 255.0, 0
2017-04-14 15:40:29 -07:00
2016-01-02 12:40:27 -08:00
;IAT (Inlet air temp) timing retard
#if CELSIUS
iatRetBins = array, U08, 48, [ 6], "C", 1.0, 0.0, 0.00, 255.0, 0
#else
2016-03-29 03:02:02 -07:00
iatRetBins = array, U08, 48, [ 6], "F", 1.8, 17.77, 0.00, 255.0, 0 ; No -40 degree offset here
2016-01-02 12:40:27 -08:00
#endif
iatRetRates = array, U08, 54, [ 6], "deg", 1.0, 0.0, 0.00, 255.0, 0
2016-02-24 18:11:13 -08:00
;Decelleration Fuel Cut Off (DFCO)
dfcoRPM = scalar, U08, 60, "RPM", 10.0, 0.0, 100, 2550, 0
dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0
2016-02-29 03:23:09 -08:00
dfcoTPSThresh = scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0
2016-04-24 16:09:04 -07:00
;ranking ignition bypass
ignBypassEnable = bits, U08, 63, [0:0], "Off", "On"
2017-01-27 13:39:10 -08:00
ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2016-04-24 16:09:04 -07:00
ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH"
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;--------------------------------------------------
2015-06-05 00:28:31 -07:00
;Start AFR page
2015-02-02 22:25:43 -08:00
;--------------------------------------------------
2015-06-05 00:28:31 -07:00
page = 5
afrTable = array, U08, 0,[16x16], "AFR", 0.1, 0.0, 7, 25.5, 1
rpmBinsAFR = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0
2015-02-02 22:25:43 -08:00
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
mapBinsAFR = array, U08, 272,[ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2015-02-02 22:25:43 -08:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
tpsBinsAFR = array, U08, 272,[ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2015-02-02 22:25:43 -08:00
#elif AIR_FLOW_METER
#error "Speeduino does not support MAF"
#exit
#endif
2017-04-14 15:40:29 -07:00
2015-06-05 00:28:31 -07:00
;--------------------------------------------------
;Start page 6
; Page 6 is all settings associated with O2/AFR
;--------------------------------------------------
page = 6
egoAlgorithm = bits , U08, 0, [0:1], "Simple", "INVALID", "PID", "No correction" ; * ( 1 byte)
egoType = bits , U08, 0, [2:3], "Disabled", "Narrow Band", "Wide Band", "INVALID" ; egoOption
2015-09-26 16:14:29 -07:00
boostEnabled = bits, U08, 0, [4:4], "Off", "On"
vvtEnabled = bits, U08, 0, [5:5], "Off", "On"
2016-04-12 06:22:14 -07:00
boostCutType = bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both"
2017-04-14 15:40:29 -07:00
2015-06-05 00:28:31 -07:00
egoKP = scalar, U08, 1, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
egoKD = scalar, U08, 3, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
2015-02-02 23:01:18 -08:00
#if CELSIUS
2016-09-30 05:35:41 -07:00
egoTemp = scalar, U08, 4, "C", 1.0, -40, -40, 102.0, 0
2015-02-02 23:01:18 -08:00
#else
2016-09-30 05:35:41 -07:00
egoTemp = scalar, U08, 4, "F", 1.8, -22.23, -40, 215.0, 0
2015-02-02 23:01:18 -08:00
#endif
2015-09-26 16:14:29 -07:00
egoCount = scalar, U08, 5, "", 4.0, 0.0, 4.0, 255.0, 0 ; * ( 1 byte)
egoDelta = scalar, U08, 6, "%", 1.0, 0.0, 0.0, 255.0, 0 ; * ( 1 byte)
egoLimit = scalar, U08, 7, "", 1, 0, 0, 16, 0
2017-04-14 15:40:29 -07:00
ego_min = scalar, U08, 8, "AFR", 0.1, 0.0, 7, 25, 1
ego_max = scalar, U08, 9, "AFR", 0.1, 0.0, 7, 25, 1
2015-09-26 16:14:29 -07:00
ego_sdelay = scalar, U08, 10, "sec", 1, 0, 0, 120, 0
egoRPM = scalar, U08, 11, "rpm", 100, 0.0, 100, 25500, 0
egoTPSMax = scalar, U08, 12, "%", 1, 0, 0, 120, 0
2017-01-27 13:39:10 -08:00
vvtPin = bits , U08, 13, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2017-01-18 19:54:07 -08:00
unused6-13e = bits, U08, 13, [6:6], "ONE", "INVALID"
unused6-13f = bits, U08, 13, [7:7], "ONE", "INVALID"
2017-01-27 13:39:10 -08:00
boostPin = bits, U08, 14, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2017-01-18 19:54:07 -08:00
unused6-14e = bits, U08, 14, [6:6], "ONE", "INVALID"
unused6-14f = bits, U08, 14, [7:7], "ONE", "INVALID"
2015-09-26 16:14:29 -07:00
brvBins = array, U08, 15, [6], "V", 0.1, 0, 6, 24, 1 ; Bins for the battery reference voltage
injBatRates = array, U08, 21, [6], "%", 1, 0, 0, 255, 0 ;Values for injector pulsewidth vs voltage
2016-03-29 03:02:02 -07:00
#if CELSIUS
2015-09-26 16:14:29 -07:00
airDenBins = array, U08, 27, [9], "C", 1.0, -40, -40, 215, 0 ; Bins for the air density correction curve
2016-03-29 03:02:02 -07:00
#else
airDenBins = array, U08, 27, [9], "F", 1.8, -22.23, -40, 215, 0 ; Bins for the air density correction curve
#endif
2015-09-26 16:14:29 -07:00
airDenRates = array, U08, 36, [9], "%", 1.0, 0.0, 0, 255, 0 ; Values for the air density correction curve
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
; PWM Frequencies
boostFreq = scalar, U08, 45, "Hz", 2.0, 0.0, 10, 511, 0
vvtFreq = scalar, U08, 46, "Hz", 2.0, 0.0, 10, 511, 0
idleFreq = scalar, U08, 47, "Hz", 2.0, 0.0, 10, 511, 0
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
; Launch Control
2017-01-27 13:39:10 -08:00
launchPin = bits , U08, 48, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2015-10-17 04:23:34 -07:00
launchEnable = bits, U08, 48, [6:6], "No", "Yes"
2016-03-25 14:45:48 -07:00
launchHiLo = bits, U08, 48, [7:7], "LOW", "HIGH"
2017-04-14 15:40:29 -07:00
2017-01-16 18:33:41 -08:00
lnchSoftLim = scalar, U08, 49, "rpm", 100, 0.0, 100, 25500, 0
2017-01-20 17:58:45 -08:00
lnchRetard = scalar, S08, 50, "deg", 1.0, 0.0, -30, 40, 0
2017-01-16 18:33:41 -08:00
lnchHardLim = scalar, U08, 51, "rpm", 100, 0.0, 100, 25500, 0
lnchFuelAdd = scalar, U08, 52, "%", 1.0, 0.0, 0.0, 80, 0
2017-04-14 15:40:29 -07:00
2016-04-12 06:22:14 -07:00
idleKP = scalar, U08, 53, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
idleKI = scalar, U08, 54, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
idleKD = scalar, U08, 55, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
2017-01-16 18:33:41 -08:00
boostLimit = scalar, U08, 56, "kPa", 2.0, 0.0, 0.0, 511.0, 0
2016-05-15 04:05:49 -07:00
boostKP = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
boostKI = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
boostKD = scalar, U08, 59, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte)
2017-04-14 15:40:29 -07:00
2016-10-31 16:11:15 -07:00
lnchPullRes = bits, U08, 60, [0:1], "Float" , "Pullup", "INVALID", "INVALID"
2016-10-26 14:48:44 -07:00
fuelTrimEnabled = bits, U08, 60, [2:2], "No", "Yes"
2017-01-16 18:33:41 -08:00
flatSEnable = bits, U08, 60, [3:3], "No", "Yes"
2016-10-31 16:11:15 -07:00
unused6-60e = bits, U08, 60, [4:4], "ONE", "INVALID"
unused6-60f = bits, U08, 60, [5:5], "ONE", "INVALID"
unused6-60g = bits, U08, 60, [6:6], "ONE", "INVALID"
unused6-60h = bits, U08, 60, [7:7], "ONE", "INVALID"
2017-04-14 15:40:29 -07:00
2017-01-16 18:33:41 -08:00
; Flat shift
flatSSoftWin = scalar, U08, 61, "rpm", 100, 0.0, 100, 25500, 0
flatSRetard = scalar, U08, 62, "deg", 1.0, 0.0, 0.0, 80, 0
flatSArm = scalar, U08, 63, "rpm", 100, 0.0, 100, 25500, 0
2017-04-14 15:40:29 -07:00
2015-06-02 05:30:53 -07:00
;--------------------------------------------------
2015-07-23 21:40:24 -07:00
;Start idle and fan controls (Page 7)
2015-06-02 05:30:53 -07:00
;--------------------------------------------------
2015-06-05 00:28:31 -07:00
page = 7
2016-04-12 06:22:14 -07:00
iacCLValues = array, U08, 0, [10], "RPM", 10.0, 0.0, 0, 2550, 0
2017-04-14 15:40:29 -07:00
iacOLStepVal = array, U08, 10, [10], "Steps", 3, 0, 0, 765, 0
2015-06-02 05:30:53 -07:00
iacOLPWMVal = array, U08, 20, [10], "Duty %", 1.0, 0, 0, 100, 0
2016-03-29 03:02:02 -07:00
#if CELSIUS
2015-06-02 05:30:53 -07:00
iacBins = array, U08, 30, [10], "C", 1.0, -40, -40, 215, 0
2016-03-29 03:02:02 -07:00
#else
iacBins = array, U08, 30, [10], "F", 1.8, -22.23, -40, 215, 0
#endif
2017-04-14 15:40:29 -07:00
iacCrankSteps = array, U08, 40, [4], "Steps", 3, 0, 0, 765, 0
2015-06-02 05:30:53 -07:00
iacCrankDuty = array, U08, 44, [4], "Duty %", 1.0, 0, 0, 100, 0
2016-03-29 03:02:02 -07:00
#if CELSIUS
2015-06-02 05:30:53 -07:00
iacCrankBins = array, U08, 48, [4], "C", 1.0, -40, -40, 215, 0
2016-03-29 03:02:02 -07:00
#else
iacCrankBins = array, U08, 48, [4], "F", 1.8, -22.23, -40, 215, 0
#endif
2015-06-02 05:30:53 -07:00
2017-03-10 01:34:39 -08:00
iacAlgorithm = bits , U08, 52, [0:2], "None", "On/Off", "PWM Open loop", "PWM Closed loop", "Stepper Open Loop", "Stepper Closed Loop", "INVALID", "INVALID"
2017-04-02 23:12:24 -07:00
iacStepTime = bits , U08, 52, [3:5], "INVALID","1", "2", "3", "4", "5", "6","INVALID"
2016-01-12 22:06:55 -08:00
iacChannels = bits, U08, 52, [6:6], "1", "2"
2016-05-15 02:29:52 -07:00
iacPWMdir = bits , U08, 52, [7:7], "Normal", "Reverse"
2017-04-14 15:40:29 -07:00
#if CELSIUS
2015-06-02 05:30:53 -07:00
iacFastTemp = scalar, U08, 53, "C", 1.0, -40, -40, 215, 0
#else
2016-03-29 03:02:02 -07:00
iacFastTemp = scalar, U08, 53, "F", 1.8, -22.23, -40, 215, 0
2015-06-02 05:30:53 -07:00
#endif
2017-04-14 15:40:29 -07:00
2015-08-25 20:27:50 -07:00
iacStepHome = scalar, U08, 54, "Steps", 3, 0, 0, 765, 0
iacStepHyster = scalar, U08, 55, "Steps", 1, 0.0, 0.0, 10, 0
2017-04-14 15:40:29 -07:00
2015-07-23 21:40:24 -07:00
; Begin fan control vairables
2015-08-25 20:27:50 -07:00
fanInv = bits, U08, 56, [0:0], "No", "Yes"
2016-12-20 18:21:27 -08:00
fanEnable = bits, U08, 56, [1:1], "Off", "On/Off"
2017-01-27 13:39:10 -08:00
fanPin = bits , U08, 56, [2:7], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2015-07-23 21:40:24 -07:00
#if CELSIUS
2016-09-30 05:35:41 -07:00
fanSP = scalar, U08, 57, "C", 1.0, -40, -40, 215.0, 0
2017-04-14 15:40:29 -07:00
fanHyster = scalar, U08, 58, "C", 1.0, 0.0, 0.0, 40, 0
2015-07-23 21:40:24 -07:00
#else
2016-09-30 05:35:41 -07:00
fanSP = scalar, U08, 57, "F", 1.8, -22.23, -40, 215.0, 0
2017-04-14 15:40:29 -07:00
fanHyster = scalar, U08, 58, "F", 1.0, 0.0, 0.0, 40, 0
2016-03-30 03:34:55 -07:00
#endif
fanFreq = scalar, U08 , 59, "Hz", 2.0, 0.0, 10, 511, 0
#if CELSIUS
fanPWMBins = array, U08, 60, [4], "C", 1.0, -40, -40, 215, 0
#else
fanPWMBins = array, U08, 60, [4], "F", 1.8, -22.23, -40, 215, 0
2015-07-23 21:40:24 -07:00
#endif
2017-04-14 15:40:29 -07:00
2015-09-24 13:24:40 -07:00
;--------------------------------------------------
;Boost and vvt maps (Page 8)
;--------------------------------------------------
page = 8
2016-09-11 12:59:20 -07:00
;notes for boostTable in PSI~~~There are 6.895 psis to a kPa then x 2 like the kPa ver~~~div atmos. pressure in kPa by 2 and make neg so to subtract instead of add
2017-02-08 19:24:07 -08:00
; #if BOOSTPSI
2017-04-14 15:40:29 -07:00
; boostTable = array, U08, 0,[8x8], "PSI", 0.29007547546041846, -50.6625, 0, 74, 0
2017-02-08 19:24:07 -08:00
; #else
2017-04-14 15:40:29 -07:00
boostTable = array, U08, 0,[8x8], "kPa", 2.0, 0.0, 0, 511, 0
2017-02-08 19:24:07 -08:00
; #endif
2015-09-24 13:24:40 -07:00
rpmBinsBoost = array, U08, 64,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0
tpsBinsBoost = array, U08, 72,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0
vvtTable = array, U08, 80,[8x8], "%", 1.0, 0.0, 0, 100, 0
rpmBinsVVT = array, U08, 144,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0
tpsBinsVVT = array, U08, 152,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0
2016-10-15 03:52:20 -07:00
;--------------------------------------------------
;Sequential fuel trim tables (Page 9)
;--------------------------------------------------
page = 9
2017-04-14 15:40:29 -07:00
fuelTrim1Table = array, U08, 0,[6x6], "%", 1.0, -128, -50, 50, 0
2016-10-15 03:52:20 -07:00
fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
fuelTrim1loadBins = array, U08, 42,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2016-10-15 03:52:20 -07:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
fuelTrim1loadBins = array, U08, 42,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2016-10-15 03:52:20 -07:00
#endif
2016-11-01 18:13:17 -07:00
fuelTrim2Table = array, U08, 48,[6x6], "%", 1.0, -128, -50, 50, 0
2016-10-15 03:52:20 -07:00
fuelTrim2rpmBins = array, U08, 84,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
fuelTrim2loadBins = array, U08, 90,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2016-10-15 03:52:20 -07:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
fuelTrim2loadBins = array, U08, 90,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2016-10-15 03:52:20 -07:00
#endif
2016-11-01 18:13:17 -07:00
fuelTrim3Table = array, U08, 96,[6x6], "%", 1.0, -128, -50, 50, 0
2016-10-15 03:52:20 -07:00
fuelTrim3rpmBins = array, U08, 132,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
fuelTrim3loadBins = array, U08, 138,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2016-10-15 03:52:20 -07:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
fuelTrim3loadBins = array, U08, 138,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2016-10-15 03:52:20 -07:00
#endif
2016-11-01 18:13:17 -07:00
fuelTrim4Table = array, U08, 144,[6x6], "%", 1.0, -128, -50, 50, 0
2016-10-15 03:52:20 -07:00
fuelTrim4rpmBins = array, U08, 180,[ 6], "RPM", 100.0, 0.0, 100, 25500, 0
#if SPEED_DENSITY
2017-01-16 15:51:53 -08:00
fuelTrim4loadBins = array, U08, 186,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0
2016-10-15 03:52:20 -07:00
#elif ALPHA_N
2017-01-16 15:51:53 -08:00
fuelTrim4loadBins = array, U08, 186,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0
2016-10-15 03:52:20 -07:00
#endif
2017-04-14 15:40:29 -07:00
2017-01-26 14:58:21 -08:00
;--------------------------------------------------
;CANBUS control (Page 10)
;--------------------------------------------------
page = 10
2017-05-08 15:15:03 -07:00
#if CAN_COMMANDS
enable_canbus = bits, U08, 0, [0:1], "Off", "On Via Secondary Serial", "ON via Internal CAN ", "INVALID"
#else
enable_canbus = bits, U08, 0, [0:1], "Disable", "Enable", "INVALID", "INVALID"
#endif
2017-05-09 20:55:26 -07:00
enable_candata_in = bits, U08, 0, [2:2], "Off", "On"
2017-05-02 04:17:33 -07:00
caninput_sel1 = bits, U08, 1, [0:0], "Off", "On"
caninput_sel2 = bits, U08, 2, [0:0], "Off", "On"
2017-05-08 15:15:03 -07:00
caninput_sel3 = bits, U08, 3, [0:0], "Off", "On"
caninput_sel4 = bits, U08, 4, [0:0], "Off", "On"
caninput_sel5 = bits, U08, 5, [0:0], "Off", "On"
caninput_sel6 = bits, U08, 6, [0:0], "Off", "On"
caninput_sel7 = bits, U08, 7, [0:0], "Off", "On"
caninput_sel8 = bits, U08, 8, [0:0], "Off", "On"
caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0
caninput_param_start_byte1 = bits, U08, 25, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
2017-04-08 16:48:39 -07:00
caninput_param_start_byte2 = bits, U08, 26, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
caninput_param_start_byte3 = bits, U08, 27, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
caninput_param_start_byte4 = bits, U08, 28, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
caninput_param_start_byte5 = bits, U08, 29, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
caninput_param_start_byte6 = bits, U08, 30, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
2017-05-08 15:15:03 -07:00
caninput_param_start_byte7 = bits, U08, 31, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
caninput_param_start_byte8 = bits, U08, 32, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
caninput_param_num_bytes1 = bits, U08, 33, [0:1], "INVALID", "1", "2", "INVALID"
2017-04-08 16:48:39 -07:00
caninput_param_num_bytes2 = bits, U08, 34, [0:1], "INVALID", "1", "2", "INVALID"
caninput_param_num_bytes3 = bits, U08, 35, [0:1], "INVALID", "1", "2", "INVALID"
caninput_param_num_bytes4 = bits, U08, 36, [0:1], "INVALID", "1", "2", "INVALID"
caninput_param_num_bytes5 = bits, U08, 37, [0:1], "INVALID", "1", "2", "INVALID"
caninput_param_num_bytes6 = bits, U08, 38, [0:1], "INVALID", "1", "2", "INVALID"
2017-05-08 15:15:03 -07:00
caninput_param_num_bytes7 = bits, U08, 39, [0:1], "INVALID", "1", "2", "INVALID"
caninput_param_num_bytes8 = bits, U08, 40, [0:1], "INVALID", "1", "2", "INVALID"
2017-05-02 04:17:33 -07:00
unused10_41 = scalar, U08, 41, "", 1, 0, 0, 255, 0
unused10_42 = scalar, U08, 42, "", 1, 0, 0, 255, 0
unused10_43 = scalar, U08, 43, "", 1, 0, 0, 255, 0
unused10_44 = scalar, U08, 44, "", 1, 0, 0, 255, 0
unused10_45 = scalar, U08, 45, "", 1, 0, 0, 255, 0
unused10_46 = scalar, U08, 46, "", 1, 0, 0, 255, 0
unused10_47 = scalar, U08, 47, "", 1, 0, 0, 255, 0
unused10_48 = scalar, U08, 48, "", 1, 0, 0, 255, 0
unused10_49 = scalar, U08, 49, "", 1, 0, 0, 255, 0
2017-05-08 15:15:03 -07:00
enable_candata_out = bits, U08, 50, [0:0], "Off", "On"
canoutput_sel1 = bits, U08, 51, [0:0], "Off", "On"
canoutput_sel2 = bits, U08, 52, [0:0], "Off", "On"
canoutput_sel3 = bits, U08, 53, [0:0], "Off", "On"
canoutput_sel4 = bits, U08, 54, [0:0], "Off", "On"
canoutput_sel5 = bits, U08, 55, [0:0], "Off", "On"
canoutput_sel6 = bits, U08, 56, [0:0], "Off", "On"
canoutput_sel7 = bits, U08, 57, [0:0], "Off", "On"
canoutput_sel8 = bits, U08, 58, [0:0], "Off", "On"
canoutput_param_group = array , U16, 59, [ 8], "", 1, 0, 0, 65535, 0
canoutput_param_start_byte1 = bits, U08, 61, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte2 = bits, U08, 62, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte3 = bits, U08, 63, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte4 = bits, U08, 64, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte5 = bits, U08, 65, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte6 = bits, U08, 66, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte7 = bits, U08, 67, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_start_byte8 = bits, U08, 68, [0:2], "1", "2", "3", "4", "5", "6", "7", "8"
canoutput_param_num_bytes1 = bits, U08, 69, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes2 = bits, U08, 70, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes3 = bits, U08, 71, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes4 = bits, U08, 72, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes5 = bits, U08, 73, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes6 = bits, U08, 74, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes7 = bits, U08, 75, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes8 = bits, U08, 76, [0:1], "INVALID", "1", "2", "INVALID"
2017-05-02 04:17:33 -07:00
unused10_77 = scalar, U08, 77, "", 1, 0, 0, 255, 0
unused10_78 = scalar, U08, 78, "", 1, 0, 0, 255, 0
unused10_79 = scalar, U08, 79, "", 1, 0, 0, 255, 0
unused10_80 = scalar, U08, 80, "", 1, 0, 0, 255, 0
unused10_81 = scalar, U08, 81, "", 1, 0, 0, 255, 0
unused10_82 = scalar, U08, 82, "", 1, 0, 0, 255, 0
unused10_83 = scalar, U08, 83, "", 1, 0, 0, 255, 0
unused10_84 = scalar, U08, 84, "", 1, 0, 0, 255, 0
unused10_85 = scalar, U08, 85, "", 1, 0, 0, 255, 0
unused10_86 = scalar, U08, 86, "", 1, 0, 0, 255, 0
unused10_87 = scalar, U08, 87, "", 1, 0, 0, 255, 0
unused10_88 = scalar, U08, 88, "", 1, 0, 0, 255, 0
unused10_89 = scalar, U08, 89, "", 1, 0, 0, 255, 0
unused10_90 = scalar, U08, 90, "", 1, 0, 0, 255, 0
unused10_91 = scalar, U08, 91, "", 1, 0, 0, 255, 0
unused10_92 = scalar, U08, 92, "", 1, 0, 0, 255, 0
unused10_93 = scalar, U08, 93, "", 1, 0, 0, 255, 0
unused10_94 = scalar, U08, 94, "", 1, 0, 0, 255, 0
unused10_95 = scalar, U08, 95, "", 1, 0, 0, 255, 0
unused10_96 = scalar, U08, 96, "", 1, 0, 0, 255, 0
unused10_97 = scalar, U08, 97, "", 1, 0, 0, 255, 0
unused10_98 = scalar, U08, 98, "", 1, 0, 0, 255, 0
unused10_99 = scalar, U08, 99, "", 1, 0, 0, 255, 0
2017-05-08 15:15:03 -07:00
speeduino_tsCanId = bits, U08, 100, [0:3], $tsCanId_list
true_address = bits, U16, 101, [0:10], $CAN_ADDRESS_HEX
realtime_base_address = bits, U16, 103, [0:10], $CAN_ADDRESS_HEX
obd_address = bits, U16, 105, [0:10], $CAN_ADDRESS_HEX
2017-05-02 04:17:33 -07:00
unused10_107 = scalar, U08, 107, "", 1, 0, 0, 255, 0
unused10_108 = scalar, U08, 108, "", 1, 0, 0, 255, 0
unused10_109 = scalar, U08, 109, "", 1, 0, 0, 255, 0
unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0
unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0
unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0
unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0
unused10_114 = scalar, U08, 114, "", 1, 0, 0, 255, 0
unused10_115 = scalar, U08, 115, "", 1, 0, 0, 255, 0
unused10_116 = scalar, U08, 116, "", 1, 0, 0, 255, 0
unused10_117 = scalar, U08, 117, "", 1, 0, 0, 255, 0
unused10_118 = scalar, U08, 118, "", 1, 0, 0, 255, 0
unused10_119 = scalar, U08, 119, "", 1, 0, 0, 255, 0
unused10_120 = scalar, U08, 120, "", 1, 0, 0, 255, 0
unused10_121 = scalar, U08, 121, "", 1, 0, 0, 255, 0
unused10_122 = scalar, U08, 122, "", 1, 0, 0, 255, 0
unused10_123 = scalar, U08, 123, "", 1, 0, 0, 255, 0
unused10_124 = scalar, U08, 124, "", 1, 0, 0, 255, 0
unused10_125 = scalar, U08, 125, "", 1, 0, 0, 255, 0
unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0
unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;-------------------------------------------------------------------------------
2015-03-15 04:54:47 -07:00
[ConstantsExtensions]
requiresPowerCycle = nCylinders
requiresPowerCycle = pinLayout
2017-01-26 21:38:52 -08:00
requiresPowerCycle = fanPin
2015-05-05 16:22:02 -07:00
requiresPowerCycle = reqFuel
requiresPowerCycle = numteeth
requiresPowerCycle = onetwo
requiresPowerCycle = injOpen
requiresPowerCycle = IgInv
2015-07-23 21:40:24 -07:00
requiresPowerCycle = fanInv
2015-09-26 16:14:29 -07:00
requiresPowerCycle = boostEnabled
requiresPowerCycle = vvtEnabled
2015-10-17 15:18:53 -07:00
; requiresPowerCycle = vvtChannels
2015-09-29 00:21:00 -07:00
requiresPowerCycle = boostFreq
requiresPowerCycle = vvtFreq
requiresPowerCycle = idleFreq
2015-10-28 12:13:13 -07:00
requiresPowerCycle = sparkMode
2016-04-05 03:44:11 -07:00
requiresPowerCycle = launchPin
requiresPowerCycle = launchEnable
requiresPowerCycle = launchHiLo
2016-06-26 17:31:52 -07:00
requiresPowerCycle = flexEnabled
2016-09-11 04:19:25 -07:00
requiresPowerCycle = oddfire2
requiresPowerCycle = oddfire3
requiresPowerCycle = oddfire4
2017-02-19 22:57:46 -08:00
requiresPowerCycle = iacCLminDuty
requiresPowerCycle = iacCLmaxDuty
requiresPowerCycle = boostMinDuty
requiresPowerCycle = boostMaxDuty
2017-04-14 15:40:29 -07:00
2017-02-20 21:51:50 -08:00
defaultValue = pinLayout, 1
2015-05-18 05:46:22 -07:00
defaultValue = TrigPattern, 0
2017-03-20 23:19:07 -07:00
defaultValue = useResync, 1
2017-02-20 21:51:50 -08:00
defaultValue = sparkMode, 0
defaultValue = indInjAng, 0
defaultValue = inj1Ang, 355
defaultValue = inj2Ang, 355
defaultValue = inj3Ang, 355
defaultValue = inj4Ang, 355
defaultValue = nInjectors, 4
defaultValue = dutyLim, 100
defaultValue = mapMin, 10
defaultValue = mapMax, 260
defaultValue = fpPrime, 3
defaultValue = TrigFilter, 0
defaultValue = ignCranklock,0
2016-05-31 21:57:53 -07:00
defaultValue = multiplyMAP, 0
2017-02-20 21:51:50 -08:00
defaultValue = includeAFR, 0
defaultValue = stoich, 14.7
2016-06-24 01:02:53 -07:00
defaultValue = flexEnabled, 0
2017-02-20 21:51:50 -08:00
defaultValue = oddfire2, 0
defaultValue = oddfire3, 0
defaultValue = oddfire4, 0
2016-11-27 02:47:22 -08:00
defaultValue = flexFreqLow, 50
2017-02-20 21:51:50 -08:00
defaultValue = flexFreqHigh,150
2016-11-27 02:47:22 -08:00
defaultValue = flexFuelLow, 100
2017-02-20 21:51:50 -08:00
defaultValue = flexFuelHigh,163
defaultValue = flexAdvLow, 0
2016-11-27 02:47:22 -08:00
defaultValue = flexAdvHigh, 13
2017-05-12 01:14:14 -07:00
defaultValue = flexBoostLow,0
defaultValue = flexBoostHigh,0
2016-12-20 18:21:27 -08:00
defaultValue = fuelPumpPin, 0
2017-02-20 21:51:50 -08:00
defaultValue = fanPin, 0
defaultValue = iacCLminDuty,0
defaultValue = iacCLmaxDuty,100
defaultValue = boostMinDuty,0
defaultValue = boostMaxDuty,100
2017-04-21 00:29:09 -07:00
defaultValue = sparkDur, 1.0
2017-05-10 16:08:24 -07:00
defaultValue = speeduino_tsCanId, 0
defaultValue = true_address, 0
defaultValue = realtime_base_address, 0
defaultValue = obd_address, 0
2017-04-14 15:40:29 -07:00
2017-02-20 21:51:50 -08:00
;Default pins
defaultValue = fanPin, 0
defaultValue = vvtPin, 0
defaultValue = launchPin, 0
defaultValue = boostPin, 0
defaultValue = fuelPumpPin, 0
defaultValue = tachoPin, 0
2015-02-02 22:25:43 -08:00
[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_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.
2017-04-14 15:40:29 -07:00
;
2015-02-02 22:25:43 -08:00
; 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".
2017-04-14 15:40:29 -07:00
;
2015-02-02 22:25:43 -08:00
;----------------------------------------------------------------------------
2016-09-11 04:19:25 -07:00
menuDialog = main
menu = "Settings"
2015-03-15 04:54:47 -07:00
;subMenu = std_injection, "&Constants"
subMenu = engine_constants, "Engine Constants"
2015-02-28 13:27:16 -08:00
subMenu = injChars, "Injector Characteristics"
2015-02-02 22:25:43 -08:00
subMenu = triggerSettings, "&Trigger Setup"
2015-09-17 16:41:10 -07:00
;subMenu = OLED, "OLED Setup"
2015-04-21 23:49:10 -07:00
subMenu = airdensity_curve, "IAT Density"
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
menu = "&Tuning"
subMenu = std_realtime, "&Realtime Display"
2016-04-27 22:24:38 -07:00
subMenu = accelEnrichments, "&Acceleration Enrichment"
2015-02-02 22:25:43 -08:00
subMenu = egoControl, "AFR/O2", 3
subMenu = RevLimiterS, "Rev Limits", 2
2016-06-24 01:02:53 -07:00
subMenu = flexFueling, "Flex Fuel", 2
2016-05-31 21:57:53 -07:00
subMenu = veTableDialog, "&VE Table", 0
2015-06-05 00:28:31 -07:00
subMenu = sparkTbl, "&Spark Table", 2
subMenu = afrTable1Tbl, "A&FR Table", 5
2016-10-15 03:52:20 -07:00
subMenu = std_separator
subMenu = inj_trimad, "Sequential fuel trim", 9
2015-02-02 22:25:43 -08:00
menu = "&Spark"
subMenu = sparkSettings, "&Spark Settings"
2015-06-09 06:32:00 -07:00
subMenu = sparkTbl, "Spark Table", 2
2015-02-02 22:25:43 -08:00
;subMenu = IdleAdvance, "Idle Advance settings",
;subMenu = Knock, "Kn&ock System"
subMenu = dwellSettings, "Dwell settings"
2015-03-19 21:13:16 -07:00
subMenu = dwell_correction_curve, "Dwell Compensation"
2016-01-02 12:40:27 -08:00
subMenu = iat_retard_curve, "&IAT Retard"
2015-02-02 22:25:43 -08:00
;subMenu = wheelsim, "Stim for wheel"
;subMenu = oddwheel, "Oddfire Wheel settings", 7, { wheelon && oddfire }
2017-04-14 15:40:29 -07:00
2015-06-02 05:30:53 -07:00
menu = "&Starting/Idle"
subMenu = crankPW, "Cranking Settings"
2016-08-08 19:58:51 -07:00
subMenu = warmup, "Warmup Enrichment"
2017-04-14 15:40:29 -07:00
subMenu = std_separator
2015-08-25 04:52:05 -07:00
subMenu = idleSettings, "Idle Control"
2017-03-10 01:34:39 -08:00
subMenu = iacClosedLoop_curve, "Idle - Closed loop targets", 7, { iacAlgorithm == 3 || iacAlgorithm == 5 }
2016-04-24 16:09:04 -07:00
subMenu = iacPwm_curve, "Idle - PWM Duty Cycle", 7, { iacAlgorithm == 2 }
subMenu = iacPwmCrank_curve, "Idle - PWM Cranking Duty Cycle", 7, { iacAlgorithm == 2 }
2017-03-10 01:34:39 -08:00
subMenu = iacStep_curve, "Idle - Stepper Motor", 7, { iacAlgorithm == 4 }
subMenu = iacStepCrank_curve, "Idle - Stepper Motor Cranking", 7, { iacAlgorithm == 4 }
2017-04-14 15:40:29 -07:00
2015-09-27 05:51:10 -07:00
menu = "&Accessories"
subMenu = fanSettings, "Thermo Fan"
2017-01-16 18:33:41 -08:00
subMenu = LaunchControl, "Launch Control / Flat Shift"
2016-12-20 18:21:27 -08:00
subMenu = fuelpump, "Fuel Pump"
2015-09-27 05:51:10 -07:00
subMenu = std_separator
subMenu = boostSettings, "Boost Control"
2016-07-22 00:30:35 -07:00
subMenu = boostTbl, "Boost target", 8, { boostEnabled }
2015-09-27 05:51:10 -07:00
subMenu = std_separator
subMenu = vvtSettings, "VVT Control"
subMenu = vvtTbl, "VVT duty cycle", 8, { vvtEnabled }
2016-08-24 15:05:58 -07:00
subMenu = std_separator
subMenu = tacho, "Tacho Output"
2017-05-02 04:17:33 -07:00
2016-09-30 09:06:09 -07:00
subMenu = std_separator
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
#if CAN_COMMANDS
2017-05-08 15:15:03 -07:00
subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface"
subMenu = std_separator
2017-05-02 04:17:33 -07:00
subMenu = Canin_config, "Canbus Input Configuration"
;subMenu = std_separator
;subMenu = Canout_config, "Canbus Output Configuration"
2017-05-08 15:15:03 -07:00
#else
subMenu = serial3IO, "Secondary Serial IO Interface"
#endif
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
menuDialog = main
menu = "T&ools"
2015-09-16 05:23:06 -07:00
subMenu = mapCal, "Calibrate MAP"
2015-02-02 22:25:43 -08:00
;subMenu = battcalib, "Calibrate Battery Voltage"
;subMenu = std_separator ;----------------------------------------------
;subMenu = flash_unlock, "Un/Lock calibrations"
2016-11-01 05:19:16 -07:00
subMenu = std_ms2gentherm, "Calibrate Thermistor Tables", 0 ;, {flashlock}
2015-02-02 22:25:43 -08:00
subMenu = std_ms2geno2, "Calibrate &AFR Table", 0;, {flashlock}
2017-04-14 15:40:29 -07:00
2015-02-05 13:11:00 -08:00
menuDialog = main
menu = "3D &Tuning Maps"
subMenu = veTable1Map, "Fuel Table"
2015-06-05 00:28:31 -07:00
subMenu = sparkMap, "Spark Table", 3
2015-02-05 13:11:00 -08:00
subMenu = afrTable1Map, "AFR Target Table"
2017-03-09 16:46:11 -08:00
2017-04-14 15:40:29 -07:00
#if enablehardware_test
2017-03-09 16:46:11 -08:00
menuDialog = main
menu = "Hardware Testing"
subMenu = outputtest1, "Test Output Hardware"
#endif
2017-04-14 15:40:29 -07:00
2015-10-17 15:18:53 -07:00
menu = "Help"
subMenu = helpGeneral, "Speeduino Help"
2015-02-02 22:25:43 -08:00
;-------------------------------------------------------------------------------
2015-10-17 15:18:53 -07:00
[SettingContextHelp]
; constantName = "Help Text"
; tool tips tooltips
;Ensure all settings are defined as some MS2/BG words shipped with TS are not applicable.
2016-06-20 06:32:51 -07:00
nCylinders = "The number of cylinders in your engine."
2016-10-02 23:32:04 -07:00
alternate = ""
2017-04-14 15:40:29 -07:00
engineType = "Most engines are Even Fire. Typical odd-fire engines are V-twin, some V4, Vmax, some V6, V10."
2016-06-20 06:32:51 -07:00
twoStroke = "Four-Stroke (most engines), Two-stroke."
nInjectors = "Number of primary injectors."
mapSample = "The method used for calculating the MAP reading\nFor 1-2 Cylinder engines, Cycle Minimum is recommended.\nFor more than 2 cylinders Cycle Average is recommended"
stoich = "The stoichiometric ration of the fuel being used. For flex fuel, choose the primary fuel"
2016-11-01 05:19:16 -07:00
injLayout = "The injector layout and timing to be used. Options are: \n 1. Paired - 2 injectors per output. Outputs active is equal to half the number of cylinders. Outputs are timed over 1 crank revolution. \n 2. Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less. \n 3. Banked: 2 outputs only used. \n 4. Sequential: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. "
2017-04-14 15:40:29 -07:00
2015-10-17 15:18:53 -07:00
TrigPattern = "The type of input trigger decoder to be used."
2017-03-20 23:19:07 -07:00
useResync = "If enabled, sync will be rechecked once every full cycle from the cam input. This is good for accuracy, however if your cam input is noisy then this can cause issues."
2016-06-20 06:32:51 -07:00
numteeth = "Number of teeth on Primary Wheel."
TrigSpeed = "Primary trigger speed."
onetwo = "Number of Missing teeth on Primary Wheel."
TrigAng = "The Angle ATDC when tooth No:1 on the primary wheel passes the primary sensor."
2016-11-01 05:19:16 -07:00
TrigAngMul = "A multiplier used by non-360 degree tooth wheels (i.e. Wheels where the tooth count doesn't divide evenly into 360. Usage: (360 * <multiplier>) / tooth_count = Whole number"
2016-06-20 06:32:51 -07:00
StgCycles = "The number of revolutions that will be skipped during cranking before the injectors and coils are fired."
TrigEdge = "The Trigger edge of the primary sensor.\nLeading.\nTrailing."
2016-11-17 19:28:33 -08:00
TrigEdgeSec = "The Trigger edge of the secondary (Cam) sensor.\nLeading.\nTrailing."
2016-06-20 06:32:51 -07:00
TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working"
2017-04-14 15:40:29 -07:00
2016-02-29 03:23:09 -08:00
sparkMode = "Wasted Spark: Ignition outputs are on the channels <= half the number of cylinders. Eg 4 cylinder outputs on IGN1 and IGN2.\nSingle Channel: All ignition pulses are output on IGN1.\nWasted COP: Ignition pulses are output on all ignition channels up to the number of cylinders. Eg 4 cylinder outputs on all ignition channels. No valid for >4 cylinders"
2016-03-23 01:45:11 -07:00
IgInv = "Whether the spark fires when the ignition sign goes high or goes low. Most ignition systems 'Going Low' but please verify this as damage to coils can result from the incorrect selection"
2017-04-21 00:29:09 -07:00
sparkDur = "The duration of the spark at full dwell. Typically around 1ms"
2017-04-14 15:40:29 -07:00
2016-10-26 14:48:44 -07:00
fanInv = ""
fanHyster = "The number of degrees of hysteresis to be used in controlling the fan. Recommended values are between 2 and 5"
2017-04-14 15:40:29 -07:00
2016-04-27 22:24:38 -07:00
taeTime = "The duration of the acceleration enrichment"
2017-04-14 15:40:29 -07:00
2016-02-17 20:00:16 -08:00
iacChannels = "The number of output channels used for PWM valves. Select 1 for 2-wire valves or 2 for 3-wire valves."
2015-10-17 15:18:53 -07:00
iacStepTime = "Time between each stepper motor step.\nIncrease this if the motor appears to behave intermittently."
2015-10-24 22:16:59 -07:00
iacStepHome = "On startup the stepper motor moves this many steps to return to its home position. Set this value to a few more than the actual number to ensure the motor has returned to its full position."
2017-04-14 15:40:29 -07:00
iacStepHyster = "The minimum number of steps to move in any one go."
2015-10-17 15:18:53 -07:00
iacAlgorithm = "Selects method of idle control.\nNone = no idle control valve.\nOn/Off valve.\nPWM valve (2,3 wire).\nStepper Valve (4,6,8 wire)."
2016-06-05 13:17:35 -07:00
iacPWMdir = "Normal PWM valves increase RPM with higher duty. If RPM decreases with higher duty then select Reverse"
2017-03-09 18:16:56 -08:00
iacCLminDuty = "When using closed loop idle control, this is the minimum duty cycle that the PID loop will allow. Combined with the maximum value, this specifies the working range of your idle valve"
iacCLmaxDuty = "When using closed loop idle control, this is the maximum duty cycle that the PID loop will allow. Combined with the minimum value, this specifies the working range of your idle valve"
2017-03-29 06:01:52 -07:00
iacFastTemp = "Below this temperature, the idle output will be high (On). Above this temperature, it will turn off."
2017-04-14 15:40:29 -07:00
2017-02-19 22:57:46 -08:00
oddfire2 = "The ATDC angle of channel 2 for oddfire engines. This is relative to the TDC angle of channel 1"
oddfire3 = "The ATDC angle of channel 3 for oddfire engines. This is relative to the TDC angle of channel 1 (NOT channel 2)"
oddfire4 = "The ATDC angle of channel 4 for oddfire engines. This is relative to the TDC angle of channel 1 (NOT channel 3)"
2017-04-14 15:40:29 -07:00
2016-06-20 06:32:51 -07:00
dfcoRPM = "The RPM above which DFCO will be active. Typically set a few hundred RPM above maximum idle speed"
dfcoHyster = "Hysteresis for DFCO RPM. 200-300 RPM is typical for this, however a higher value may be needed if the RPM is fluctuating around the cutout speed"
2016-03-23 01:45:11 -07:00
dfcoTPSThresh = "The TPS value below which DFCO will be active. Typical value is 5%-10%, but higher may be needed if TPS signal is noisy"
2017-04-14 15:40:29 -07:00
2016-06-20 06:32:51 -07:00
launchPin = "The ARDUINO pin that the clutch switch is connected to. This is NOT the pin on the connector, but the pin it relates to on the arduino"
2016-04-24 16:09:04 -07:00
ignBypassPin = "The ARDUINO pin that the ignition bypass is connected to. This is NOT the pin on the connector, but the pin it relates to on the arduino"
ignBypassEnable = "If turned on, a ground signal will be output during cranking on the specified pin. This is used to bypass the Speeduino ignition control during cranking."
2016-05-29 02:41:31 -07:00
ignCranklock = "On certain low resolution ignition patterns, the cranking timing can be locked to occur when a pulse is recieved."
2017-04-14 15:40:29 -07:00
2016-06-21 00:33:53 -07:00
multiplyMAP = "If enabled, the MAP reading is included directly into the pulsewidth calculation. This results in a flatter VE table that can be easier to tune in some instances. VE table must be retuned when this value is changed."
includeAFR = "When enabled, the current AFR reading is incorporated directly in the pulsewidth calculation as a percentage of the current target ratio. VE table must be retuned when this value is changed. "
2017-04-14 15:40:29 -07:00
2016-11-27 21:58:24 -08:00
flexEnabled = "Turns on readings from the Flex sensor and enables the below adjustments"
2016-11-28 01:37:24 -08:00
flexFreqLow = "The frequency of the sensor at 0% ethanol (50Hz for standard GM/Continental sensor)"
flexFreqHigh = "The frequency of the sensor at 100% ethanol (150Hz for standard GM/Continental sensor)"
2016-11-27 21:58:24 -08:00
flexFuelLow = "Fuel % to be used for the lowest ethanol reading (Typically 100%. ie No adjustment)"
flexFuelHigh = "Fuel % to be used for the highest ethanol reading (Typically 163% for 100% ethanol)"
flexAdvLow = "Additional advance (in degrees) at lowest ethanol reading (Typically 0)"
flexAdvHigh = "Additional advance (in degrees) at highest ethanol reading (Typically 10-20 degrees)"
2017-05-12 01:14:14 -07:00
flexBoostHigh = "This amount that will be added to the boost target at E100. Between E0 and E100, the amount added to the boost target will be scaled from 0 to this value"
flexBoostLow = "Typically should be set to 0, but can be used to lower boost at E0 if the bast tune is setup with some ethanol"
2017-04-14 15:40:29 -07:00
2017-01-17 18:20:04 -08:00
flatSArm = "The RPM switch point that determines whether an eganged clutch is for launch control or flat shift. Below this figure, an engaged clutch is considered to be for launch, above this figure an active clutch input will be considered a flat shift. This should be set at least several hundred RPM above idle"
2017-04-14 15:40:29 -07:00
flatSSoftWin = "The number of RPM below the flat shift point where the softlimit will be applied (aka Soft limit window). Recommended values are 200-1000"
2017-01-16 18:33:41 -08:00
flatSRetard = "The absolute timing (BTDC) that will be used when within the soft limit window"
2015-02-02 22:25:43 -08:00
2017-05-08 15:15:03 -07:00
#if CAN_COMMANDS
enable_canbus = "This Enables either the secondary serial port or output via internal Can module. Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
#else
enable_canbus = "This Enables the IO on the secondary serial port. This is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
#endif
speeduino_tsCanId = "This is the TsCanId that the Speeduino ECU will respond to. This should match the main controller CAN ID in project properties if it is connected directy to TunerStudio, Otherwise the device ID if connected via CAN passthrough"
true_address = "This is the 11bit Can address of the Speeduino ECU "
obd_address = "The 11bit Can address that the Speeduino ECU responds to for OBD2 diagnostic requests"
2017-04-08 16:48:39 -07:00
caninput_sel1 = "This Enables CAN data input channel 1 "
caninput_sel2 = "This Enables CAN data input channel 2 "
caninput_sel3 = "This Enables CAN data input channel 3 "
caninput_sel4 = "This Enables CAN data input channel 4 "
caninput_sel5 = "This Enables CAN data input channel 5 "
caninput_sel6 = "This Enables CAN data input channel 6 "
caninput_sel7 = "This Enables CAN data input channel 7 "
caninput_sel8 = "This Enables CAN data input channel 8 "
;caninput_param_group1 = "The ID number of the parameter group of the data for channel 1 "
;caninput_param_group2 = "The ID number of the parameter group of the data for channel 2"
;caninput_param_group3 = "The ID number of the parameter group of the data for channel 3"
;caninput_param_group4 = "The ID number of the parameter group of the data for channel 4"
;caninput_param_group5 = "The ID number of the parameter group of the data for channel 5"
;caninput_param_group6 = "The ID number of the parameter group of the data for channel 6"
;caninput_param_group7 = "The ID number of the parameter group of the data for channel 7"
;caninput_param_group8 = "The ID number of the parameter group of the data for channel 8"
caninput_param_start_byte1 = "The Starting byte the specific data begins at for channel 1"
caninput_param_start_byte2 = "The Starting byte the specific data begins at for channel 2"
caninput_param_start_byte3 = "The Starting byte the specific data begins at for channel 3"
caninput_param_start_byte4 = "The Starting byte the specific data begins at for channel 4"
caninput_param_start_byte5 = "The Starting byte the specific data begins at for channel 5"
caninput_param_start_byte6 = "The Starting byte the specific data begins at for channel 6"
caninput_param_start_byte7 = "The Starting byte the specific data begins at for channel 7"
caninput_param_start_byte8 = "The Starting byte the specific data begins at for channel 8"
caninput_param_num_bytes1 = "The number of bytes the specific data is made from starting at selected start byte number"
caninput_param_num_bytes2 = "The number of bytes the specific data is made from starting at selected start byte number"
caninput_param_num_bytes3 = "The number of bytes the specific data is made from starting at selected start byte number"
caninput_param_num_bytes4 = "The number of bytes the specific data is made from starting at selected start byte number"
caninput_param_num_bytes5 = "The number of bytes the specific data is made from starting at selected start byte number"
2017-05-02 04:17:33 -07:00
caninput_param_num_bytes6 = "The number of bytes the specific data is made from starting at selected start byte number"
2017-04-08 16:48:39 -07:00
caninput_param_num_bytes7 = "The number of bytes the specific data is made from starting at selected start byte number"
caninput_param_num_bytes8 = "The number of bytes the specific data is made from starting at selected start byte number"
2017-03-09 16:46:11 -08:00
cmdEnableTestMode = "Click this to enable test mode. This will not be available if the engine is running"
cmdStopTestMode = "Click this to disable test mode"
cmdtestinj150dc = "this will cycle the output at 50% Duty cycle"
cmdtestinj250dc = "this will cycle the output at 50% Duty cycle"
cmdtestinj350dc = "this will cycle the output at 50% Duty cycle"
cmdtestinj450dc = "this will cycle the output at 50% Duty cycle"
cmdtestspk150dc = "this will cycle the output at 50% Duty cycle"
cmdtestspk250dc = "this will cycle the output at 50% Duty cycle"
cmdtestspk350dc = "this will cycle the output at 50% Duty cycle"
cmdtestspk450dc = "this will cycle the output at 50% Duty cycle"
2017-04-14 15:40:29 -07:00
2016-09-11 04:19:25 -07:00
[UserDefined]
2015-02-02 22:25:43 -08:00
; Enhanced TunerStudio dialogs can be defined here
; MegaTune will over look this section
; These dialogs will over-ride those in the UserDefined Section
; User defined ar loaded first, then if one by the same name is defiend here,
; it will replace the MegaTune definition
; dialog = name, Title, Layout
;
; valid options for layout are xAxis, yAxis, border
; for an xAxis, each field added will be added from right to left
; A yAxis layout will add fields from top to bottom
; A border layout will expect an additional constraint to determine placement
; valid border constraints are north, South, East, West, Center
; all 5 do not need to be filled.
2017-04-14 15:40:29 -07:00
; The field name can be either a constant reference, or a reference to another
2015-02-02 22:25:43 -08:00
; dialog which will be added.
; dialogs can be nested and can be mixed with fields
2016-09-11 04:19:25 -07:00
dialog = engine_constants_southwest, "Speeduino Board"
2016-06-20 06:32:51 -07:00
field = "Stoichiometric ratio", stoich
field = "Injector Layout", injLayout, { nCylinders <= 4 }
field = "Board Layout", pinLayout
field = "MAP Sample method", mapSample
2015-03-15 04:54:47 -07:00
2016-09-11 04:19:25 -07:00
dialog = engine_constants_west, ""
2015-03-15 04:54:47 -07:00
panel = std_injection, North
2016-09-11 04:19:25 -07:00
panel = engine_constants_southwest
2017-04-14 15:40:29 -07:00
2016-09-11 04:19:25 -07:00
dialog = engine_constants_northeast, "Oddfire Angles"
field = "Channel 2 angle", oddfire2, { engineType == 1 }
field = "Channel 3 angle", oddfire3, { engineType == 1 && nCylinders >= 3 }
field = "Channel 4 angle", oddfire4, { engineType == 1 && nCylinders >= 4 }
2017-04-14 15:40:29 -07:00
2016-09-11 04:19:25 -07:00
dialog = engine_constants_east, ""
panel = engine_constants_northeast, North
2016-10-31 18:37:00 -07:00
field = ""
2017-04-14 15:40:29 -07:00
2016-09-11 04:19:25 -07:00
dialog = engine_constants, "", border
panel = engine_constants_west, West
panel = engine_constants_east, East
2017-04-14 15:40:29 -07:00
2016-11-27 02:47:22 -08:00
# Flex fuel stuff
2016-06-24 01:02:53 -07:00
dialog = flexFueling, "Flex Fuel"
field = "Flex sensor", flexEnabled
2017-04-14 15:40:29 -07:00
2016-11-27 02:47:22 -08:00
dialog = flexn, ""
field = "#Spark/Fuel"
field = "Sensor Frequency"
field = "Fuel Multiplier%"
field = "Additional advance"
2017-05-12 01:14:14 -07:00
field = "Additional boost", { boostEnabled }
2016-11-27 02:47:22 -08:00
#field = "#Temp Sense"
#field = "Sensor PW"
#field = "Fuel Temp"
dialog = flexl, ""
2017-05-12 01:14:14 -07:00
field = "Low (E0)"
2016-11-27 02:47:22 -08:00
field = "", flexFreqLow, { flexEnabled }
field = "", flexFuelLow, { flexEnabled }
2017-05-12 01:14:14 -07:00
field = "", flexAdvLow, { flexEnabled }
field = "", flexBoostLow, { boostEnabled }
2016-11-27 02:47:22 -08:00
#field = "Low"
#field = "", ff_tpw0, { flexEnabled && (fueltemp1 == 1)}
#field = "", ff_temp0, { flexEnabled && (fueltemp1 == 1)}
2017-04-14 15:40:29 -07:00
2016-11-27 02:47:22 -08:00
dialog = flexh, ""
2017-05-12 01:14:14 -07:00
field = "High (E100)"
2016-11-27 02:47:22 -08:00
field = "", flexFreqHigh, { flexEnabled }
field = "", flexFuelHigh, { flexEnabled }
2017-05-12 01:14:14 -07:00
field = "", flexAdvHigh, { flexEnabled }
field = "", flexBoostHigh, { boostEnabled }
2016-11-27 02:47:22 -08:00
#field = "High"
#field = "", ff_tpw1, { flexFuel && (fueltemp1 == 1)}
#field = "", ff_temp1, { flexFuel && (fueltemp1 == 1)}
dialog = ff_table, "Flex Fuel Calibration", xAxis
panel = flexn
panel = flexl
panel = flexh
dialog = ff_fallback, "", yAxis
#field = "Baseline Ethanol%", flex_baseline, { flexFuel }
#field = "#Fallback For Sensor Failure"
#field = "Fallback Fuel Multiplier%", fuelCorr_default, { flexFuel > 0 }
#field = "Fallback Timing Addition", fuelSpkDel_default, { flexFuel > 0 }
dialog = flexFuelTop, ""
field = "Flex Fuel Sensor", flexEnabled
#field = "Sensor Port", flexport, { flexFuel > 0 }
# field = "Temperature Input", fueltemp1
dialog = flexFueling, "Fuel Sensor Settings", yAxis
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Flex_Fuel"
2016-11-27 02:47:22 -08:00
panel = flexFuelTop
panel = ff_table
panel = ff_fallback
2017-04-14 15:40:29 -07:00
2016-08-24 15:05:58 -07:00
dialog = tacho, "Tacho"
2017-04-14 15:40:29 -07:00
field = "Output pin", tachoPin
field = "Output speed", tachoDiv
2017-05-09 20:55:26 -07:00
2016-02-24 18:11:13 -08:00
dialog = accelEnrichments_center, ""
2015-02-02 22:25:43 -08:00
field = "TPSdot Threshold", tpsThresh
field = "Accel Time", taeTime
; field = "Cold Accel Enrichment", taeColdA
; field = "Cold Accel Mult", taeColdM
2017-04-14 15:40:29 -07:00
;field = "Decel Fuel Amount", tdePct
2016-02-24 18:11:13 -08:00
dialog = accelEnrichments_south, "Decelleration Fuel Cutoff (DFCO)"
field = "Enabled", dfcoEnabled
field = "TPS Threshold", dfcoTPSThresh, { dfcoEnabled }
field = "Cutoff RPM", dfcoRPM, { dfcoEnabled }
field = "RPM Hysteresis", dfcoHyster, { dfcoEnabled }
2017-04-14 15:40:29 -07:00
2016-09-29 23:11:16 -07:00
dialog = accelEnrichments_north_south, ""
liveGraph = pump_ae_Graph, "AE Graph"
graphLine = afr
2017-04-14 15:40:29 -07:00
graphLine = TPSdot, "%", -2000, 2000, auto, auto
2015-02-02 22:25:43 -08:00
dialog = accelEnrichments_north, "", xAxis
panel = time_accel_tpsdot_curve
;panel = time_accel_tpsdot_tbl
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
dialog = accelEnrichments, "Acceleration Enrichment"
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Acceleration_Wizard"
2015-02-02 22:25:43 -08:00
panel = accelEnrichments_north, North
2016-09-29 23:11:16 -07:00
panel = accelEnrichments_north_south, Center
2016-02-24 18:11:13 -08:00
panel = accelEnrichments_center, Center
2015-02-02 22:25:43 -08:00
panel = accelEnrichments_south, South
2017-04-14 15:40:29 -07:00
2016-05-31 21:57:53 -07:00
dialog = veTableDialog_north, ""
panel = veTable1Tbl
2017-04-14 15:40:29 -07:00
2016-05-31 21:57:53 -07:00
dialog = veTableDialog_south, ""
field = "Multiply VE value by MAP", multiplyMAP
2016-06-21 00:26:05 -07:00
field = "Include AFR directly", includeAFR, { egoType == 2 }
2017-04-14 15:40:29 -07:00
2016-05-31 21:57:53 -07:00
dialog = veTableDialog, "VE Table"
panel = veTableDialog_north, North
panel = veTableDialog_south, South
2017-04-14 15:40:29 -07:00
2015-02-13 04:12:00 -08:00
dialog = injChars, "Injector Characteristics"
field = "Injector Open Time", injOpen
2015-10-21 04:19:15 -07:00
field = "Injector close angle"
2016-12-27 11:35:46 -08:00
field = "", inj1Ang, { indInjAng == 0 }
field = "Individual channel setting", indInjAng
field = "Channel 1", inj1Ang, { indInjAng }
field = "Channel 2", inj2Ang, { nCylinders > 1 && indInjAng }
field = "Channel 3", inj3Ang, { indInjAng && (nCylinders > 4 || nCylinders == 3 || ((nCylinders == 4) && (injLayout == 3))) }
field = "Channel 4", inj4Ang, { indInjAng && (nCylinders > 6 || ((nCylinders == 4) && (injLayout == 3))) }
2015-06-11 20:18:36 -07:00
field = "Injector Duty Limit", dutyLim
2015-03-20 16:41:53 -07:00
panel = injector_voltage_curve
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
dialog = egoControl, ""
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/AFR/O2"
2015-02-02 22:25:43 -08:00
field = "Sensor Type", egoType
field = "Algorithm", egoAlgorithm, { egoType }
field = "Ignition Events per Step", egoCount, { egoType && (egoAlgorithm < 3) }
2015-02-02 23:01:18 -08:00
field = "Controller Step Size", egoDelta, { egoType && (egoAlgorithm == 0) }
field = "Controller Auth +/-", egoLimit, { egoType && (egoAlgorithm < 3) }
field = "Only correct above:", ego_min, { egoType && (egoAlgorithm < 3) }
field = "and correct below:", ego_max, { egoType && (egoAlgorithm < 3) }
field = "Active Above Coolant", egoTemp, { egoType && (egoAlgorithm < 3) }
field = "Active Above RPM", egoRPM, { egoType && (egoAlgorithm < 3) }
field = "Active Below TPS", egoTPSMax, { egoType && (egoAlgorithm < 3) }
field = "EGO delay after start", ego_sdelay, { (egoAlgorithm < 3) }
field = "PID Proportional Gain", egoKP, { egoType && (egoAlgorithm == 2) }
field = "PID Integral", egoKI, { egoType && (egoAlgorithm == 2) }
field = "PID Derivative", egoKD, { egoType && (egoAlgorithm == 2) }
2017-04-14 15:40:29 -07:00
2015-07-23 21:40:24 -07:00
dialog = fanSettings,"Fan Settings",7
2016-12-20 18:21:27 -08:00
field = "Fan Mode", fanEnable
2017-04-14 15:40:29 -07:00
field = "Fan output pin", fanPin, { fanEnable }
field = "Fan Output Inverted", fanInv , { fanEnable }
2016-12-20 18:21:27 -08:00
field = "Fan temperature SP", fanSP, { fanEnable }
field = "Fan hysteresis", fanHyster, { fanEnable }
2017-04-14 15:40:29 -07:00
2015-08-25 04:52:05 -07:00
dialog = stepper_idle, "Stepper Idle"
field = "Step time (ms)", iacStepTime, { iacAlgorithm == 4 || iacAlgorithm == 5 }
field = "Home steps", iacStepHome, { iacAlgorithm == 4 || iacAlgorithm == 5 }
2015-08-25 20:27:50 -07:00
field = "Minimum Steps", iacStepHyster, { iacAlgorithm == 4 || iacAlgorithm == 5 }
2017-04-14 15:40:29 -07:00
2015-09-29 16:27:37 -07:00
dialog = pwm_idle, "PWM Idle"
2016-01-12 22:06:55 -08:00
field = "Number of outputs", iacChannels, { iacAlgorithm == 2 || iacAlgorithm == 3 }
2015-09-29 16:27:37 -07:00
field = "Idle valve frequency", idleFreq, { iacAlgorithm == 2 || iacAlgorithm == 3 }
2016-05-15 02:29:52 -07:00
field = "Idle valve direction", iacPWMdir, { iacAlgorithm == 2 || iacAlgorithm == 3 }
2017-04-14 15:40:29 -07:00
2016-04-06 20:27:51 -07:00
dialog = closedloop_idle, "Closed loop Idle"
2017-03-21 18:44:22 -07:00
field = "P", idleKP, { iacAlgorithm == 3 || iacAlgorithm == 5 }
field = "I", idleKI, { iacAlgorithm == 3 || iacAlgorithm == 5 }
field = "D", idleKD, { iacAlgorithm == 3 || iacAlgorithm == 5 }
2017-02-19 22:57:46 -08:00
field = "Minimum valve duty", iacCLminDuty, { iacAlgorithm == 3 }
field = "Maximum valve duty", iacCLmaxDuty, { iacAlgorithm == 3 }
2017-04-14 15:40:29 -07:00
2015-08-25 04:52:05 -07:00
dialog = idleSettings, "Idle Settings"
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Idle"
field = "Idle control type", iacAlgorithm
2015-08-25 04:52:05 -07:00
field = "#Fast Idle"
field = "Fast idle temp", iacFastTemp, { iacAlgorithm == 1 }
2015-09-29 16:27:37 -07:00
panel = pwm_idle
2015-08-25 04:52:05 -07:00
panel = stepper_idle
2016-04-06 20:27:51 -07:00
panel = closedloop_idle
2017-04-14 15:40:29 -07:00
2016-12-20 18:21:27 -08:00
dialog = fuelpump, "Fuel pump"
field = "Fuel pump pin", fuelPumpPin
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
dialog = crankPW, "Cranking Pulsewidths (ms)"
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Cranking"
2015-10-17 04:23:34 -07:00
field = "Cranking RPM (Max)", crankRPM
field = "Flood Clear level", tpsflood
field = ""
2015-12-20 20:45:52 -08:00
field = "Fuel pump prime duration", fpPrime
2015-10-17 04:23:34 -07:00
field = "Priming Pulsewidth", primePulse
field = ""
field = "Cranking Enrichment %", crankingPct
2016-04-24 16:09:04 -07:00
field = ""
field = "Cranking bypass", ignBypassEnable
field = "Bypass output pin", ignBypassPin { ignBypassEnable }
2016-07-01 00:03:06 -07:00
field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10}
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
dialog = aseSettings, "Afterstart Enrichment"
field = "Enrichment %", asePct
field = "Number of Sec to run", aseCount
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
dialog = triggerSettings,"Trigger Settings",4
2015-10-21 04:19:15 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Decoders"
2015-10-17 04:23:34 -07:00
field = "Trigger Pattern", TrigPattern
2016-09-19 06:31:38 -07:00
field = "Primary base teeth", numteeth, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 11 }
2015-10-17 04:23:34 -07:00
field = "Primary trigger speed", TrigSpeed, { TrigPattern == 0 }
field = "Missing teeth", onetwo, { TrigPattern == 0 }
field = "Secondary teeth", onetwo, { TrigPattern == 2 }
2016-09-19 06:31:38 -07:00
field = "Trigger angle multiplier", TrigAngMul, { TrigPattern == 11 }
2015-10-17 04:23:34 -07:00
field = "Trigger Angle ", TrigAng
field = "This number represents the angle ATDC when "
field = "tooth #1 passes the primary sensor."
field = ""
field = "Skip Revolutions", StgCycles
field = "Note: This is the number of revolutions that will be skipped during"
field = "cranking before the injectors and coils are fired"
field = "Trigger edge", TrigEdge
2017-03-20 23:19:07 -07:00
field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 } ;Missing tooth and dual wheel
2016-04-16 09:38:06 -07:00
field = "Trigger Filter", TrigFilter
2017-03-20 23:19:07 -07:00
field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135
2017-04-14 15:40:29 -07:00
2015-10-17 04:23:34 -07:00
dialog = sparkSettings,"Spark Settings",4
2015-10-28 12:13:13 -07:00
field = "Spark output mode", sparkMode
2015-10-17 04:23:34 -07:00
field = "Cranking advance Angle", CrankAng
;field = "Hold Ignition", IgHold
field = "Spark Outputs triggers", IgInv
field = ""
field = "Fixed Angle (0 = use map)", FixAng
;field = "Trim Angle", Trim
2017-04-14 15:40:29 -07:00
2015-02-28 13:27:16 -08:00
dialog = dwellSettings, "Dwell Settings", 4
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Dwell"
2016-02-29 03:23:09 -08:00
;field = "Dwell control", dwellcont
;field = "Or:"
field = " Cranking dwell", dwellcrank
field = " Running dwell", dwellrun
2017-04-21 00:29:09 -07:00
field = " Spark duration", sparkDur
2015-10-17 04:23:34 -07:00
field = ""
field = "#Note"
field = "The above times are for 12V. Voltage correction"
field = "is applied. At higher voltages the time is reduced"
field = "and when low it is increased"
field = ""
field = "Overdwell protection"
field = "Use Overdwell protection", useDwellLim
field = "Max dwell time", dwellLim, { useDwellLim }
field = "Note: Set the maximum dwell time at least 3ms above"
field = "your desired dwell time (Including cranking)"
2017-04-14 15:40:29 -07:00
2015-02-28 13:27:16 -08:00
dialog = RevLimiterS, "Rev Limiter", 4
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Rev_Limits"
2015-10-17 04:23:34 -07:00
field = "Rev Limiter"
field = "Soft rev limit", SoftRevLim
field = "Soft limit absolute timing", SoftLimRetard
field = "Soft limit max time", SoftLimMax
field = "Hard Rev limit", HardRevLim
2017-04-14 15:40:29 -07:00
2017-01-16 18:33:41 -08:00
dialog = clutchInput, "Clutch input"
field = "Clutch Input Pin", launchPin, { launchEnable || flatSEnable }
field = "Clutch enabled when signal is",launchHiLo, { launchEnable || flatSEnable }
field = "Clutch Pullup Resistor", lnchPullRes, { launchEnable || flatSEnable }
2017-01-17 18:20:04 -08:00
field = "Launch / Flat Shift switch RPM",flatSArm, { launchEnable || flatSEnable }
2017-04-14 15:40:29 -07:00
2017-01-17 15:24:20 -08:00
dialog = LaunchControl, "Launch Control / Flat shift", 6
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Launch_Flatshift"
2017-01-16 18:33:41 -08:00
panel = clutchInput
2017-01-17 15:24:20 -08:00
; Launch control
2015-10-17 04:23:34 -07:00
field = "Launch Control"
field = "Enable Launch", launchEnable
field = "Soft rev limit", lnchSoftLim, { launchEnable }
field = "Soft limit absolute timing", lnchRetard, { launchEnable }
field = "Hard rev limit", lnchHardLim, { launchEnable }
field = "Fuel adder during launch", lnchFuelAdd, { launchEnable }
2017-04-14 15:40:29 -07:00
2017-01-17 15:24:20 -08:00
; Flat shift
2017-01-16 18:33:41 -08:00
field = "Flat Shift"
field = "Enable flat shift", flatSEnable
2017-01-17 15:24:20 -08:00
field = "Soft rev window", flatSSoftWin, { flatSEnable }
2017-01-16 18:33:41 -08:00
field = "Soft limit absolute timing", flatSRetard, { flatSEnable }
2017-04-14 15:40:29 -07:00
2015-06-09 06:32:00 -07:00
dialog = OLED, "OLED Display", 2
2015-02-28 13:27:16 -08:00
field = "Display Type", display
2015-03-01 16:11:47 -08:00
field = "#Note"
field = "ECU must be rebooted after changing above value"
2015-02-28 13:27:16 -08:00
field = "Field 1", display1, { display }
2017-04-14 15:40:29 -07:00
field = "Field 2", display2, { display }
field = "Field 3", display3, { display }
field = "Field 4", display4, { display }
2015-03-01 16:11:47 -08:00
;field = "Bar 1", displayB1, { display }
;field = "Bar 2", displayB2, { display > 2 }
2017-04-14 15:40:29 -07:00
2015-09-16 05:23:06 -07:00
dialog = mapCal, "Calibrate MAP"
field = "#MAP Sensor"
settingSelector = "Common MAP Sensors"
settingOption = "MPX4115", mapMin=10, mapMax=122
settingOption = "MPX4250", mapMin=10, mapMax=260
settingOption = "GM 1-BAR", mapMin=10, mapMax=105
settingOption = "GM 2-BAR", mapMin=9, mapMax=208
settingOption = "GM 3-BAR / MPXH6300", mapMin=1, mapMax=315
2015-09-17 22:55:19 -07:00
settingOption = "MPXH5700", mapMin=0, mapMax=700
2015-09-16 05:23:06 -07:00
settingOption = "MPXH6400", mapMin=3, mapMax=416
2016-10-17 20:36:31 -07:00
settingOption = "MPX4400", mapMin=0, mapMax=400
2016-04-04 20:43:14 -07:00
settingOption = "Denso 079800", mapMin=0, mapMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021
2017-03-29 02:51:11 -07:00
settingOption = "VW/Audi/Porsche 250kPa", mapMin=26, mapMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502
2017-04-14 15:40:29 -07:00
2015-09-27 05:51:10 -07:00
dialog = boostSettings, "Boost Control"
2017-05-06 06:43:57 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control"
2015-09-27 05:51:10 -07:00
field = "Boost Control Enabled", boostEnabled
2017-01-18 19:54:07 -08:00
field = "Boost output pin", boostPin, { boostEnabled }
field = "Boost solenoid freq.", boostFreq, { boostEnabled }
field = "Boost Cut", boostCutType, { boostEnabled }
field = "Boost Limit", boostLimit, { boostEnabled && boostCutType }
2016-05-15 04:05:49 -07:00
field = "Closed Loop settings"
2017-01-18 19:54:07 -08:00
field = "P", boostKP, { boostEnabled }
field = "I", boostKI, { boostEnabled }
field = "D", boostKD, { boostEnabled }
2017-02-19 22:57:46 -08:00
field = "Valve minimum duty cycle", boostMinDuty, { boostEnabled }
field = "Valve maximum duty cycle", boostMaxDuty, { boostEnabled }
2017-04-14 15:40:29 -07:00
2015-09-27 05:51:10 -07:00
dialog = vvtSettings, "VVT Control"
field = "VVT Control Enabled", vvtEnabled
2017-01-18 19:54:07 -08:00
field = "VVT output pin", vvtPin, { vvtEnabled }
field = "VVT solenoid freq.", vvtFreq, { vvtEnabled }
2017-04-14 15:40:29 -07:00
2016-08-08 19:58:51 -07:00
dialog = wc_note
field = "For 99% of engines, warmup must have 100% in the final row. Typical maximum is 255% (cold)."
dialog = warmup, "Warmup Enrichment (WUE) - Percent Multiplier"
panel = warmup_curve
panel = wc_note
2016-08-20 04:32:00 -07:00
field = ""
panel = aseSettings
2017-04-14 15:40:29 -07:00
2016-10-15 03:52:20 -07:00
;Fuel trim composite dialog
2017-04-14 15:40:29 -07:00
dialog = inj_trim1TblTitle, "Channel #1"
2016-10-24 23:31:44 -07:00
panel = fuelTrimTable1Tbl, Center, { fuelTrimEnabled }
2016-10-15 03:52:20 -07:00
dialog = inj_trim2TblTitle, "Channel #2"
2016-10-24 23:31:44 -07:00
panel = fuelTrimTable2Tbl, { fuelTrimEnabled }
2016-10-15 03:52:20 -07:00
dialog = inj_trim3TblTitle, "Channel #3"
2016-10-24 23:31:44 -07:00
panel = fuelTrimTable3Tbl, { fuelTrimEnabled }
2016-10-15 03:52:20 -07:00
dialog = inj_trim4TblTitle, "Channel #4"
2016-10-24 23:31:44 -07:00
panel = fuelTrimTable4Tbl, { fuelTrimEnabled }
2016-10-15 03:52:20 -07:00
dialog = inj_trimadt, "", xAxis
panel = inj_trim1TblTitle
panel = inj_trim2TblTitle
dialog = inj_trimadb, "", xAxis
panel = inj_trim3TblTitle
panel = inj_trim4TblTitle
dialog = inj_trimad,"Injector Cyl 1-4 Trims", yAxis
2016-11-01 05:19:16 -07:00
field = "Individual fuel trim enabled", fuelTrimEnabled, { injLayout == 3 }
2016-10-24 23:31:44 -07:00
panel = inj_trimadt, North
panel = inj_trimadb, South
2017-03-09 16:46:11 -08:00
dialog = outputtest_warningmessage, ""
field = "WARNING! USE AT YOUR OWN RISK. INCORRECT USE WILL DAMAGE YOUR HARDWARE!"
field = "Do not attempt to use this page whilst your engine is running!"
2017-04-14 15:40:29 -07:00
field = "Forcing the Injector or Spark outputs could cause flooding of your engine or permanent damage to ignition coils!"
2017-03-09 16:46:11 -08:00
dialog = enableoutputtestbuttons, "Enable Test Controls", xAxis
;commandButton = "Label Text", command, { Enabled Condition }, optionalFlags
2017-05-02 04:17:33 -07:00
; The rem > 0 expression is just for testing.. It works when the arduino is on the Stim with rpm.
2017-03-09 16:46:11 -08:00
; a status bit there would be the expected real expression
commandButton = "Enable Test Mode", cmdEnableTestMode,{!testenabled & !testactive }
; if clickOnCloseIfEnabled is set, then the command assigned to this button will be run on the
; dialog close, but only if the enable condition is true
; valid click flags are:
; clickOnCloseIfEnabled - the command will be sent on dialog close if active condition is true
; clickOnCloseIfDisabled - the command will be sent on dialog close if active condition is false
; clickOnClose - the command will be sent on dialog close always
2017-04-14 15:40:29 -07:00
commandButton = "Stop Test Mode", cmdStopTestMode,{testactive}, clickOnCloseIfEnabled
2017-03-09 16:46:11 -08:00
dialog = outputtestinj1, "Injector CH1", yAxis
commandButton = "Off", cmdtestinj1off,{testactive}
commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive}
commandButton = "On", cmdtestinj1on,{!testenabled & testactive}
dialog = outputtestinj2, "Injector CH2", yAxis
commandButton = "Off", cmdtestinj2off,{testactive}
commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive}
commandButton = "On", cmdtestinj2on,{!testenabled & testactive}
dialog = outputtestinj3, "Injector CH3", yAxis
commandButton = "Off", cmdtestinj3off,{testactive}
commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive}
commandButton = "On", cmdtestinj3on,{!testenabled & testactive}
dialog = outputtestinj4, "Injector CH4", yAxis
commandButton = "Off", cmdtestinj4off,{testactive}
commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive}
commandButton = "On", cmdtestinj4on ,{!testenabled & testactive}
2017-04-14 15:40:29 -07:00
2017-03-09 16:46:11 -08:00
dialog = outputtest_injectors, "Injector Driver Output Test", xAxis
panel = outputtestinj1
panel = outputtestinj2
panel = outputtestinj3
panel = outputtestinj4
2017-04-14 15:40:29 -07:00
2017-03-09 16:46:11 -08:00
dialog = outputtestspk1, "Spark CH1 ", yAxis
commandButton = "Off", cmdtestspk1off,{testactive}
commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive}
commandButton = "On", cmdtestspk1on,{!testenabled & testactive}
dialog = outputtestspk2, "Spark CH2", yAxis
commandButton = "Off", cmdtestspk2off,{testactive}
commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive}
commandButton = "On", cmdtestspk2on,{!testenabled & testactive}
dialog = outputtestspk3, "Spark CH3", yAxis
commandButton = "Off", cmdtestspk3off,{testactive}
commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive}
commandButton = "On", cmdtestspk3on,{!testenabled & testactive}
dialog = outputtestspk4, "Spark CH4", yAxis
commandButton = "Off", cmdtestspk4off,{testactive}
commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive}
commandButton = "On", cmdtestspk4on,{!testenabled & testactive}
2017-04-14 15:40:29 -07:00
2017-03-09 16:46:11 -08:00
dialog = outputtest_spark, "Spark Driver Output Test", xAxis
panel = outputtestspk1
panel = outputtestspk2
panel = outputtestspk3
2017-04-14 15:40:29 -07:00
panel = outputtestspk4
2017-03-09 16:46:11 -08:00
dialog = outputtest1,"Test Output Hardware"
2017-05-08 15:15:03 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Hardware_testing_page"
2017-03-09 16:46:11 -08:00
panel = enableoutputtestbuttons
panel = outputtest_injectors
panel = outputtest_spark
;panel = outputtest_io2
panel = outputtest_warningmessage
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
dialog = caninput_sel, ""
;CAN inputs
field = "CAN Input Channel on/off"
field = "CAN Input 1", caninput_sel1, { enable_candata_in }
field = "CAN Input 2", caninput_sel2, { enable_candata_in }
field = "CAN Input 3", caninput_sel3, { enable_candata_in }
field = "CAN Input 4", caninput_sel4, { enable_candata_in }
field = "CAN Input 5", caninput_sel5, { enable_candata_in }
field = "CAN Input 6", caninput_sel6, { enable_candata_in }
field = "CAN Input 7", caninput_sel7, { enable_candata_in }
field = "CAN Input 8", caninput_sel8, { enable_candata_in }
dialog = caninput_parameter_group, "", yAxis
field = "Input Parameter Group"
field = "", caninput_param_group[0], { caninput_sel1 && enable_candata_in }
field = "", caninput_param_group[1], { caninput_sel2 && enable_candata_in }
field = "", caninput_param_group[2], { caninput_sel3 && enable_candata_in }
field = "", caninput_param_group[3], { caninput_sel4 && enable_candata_in }
field = "", caninput_param_group[4], { caninput_sel5 && enable_candata_in }
field = "", caninput_param_group[5], { caninput_sel6 && enable_candata_in }
field = "", caninput_param_group[6], { caninput_sel7 && enable_candata_in }
field = "", caninput_param_group[7], { caninput_sel8 && enable_candata_in }
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
dialog = caninput_parameter_start_byte, "", yAxis
field = "Input Parameter Start Byte"
field = "", caninput_param_start_byte1, { caninput_sel1 && enable_candata_in }
field = "", caninput_param_start_byte2, { caninput_sel2 && enable_candata_in }
field = "", caninput_param_start_byte3, { caninput_sel3 && enable_candata_in }
field = "", caninput_param_start_byte4, { caninput_sel4 && enable_candata_in }
field = "", caninput_param_start_byte5, { caninput_sel5 && enable_candata_in }
field = "", caninput_param_start_byte6, { caninput_sel6 && enable_candata_in }
field = "", caninput_param_start_byte7, { caninput_sel7 && enable_candata_in }
2017-05-02 04:17:33 -07:00
field = "", caninput_param_start_byte8, { caninput_sel8 && enable_candata_in }
2017-04-08 16:48:39 -07:00
dialog = caninput_parameter_num_byte, "", yAxis
field = "Input Parameter Number of Bytes"
field = "", caninput_param_num_bytes1, { caninput_sel1 && enable_candata_in }
field = "", caninput_param_num_bytes2, { caninput_sel2 && enable_candata_in }
field = "", caninput_param_num_bytes3, { caninput_sel3 && enable_candata_in }
field = "", caninput_param_num_bytes4, { caninput_sel4 && enable_candata_in }
field = "", caninput_param_num_bytes5, { caninput_sel5 && enable_candata_in }
field = "", caninput_param_num_bytes6, { caninput_sel6 && enable_candata_in }
field = "", caninput_param_num_bytes7, { caninput_sel7 && enable_candata_in }
field = "", caninput_param_num_bytes8, { caninput_sel8 && enable_candata_in }
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
dialog = caninconfig_blank1,""
field = ""
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
dialog = Canin_config1, "", xAxis
panel = caninput_sel
panel = caninconfig_blank1
panel = caninput_parameter_group
panel = caninconfig_blank1
panel = caninput_parameter_start_byte
panel = caninconfig_blank1
panel = caninput_parameter_num_byte
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
dialog = Canin_config2, "CAN Data Input"
2017-05-02 04:17:33 -07:00
field = "Enable CanBus data input", enable_candata_in
2017-04-08 16:48:39 -07:00
dialog = Canin_config, "", border
2017-05-08 15:15:03 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface#Read_external_analog_data"
2017-04-08 16:48:39 -07:00
panel = Canin_config2, North
panel = Canin_config1, South
2017-05-02 04:17:33 -07:00
2017-05-08 15:15:03 -07:00
dialog = canoutput_sel, ""
;CAN outputs
field = "CAN Output Channel on/off"
field = "CAN Output 1", canoutput_sel1, { enable_candata_out}
field = "CAN Output 2", canoutput_sel2, { enable_candata_out }
field = "CAN Output 3", canoutput_sel3, { enable_candata_out }
field = "CAN Output 4", canoutput_sel4, { enable_candata_out }
field = "CAN Output 5", canoutput_sel5, { enable_candata_out }
field = "CAN Output 6", canoutput_sel6, { enable_candata_out }
field = "CAN Output 7", canoutput_sel7, { enable_candata_out }
field = "CAN Output 8", canoutput_sel8, { enable_candata_out }
dialog = canoutput_parameter_group, "", yAxis
field = "Output Parameter Group"
field = "", canoutput_param_group[0], { canoutput_sel1 && enable_candata_out }
field = "", canoutput_param_group[1], { canoutput_sel2 && enable_candata_out }
field = "", canoutput_param_group[2], { canoutput_sel3 && enable_candata_out }
field = "", canoutput_param_group[3], { canoutput_sel4 && enable_candata_out }
field = "", canoutput_param_group[4], { canoutput_sel5 && enable_candata_out }
field = "", canoutput_param_group[5], { canoutput_sel6 && enable_candata_out }
field = "", canoutput_param_group[6], { canoutput_sel7 && enable_candata_out }
field = "", canoutput_param_group[7], { canoutput_sel8 && enable_candata_out }
dialog = canoutput_parameter_start_byte, "", yAxis
field = "Output Parameter Start Byte"
field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_candata_out }
field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_candata_out }
field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_candata_out }
field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_candata_out }
field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_candata_out }
field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_candata_out }
field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_candata_out }
field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_candata_out }
dialog = canoutput_parameter_num_byte, "", yAxis
field = "Output Parameter Number of Bytes"
field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_candata_out }
field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_candata_out }
field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_candata_out }
field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_candata_out }
field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_candata_out }
field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_candata_out }
field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_candata_out }
field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_candata_out }
dialog = canoutconfig_blank1,""
field = ""
dialog = Canout_config1, "", xAxis
panel = canoutput_sel
panel = canoutconfig_blank1
panel = canoutput_parameter_group
panel = canoutconfig_blank1
panel = canoutput_parameter_start_byte
panel = canoutconfig_blank1
2017-05-09 20:55:26 -07:00
panel = canoutput_parameter_num_byte
2017-05-08 15:15:03 -07:00
dialog = Canout_config2, "CAN Data Out"
2017-05-02 04:17:33 -07:00
field = "Enable CanBus data Output", enable_candata_out
2017-05-08 15:15:03 -07:00
dialog = Canout_config, "", border
topicHelp = ""
panel = Canout_config2, North
2017-05-09 20:55:26 -07:00
panel = Canout_config1, South
2017-05-08 15:15:03 -07:00
dialog = can_serial3IO, "CanBus/Serial3 IO interface"
topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface"
field = "Enable CanBus/Second Serial", enable_canbus
field = "Speeduino TsCanId", speeduino_tsCanId
field = "Realtime Data Base Can Address", realtime_base_address
field = "Speeduino OBD address", obd_address
2017-05-09 20:55:26 -07:00
2017-05-08 15:15:03 -07:00
dialog = serial3IO, "Serial3 IO interface"
topicHelp = "http://speeduino.com/wiki/index.php/Serial3_IO_interface"
2017-05-09 20:55:26 -07:00
field = "Enable Second Serial", enable_canbus
2015-10-17 15:18:53 -07:00
;-------------------------------------------------------------------------------
; General help text
help = helpGeneral, "Speeduino General Help"
webHelp = "http://speeduino.com/wiki/index.php/Speeduino"
text = "For current WIKI documentation, click the Web Help button,"
text = "or visit http://www.speeduino.com/."
text = "<br>"
text = "<br>why not visit our forum http://speeduino.com/forum/"
;------------------------------------------------------------------------------
2017-03-09 16:46:11 -08:00
[ControllerCommands]
; commandName = command1, command2, commandn...
; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order.
; This does not include any resultant protocol envelope data, only the response data itself.
; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands
2017-04-14 15:40:29 -07:00
; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition
2017-03-09 16:46:11 -08:00
; and may create error messages.
; It is expected that these commands would not typically alter any ram mapped to a Constant.
cmdStopTestMode = "E\x01\x00"
cmdEnableTestMode = "E\x01\x01"
cmdtestinj1on = "E\x02\x01"
cmdtestinj1off = "E\x02\x02"
cmdtestinj150dc = "E\x02\x03"
cmdtestinj2on = "E\x02\x04"
cmdtestinj2off = "E\x02\x05"
cmdtestinj250dc = "E\x02\x06"
cmdtestinj3on = "E\x02\x07"
cmdtestinj3off = "E\x02\x08"
cmdtestinj350dc = "E\x02\x09"
cmdtestinj4on = "E\x02\x0A"
cmdtestinj4off = "E\x02\x0B"
cmdtestinj450dc = "E\x02\x0C"
cmdtestspk1on = "E\x03\x01"
cmdtestspk1off = "E\x03\x02"
cmdtestspk150dc = "E\x03\x03"
cmdtestspk2on = "E\x03\x04"
cmdtestspk2off = "E\x03\x05"
cmdtestspk250dc = "E\x03\x06"
cmdtestspk3on = "E\x03\x07"
cmdtestspk3off = "E\x03\x08"
cmdtestspk350dc = "E\x03\x09"
cmdtestspk4on = "E\x03\x0A"
cmdtestspk4off = "E\x03\x0B"
cmdtestspk450dc = "E\x03\x0C"
2015-02-02 22:25:43 -08:00
; -------------------------------------------------------------
; Help down here
2015-10-18 02:09:12 -07:00
[SettingContextHelp]
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
[CurveEditor]
;time-based accel enrichment
curve = time_accel_tpsdot_curve, "TPS based AE"
columnLabel = "TPSdot", "Added"
xAxis = 0, 1200, 6
2017-01-01 00:56:18 -08:00
yAxis = 0, 250, 4
2015-02-02 22:25:43 -08:00
xBins = taeBins, TPSdot
yBins = taeRates
;gauge = cltGauge
2017-04-14 15:40:29 -07:00
2015-03-19 21:13:16 -07:00
; Correction curve for dwell vs battery voltage
curve = dwell_correction_curve, "Dwell voltage correction"
2015-03-20 16:41:53 -07:00
columnLabel = "Voltage", "Dwell"
2015-03-19 21:13:16 -07:00
xAxis = 6, 22, 6
yAxis = 0, 255, 6
xBins = brvBins, batteryVoltage
yBins = dwellRates
2015-02-02 22:25:43 -08:00
2015-03-20 16:41:53 -07:00
; Correction curve for injectors vs battery voltage
curve = injector_voltage_curve, "Injector voltage correction"
2016-02-09 15:50:23 -08:00
columnLabel = "Voltage", "Injector"
2015-03-20 16:41:53 -07:00
xAxis = 6, 22, 6
yAxis = 0, 255, 6
xBins = brvBins, batteryVoltage
yBins = injBatRates
2017-04-14 15:40:29 -07:00
2015-04-21 23:49:10 -07:00
; Correction curve for Air Density vs temperature
curve = airdensity_curve, "IAT density correction"
2016-02-04 11:25:26 -08:00
columnLabel = "Air Temperature", "Fuel Amount"
2015-10-18 02:09:12 -07:00
xAxis = -40, 160, 6
2015-04-21 23:49:10 -07:00
yAxis = 0, 255, 6
xBins = airDenBins, iat
yBins = airDenRates
2017-04-14 15:40:29 -07:00
; IAT based ignition timing retard
2016-01-02 12:40:27 -08:00
curve = iat_retard_curve, "IAT timing retard"
2016-02-04 11:25:26 -08:00
columnLabel = "Inlet Air Temp", "Retard"
2016-01-02 12:40:27 -08:00
xAxis = -40, 200, 5
2016-02-29 03:23:09 -08:00
yAxis = 0, 30, 5
2016-01-02 12:40:27 -08:00
xBins = iatRetBins, iat
2017-04-14 15:40:29 -07:00
yBins = iatRetRates
2015-06-02 05:30:53 -07:00
; Curves for idle control
; Standard duty table for PWM valves
curve = iacPwm_curve, "IAC PWM Duty"
2016-02-09 15:50:23 -08:00
columnLabel = "Coolant Temperature", "Valve"
2016-03-29 03:02:02 -07:00
#if CELSIUS
2015-06-02 05:30:53 -07:00
xAxis = -40, 215, 6
2016-03-29 03:02:02 -07:00
#else
xAxis = -40, 315, 6
#endif
2015-06-02 05:30:53 -07:00
yAxis = 0, 100, 4
xBins = iacBins, coolant
yBins = iacOLPWMVal
2017-04-14 15:40:29 -07:00
2015-06-02 05:30:53 -07:00
; Cranking duty table for PWM valves
curve = iacPwmCrank_curve, "IAC PWM Cranking Duty"
2016-02-09 15:50:23 -08:00
columnLabel = "Coolant Temperature", "Valve"
2015-06-02 05:30:53 -07:00
xAxis = -40, 215, 6
yAxis = 0, 100, 4
xBins = iacCrankBins, coolant
yBins = iacCrankDuty
2017-04-14 15:40:29 -07:00
2015-08-21 00:20:56 -07:00
curve = iacStep_curve, "IAC Stepper Motor"
2016-02-09 15:50:23 -08:00
columnLabel = "Coolant Temperature", "Motor"
2016-03-29 03:02:02 -07:00
#if CELSIUS
xAxis = -40, 215, 6
#else
xAxis = -40, 315, 6
#endif
2015-08-25 20:27:50 -07:00
yAxis = 0, 850, 4
2015-08-21 00:20:56 -07:00
xBins = iacBins, coolant
yBins = iacOLStepVal
2017-04-14 15:40:29 -07:00
2015-08-21 00:20:56 -07:00
curve = iacStepCrank_curve, "IAC Stepper Motor Cranking"
2016-02-09 15:50:23 -08:00
columnLabel = "Coolant Temperature", "Motor"
2015-08-25 20:27:50 -07:00
xAxis = -40, 120, 6
yAxis = 0, 850, 4
xBins = iacCrankBins, coolant
2015-08-21 00:20:56 -07:00
yBins = iacCrankSteps
2017-04-14 15:40:29 -07:00
2016-04-06 20:27:51 -07:00
curve = iacClosedLoop_curve, "IAC Closed Loop Targets"
columnLabel = "Coolant Temperature", "Motor"
xAxis = -40, 120, 6
yAxis = 0, 2000, 4
xBins = iacBins, coolant
yBins = iacCLValues
2016-08-08 19:58:51 -07:00
; Warmup enrichment curve
curve = warmup_curve, "Warmup Enrichment (WUE) Curve"
2017-05-02 04:17:33 -07:00
;topicHelp = "file://$getProjectsDirPath()/docs/xxx.pdf#wue"
2016-08-08 19:58:51 -07:00
columnLabel = "Coolant", "WUE %"
xAxis = -40, 210, 9
2016-08-24 15:05:58 -07:00
yAxis = 0, 240, 6
2016-08-08 19:58:51 -07:00
xBins = wueBins, coolant
yBins = wueRates
gauge = cltGauge
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
[TableEditor]
; table_id, map3d_id, "title", page
2015-02-02 23:01:18 -08:00
table = veTable1Tbl, veTable1Map, "VE Table", 1
2015-10-17 15:18:53 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Tuning"
; constant, variable
2015-02-02 22:25:43 -08:00
xBins = rpmBins, rpm
#if SPEED_DENSITY
yBins = mapBins, map
#else
yBins = tpsBins, throttle
#endif
zBins = veTable
gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
2017-04-14 15:40:29 -07:00
2015-06-09 06:32:00 -07:00
table = sparkTbl, sparkMap, "Ignition Advance Table", 3
2015-02-02 22:25:43 -08:00
xBins = rpmBins2, rpm
#if SPEED_DENSITY
yBins = mapBins2, map
#else ALPHA_N
yBins = tpsBins2, throttle
#endif
zBins = advTable1
gridHeight = 3.0
upDownLabel = "ADVANCED", "RETARDED"
2017-04-14 15:40:29 -07:00
2015-06-09 06:32:00 -07:00
;table = afrTbl, afrTableMap, "AFR Table", 5
table = afrTable1Tbl, afrTable1Map, "AFR Table", 5
2015-02-02 22:25:43 -08:00
xBins = rpmBinsAFR, rpm
#if SPEED_DENSITY
yBins = mapBinsAFR, map
#else ALPHA_N
yBins = tpsBinsAFR, throttle
#endif
zBins = afrTable
gridHeight = 1.0
upDownLabel = "RICHER", "LEANER"
gridOrient = 250, 0, 340
2016-07-22 00:30:35 -07:00
#if BOOSTPSI
table = boostTbl, boostMap, "Boost targets (PSI)", 8
#else
table = boostTbl, boostMap, "Boost targets (Absolute kPa)", 8
#endif
2015-09-24 13:24:40 -07:00
xBins = rpmBinsBoost, rpm
yBins = tpsBinsBoost, throttle
zBins = boostTable
gridHeight = 3.0
upDownLabel = "HIGHER", "LOWER"
2017-04-14 15:40:29 -07:00
2015-09-27 05:51:10 -07:00
table = vvtTbl, vvtMap, "VVT control Table", 8
xBins = rpmBinsVVT, rpm
yBins = tpsBinsVVT, throttle
zBins = vvtTable
gridHeight = 3.0
upDownLabel = "HIGHER", "LOWER"
2017-04-14 15:40:29 -07:00
2016-10-15 03:52:20 -07:00
;--------- Sequential fuel trim maps -----------
2016-10-31 18:37:00 -07:00
table = fuelTrimTable1Tbl, fuelTrimTable1Map, "Fuel trim Table 1", 9
2016-10-24 23:31:44 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Tuning"
xBins = fuelTrim1rpmBins, rpm
#if SPEED_DENSITY
yBins = fuelTrim1loadBins, map
#else
yBins = fuelTrim1loadBins, throttle
#endif
zBins = fuelTrim1Table
2015-02-02 22:25:43 -08:00
2016-10-24 23:31:44 -07:00
gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
2017-04-14 15:40:29 -07:00
2016-10-31 18:37:00 -07:00
table = fuelTrimTable2Tbl, fuelTrimTable2Map, "Fuel trim Table 2", 9
2016-10-24 23:31:44 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Tuning"
xBins = fuelTrim2rpmBins, rpm
#if SPEED_DENSITY
yBins = fuelTrim2loadBins, map
#else
yBins = fuelTrim2loadBins, throttle
#endif
zBins = fuelTrim2Table
gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
2017-04-14 15:40:29 -07:00
2016-10-31 18:37:00 -07:00
table = fuelTrimTable3Tbl, fuelTrimTable3Map, "Fuel trim Table 3", 9
2016-10-24 23:31:44 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Tuning"
xBins = fuelTrim3rpmBins, rpm
#if SPEED_DENSITY
yBins = fuelTrim3loadBins, map
#else
yBins = fuelTrim3loadBins, throttle
#endif
zBins = fuelTrim3Table
gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
2017-04-14 15:40:29 -07:00
2016-10-31 18:37:00 -07:00
table = fuelTrimTable4Tbl, fuelTrimTable4Map, "Fuel trim Table 4", 9
2016-10-24 23:31:44 -07:00
topicHelp = "http://speeduino.com/wiki/index.php/Tuning"
xBins = fuelTrim4rpmBins, rpm
#if SPEED_DENSITY
yBins = fuelTrim4loadBins, map
#else
yBins = fuelTrim4loadBins, throttle
#endif
zBins = fuelTrim4Table
gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)"
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;-------------------------------------------------------------------------------
[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.
;
;-------------------------------------------------------------------------------
; 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
2015-09-07 18:24:56 -07:00
; baroADCGauge = baroADC, "Barometer ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
2015-09-16 05:23:06 -07:00
; mapADCGauge = mapADC, "MAP ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
2015-02-02 22:25:43 -08:00
#matADCGauge = matADC, "MAT ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
#cltADCGauge = cltADC, "CLT ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0
#batVoltGauge = batteryVoltage, "BAT V", "", 0, 255, -1, -1, 256, 256, 0, 0
2015-02-06 17:09:50 -08:00
accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0
2015-02-02 22:25:43 -08:00
afrGauge = afr, "Air:Fuel Ratio", "", 7, 25, 12, 13, 15, 16, 2, 2
2015-10-17 15:18:53 -07:00
afrGauge2 = afr2, "Air:Fuel Ratio 2", "", 7, 25, 12, 13, 15, 16, 2, 2
2016-06-29 13:14:37 -07:00
lambdaGauge = lambda, "Lambda", "", 0.5, 1.5, 0.5, 0.7, 2, 1.1, 2, 2
2015-02-13 04:12:00 -08:00
dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1
2015-02-02 22:25:43 -08:00
egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0
gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0
pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 1, 1
tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 300, 600, 3000, 5000, 0, 0
throttleGauge = throttle, "Throttle Position", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0
tpsGauge = tps, "Throttle Position2", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0
veBucketGauge = veTuneValue, "VE Value", "%", 0, 120, -1, -1, 999, 999, 0, 0
veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0
voltMeter = batteryVoltage,"Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2
2015-02-06 18:50:23 -08:00
warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0
2015-02-02 22:25:43 -08:00
2015-10-17 15:18:53 -07:00
gaugeCategory = "Sensor inputs"
2017-04-14 15:40:29 -07:00
mapGauge = map, "Engine MAP", "kPa", 0, 255, 0, 20, 200, 245, 0, 0
mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0
mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2
2017-01-15 19:41:40 -08:00
mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
#if CELSIUS
2015-05-23 06:11:33 -07:00
cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, -15, 0, 95, 105, 0, 0
iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, -15, 0, 95, 100, 0, 0
2015-02-02 22:25:43 -08:00
#else
2015-05-23 06:11:33 -07:00
cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, 0, 30, 200, 220, 0, 0
2015-04-21 23:49:10 -07:00
iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, 0, 30, 200, 210, 0, 0
2015-02-02 22:25:43 -08:00
#endif
2016-12-26 01:53:37 -08:00
advanceGauge = advance, "Spark Advance", "deg BTDC", 50, -10, 0, 0, 35, 45, 0, 0
flexGauge = flex, "Flex sensor", "%", 0, 100, -1, -1, 999, 999, 0, 0
2015-10-17 15:18:53 -07:00
2017-05-02 04:17:33 -07:00
#if CAN_COMMANDS
2017-04-08 16:48:39 -07:00
gaugeCategory = "CanBus Inputs"
CanGauge1 = canin_gauge1, "Can In1" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge2 = canin_gauge2, "Can In2" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge3 = canin_gauge3, "Can In3" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge4 = canin_gauge4, "Can In4" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge5 = canin_gauge5, "Can In5" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge6 = canin_gauge6, "Can In6" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge7 = canin_gauge7, "Can In7" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
CanGauge8 = canin_gauge8, "Can In8" "", 0, 1024, -1, -1, 1025, 1025, 0, 0
2017-05-02 04:17:33 -07:00
#endif
2015-10-17 15:18:53 -07:00
gaugeCategory = "Other"
clockGauge = secl, "Clock", "Seconds", 0, 255, 10, 10, 245, 245, 0, 0
2017-04-14 15:40:29 -07:00
deadGauge = deadValue, "---", "", 0, 1, -1, -1, 2, 2, 0, 0
loopGauge = loopsPerSecond,"Main loop speed", "Loops/S" , 0, 70000, -1, 500,1800, 4000, 0, 0
memoryGauge = freeRAM, "Free memory", "bytes" , 0, 8000, -1, 1000,8000, 1000, 0, 0
2015-02-02 22:25:43 -08:00
;-------------------------------------------------------------------------------
[FrontPage]
2015-10-03 16:38:48 -07:00
2015-02-02 22:25:43 -08:00
; Gauges are numbered left to right, top to bottom.
;
; 1 2 3 4
; 5 6 7 8
gauge1 = tachometer
#if SPEED_DENSITY
gauge2 = throttleGauge
#else
gauge2 = tpsGauge
#endif
gauge3 = pulseWidthGauge
gauge4 = dutyCycleGauge
gauge5 = mapGauge
2015-04-21 23:49:10 -07:00
gauge6 = iatGauge
2015-02-02 22:25:43 -08:00
gauge7 = cltGauge
gauge8 = gammaEnrichGauge
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;----------------------------------------------------------------------------
; Indicators
2016-08-23 01:27:23 -07:00
; expr off-label on-label, off-bg, off-fg, on-bg, on-fg
indicator = { ready }, "Not Ready", "Ready", white, black, green, black
indicator = { crank }, "Not Cranking", "Cranking", white, black, green, black
indicator = { startw }, "ASE OFF", "ASE", white, black, green, black
indicator = { warmup }, "WUE OFF", "WUE", white, black, green, black
indicator = { tpsaccaen }, "Accel", "Accel", white, black, green, black
indicator = { tpsaccden }, "Decel", "Decel", white, black, green, black
indicator = { mapaccaen }, "MAP Accel", "MAP Accel", white, black, green, black
indicator = { mapaccden }, "MAP Decel", "MAP Decel", white, black, green, black
indicator = { error }, "No Errors", "ERROR", white, black, green, black
2015-02-06 13:29:51 -08:00
indicator = { (tps > tpsflood) && (rpm < crankRPM) }, "FLOOD OFF", "FLOOD CLEAR", white, black, red, black
2016-08-23 01:27:23 -07:00
indicator = { DFCOOn }, "DFCO OFF", "DFCO On", white, black, red, black
indicator = { launchHard }, "Launch Hard", "Launch Hard", white, black, green, black
indicator = { launchSoft }, "Launch Soft", "Launch Soft", white, black, green, black
indicator = { softlimitOn }, "Soft Limit OFF","Soft Limiter", white, black, red, black
indicator = { hardLimitOn }, "Hard Limit OFF","Hard Limiter", white, black, red, black
indicator = { boostCutOut }, "Boost Cut OFF", "Boost Cut", white, black, red, black
indicator = { sync }, "No Sync", "Sync", white, black, green, black
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;-------------------------------------------------------------------------------
[RunTime]
barHysteresis = 2.5 ; Seconds
#if CELSIUS
2015-05-23 06:11:33 -07:00
coolantBar = -40, 215
matBar = -40, 215
2015-02-02 22:25:43 -08:00
#else
coolantBar = -40, 215
matBar = -40, 215
#endif
batteryBar = 6, 15
dutyCycleBar = 0, 100
2015-10-03 16:38:48 -07:00
2015-02-02 22:25:43 -08:00
gammaEBar = 0, 200
mapBar = 0, 255
pulseWidthBar = 0, 25.5
rpmBar = 0, 8000
throttleBar = 0, 100
egoCorrBar = 0, 200
baroCorrBar = 0, 200
warmupCorrBar = 0, 200
airdenCorrBar = 0, 200
veCorrBar = 0, 200
accCorrBar = 0, 100
;-------------------------------------------------------------------------------
[Tuning]
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.
;----------------------------------------------------------------------------
; Notes on tuning screen gauges:
; pageButtons = Labels for radio buttons at bottom of tuning dialog.
;
; Gauge 2 previously switched automatically to be tpsGauge when alpha-n
; was enabled, but you need to do it manually now.
;----------------------------------------------------------------------------
; Page 1 Page 2 Page 3 Page 4
pageButtons = "&EGO", "&WUE", "PW&1", "PW&2"
gauge1 = tachometer, tachometer, tachometer, tachometer
gauge2 = mapGauge, mapGauge, mapGauge, mapGauge
gauge3 = egoGauge, egoGauge, egoGauge, egoGauge
gauge4 = egoCorrGauge, warmupEnrichGauge, pulseWidthGauge, pulseWidthGauge
gauge5 = veBucketGauge, veBucketGauge, veBucketGauge, veBucketGauge
gauge6 = accelEnrichGauge, accelEnrichGauge, dutyCycleGauge, dutyCycleGauge
;-------------------------------------------------------------------------------
[OutputChannels]
2015-09-27 13:48:30 -07:00
; The number of bytes MegaTune or TunerStudio should expect as a result
; of sending the "A" command to Speeduino is determined
2015-02-02 22:25:43 -08:00
; by the value of ochBlockSize, so be very careful when
; you change it.
deadValue = { 0 } ; Convenient unchanging value.
2017-05-08 15:15:03 -07:00
ochGetCommand = "r\$tsCanId\x30%2o%2c"
2017-05-02 04:17:33 -07:00
ochBlockSize = 57
2015-02-02 22:25:43 -08:00
secl = scalar, U08, 0, "sec", 1.000, 0.000
squirt = scalar, U08, 1, "bits", 1.000, 0.000
2015-10-24 22:16:59 -07:00
inj1Status = bits, U08, 1, [0:0]
inj2Status = bits, U08, 1, [1:1]
inj3Status = bits, U08, 1, [2:2]
inj4Status = bits, U08, 1, [3:3]
2016-02-29 16:53:08 -08:00
DFCOOn = bits, U08, 1, [4:4]
2016-04-12 06:22:14 -07:00
boostCutFuel = bits, U08, 1, [5:5]
2015-10-24 22:16:59 -07:00
toothLog1Ready = bits, U08, 1, [6:6]
toothLog2Ready = bits, U08, 1, [7:7]
2015-02-02 22:25:43 -08:00
engine = scalar, U08, 2, "bits", 1.000, 0.000
2015-10-24 22:16:59 -07:00
ready = bits, U08, 2, [0:0]
crank = bits, U08, 2, [1:1]
startw = bits, U08, 2, [2:2]
warmup = bits, U08, 2, [3:3]
2016-08-08 19:58:51 -07:00
tpsaccaen = bits, U08, 2, [4:4]
tpsaccden = bits, U08, 2, [5:5]
mapaccaen = bits, U08, 2, [6:6]
mapaccden = bits, U08, 2, [7:7]
2016-08-02 19:11:31 -07:00
dwell = scalar, U08, 3, "ms", 0.100, 0.000
map = scalar, U08, 4, "kpa", 2.000, 0.000
2016-09-26 09:50:04 -07:00
iatRaw = scalar, U08, 5, "°C", 1.000, 0.000
coolantRaw = scalar, U08, 6, "°C", 1.000, 0.000
2016-08-02 19:11:31 -07:00
tpsADC = scalar, U08, 7, "ADC", 1.000, 0.000
batteryVoltage = scalar, U08, 8, "V", 0.100, 0.000
afr = scalar, U08, 9, "O2", 0.100, 0.000
egoCorrection = scalar, U08, 10, "%", 1.000, 0.000
airCorrection = scalar, U08, 11, "%", 1.000, 0.000
warmupEnrich = scalar, U08, 12, "%", 1.000, 0.000
rpm = scalar, U16, 13, "rpm", 1.000, 0.000
accelEnrich = scalar, U08, 15, "%", 1.000, 0.000
2017-01-15 19:41:40 -08:00
baro = scalar, U08, 16, "%", 1.000, 0.000
2016-08-02 19:11:31 -07:00
gammaEnrich = scalar, U08, 17, "%", 1.000, 0.000
veCurr = scalar, U08, 18, "%", 1.000, 0.000
2016-08-23 01:27:23 -07:00
afrTarget = scalar, U08, 19, "O2", 0.100, 0.000
2016-08-02 19:11:31 -07:00
pulseWidth = scalar, U08, 20, "ms", 0.1, 0.000
TPSdot = scalar, U08, 21, "%/s", 10.00, 0.000
2017-01-17 22:37:55 -08:00
;advance = scalar, U08, 22, "deg", 1.000, 0.000
advance = scalar, S08, 22, "deg", 1.000, 0.000
2016-08-02 19:11:31 -07:00
tps = scalar, U08, 23, "%", 1.000, 0.000
2016-10-10 04:38:40 -07:00
loopsPerSecond = scalar, U16, 24, "loops", 1.000, 0.000
2016-08-02 19:11:31 -07:00
freeRAM = scalar, S16, 26, "bytes", 1.000, 0.000
batCorrection = scalar, U08, 28, "%", 1.000, 0.000
spark = scalar, U08, 29, "bits", 1.000, 0.000
2016-04-05 03:44:11 -07:00
launchHard = bits, U08, 29, [0:0]
launchSoft = bits, U08, 29, [1:1]
2016-03-30 03:34:55 -07:00
hardLimitOn = bits, U08, 29, [2:2]
2016-04-05 03:44:11 -07:00
softlimitOn = bits, U08, 29, [3:3]
2016-04-12 06:22:14 -07:00
boostCutSpark = bits, U08, 29, [4:4]
2016-08-16 04:47:33 -07:00
error = bits, U08, 29, [5:5]
idle = bits, U08, 29, [6:6]
sync = bits, U08, 29, [7:7]
2016-08-02 19:11:31 -07:00
afr2 = scalar, U08, 30, "O2", 0.100, 0.000
rpmDOT = scalar, S16, 31, "rpm/s", 1.000, 0.000
flex = scalar, U08, 33, "%", 1.000, 0.000
2016-12-26 01:53:37 -08:00
flexFuelCor = scalar, U08, 34, "%", 1.000, 0.000
flexIgnCor = scalar, U08, 35, "deg", 1.000, 0.000
errors = scalar, U08, 36, "bits", 1.000, 0.000
errorNum = bits, U08, 36, [0:1]
currentError = bits, U08, 36, [2:7]
2017-02-11 21:35:18 -08:00
boostTarget = scalar, U08, 37, "kPa", 2.000, 0.000
2017-03-16 00:17:12 -07:00
boostDuty = scalar, U08, 38, "%", 1.000, 0.000
2017-03-20 04:29:42 -07:00
idleLoad = scalar, U08, 39, { bitStringValue( idleUnits , iacAlgorithm ) }, 2.000, 0.000 ; This is a combined variable covering both PWM and stepper IACs. The units used depend on which idle algorithm is chosen
2017-05-02 04:17:33 -07:00
testoutputs = scalar, U08, 40, "bits", 1.000, 0.000
testenabled = bits, U08, 40, [0:0]
testactive = bits, U08, 40, [1:1]
canin_gauge1 = scalar, U16, 41, "", 1.000, 0.000
canin_gauge2 = scalar, U16, 43, "", 1.000, 0.000
canin_gauge3 = scalar, U16, 45, "", 1.000, 0.000
canin_gauge4 = scalar, U16, 47, "", 1.000, 0.000
canin_gauge5 = scalar, U16, 49, "", 1.000, 0.000
canin_gauge6 = scalar, U16, 51, "", 1.000, 0.000
canin_gauge7 = scalar, U16, 53, "", 1.000, 0.000
canin_gauge8 = scalar, U16, 55, "", 1.000, 0.000
2015-02-02 22:25:43 -08:00
; Computed output channels. See "megatuneExamples.ini" for all the
; pre-defined variables, search for "???" and you'll see them.
accDecEnrich = { accelEnrich + ((engine & 0b00100000) ? tdePct : 100) }
2016-03-29 03:02:02 -07:00
#if CELSIUS
2015-02-02 22:25:43 -08:00
coolant = { coolantRaw - 40 } ; Coolant sensor temperature in user units.
2015-04-21 23:49:10 -07:00
iat = { iatRaw - 40 } ; Manifold temperature in user units.
2016-03-29 03:02:02 -07:00
#else
coolant = { (coolantRaw - 40) * 1.8 + 32 } ; Coolant sensor temperature in user units.
iat = { (iatRaw - 40) * 1.8 + 32 } ; Manifold temperature in user units.
#endif
2015-02-02 22:25:43 -08:00
time = { timeNow } ; "timeNow" is a parameterless built-in function.
2015-03-15 04:54:47 -07:00
seconds = { secl };
2015-02-02 22:25:43 -08:00
throttle = { tps }, "%"
2015-06-05 06:30:37 -07:00
;cycleTime = { 60000.0 / rpm * (2.0-twoStroke) }
2017-04-22 06:31:13 -07:00
cycleTime = { rpm ? ( 60000.0 / rpm ) : 0 }
2016-11-01 05:19:16 -07:00
;nSquirts = { nCylinders/divider }
2017-04-22 06:31:13 -07:00
dutyCycle = { rpm ? ( 100.0*pulseWidth/cycleTime ) : 0 }
2017-04-14 15:40:29 -07:00
2016-04-12 06:22:14 -07:00
boostCutOut = { boostCutFuel || boostCutSpark }
2017-04-14 15:40:29 -07:00
lambda = { afr / stoich }
2017-01-04 03:34:25 -08:00
MAPxRPM = { rpm * map }
2017-04-14 15:40:29 -07:00
2017-01-15 19:41:40 -08:00
;Manifold pressure in weirdo units
map_bar = { (map - baro) / 101.33 }
map_psi = { (map - baro) * 0.145038 }
map_inhg = { (baro - map) * 0.2953007 } ;in-Hg
map_vacboost = { map < baro ? -map_inhg : map_psi }
2017-04-14 15:40:29 -07:00
2016-03-30 03:34:55 -07:00
#if EXPANDED_CLT_TEMP
2015-02-02 22:25:43 -08:00
clt_exp = { 1 }
#else
clt_exp = { 0 }
#endif
#if CELSIUS
cltlowlim = { clt_exp ? -40 : -40 }
clthighlim = { clt_exp ? 230 : 120 }
cltlowdang = { clt_exp ? 65 : 10 }
cltlowwarn = { clt_exp ? 93 : 65 }
clthighwarn = { clt_exp ? 162 : 93 }
clthighdang = { clt_exp ? 176 : 104 }
mathigh = { 110 }
#else ; fahrenheit
cltlowlim = { clt_exp ? -40 : -40 }
clthighlim = { clt_exp ? 450 : 250 }
cltlowdang = { clt_exp ? 150 : 50 }
cltlowwarn = { clt_exp ? 200 : 150 }
clthighwarn = { clt_exp ? 325 : 200 }
clthighdang = { clt_exp ? 350 : 220 }
mathigh = { 215 }
#endif
;-------------------------------------------------------------------------------
[Datalog]
; Full datalog.
;
; Default user-defined log emulates the full datalog.
;
; 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. Be careful
; about changing these, as programs like MSLVV and
; MSTweak key off specific column names.
; Type - Data type of output, converted before writing.
; Format - C-style output format of data.
;
; Channel Label Type Format
; -------------- ---------- ----- ------
entry = time, "Time", float, "%.3f"
entry = secl, "SecL", int, "%d"
2015-02-06 18:50:23 -08:00
entry = rpm, "RPM", int, "%d"
2015-02-02 22:25:43 -08:00
entry = map, "MAP", int, "%d"
2017-01-04 03:34:25 -08:00
entry = MAPxRPM, "MAPxRPM", int, "%d"
2015-02-02 22:25:43 -08:00
entry = tpsADC, "tpsADC", int, "%d"
entry = tps, "TPS", int, "%d"
entry = afr, "O2", float, "%.3f"
2016-06-20 06:32:51 -07:00
entry = lambda, "%", float, "%.3f"
2015-04-21 23:49:10 -07:00
entry = iat, "IAT", int, "%d"
entry = coolant, "CLT", int, "%d"
2015-02-02 22:25:43 -08:00
entry = engine, "Engine", int, "%d"
entry = squirt, "Squirt", int, "%d"
2016-08-23 01:27:23 -07:00
entry = spark, "Spark", int, "%d"
2015-02-02 22:25:43 -08:00
entry = egoCorrection, "Gego", int, "%d"
entry = airCorrection, "Gair", int, "%d"
2017-03-16 00:17:12 -07:00
entry = batCorrection, "Gbattery", int, "%d"
2015-02-02 22:25:43 -08:00
entry = warmupEnrich, "Gwarm", int, "%d"
2017-01-15 19:41:40 -08:00
;entry = baroCorrection, "Gbaro", int, "%d"
2017-03-16 00:17:12 -07:00
entry = gammaEnrich, "Gammae", int, "%d"
entry = accelEnrich, "TPSacc", int, "%d"
entry = veCurr, "VE", int, "%d"
entry = pulseWidth, "PW", float, "%.1f"
entry = afrTarget, "AFR Target", float, "%.3f"
entry = pulseWidth, "PW2", float, "%.1f"
entry = dutyCycle, "DutyCycle1", float, "%.1f"
entry = dutyCycle, "DutyCycle2", float, "%.1f"
entry = TPSdot, "TPS DOT", int, "%d"
entry = advance, "Advance", int, "%d"
2017-04-21 17:03:10 -07:00
entry = dwell, "Dwell", float, "%.1f"
2017-03-16 00:17:12 -07:00
entry = batteryVoltage, "Battery V", float, "%.1f"
entry = rpmDOT, "rpm/s", int, "%d"
entry = flex, "Eth %", int, "%d", { flexEnabled }
2016-08-23 01:27:23 -07:00
entry = errorNum, "Error #", int, "%d"
entry = currentError, "Error ID", int, "%d"
2017-03-16 00:17:12 -07:00
entry = boostTarget, "Boost Target",int, "%d", { boostEnabled }
2017-03-20 04:29:42 -07:00
entry = boostDuty, "Boost Duty", int, "%d", { boostEnabled }
entry = boostCutOut , "Boost cut", int, "%d"
entry = idleLoad, "IAC value", int, "%d"
2017-05-02 04:17:33 -07:00
2017-04-08 16:48:39 -07:00
entry = canin_gauge1, "CanIn CH1", int, "%d"
entry = canin_gauge2, "CanIn CH2", int, "%d"
entry = canin_gauge3, "CanIn CH3", int, "%d"
entry = canin_gauge4, "CanIn CH4", int, "%d"
entry = canin_gauge5, "CanIn CH5", int, "%d"
entry = canin_gauge6, "CanIn CH6", int, "%d"
entry = canin_gauge7, "CanIn CH7", int, "%d"
entry = canin_gauge8, "CanIn CH8", int, "%d"
2017-05-01 19:25:51 -07:00
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
[LoggerDefinition]
; valid logger types: composite, tooth, trigger, csv
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;loggerDef = uniqueName, Display Name, type
loggerDef = tooth, "Tooth Logger", tooth
;dataReadCommand = "r\\x00\\xf4\\x00\\x00\\x04\\x00" ; standard TS command format
dataReadCommand = "T" ; Basic TS command format
2015-10-30 02:35:45 -07:00
dataReadTimeout = 15000 ; time in ms
2015-10-24 22:16:59 -07:00
dataReadyCondition = { toothLog1Ready }
2015-10-30 02:35:45 -07:00
dataLength = 256 ; in bytes, including headers, footers and data (not used)
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;recordDef = headerLen. footerLen, recordLen
recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition
2015-09-07 16:49:34 -07:00
recordField = toothGap, "ToothTime", 0, 16, 1.0, "uS"
2017-04-14 15:40:29 -07:00
2015-02-02 22:25:43 -08:00
2015-08-06 15:33:49 -07:00
[Tools]
;addTool = toolName, PanelName
addTool = veTableGenerator, "VE Table Generator", veTable1Tbl
addTool = afrTableGenerator, "AFR Table Generator", afrTable1Tbl
[VeAnalyze]
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
veAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection
lambdaTargetTables = afrTable1Tbl, afrTSCustom,
filter = std_xAxisMin ; Auto build with appropriate axis channels
;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true
filter = std_xAxisMax ; Auto build with appropriate axis channels
filter = std_yAxisMin ; Auto build with appropriate axis channels
filter = std_yAxisMax ; Auto build with appropriate axis channels
filter = std_DeadLambda ; Auto build
2017-04-14 15:40:29 -07:00
#if CELSIUS
2015-08-06 15:33:49 -07:00
filter = minCltFilter, "Minimum CLT", coolant, < , 71, , true
#else
filter = minCltFilter, "Minimum CLT", coolant, < , 160, , true
#endif
filter = accelFilter, "Accel Flag" , engine, & , 16, , false
filter = aseFilter, "ASE Flag" , engine, & , 4, , false
filter = overrunFilter, "Overrun" , pulseWidth, = , 0, , false
filter = std_Custom ; Standard Custom Expression Filter.