PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。
Based on Speeduino Aug/2018 version.
| @@ -61,6 +61,22 @@ | ||
| 61 | 61 | |
| 62 | 62 | fuelLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 |
| 63 | 63 | ignLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 |
| 64 | + AUXin00Alias = string, ASCII, 20 | |
| 65 | + AUXin01Alias = string, ASCII, 20 | |
| 66 | + AUXin02Alias = string, ASCII, 20 | |
| 67 | + AUXin03Alias = string, ASCII, 20 | |
| 68 | + AUXin04Alias = string, ASCII, 20 | |
| 69 | + AUXin05Alias = string, ASCII, 20 | |
| 70 | + AUXin06Alias = string, ASCII, 20 | |
| 71 | + AUXin07Alias = string, ASCII, 20 | |
| 72 | + AUXin08Alias = string, ASCII, 20 | |
| 73 | + AUXin09Alias = string, ASCII, 20 | |
| 74 | + AUXin10Alias = string, ASCII, 20 | |
| 75 | + AUXin11Alias = string, ASCII, 20 | |
| 76 | + AUXin12Alias = string, ASCII, 20 | |
| 77 | + AUXin13Alias = string, ASCII, 20 | |
| 78 | + AUXin14Alias = string, ASCII, 20 | |
| 79 | + AUXin15Alias = string, ASCII, 20 | |
| 64 | 80 | |
| 65 | 81 | |
| 66 | 82 | [Constants] |
| @@ -116,9 +132,9 @@ | ||
| 116 | 132 | |
| 117 | 133 | endianness = little |
| 118 | 134 | ;[PJSC] nPages = 10 |
| 119 | -;[PJSC] pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 128, 192 | |
| 135 | +;[PJSC] pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 192 | |
| 120 | 136 | nPages = 11 ;[PJSC] |
| 121 | - pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 128, 192, 288 ;[PJSC] | |
| 137 | + pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 192, 288 ;[PJSC] | |
| 122 | 138 | |
| 123 | 139 | ;burnCommand = "B" |
| 124 | 140 | ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" |
| @@ -126,10 +142,10 @@ | ||
| 126 | 142 | ;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", "W%o%v" |
| 127 | 143 | |
| 128 | 144 | ; New commands |
| 129 | - ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 | |
| 145 | + ;pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 192, 288 | |
| 130 | 146 | ;[PJSC] pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" |
| 131 | 147 | ;[PJSC] burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" |
| 132 | -;[PJSC] pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" | |
| 148 | +;[PJSC] pageReadCommand = "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c" | |
| 133 | 149 | ;[PJSC] pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" |
| 134 | 150 | ;[PJSC] pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" |
| 135 | 151 |
| @@ -140,14 +156,11 @@ | ||
| 140 | 156 | pageValueWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" ;[PJSC] |
| 141 | 157 | pageChunkWrite = "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v", "w%2i%2o%2c%v" ;[PJSC] |
| 142 | 158 | |
| 143 | -;[PJSC] blockingFactor = 2048 | |
| 144 | -;[PJSC] tableBlockingFactor = 2048 | |
| 145 | - blockingFactor = 2238 ;[PJSC] | |
| 146 | - tableBlockingFactor = 2238 ;[PJSC] | |
| 159 | + blockingFactor = 2048 | |
| 160 | + tableBlockingFactor = 2048 | |
| 147 | 161 | delayAfterPortOpen=1000 |
| 148 | 162 | ;validateArrayBounds = true |
| 149 | -;[PJSC] blockReadTimeout = 2000 | |
| 150 | - blockReadTimeout = 3000 ;[PJSC] | |
| 163 | + blockReadTimeout = 2000 | |
| 151 | 164 | ;tsWriteBlocks = on |
| 152 | 165 | interWriteDelay = 5 ;Ignored when tsWriteBlocks is on |
| 153 | 166 | pageActivationDelay = 10 |
| @@ -156,8 +169,12 @@ | ||
| 156 | 169 | |
| 157 | 170 | #define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" |
| 158 | 171 | #define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" |
| 159 | - | |
| 160 | - #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" | |
| 172 | + #define PIN_16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" | |
| 173 | + | |
| 174 | + #define ANALOG_PIN = "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A8", "A10", "A11", "A12", "A13", "A14", "A15", $PIN_16inv, $PIN_16inv, $PIN_16inv | |
| 175 | + #define DIGITAL_PIN = "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", "INVALID" | |
| 176 | + #define ANALOG_DIG_PIN_LIST = $DIGITAL_PIN, $ANALOG_PIN | |
| 177 | + #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" | |
| 161 | 178 | #define CAN_ADDRESS_HEX_inv255 = $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT10inv, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" |
| 162 | 179 | #define CAN_ADDRESS_HEX_00XX = "INVALID", "0x001", "0x002", "0x003", "0x004", "0x005", "0x006", "0x007", "0x008", "0x009", "0x00A", "0x00B", "0x00C", "0x00D", "0x00E", "0x00F", "0x010", "0x011", "0x012", "0x013", "0x014", "0x015", "0x016", "0x017", "0x018", "0x019", "0x01A", "0x01B", "0x01C", "0x01D", "0x01E", "0x01F", "0x020", "0x021", "0x022", "0x023", "0x024", "0x025", "0x026", "0x027", "0x028", "0x029", "0x02A", "0x02B", "0x02C", "0x02D", "0x02E", "0x02F", "0x030", "0x031", "0x032", "0x033", "0x034", "0x035", "0x036", "0x037", "0x038", "0x039", "0x03A", "0x03B", "0x03C", "0x03D", "0x03E", "0x03F", "0x040", "0x041", "0x042", "0x043", "0x044", "0x045", "0x046", "0x047", "0x048", "0x049", "0x04A", "0x04B", "0x04C", "0x04D", "0x04E", "0x04F", "0x050", "0x051", "0x052", "0x053", "0x054", "0x055", "0x056", "0x057", "0x058", "0x059", "0x05A", "0x05B", "0x05C", "0x05D", "0x05E", "0x05F" ,"0x060", "0x061", "0x062", "0x063", "0x064", "0x065", "0x066", "0x067", "0x068", "0x069", "0x06A", "0x06B", "0x06C", "0x06D", "0x06E", "0x06F", "0x070", "0x071", "0x072", "0x073", "0x074", "0x075", "0x076", "0x077", "0x078", "0x079", "0x07A", "0x07B", "0x07C", "0x07D", "0x07E", "0x07F", "0x080", "0x081", "0x082", "0x083", "0x084", "0x085", "0x086", "0x087", "0x088", "0x089", "0x08A", "0x08B", "0x08C", "0x08D", "0x08E", "0x08F" ,"0x090", "0x091", "0x092", "0x093", "0x094", "0x095", "0x096", "0x097", "0x098", "0x099", "0x09A", "0x09B", "0x09C", "0x09D", "0x09E", "0x09F", "0x0A0", "0x0A1", "0x0A2", "0x0A3", "0x0A4", "0x0A5", "0x0A6", "0x0A7", "0x0A8", "0x0A9", "0x0AA", "0x0AB", "0x0AC", "0x0AD", "0x0AE", "0x0AF", "0x0B0", "0x0B1", "0x0B2", "0x0B3", "0x0B4", "0x0B5", "0x0B6", "0x0B7", "0x0B8", "0x0B9", "0x0BA", "0x0BB", "0x0BC", "0x0BD", "0x0BE", "0x0BF" ,"0x0C0", "0x0C1", "0x0C2", "0x0C3", "0x0C4", "0x0C5", "0x0C6", "0x0C7", "0x0C8", "0x0C9", "0x0CA", "0x0CB", "0x0CC", "0x0CD", "0x0CE", "0x0CF", "0x0D0", "0x0D1", "0x0D2", "0x0D3", "0x0D4", "0x0D5", "0x0D6", "0x0D7", "0x0D8", "0x0D9", "0x0DA", "0x0DB", "0x0DC", "0x0DD", "0x0DE", "0x0DF", "0x0E0", "0x0E1", "0x0E2", "0x0E3", "0x0E4", "0x0E5", "0x0E6", "0x0E7", "0x0E8", "0x0E9", "0x0EA", "0x0EB", "0x0EC", "0x0ED", "0x0EE", "0x0EF" ,"0x0F0", "0x0F1", "0x0F2", "0x0F3", "0x0F4", "0x0F5", "0x0F6", "0x0F7", "0x0F8", "0x0F9", "0x0FA", "0x0FB", "0x0FC", "0x0FD", "0x0FE", "0x0FF" |
| 163 | 180 | #define CAN_ADDRESS_HEX_01XX = "0x100", "0x101", "0x102", "0x103", "0x104", "0x105", "0x106", "0x107", "0x108", "0x109", "0x10A", "0x10B", "0x10C", "0x10D", "0x10E", "0x10F", "0x110", "0x111", "0x112", "0x113", "0x114", "0x115", "0x116", "0x117", "0x118", "0x119", "0x11A", "0x11B", "0x11C", "0x11D", "0x11E", "0x11F", "0x120", "0x121", "0x122", "0x123", "0x124", "0x125", "0x126", "0x127", "0x128", "0x129", "0x12A", "0x12B", "0x12C", "0x12D", "0x12E", "0x12F", "0x130", "0x131", "0x132", "0x133", "0x134", "0x135", "0x136", "0x137", "0x138", "0x139", "0x13A", "0x13B", "0x13C", "0x13D", "0x13E", "0x13F", "0x140", "0x141", "0x142", "0x143", "0x144", "0x145", "0x146", "0x147", "0x148", "0x149", "0x14A", "0x14B", "0x14C", "0x14D", "0x14E", "0x14F", "0x150", "0x151", "0x152", "0x153", "0x154", "0x155", "0x156", "0x157", "0x158", "0x159", "0x15A", "0x15B", "0x15C", "0x15D", "0x15E", "0x15F" ,"0x160", "0x161", "0x162", "0x163", "0x164", "0x165", "0x166", "0x167", "0x168", "0x169", "0x16A", "0x16B", "0x16C", "0x16D", "0x16E", "0x16F", "0x170", "0x171", "0x172", "0x173", "0x174", "0x175", "0x176", "0x177", "0x178", "0x179", "0x17A", "0x17B", "0x17C", "0x17D", "0x17E", "0x17F", "0x180", "0x181", "0x182", "0x183", "0x184", "0x185", "0x186", "0x187", "0x188", "0x189", "0x18A", "0x18B", "0x18C", "0x18D", "0x18E", "0x18F" ,"0x190", "0x191", "0x192", "0x193", "0x194", "0x195", "0x196", "0x197", "0x198", "0x199", "0x19A", "0x19B", "0x19C", "0x19D", "0x19E", "0x19F", "0x1A0", "0x1A1", "0x1A2", "0x1A3", "0x1A4", "0x1A5", "0x1A6", "0x1A7", "0x1A8", "0x1A9", "0x1AA", "0x1AB", "0x1AC", "0x1AD", "0x1AE", "0x1AF", "0x1B0", "0x1B1", "0x1B2", "0x1B3", "0x1B4", "0x1B5", "0x1B6", "0x1B7", "0x1B8", "0x1B9", "0x1BA", "0x1BB", "0x1BC", "0x1BD", "0x1BE", "0x1BF" ,"0x1C0", "0x1C1", "0x1C2", "0x1C3", "0x1C4", "0x1C5", "0x1C6", "0x1C7", "0x1C8", "0x1C9", "0x1CA", "0x1CB", "0x1CC", "0x1CD", "0x1CE", "0x1CF", "0x1D0", "0x1D1", "0x1D2", "0x1D3", "0x1D4", "0x1D5", "0x1D6", "0x1D7", "0x1D8", "0x1D9", "0x1DA", "0x1DB", "0x1DC", "0x1DD", "0x1DE", "0x1DF", "0x1E0", "0x1E1", "0x1E2", "0x1E3", "0x1E4", "0x1E5", "0x1E6", "0x1E7", "0x1E8", "0x1E9", "0x1EA", "0x1EB", "0x1EC", "0x1ED", "0x1EE", "0x1EF" ,"0x1F0", "0x1F1", "0x1F2", "0x1F3", "0x1F4", "0x1F5", "0x1F6", "0x1F7", "0x1F8", "0x1F9", "0x1FA", "0x1FB", "0x1FC", "0x1FD", "0x1FE", "0x1FF" |
| @@ -192,8 +209,8 @@ | ||
| 192 | 209 | aseCount = scalar, U08, 3, "s", 1.0, 0.0, 0.0, 255, 0 |
| 193 | 210 | wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0 |
| 194 | 211 | crankingPct = scalar, U08, 14, "%", 1.0, 0.0, 0.0, 255, 0 |
| 195 | -;[PJSC] 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", "NO2C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "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" | |
| 196 | - 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", "NO2C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PJSC v1.0", "PJSC v0.2", "PJSC v0.3", "PJSC v0.4", "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" ;[PJSC] Boad ID: PJSC boad ver1.0/0.2/0.3 (2018/20/19) | |
| 212 | +;[PJSC] 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", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "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" | |
| 213 | + 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", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PJSC v1.0", "PJSC v0.2", "PJSC v0.3", "PJSC v0.4", "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" ;[PJSC] Boad ID: PJSC boad ver1.0/0.2/0.3 (2018/20/19) | |
| 197 | 214 | 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" |
| 198 | 215 | tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID" |
| 199 | 216 | unused2-17 = scalar, U08, 17, "ms", 0.1, 0.0, 0.0, 25.5, 1 |
| @@ -248,7 +265,7 @@ | ||
| 248 | 265 | dfcoEnabled = bits, U08, 38, [7:7], "Off", "On" |
| 249 | 266 | |
| 250 | 267 | primePulse = scalar, U08, 39, "ms", 0.1, 0.0, 0.0, 25.5, 1 |
| 251 | - dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 100.0, 0 | |
| 268 | + dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 95.0, 0 | |
| 252 | 269 | flexFreqLow = scalar, U08, 41, "Hz", 1.0, 0.0, 0.0, 250.0, 0 |
| 253 | 270 | flexFreqHigh = scalar, U08, 42, "Hz", 1.0, 0.0, 0.0, 250.0, 0 |
| 254 | 271 |
| @@ -334,7 +351,8 @@ | ||
| 334 | 351 | page = 3 |
| 335 | 352 | advTable1 = array, U08, 0,[16x16], "deg", 1.0, -40, -40, 215.0, 0 |
| 336 | 353 | rpmBins2 = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 |
| 337 | - ignLoadBins= array, U08, 272, [ 16], { bitStringValue(algorithmUnits , ignAlgorithm) }, 2.0, 0.0, 0.0, {ignLoadMax}, 0 | |
| 354 | + ;ignLoadBins= array, U08, 272, [ 16], { bitStringValue(algorithmUnits , ignAlgorithm) }, 2.0, 0.0, 0.0, {ignLoadMax}, 0 | |
| 355 | + mapBins1= array, U08, 272, [ 16], { bitStringValue(algorithmUnits , ignAlgorithm) }, 2.0, 0.0, 0.0, {ignLoadMax}, 0 ; This name has to be used in order for the table to show up in MLVs table. I can't find the regexs that make this work :( | |
| 338 | 356 | |
| 339 | 357 | ;-------------------------------------------------- |
| 340 | 358 | ;Start Page 4 |
| @@ -621,7 +639,7 @@ | ||
| 621 | 639 | #endif |
| 622 | 640 | |
| 623 | 641 | ;-------------------------------------------------- |
| 624 | -;CANBUS control (Page 9) | |
| 642 | +;CANBUS control and Auxillary io(Page 9) | |
| 625 | 643 | ;-------------------------------------------------- |
| 626 | 644 | page = 9 |
| 627 | 645 | #if CAN_COMMANDS |
| @@ -630,148 +648,230 @@ | ||
| 630 | 648 | enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID" |
| 631 | 649 | #endif |
| 632 | 650 | enable_candata_in = bits, U08, 0, [2:2], "Off", "On" |
| 651 | + #if CAN_COMMANDS | |
| 652 | + caninput_sel0 = bits, U08, 1, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 653 | + caninput_sel1 = bits, U08, 2, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 654 | + caninput_sel2 = bits, U08, 3, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 655 | + caninput_sel3 = bits, U08, 4, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 656 | + caninput_sel4 = bits, U08, 5, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 657 | + caninput_sel5 = bits, U08, 6, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 658 | + caninput_sel6 = bits, U08, 7, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 659 | + caninput_sel7 = bits, U08, 8, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 660 | + caninput_sel8 = bits, U08, 9, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 661 | + caninput_sel9 = bits, U08, 10, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 662 | + caninput_sel10 = bits, U08, 11, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 663 | + caninput_sel11 = bits, U08, 12, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 664 | + caninput_sel12 = bits, U08, 13, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 665 | + caninput_sel13 = bits, U08, 14, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 666 | + caninput_sel14 = bits, U08, 15, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 667 | + caninput_sel15 = bits, U08, 16, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local" | |
| 668 | + #else | |
| 669 | + caninput_sel0 = bits, U08, 1, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 670 | + caninput_sel1 = bits, U08, 2, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 671 | + caninput_sel2 = bits, U08, 3, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 672 | + caninput_sel3 = bits, U08, 4, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 673 | + caninput_sel4 = bits, U08, 5, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 674 | + caninput_sel5 = bits, U08, 6, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 675 | + caninput_sel6 = bits, U08, 7, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 676 | + caninput_sel7 = bits, U08, 8, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 677 | + caninput_sel8 = bits, U08, 9, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 678 | + caninput_sel9 = bits, U08, 10, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 679 | + caninput_sel10 = bits, U08, 11, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 680 | + caninput_sel11 = bits, U08, 12, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 681 | + caninput_sel12 = bits, U08, 13, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 682 | + caninput_sel13 = bits, U08, 14, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 683 | + caninput_sel14 = bits, U08, 15, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 684 | + caninput_sel15 = bits, U08, 16, [0:1], "Off", "INVALID", "Analog_local", "Digital_local" | |
| 685 | + #endif | |
| 686 | + ;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0 | |
| 687 | + caninput_source_can_address0 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX | |
| 688 | + caninput_source_can_address1 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX | |
| 689 | + caninput_source_can_address2 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX | |
| 690 | + caninput_source_can_address3 = bits, U16, 23, [0:10], $CAN_ADDRESS_HEX | |
| 691 | + caninput_source_can_address4 = bits, U16, 25, [0:10], $CAN_ADDRESS_HEX | |
| 692 | + caninput_source_can_address5 = bits, U16, 27, [0:10], $CAN_ADDRESS_HEX | |
| 693 | + caninput_source_can_address6 = bits, U16, 29, [0:10], $CAN_ADDRESS_HEX | |
| 694 | + caninput_source_can_address7 = bits, U16, 31, [0:10], $CAN_ADDRESS_HEX | |
| 695 | + caninput_source_can_address8 = bits, U16, 33, [0:10], $CAN_ADDRESS_HEX | |
| 696 | + caninput_source_can_address9 = bits, U16, 35, [0:10], $CAN_ADDRESS_HEX | |
| 697 | + caninput_source_can_address10 = bits, U16, 37, [0:10], $CAN_ADDRESS_HEX | |
| 698 | + caninput_source_can_address11 = bits, U16, 39, [0:10], $CAN_ADDRESS_HEX | |
| 699 | + caninput_source_can_address12 = bits, U16, 41, [0:10], $CAN_ADDRESS_HEX | |
| 700 | + caninput_source_can_address13 = bits, U16, 43, [0:10], $CAN_ADDRESS_HEX | |
| 701 | + caninput_source_can_address14 = bits, U16, 45, [0:10], $CAN_ADDRESS_HEX | |
| 702 | + caninput_source_can_address15 = bits, U16, 47, [0:10], $CAN_ADDRESS_HEX | |
| 633 | 703 | |
| 634 | - caninput_sel0 = bits, U16, 1, [0:0], "Off", "On" | |
| 635 | - caninput_sel1 = bits, U16, 1, [1:1], "Off", "On" | |
| 636 | - caninput_sel2 = bits, U16, 1, [2:2], "Off", "On" | |
| 637 | - caninput_sel3 = bits, U16, 1, [3:3], "Off", "On" | |
| 638 | - caninput_sel4 = bits, U16, 1, [4:4], "Off", "On" | |
| 639 | - caninput_sel5 = bits, U16, 1, [5:5], "Off", "On" | |
| 640 | - caninput_sel6 = bits, U16, 1, [6:6], "Off", "On" | |
| 641 | - caninput_sel7 = bits, U16, 1, [7:7], "Off", "On" | |
| 642 | - caninput_sel8 = bits, U16, 1, [8:8], "Off", "On" | |
| 643 | - caninput_sel9 = bits, U16, 1, [9:9], "Off", "On" | |
| 644 | - caninput_sel10 = bits, U16, 1, [10:10], "Off", "On" | |
| 645 | - caninput_sel11 = bits, U16, 1, [11:11], "Off", "On" | |
| 646 | - caninput_sel12 = bits, U16, 1, [12:12], "Off", "On" | |
| 647 | - caninput_sel13 = bits, U16, 1, [13:13], "Off", "On" | |
| 648 | - caninput_sel14 = bits, U16, 1, [14:14], "Off", "On" | |
| 649 | - caninput_sel15 = bits, U16, 1, [15:15], "Off", "On" | |
| 650 | 704 | |
| 651 | - ;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0 | |
| 652 | - caninput_source_can_address0 = bits, U16, 3, [0:10], $CAN_ADDRESS_HEX | |
| 653 | - caninput_source_can_address1 = bits, U16, 5, [0:10], $CAN_ADDRESS_HEX | |
| 654 | - caninput_source_can_address2 = bits, U16, 7, [0:10], $CAN_ADDRESS_HEX | |
| 655 | - caninput_source_can_address3 = bits, U16, 9, [0:10], $CAN_ADDRESS_HEX | |
| 656 | - caninput_source_can_address4 = bits, U16, 11, [0:10], $CAN_ADDRESS_HEX | |
| 657 | - caninput_source_can_address5 = bits, U16, 13, [0:10], $CAN_ADDRESS_HEX | |
| 658 | - caninput_source_can_address6 = bits, U16, 15, [0:10], $CAN_ADDRESS_HEX | |
| 659 | - caninput_source_can_address7 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX | |
| 660 | - caninput_source_can_address8 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX | |
| 661 | - caninput_source_can_address9 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX | |
| 662 | - caninput_source_can_address10 = bits, U16, 23, [0:10], $CAN_ADDRESS_HEX | |
| 663 | - caninput_source_can_address11 = bits, U16, 25, [0:10], $CAN_ADDRESS_HEX | |
| 664 | - caninput_source_can_address12 = bits, U16, 27, [0:10], $CAN_ADDRESS_HEX | |
| 665 | - caninput_source_can_address13 = bits, U16, 29, [0:10], $CAN_ADDRESS_HEX | |
| 666 | - caninput_source_can_address14 = bits, U16, 31, [0:10], $CAN_ADDRESS_HEX | |
| 667 | - caninput_source_can_address15 = bits, U16, 33, [0:10], $CAN_ADDRESS_HEX | |
| 668 | 705 | |
| 706 | + caninput_source_start_byte0 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 707 | + caninput_source_start_byte1 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 708 | + caninput_source_start_byte2 = bits, U08, 51, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 709 | + caninput_source_start_byte3 = bits, U08, 52, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 710 | + caninput_source_start_byte4 = bits, U08, 53, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 711 | + caninput_source_start_byte5 = bits, U08, 54, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 712 | + caninput_source_start_byte6 = bits, U08, 55, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 713 | + caninput_source_start_byte7 = bits, U08, 56, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 714 | + caninput_source_start_byte8 = bits, U08, 57, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 715 | + caninput_source_start_byte9 = bits, U08, 58, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 716 | + caninput_source_start_byte10 = bits, U08, 59, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 717 | + caninput_source_start_byte11 = bits, U08, 60, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 718 | + caninput_source_start_byte12 = bits, U08, 61, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 719 | + caninput_source_start_byte13 = bits, U08, 62, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 720 | + caninput_source_start_byte14 = bits, U08, 63, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 721 | + caninput_source_start_byte15 = bits, U08, 64, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 669 | 722 | |
| 723 | + caninput_source_num_bytes0 = bits, U16, 65, [0:0], "1", "2" | |
| 724 | + caninput_source_num_bytes1 = bits, U16, 65, [1:1], "1", "2" | |
| 725 | + caninput_source_num_bytes2 = bits, U16, 65, [2:2], "1", "2" | |
| 726 | + caninput_source_num_bytes3 = bits, U16, 65, [3:3], "1", "2" | |
| 727 | + caninput_source_num_bytes4 = bits, U16, 65, [4:4], "1", "2" | |
| 728 | + caninput_source_num_bytes5 = bits, U16, 65, [5:5], "1", "2" | |
| 729 | + caninput_source_num_bytes6 = bits, U16, 65, [6:6], "1", "2" | |
| 730 | + caninput_source_num_bytes7 = bits, U16, 65, [7:7], "1", "2" | |
| 731 | + caninput_source_num_bytes8 = bits, U16, 65, [8:8], "1", "2" | |
| 732 | + caninput_source_num_bytes9 = bits, U16, 65, [9:9], "1", "2" | |
| 733 | + caninput_source_num_bytes10 = bits, U16, 65, [10:10], "1", "2" | |
| 734 | + caninput_source_num_bytes11 = bits, U16, 65, [11:11], "1", "2" | |
| 735 | + caninput_source_num_bytes12 = bits, U16, 65, [12:12], "1", "2" | |
| 736 | + caninput_source_num_bytes13 = bits, U16, 65, [13:13], "1", "2" | |
| 737 | + caninput_source_num_bytes14 = bits, U16, 65, [14:14], "1", "2" | |
| 738 | + caninput_source_num_bytes15 = bits, U16, 65, [15:15], "1", "2" | |
| 670 | 739 | |
| 671 | - caninput_source_start_byte0 = bits, U08, 35, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 672 | - caninput_source_start_byte1 = bits, U08, 36, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 673 | - caninput_source_start_byte2 = bits, U08, 37, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 674 | - caninput_source_start_byte3 = bits, U08, 38, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 675 | - caninput_source_start_byte4 = bits, U08, 39, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 676 | - caninput_source_start_byte5 = bits, U08, 40, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 677 | - caninput_source_start_byte6 = bits, U08, 41, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 678 | - caninput_source_start_byte7 = bits, U08, 42, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 679 | - caninput_source_start_byte8 = bits, U08, 43, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 680 | - caninput_source_start_byte9 = bits, U08, 44, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 681 | - caninput_source_start_byte10 = bits, U08, 45, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 682 | - caninput_source_start_byte11 = bits, U08, 46, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 683 | - caninput_source_start_byte12 = bits, U08, 47, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 684 | - caninput_source_start_byte13 = bits, U08, 48, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 685 | - caninput_source_start_byte14 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 686 | - caninput_source_start_byte15 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 740 | + unused10_67 = scalar, U08, 67, "", 1, 0, 0, 255, 0 | |
| 741 | + unused10_68 = scalar, U08, 68, "", 1, 0, 0, 255, 0 | |
| 742 | + | |
| 743 | + enable_candata_out = bits, U08, 69, [0:0], "Off", "On" | |
| 744 | + canoutput_sel0 = bits, U08, 70, [0:0], "Off", "On" | |
| 745 | + canoutput_sel1 = bits, U08, 71, [0:0], "Off", "On" | |
| 746 | + canoutput_sel2 = bits, U08, 72, [0:0], "Off", "On" | |
| 747 | + canoutput_sel3 = bits, U08, 73, [0:0], "Off", "On" | |
| 748 | + canoutput_sel4 = bits, U08, 74, [0:0], "Off", "On" | |
| 749 | + canoutput_sel5 = bits, U08, 75, [0:0], "Off", "On" | |
| 750 | + canoutput_sel6 = bits, U08, 76, [0:0], "Off", "On" | |
| 751 | + canoutput_sel7 = bits, U08, 77, [0:0], "Off", "On" | |
| 752 | + canoutput_param_group = array , U16, 78, [ 8], "", 1, 0, 0, 65535, 0 | |
| 753 | + canoutput_param_start_byte0 = bits, U08, 94, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 754 | + canoutput_param_start_byte1 = bits, U08, 95, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 755 | + canoutput_param_start_byte2 = bits, U08, 96, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 756 | + canoutput_param_start_byte3 = bits, U08, 97, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 757 | + canoutput_param_start_byte4 = bits, U08, 98, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 758 | + canoutput_param_start_byte5 = bits, U08, 99, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 759 | + canoutput_param_start_byte6 = bits, U08, 100, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 760 | + canoutput_param_start_byte7 = bits, U08, 101, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 761 | + canoutput_param_num_bytes0 = bits, U08, 102, [0:1], "INVALID", "1", "2", "INVALID" | |
| 762 | + canoutput_param_num_bytes1 = bits, U08, 103, [0:1], "INVALID", "1", "2", "INVALID" | |
| 763 | + canoutput_param_num_bytes2 = bits, U08, 104, [0:1], "INVALID", "1", "2", "INVALID" | |
| 764 | + canoutput_param_num_bytes3 = bits, U08, 105, [0:1], "INVALID", "1", "2", "INVALID" | |
| 765 | + canoutput_param_num_bytes4 = bits, U08, 106, [0:1], "INVALID", "1", "2", "INVALID" | |
| 766 | + canoutput_param_num_bytes5 = bits, U08, 107, [0:1], "INVALID", "1", "2", "INVALID" | |
| 767 | + canoutput_param_num_bytes6 = bits, U08, 108, [0:1], "INVALID", "1", "2", "INVALID" | |
| 768 | + canoutput_param_num_bytes7 = bits, U08, 109, [0:1], "INVALID", "1", "2", "INVALID" | |
| 687 | 769 | |
| 688 | - caninput_source_num_bytes0 = bits, U16, 51, [0:0], "1", "2" | |
| 689 | - caninput_source_num_bytes1 = bits, U16, 51, [1:1], "1", "2" | |
| 690 | - caninput_source_num_bytes2 = bits, U16, 51, [2:2], "1", "2" | |
| 691 | - caninput_source_num_bytes3 = bits, U16, 51, [3:3], "1", "2" | |
| 692 | - caninput_source_num_bytes4 = bits, U16, 51, [4:4], "1", "2" | |
| 693 | - caninput_source_num_bytes5 = bits, U16, 51, [5:5], "1", "2" | |
| 694 | - caninput_source_num_bytes6 = bits, U16, 51, [6:6], "1", "2" | |
| 695 | - caninput_source_num_bytes7 = bits, U16, 51, [7:7], "1", "2" | |
| 696 | - caninput_source_num_bytes8 = bits, U16, 51, [8:8], "1", "2" | |
| 697 | - caninput_source_num_bytes9 = bits, U16, 51, [9:9], "1", "2" | |
| 698 | - caninput_source_num_bytes10 = bits, U16, 51, [10:10], "1", "2" | |
| 699 | - caninput_source_num_bytes11 = bits, U16, 51, [11:11], "1", "2" | |
| 700 | - caninput_source_num_bytes12 = bits, U16, 51, [12:12], "1", "2" | |
| 701 | - caninput_source_num_bytes13 = bits, U16, 51, [13:13], "1", "2" | |
| 702 | - caninput_source_num_bytes14 = bits, U16, 51, [14:14], "1", "2" | |
| 703 | - caninput_source_num_bytes15 = bits, U16, 51, [15:15], "1", "2" | |
| 770 | + unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0 | |
| 771 | + unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0 | |
| 772 | + unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0 | |
| 773 | + unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0 | |
| 704 | 774 | |
| 705 | - unused10_53 = scalar, U08, 53, "", 1, 0, 0, 255, 0 | |
| 706 | - unused10_54 = scalar, U08, 54, "", 1, 0, 0, 255, 0 | |
| 707 | - enable_candata_out = bits, U08, 55, [0:0], "Off", "On" | |
| 708 | - canoutput_sel0 = bits, U08, 56, [0:0], "Off", "On" | |
| 709 | - canoutput_sel1 = bits, U08, 57, [0:0], "Off", "On" | |
| 710 | - canoutput_sel2 = bits, U08, 58, [0:0], "Off", "On" | |
| 711 | - canoutput_sel3 = bits, U08, 59, [0:0], "Off", "On" | |
| 712 | - canoutput_sel4 = bits, U08, 60, [0:0], "Off", "On" | |
| 713 | - canoutput_sel5 = bits, U08, 61, [0:0], "Off", "On" | |
| 714 | - canoutput_sel6 = bits, U08, 62, [0:0], "Off", "On" | |
| 715 | - canoutput_sel7 = bits, U08, 63, [0:0], "Off", "On" | |
| 716 | - canoutput_param_group = array , U16, 64, [ 8], "", 1, 0, 0, 65535, 0 | |
| 717 | - canoutput_param_start_byte0 = bits, U08, 80, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 718 | - canoutput_param_start_byte1 = bits, U08, 81, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 719 | - canoutput_param_start_byte2 = bits, U08, 82, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 720 | - canoutput_param_start_byte3 = bits, U08, 83, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 721 | - canoutput_param_start_byte4 = bits, U08, 84, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 722 | - canoutput_param_start_byte5 = bits, U08, 85, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 723 | - canoutput_param_start_byte6 = bits, U08, 86, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 724 | - canoutput_param_start_byte7 = bits, U08, 87, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" | |
| 725 | - canoutput_param_num_bytes0 = bits, U08, 88, [0:1], "INVALID", "1", "2", "INVALID" | |
| 726 | - canoutput_param_num_bytes1 = bits, U08, 89, [0:1], "INVALID", "1", "2", "INVALID" | |
| 727 | - canoutput_param_num_bytes2 = bits, U08, 90, [0:1], "INVALID", "1", "2", "INVALID" | |
| 728 | - canoutput_param_num_bytes3 = bits, U08, 91, [0:1], "INVALID", "1", "2", "INVALID" | |
| 729 | - canoutput_param_num_bytes4 = bits, U08, 92, [0:1], "INVALID", "1", "2", "INVALID" | |
| 730 | - canoutput_param_num_bytes5 = bits, U08, 93, [0:1], "INVALID", "1", "2", "INVALID" | |
| 731 | - canoutput_param_num_bytes6 = bits, U08, 94, [0:1], "INVALID", "1", "2", "INVALID" | |
| 732 | - canoutput_param_num_bytes7 = bits, U08, 95, [0:1], "INVALID", "1", "2", "INVALID" | |
| 775 | + speeduino_tsCanId = bits, U08, 114, [0:3], $tsCanId_list | |
| 776 | + true_address = bits, U16, 115, [0:10], $CAN_ADDRESS_HEX | |
| 777 | + realtime_base_address = bits, U16, 117, [0:10], $CAN_ADDRESS_HEX | |
| 778 | + obd_address = bits, U16, 119, [0:10], $CAN_ADDRESS_HEX | |
| 733 | 779 | |
| 734 | - unused10_96 = scalar, U08, 96, "", 1, 0, 0, 255, 0 | |
| 735 | - unused10_97 = scalar, U08, 97, "", 1, 0, 0, 255, 0 | |
| 736 | - unused10_98 = scalar, U08, 98, "", 1, 0, 0, 255, 0 | |
| 737 | - unused10_99 = scalar, U08, 99, "", 1, 0, 0, 255, 0 | |
| 738 | - | |
| 739 | - speeduino_tsCanId = bits, U08, 100, [0:3], $tsCanId_list | |
| 740 | - true_address = bits, U16, 101, [0:10], $CAN_ADDRESS_HEX | |
| 741 | - realtime_base_address = bits, U16, 103, [0:10], $CAN_ADDRESS_HEX | |
| 742 | - obd_address = bits, U16, 105, [0:10], $CAN_ADDRESS_HEX | |
| 743 | - | |
| 744 | - | |
| 745 | - ;unused10_101 = scalar, U16, 101, "", 1, 0, 0, 255, 0 | |
| 746 | - ;unused10_103 = scalar, U16, 103, "", 1, 0, 0, 255, 0 | |
| 747 | - ;unused10_105 = scalar, U16, 105, "", 1, 0, 0, 255, 0 | |
| 748 | - | |
| 749 | 780 | ;AFR offset for WUE VeAnalyze |
| 750 | 781 | ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0 |
| 751 | 782 | ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0 |
| 752 | 783 | |
| 753 | - unused10_107 = scalar, U08, 107, "", 1, 0, 0, 255, 0 | |
| 754 | - unused10_108 = scalar, U08, 108, "", 1, 0, 0, 255, 0 | |
| 755 | - unused10_109 = scalar, U08, 109, "", 1, 0, 0, 255, 0 | |
| 756 | - unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0 | |
| 757 | - unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0 | |
| 758 | - unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0 | |
| 759 | - unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0 | |
| 760 | - unused10_114 = scalar, U08, 114, "", 1, 0, 0, 255, 0 | |
| 761 | - unused10_115 = scalar, U08, 115, "", 1, 0, 0, 255, 0 | |
| 762 | - unused10_116 = scalar, U08, 116, "", 1, 0, 0, 255, 0 | |
| 763 | - unused10_117 = scalar, U08, 117, "", 1, 0, 0, 255, 0 | |
| 764 | - unused10_118 = scalar, U08, 118, "", 1, 0, 0, 255, 0 | |
| 765 | - unused10_119 = scalar, U08, 119, "", 1, 0, 0, 255, 0 | |
| 766 | - unused10_120 = scalar, U08, 120, "", 1, 0, 0, 255, 0 | |
| 767 | - unused10_121 = scalar, U08, 121, "", 1, 0, 0, 255, 0 | |
| 768 | - unused10_122 = scalar, U08, 122, "", 1, 0, 0, 255, 0 | |
| 769 | - unused10_123 = scalar, U08, 123, "", 1, 0, 0, 255, 0 | |
| 770 | - unused10_124 = scalar, U08, 124, "", 1, 0, 0, 255, 0 | |
| 771 | - unused10_125 = scalar, U08, 125, "", 1, 0, 0, 255, 0 | |
| 772 | - unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0 | |
| 773 | -;[PJSC] unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0 | |
| 774 | - | |
| 784 | + Auxin0pina = bits, U08, 121, [0:5], $ANALOG_PIN | |
| 785 | + Auxin1pina = bits, U08, 122, [0:5], $ANALOG_PIN | |
| 786 | + Auxin2pina = bits, U08, 123, [0:5], $ANALOG_PIN | |
| 787 | + Auxin3pina = bits, U08, 124, [0:5], $ANALOG_PIN | |
| 788 | + Auxin4pina = bits, U08, 125, [0:5], $ANALOG_PIN | |
| 789 | + Auxin5pina = bits, U08, 126, [0:5], $ANALOG_PIN | |
| 790 | + Auxin6pina = bits, U08, 127, [0:5], $ANALOG_PIN | |
| 791 | + Auxin7pina = bits, U08, 128, [0:5], $ANALOG_PIN | |
| 792 | + Auxin8pina = bits, U08, 129, [0:5], $ANALOG_PIN | |
| 793 | + Auxin9pina = bits, U08, 130, [0:5], $ANALOG_PIN | |
| 794 | + Auxin10pina = bits, U08, 131, [0:5], $ANALOG_PIN | |
| 795 | + Auxin11pina = bits, U08, 132, [0:5], $ANALOG_PIN | |
| 796 | + Auxin12pina = bits, U08, 133, [0:5], $ANALOG_PIN | |
| 797 | + Auxin13pina = bits, U08, 134, [0:5], $ANALOG_PIN | |
| 798 | + Auxin14pina = bits, U08, 135, [0:5], $ANALOG_PIN | |
| 799 | + Auxin15pina = bits, U08, 136, [0:5], $ANALOG_PIN | |
| 800 | + | |
| 801 | + Auxin0pinb = bits, U08, 137, [0:5], $DIGITAL_PIN | |
| 802 | + Auxin1pinb = bits, U08, 138, [0:5], $DIGITAL_PIN | |
| 803 | + Auxin2pinb = bits, U08, 139, [0:5], $DIGITAL_PIN | |
| 804 | + Auxin3pinb = bits, U08, 140, [0:5], $DIGITAL_PIN | |
| 805 | + Auxin4pinb = bits, U08, 141, [0:5], $DIGITAL_PIN | |
| 806 | + Auxin5pinb = bits, U08, 142, [0:5], $DIGITAL_PIN | |
| 807 | + Auxin6pinb = bits, U08, 143, [0:5], $DIGITAL_PIN | |
| 808 | + Auxin7pinb = bits, U08, 144, [0:5], $DIGITAL_PIN | |
| 809 | + Auxin8pinb = bits, U08, 145, [0:5], $DIGITAL_PIN | |
| 810 | + Auxin9pinb = bits, U08, 146, [0:5], $DIGITAL_PIN | |
| 811 | + Auxin10pinb = bits, U08, 147, [0:5], $DIGITAL_PIN | |
| 812 | + Auxin11pinb = bits, U08, 148, [0:5], $DIGITAL_PIN | |
| 813 | + Auxin12pinb = bits, U08, 149, [0:5], $DIGITAL_PIN | |
| 814 | + Auxin13pinb = bits, U08, 150, [0:5], $DIGITAL_PIN | |
| 815 | + Auxin14pinb = bits, U08, 151, [0:5], $DIGITAL_PIN | |
| 816 | + Auxin15pinb = bits, U08, 152, [0:5], $DIGITAL_PIN | |
| 817 | + | |
| 818 | + ;unused10_137 = scalar, U08, 137, "", 1, 0, 0, 255, 0 | |
| 819 | + ;unused10_138 = scalar, U08, 138, "", 1, 0, 0, 255, 0 | |
| 820 | + ;unused10_139 = scalar, U08, 139, "", 1, 0, 0, 255, 0 | |
| 821 | + ;unused10_140 = scalar, U08, 140, "", 1, 0, 0, 255, 0 | |
| 822 | + ;unused10_141 = scalar, U08, 141, "", 1, 0, 0, 255, 0 | |
| 823 | + ;unused10_142 = scalar, U08, 142, "", 1, 0, 0, 255, 0 | |
| 824 | + ;unused10_143 = scalar, U08, 143, "", 1, 0, 0, 255, 0 | |
| 825 | + ;unused10_144 = scalar, U08, 144, "", 1, 0, 0, 255, 0 | |
| 826 | + ;unused10_145 = scalar, U08, 145, "", 1, 0, 0, 255, 0 | |
| 827 | + ;unused10_146 = scalar, U08, 146, "", 1, 0, 0, 255, 0 | |
| 828 | + ;unused10_147 = scalar, U08, 147, "", 1, 0, 0, 255, 0 | |
| 829 | + ;unused10_148 = scalar, U08, 148, "", 1, 0, 0, 255, 0 | |
| 830 | + ;unused10_149 = scalar, U08, 149, "", 1, 0, 0, 255, 0 | |
| 831 | + ;unused10_150 = scalar, U08, 150, "", 1, 0, 0, 255, 0 | |
| 832 | + ;unused10_151 = scalar, U08, 151, "", 1, 0, 0, 255, 0 | |
| 833 | + ;unused10_152 = scalar, U08, 152, "", 1, 0, 0, 255, 0 | |
| 834 | + unused10_153 = scalar, U08, 153, "", 1, 0, 0, 255, 0 | |
| 835 | + unused10_154 = scalar, U08, 154, "", 1, 0, 0, 255, 0 | |
| 836 | + unused10_155 = scalar, U08, 155, "", 1, 0, 0, 255, 0 | |
| 837 | + unused10_156 = scalar, U08, 156, "", 1, 0, 0, 255, 0 | |
| 838 | + unused10_157 = scalar, U08, 157, "", 1, 0, 0, 255, 0 | |
| 839 | + unused10_158 = scalar, U08, 158, "", 1, 0, 0, 255, 0 | |
| 840 | + unused10_159 = scalar, U08, 159, "", 1, 0, 0, 255, 0 | |
| 841 | + unused10_160 = scalar, U08, 160, "", 1, 0, 0, 255, 0 | |
| 842 | + unused10_161 = scalar, U08, 161, "", 1, 0, 0, 255, 0 | |
| 843 | + unused10_162 = scalar, U08, 162, "", 1, 0, 0, 255, 0 | |
| 844 | + unused10_163 = scalar, U08, 163, "", 1, 0, 0, 255, 0 | |
| 845 | + unused10_164 = scalar, U08, 164, "", 1, 0, 0, 255, 0 | |
| 846 | + unused10_165 = scalar, U08, 165, "", 1, 0, 0, 255, 0 | |
| 847 | + unused10_166 = scalar, U08, 166, "", 1, 0, 0, 255, 0 | |
| 848 | + unused10_167 = scalar, U08, 167, "", 1, 0, 0, 255, 0 | |
| 849 | + unused10_168 = scalar, U08, 168, "", 1, 0, 0, 255, 0 | |
| 850 | + unused10_169 = scalar, U08, 169, "", 1, 0, 0, 255, 0 | |
| 851 | + unused10_170 = scalar, U08, 170, "", 1, 0, 0, 255, 0 | |
| 852 | + unused10_171 = scalar, U08, 171, "", 1, 0, 0, 255, 0 | |
| 853 | + unused10_172 = scalar, U08, 172, "", 1, 0, 0, 255, 0 | |
| 854 | + unused10_173 = scalar, U08, 173, "", 1, 0, 0, 255, 0 | |
| 855 | + unused10_174 = scalar, U08, 174, "", 1, 0, 0, 255, 0 | |
| 856 | + unused10_175 = scalar, U08, 175, "", 1, 0, 0, 255, 0 | |
| 857 | + unused10_176 = scalar, U08, 176, "", 1, 0, 0, 255, 0 | |
| 858 | + unused10_177 = scalar, U08, 177, "", 1, 0, 0, 255, 0 | |
| 859 | + unused10_178 = scalar, U08, 178, "", 1, 0, 0, 255, 0 | |
| 860 | + unused10_179 = scalar, U08, 179, "", 1, 0, 0, 255, 0 | |
| 861 | + unused10_180 = scalar, U08, 180, "", 1, 0, 0, 255, 0 | |
| 862 | + unused10_181 = scalar, U08, 181, "", 1, 0, 0, 255, 0 | |
| 863 | + unused10_182 = scalar, U08, 182, "", 1, 0, 0, 255, 0 | |
| 864 | + unused10_183 = scalar, U08, 183, "", 1, 0, 0, 255, 0 | |
| 865 | + unused10_184 = scalar, U08, 184, "", 1, 0, 0, 255, 0 | |
| 866 | + unused10_185 = scalar, U08, 185, "", 1, 0, 0, 255, 0 | |
| 867 | + unused10_186 = scalar, U08, 186, "", 1, 0, 0, 255, 0 | |
| 868 | + unused10_187 = scalar, U08, 187, "", 1, 0, 0, 255, 0 | |
| 869 | + unused10_188 = scalar, U08, 188, "", 1, 0, 0, 255, 0 | |
| 870 | + unused10_189 = scalar, U08, 189, "", 1, 0, 0, 255, 0 | |
| 871 | + unused10_190 = scalar, U08, 190, "", 1, 0, 0, 255, 0 | |
| 872 | + blankfield = bits, U08, 191, [0:0], "","" | |
| 873 | + ;unused10_191 = scalar, U08, 191, "", 1, 0, 0, 255, 0 | |
| 874 | + | |
| 775 | 875 | page = 10 |
| 776 | 876 | #if CELSIUS |
| 777 | 877 | crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 |
| @@ -803,7 +903,7 @@ | ||
| 803 | 903 | flexFuelBins = array, U08, 51, [6], "%", 1.0, 0.0, 0.0, 250.0, 0 |
| 804 | 904 | flexFuelAdj = array, U08, 57, [6], "%", 1.0, 0.0, 0.0, 250.0, 0 |
| 805 | 905 | flexAdvBins = array, U08, 63, [6], "%", 1.0, 0.0, 0.0, 250.0, 0 |
| 806 | - flexAdvAdj = array, U08, 69, [6], "Deg", 1.0, 0.0, 0.0, 250.0, 0 | |
| 906 | + flexAdvAdj = array, S08, 69, [6], "Deg", 1.0, 0.0, -125, 125.0, 0 | |
| 807 | 907 | |
| 808 | 908 | n2o_enable = bits , U08, 75, [0:1], "Off","1 Stage","2 stage", "INVALID" |
| 809 | 909 | n2o_arming_pin = bits , U08, 75, [2:7], $IO_Pins_no_def |
| @@ -814,12 +914,11 @@ | ||
| 814 | 914 | #endif |
| 815 | 915 | n2o_maxMAP = scalar, U08, 77, "kPa", 2.0, 0.0, 0.0, 511.0, 0 |
| 816 | 916 | n2o_minTPS = scalar, U08, 78, "%TPS", 1.0, 0.0, 0.0, 100, 0 |
| 817 | - n2o_maxAFR = scalar, U08, 79, "kPa", 0.1, 0.0, 0.0, 25.5, 1 | |
| 917 | + n2o_maxAFR = scalar, U08, 79, "AFR", 0.1, 0.0, 0.0, 25.5, 1 | |
| 818 | 918 | |
| 819 | - | |
| 820 | 919 | n2o_stage1_pin = bits , U08, 80, [0:5], $IO_Pins_no_def |
| 821 | 920 | n2o_pin_polarity = bits , U08, 80, [6:6], "HIGH", "LOW" |
| 822 | - n2o_unused = bits , U08, 80, [7:7], "INVALID", "INVALID" | |
| 921 | + n2o_unused = bits , U08, 80, [7:7], "No", "Yes" | |
| 823 | 922 | n2o_stage1_minRPM = scalar, U08, 81, "RPM", 100, 0.0, 1000, 10000, 0 |
| 824 | 923 | n2o_stage1_maxRPM = scalar, U08, 82, "RPM", 100, 0.0, 1000, 10000, 0 |
| 825 | 924 | n2o_stage1_adderMin = scalar, U08, 83, "ms", 0.1, 0, 0, 25.5, 1 |
| @@ -827,7 +926,7 @@ | ||
| 827 | 926 | n2o_stage1_retard = scalar, U08, 85, "Deg", 1.0, 0.0, 0.0, 250.0, 0 |
| 828 | 927 | |
| 829 | 928 | n2o_stage2_pin = bits , U08, 86, [0:5], $IO_Pins_no_def |
| 830 | - n2o_stage2_unused = bits , U08, 86, [6:7], "INVALID", "INVALID", "INVALID", "INVALID" | |
| 929 | + n2o_stage2_unused = bits , U08, 86, [6:7], "No", "Yes", "INVALID", "INVALID" | |
| 831 | 930 | n2o_stage2_minRPM = scalar, U08, 87, "RPM", 100, 0.0, 1000, 10000, 0 |
| 832 | 931 | n2o_stage2_maxRPM = scalar, U08, 88, "RPM", 100, 0.0, 1000, 10000, 0 |
| 833 | 932 | n2o_stage2_adderMin = scalar, U08, 89, "ms", 0.1, 0, 0, 32, 1 |
| @@ -834,9 +933,36 @@ | ||
| 834 | 933 | n2o_stage2_adderMax = scalar, U08, 90, "ms", 0.1, 0, 0, 32, 1 |
| 835 | 934 | n2o_stage2_retard = scalar, U08, 91, "Deg", 1.0, 0.0, 0.0, 250.0, 0 |
| 836 | 935 | |
| 936 | + ; Knock settings | |
| 937 | + knock_mode = bits , U08, 92, [0:1], "Off","Digital","Analog", "INVALID" | |
| 938 | + knock_pin = bits , U08, 92, [2:7], "INVALID", "INVALID", "2", "3", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "18", "19", "20", "21", "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", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" | |
| 837 | 939 | |
| 838 | - unused11_75_191 = array, U08, 92,[99],"RPM", 100.0, 0.0, 100, 25500, 0 | |
| 940 | + knock_trigger = bits , U08, 93, [0:0], "HIGH", "LOW" | |
| 941 | + knock_pullup = bits , U08, 93, [1:1], "Off", "Internal pullup" | |
| 942 | + knock_limiterDisable= bits , U08, 93, [2:2], "No", "Yes" | |
| 943 | + knock_unused = bits , U08, 93, [3:4], "INVALID", "1", "2", "3" | |
| 839 | 944 | |
| 945 | + ;Knock detection / filters | |
| 946 | + knock_count = bits , U08, 93, [5:7], "INVALID", "1", "2", "3", "4", "5", "6", "7" | |
| 947 | + knock_threshold = scalar, U08, 94, "Volts", 0.1, 0.0, 0.0, 5.0, 1 | |
| 948 | + knock_maxMAP = scalar, U08, 95, "kPa", 2.0, 0.0, 0.0, 511.0, 0 | |
| 949 | + knock_maxRPM = scalar, U08, 96, "RPM", 100.0, 0.0, 0, 10000, 0 | |
| 950 | + knock_window_rpms = array, U08, 97, [6], "RPM", 100.0, 0.0, 0, 10000, 0 | |
| 951 | + knock_window_angle = array, U08, 103, [6], "deg", 1.0, -50, -50, 100, 0 | |
| 952 | + knock_window_dur = array, U08, 109, [6], "deg", 1.0, 0.0, 0, 100, 0 ;Knock window duration | |
| 953 | + | |
| 954 | + ;Retard and recovery | |
| 955 | + knock_maxRetard = scalar, U08, 115, "Deg", 1.0, 0.0, 0.0, 50, 0 | |
| 956 | + knock_firstStep = scalar, U08, 116, "Deg", 1.0, 0.0, 0.0, 50, 0 | |
| 957 | + knock_stepSize = scalar, U08, 117, "Deg", 1.0, 0.0, 0.0, 50, 0 | |
| 958 | + knock_stepTime = scalar, U08, 118, "Sec", 0.1, 0.0, 0.0, 2.5, 1 | |
| 959 | + | |
| 960 | + knock_duration = scalar, U08, 119, "Sec", 0.1, 0.0, 0.0, 2.5, 1 ;//Time after knock retard starts that it should start recovering | |
| 961 | + knock_recoveryStepTime = scalar, U08, 120, "Sec", 0.1, 0.0, 0.0, 2.5, 1 | |
| 962 | + knock_recoveryStep = scalar, U08, 121, "Deg", 1.0, 0.0, 0.0, 50, 0 | |
| 963 | + | |
| 964 | + unused11_122_191 = array, U08, 122,[69],"RPM", 100.0, 0.0, 100, 25500, 0 | |
| 965 | + | |
| 840 | 966 | ;-------------------------------------------------- |
| 841 | 967 | ;Page 12 is the fuel map and axis bins only [PJSC] |
| 842 | 968 | ;-------------------------------------------------- |
| @@ -844,9 +970,9 @@ | ||
| 844 | 970 | ; name = bits, type, offset, bits |
| 845 | 971 | ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits |
| 846 | 972 | ; name = scalar, type, offset, units, scale, translate, lo, hi, digits |
| 847 | - veTable2 = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 | |
| 848 | - rpmBinsVE2 = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 | |
| 849 | - fuelLoadBins2 = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 | |
| 973 | + veTable2 = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 | |
| 974 | + rpmBinsVE2 = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 | |
| 975 | + fuelLoadBins2 = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 | |
| 850 | 976 | |
| 851 | 977 | ;------------------------------------------------------------------------------- |
| 852 | 978 |
| @@ -889,6 +1015,10 @@ | ||
| 889 | 1015 | requiresPowerCycle = n2o_enable |
| 890 | 1016 | requiresPowerCycle = n2o_arming_pin |
| 891 | 1017 | requiresPowerCycle = n2o_pin_polarity |
| 1018 | + requiresPowerCycle = knock_mode | |
| 1019 | + requiresPowerCycle = knock_pin | |
| 1020 | + requiresPowerCycle = knock_trigger | |
| 1021 | + requiresPowerCycle = knock_pullup | |
| 892 | 1022 | requiresPowerCycle = pjscFreq ;[PJSC] |
| 893 | 1023 | requiresPowerCycle = squirtDeviceType ; | |
| 894 | 1024 | requiresPowerCycle = multiVEmapEnabled ; | |
| @@ -910,7 +1040,7 @@ | ||
| 910 | 1040 | defaultValue = inj3Ang, 355 |
| 911 | 1041 | defaultValue = inj4Ang, 355 |
| 912 | 1042 | defaultValue = nInjectors, 4 |
| 913 | - defaultValue = dutyLim, 100 | |
| 1043 | + defaultValue = dutyLim, 80 | |
| 914 | 1044 | defaultValue = mapMin, 10 |
| 915 | 1045 | defaultValue = mapMax, 260 |
| 916 | 1046 | defaultValue = baroMin 10 |
| @@ -1014,6 +1144,22 @@ | ||
| 1014 | 1144 | |
| 1015 | 1145 | controllerPriority = bootloaderCaps |
| 1016 | 1146 | |
| 1147 | + defaultValue = AUXin00Alias Aux0 | |
| 1148 | + defaultValue = AUXin01Alias Aux1 | |
| 1149 | + defaultValue = AUXin02Alias Aux2 | |
| 1150 | + defaultValue = AUXin03Alias Aux3 | |
| 1151 | + defaultValue = AUXin04Alias Aux4 | |
| 1152 | + defaultValue = AUXin05Alias Aux5 | |
| 1153 | + defaultValue = AUXin06Alias Aux6 | |
| 1154 | + defaultValue = AUXin07Alias Aux7 | |
| 1155 | + defaultValue = AUXin08Alias Aux8 | |
| 1156 | + defaultValue = AUXin09Alias Aux9 | |
| 1157 | + defaultValue = AUXin10Alias Aux10 | |
| 1158 | + defaultValue = AUXin11Alias Aux11 | |
| 1159 | + defaultValue = AUXin12Alias Aux12 | |
| 1160 | + defaultValue = AUXin13Alias Aux13 | |
| 1161 | + defaultValue = AUXin14Alias Aux14 | |
| 1162 | + defaultValue = AUXin15Alias Aux15 | |
| 1017 | 1163 | |
| 1018 | 1164 | [Menu] |
| 1019 | 1165 |
| @@ -1069,11 +1215,12 @@ | ||
| 1069 | 1215 | subMenu = stagingTableDialog, "Staged Injection", 10, { nCylinders <= 4 } ; Can't do staging on more than 4 cylinder engines |
| 1070 | 1216 | |
| 1071 | 1217 | ;[PJSC] menu = "&Spark" |
| 1072 | -;[PJSC] subMenu = sparkSettings, "Spark Settings" | |
| 1073 | -;[PJSC] subMenu = sparkTbl, "Spark Table", 2 | |
| 1074 | -;[PJSC] subMenu = dwellSettings, "Dwell settings" | |
| 1218 | +;[PJSC] subMenu = sparkSettings, "Spark Settings" | |
| 1219 | +;[PJSC] subMenu = sparkTbl, "Spark Table", 2 | |
| 1220 | +;[PJSC] subMenu = dwellSettings, "Dwell settings" | |
| 1075 | 1221 | ;[PJSC] subMenu = dwell_correction_curve, "Dwell Compensation" |
| 1076 | -;[PJSC] subMenu = iat_retard_curve, "&IAT Retard" | |
| 1222 | +;[PJSC] subMenu = iat_retard_curve, "IAT Retard" | |
| 1223 | +;[PJSC] ;subMenu = knockSettings, "Knock Settings" | |
| 1077 | 1224 | ;[PJSC] subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 } |
| 1078 | 1225 | |
| 1079 | 1226 | menu = "&Starting/Idle" |
| @@ -1121,7 +1268,7 @@ | ||
| 1121 | 1268 | subMenu = tacho, "Tacho Output", { muxout1selection == 7 || muxout2selection == 7 } ;[PJSC v1.10] For MUX selection |
| 1122 | 1269 | |
| 1123 | 1270 | subMenu = std_separator ;[PJSC] |
| 1124 | - subMenu = inputPortSetting, "Input Port Setting" ; | | |
| 1271 | + subMenu = inputPortSetting, "Input Port Setting" ;[PJSC] | |
| 1125 | 1272 | |
| 1126 | 1273 | subMenu = std_separator |
| 1127 | 1274 |
| @@ -1128,11 +1275,13 @@ | ||
| 1128 | 1275 | #if CAN_COMMANDS |
| 1129 | 1276 | subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface" |
| 1130 | 1277 | subMenu = std_separator |
| 1131 | - subMenu = Canin_config, "External Data Input Configuration", {enable_canbus} | |
| 1278 | + subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_canbus} | |
| 1279 | + subMenu = Auxin_config, "Local Auxillary Input Channel Configuration" | |
| 1132 | 1280 | ;subMenu = std_separator |
| 1133 | 1281 | ;subMenu = Canout_config, "Canbus Output Configuration" |
| 1134 | 1282 | #else |
| 1135 | 1283 | subMenu = serial3IO, "Secondary Serial IO Interface" |
| 1284 | + subMenu = Auxin_config, "Local Auxillary Input Channel Configuration" | |
| 1136 | 1285 | #endif |
| 1137 | 1286 | |
| 1138 | 1287 | menuDialog = main |
| @@ -1189,7 +1338,7 @@ | ||
| 1189 | 1338 | 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" |
| 1190 | 1339 | IgInv = "Whether the spark fires when the ignition signal goes high or goes low. Nearly all ignition systems use 'Going Low' but please verify this as damage to coils can result from the incorrect selection. (NOTE: THIS IS NOT MEGASQUIRT. THIS SETTING IS USUALLY THE OPPOSITE OF WHAT THEY USE!)" |
| 1191 | 1340 | sparkDur = "The duration of the spark at full dwell. Typically around 1ms" |
| 1192 | - fixAngEnable= "If enabled, timing will be locked/fixed and the ignition map will be ignored" | |
| 1341 | + fixAngEnable= "If enabled, timing will be locked/fixed and the ignition map will be ignored. Note that this value will be overriden by the fixed cranking value when cranking" | |
| 1193 | 1342 | FixAng = "Timing will be locked at this value if the above is enabled" |
| 1194 | 1343 | |
| 1195 | 1344 | crankRPM = "The cranking RPM threshold. When RPM is lower than this value (and above 0) the system will be considered to be cranking" |
| @@ -1253,22 +1402,38 @@ | ||
| 1253 | 1402 | true_address = "This is the 11bit Can address of the Speeduino ECU " |
| 1254 | 1403 | realtime_base_address = "This is the 11bit CAN address of the realtime data broadcast from the Speeduino ECU. This MUST be at least 0x16 greater than the true address" |
| 1255 | 1404 | ;obd_address = "The 11bit Can address that the Speeduino ECU responds to for OBD2 diagnostic requests" |
| 1256 | - caninput_sel0 = "This Enables CAN data input channel 0 " | |
| 1257 | - caninput_sel1 = "This Enables CAN data input channel 1 " | |
| 1258 | - caninput_sel2 = "This Enables CAN data input channel 2 " | |
| 1259 | - caninput_sel3 = "This Enables CAN data input channel 3 " | |
| 1260 | - caninput_sel4 = "This Enables CAN data input channel 4 " | |
| 1261 | - caninput_sel5 = "This Enables CAN data input channel 5 " | |
| 1262 | - caninput_sel6 = "This Enables CAN data input channel 6 " | |
| 1263 | - caninput_sel7 = "This Enables CAN data input channel 7 " | |
| 1264 | - caninput_sel8 = "This Enables CAN data input channel 8 " | |
| 1265 | - caninput_sel9 = "This Enables CAN data input channel 9 " | |
| 1266 | - caninput_sel10 = "This Enables CAN data input channel 10 " | |
| 1267 | - caninput_sel11 = "This Enables CAN data input channel 11 " | |
| 1268 | - caninput_sel12 = "This Enables CAN data input channel 12 " | |
| 1269 | - caninput_sel13 = "This Enables CAN data input channel 13 " | |
| 1270 | - caninput_sel14 = "This Enables CAN data input channel 14 " | |
| 1271 | - caninput_sel15 = "This Enables CAN data input channel 15 " | |
| 1405 | + AUXin00Alias = "The Ascii alias asigned to Aux input channel 0" | |
| 1406 | + AUXin01Alias = "The Ascii alias asigned to Aux input channel 1" | |
| 1407 | + AUXin02Alias = "The Ascii alias asigned to Aux input channel 2" | |
| 1408 | + AUXin03Alias = "The Ascii alias asigned to Aux input channel 3" | |
| 1409 | + AUXin04Alias = "The Ascii alias asigned to Aux input channel 4" | |
| 1410 | + AUXin05Alias = "The Ascii alias asigned to Aux input channel 5" | |
| 1411 | + AUXin06Alias = "The Ascii alias asigned to Aux input channel 6" | |
| 1412 | + AUXin07Alias = "The Ascii alias asigned to Aux input channel 7" | |
| 1413 | + AUXin08Alias = "The Ascii alias asigned to Aux input channel 8" | |
| 1414 | + AUXin09Alias = "The Ascii alias asigned to Aux input channel 9" | |
| 1415 | + AUXin10Alias = "The Ascii alias asigned to Aux input channel 10" | |
| 1416 | + AUXin11Alias = "The Ascii alias asigned to Aux input channel 11" | |
| 1417 | + AUXin12Alias = "The Ascii alias asigned to Aux input channel 12" | |
| 1418 | + AUXin13Alias = "The Ascii alias asigned to Aux input channel 13" | |
| 1419 | + AUXin14Alias = "The Ascii alias asigned to Aux input channel 14" | |
| 1420 | + AUXin15Alias = "The Ascii alias asigned to Aux input channel 15" | |
| 1421 | + caninput_sel0 = "This Enables External/CAN data or local analog/digital on input channel 0 " | |
| 1422 | + caninput_sel1 = "This Enables External/CAN data or local analog/digital on input channel 1 " | |
| 1423 | + caninput_sel2 = "This Enables External/CAN data or local analog/digital on input channel 2 " | |
| 1424 | + caninput_sel3 = "This Enables External/CAN data or local analog/digital on input channel 3 " | |
| 1425 | + caninput_sel4 = "This Enables External/CAN data or local analog/digital on input channel 4 " | |
| 1426 | + caninput_sel5 = "This Enables External/CAN data or local analog/digital on input channel 5 " | |
| 1427 | + caninput_sel6 = "This Enables External/CAN data or local analog/digital on input channel 6 " | |
| 1428 | + caninput_sel7 = "This Enables External/CAN data or local analog/digital on input channel 7 " | |
| 1429 | + caninput_sel8 = "This Enables External/CAN data or local analog/digital on input channel 8 " | |
| 1430 | + caninput_sel9 = "This Enables External/CAN data or local analog/digital on input channel 9 " | |
| 1431 | + caninput_sel10 = "This Enables External/CAN data or local analog/digital on input channel 10 " | |
| 1432 | + caninput_sel11 = "This Enables External/CAN data or local analog/digital on input channel 11 " | |
| 1433 | + caninput_sel12 = "This Enables External/CAN data or local analog/digital on input channel 12 " | |
| 1434 | + caninput_sel13 = "This Enables External/CAN data or local analog/digital on input channel 13 " | |
| 1435 | + caninput_sel14 = "This Enables External/CAN data or local analog/digital on input channel 14 " | |
| 1436 | + caninput_sel15 = "This Enables External/CAN data or local analog/digital on input channel 15 " | |
| 1272 | 1437 | caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0" |
| 1273 | 1438 | caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1" |
| 1274 | 1439 | caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2" |
| @@ -1395,15 +1560,15 @@ | ||
| 1395 | 1560 | |
| 1396 | 1561 | dialog = captExValveSetting, "Capture Exhaust Valve Position Control" ;[PJSC] |
| 1397 | 1562 | field = "Exhaust valve calibration mode", exValveCalibrationMode ; | |
| 1398 | - field = "Closed exhaust valve ADC count", exValvePosMin ; V | |
| 1399 | - field = "Open exhaust valve ADC count", exValvePosMax ;[PJSC] | |
| 1400 | - | |
| 1401 | - dialog = captSparkSetting, "Capture External Spark Control" ;[PJSC] | |
| 1402 | - field = "Spark capture trigger edge", externalTrigEdge ;[PJSC] | |
| 1403 | - field = "Spark capture hysteresis", exTrigHysteresis ;[PJSC] | |
| 1404 | - | |
| 1405 | - dialog = captDutyPulseSetting, "Capture Duty Pulse Control" ;[PJSC] | |
| 1406 | - field = "Duty pulse ON Level ch1", dutyPulseOnLevel ;[PJSC] | |
| 1563 | + field = "Closed exhaust valve ADC count", exValvePosMin ; | | |
| 1564 | + field = "Open exhaust valve ADC count", exValvePosMax ; | | |
| 1565 | + ; | | |
| 1566 | + dialog = captSparkSetting, "Capture External Spark Control" ; | | |
| 1567 | + field = "Spark capture trigger edge", externalTrigEdge ; | | |
| 1568 | + field = "Spark capture hysteresis", exTrigHysteresis ; | | |
| 1569 | + ; | | |
| 1570 | + dialog = captDutyPulseSetting, "Capture Duty Pulse Control" ; | | |
| 1571 | + field = "Duty pulse ON Level ch1", dutyPulseOnLevel ; V | |
| 1407 | 1572 | field = "Duty pulse ON Level ch2", dutyPulseOnLevel2 ;[PJSC] |
| 1408 | 1573 | |
| 1409 | 1574 | dialog = analogInputPort1select, "" ;[PJSC v1.10] |
| @@ -1450,7 +1615,7 @@ | ||
| 1450 | 1615 | panel = digitalInputPort2 ; V |
| 1451 | 1616 | panel = digitalInputPort3 ;[PJSC v1.10] |
| 1452 | 1617 | |
| 1453 | -# Flex fuel stuff | |
| 1618 | +; Flex fuel stuff | |
| 1454 | 1619 | dialog = flexFuelSettings, "", yAxis |
| 1455 | 1620 | field = "Flex Fuel Sensor ", flexEnabled |
| 1456 | 1621 | field = "Low (E0) ", flexFreqLow, { flexEnabled } |
| @@ -1474,6 +1639,47 @@ | ||
| 1474 | 1639 | panel = flexFuelSettings, North |
| 1475 | 1640 | panel = flexCurves, South |
| 1476 | 1641 | |
| 1642 | +; Knock control settings | |
| 1643 | + dialog = knock_windows, "Knock Windows", xAxis | |
| 1644 | + panel = knock_window_angle_curve, West, { knock_mode } | |
| 1645 | + panel = knock_window_duration_curve, East, { knock_mode } | |
| 1646 | + | |
| 1647 | + dialog = knock_settings_west, "Settings", yAxis | |
| 1648 | + field = "Knock Mode", knock_mode | |
| 1649 | + field = "Knock Pin", knock_pin, { knock_mode } | |
| 1650 | + field = "Knock active when pin is", knock_trigger, { knock_mode == 1 } | |
| 1651 | + field = "Use pullup", knock_pullup, { knock_mode == 1 } | |
| 1652 | + | |
| 1653 | + dialog = knock_settings_east, "Detection and Response" | |
| 1654 | + field = "#Detection" | |
| 1655 | + field = "Knock count required", knock_count, { knock_mode == 1} | |
| 1656 | + field = "Knock threshold required", knock_threshold, { knock_mode == 2} | |
| 1657 | + field = "Maximum MAP", knock_maxMAP, { knock_mode } | |
| 1658 | + field = "Maximum RPM", knock_maxRPM, { knock_mode } | |
| 1659 | + | |
| 1660 | + ;Retard and recovery | |
| 1661 | + field = "#Retard" | |
| 1662 | + field = "Total retard", knock_maxRetard, { knock_mode } | |
| 1663 | + field = "First step size", knock_firstStep, { knock_mode } | |
| 1664 | + field = "Other step size", knock_stepSize, { knock_mode } | |
| 1665 | + field = "Step time", knock_stepTime, { knock_mode } | |
| 1666 | + | |
| 1667 | + field = "#Recovery" | |
| 1668 | + field = "Retard duration", knock_duration, { knock_mode } ;Time before retard starts ending | |
| 1669 | + field = "Recovery step time", knock_recoveryStepTime, { knock_mode } ;Time between each recovery step | |
| 1670 | + field = "Recovery step size", knock_recoveryStep, { knock_mode } | |
| 1671 | + | |
| 1672 | + dialog = knock_settings_top, "", xAxis | |
| 1673 | + panel = knock_settings_west, West | |
| 1674 | + panel = knock_settings_east, East | |
| 1675 | + | |
| 1676 | + dialog = knockSettings, "", border | |
| 1677 | + topicHelp = "http://speeduino.com/wiki/index.php/Knock" | |
| 1678 | + panel = knock_settings_top, North | |
| 1679 | + panel = knock_windows, South | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1477 | 1683 | dialog = tacho, "Tacho" |
| 1478 | 1684 | field = "Output pin", tachoPin |
| 1479 | 1685 | field = "Output speed", tachoDiv |
| @@ -1542,18 +1748,17 @@ | ||
| 1542 | 1748 | panel = veTable1Dialog_north, North ;[PJSC] |
| 1543 | 1749 | panel = veTable1Dialog_south, South ;[PJSC] |
| 1544 | 1750 | |
| 1545 | - dialog = veTable2Dialog_north, "" ;[PJSC] | |
| 1546 | - panel = veTable2Tbl ; | | |
| 1547 | - ; | | |
| 1548 | - dialog = veTable2Dialog_south, "" ; | | |
| 1549 | - field = "Multiply VE value by MAP", multiplyMAP ; | | |
| 1550 | - field = "Include AFR directly", includeAFR, { egoType == 2 } ; | | |
| 1551 | - ; | | |
| 1552 | - dialog = veTable2Dialog, "VE Table 2" ; | | |
| 1553 | - panel = veTable2Dialog_north, North ; V | |
| 1554 | - panel = veTable2Dialog_south, South ;[PJSC] | |
| 1751 | + dialog = veTable2Dialog_north, "" ;[PJSC] | |
| 1752 | + panel = veTable2Tbl ; | | |
| 1753 | + ; | | |
| 1754 | + dialog = veTable2Dialog_south, "" ; | | |
| 1755 | + field = "Multiply VE value by MAP:Baro ratio", multiplyMAP ; | | |
| 1756 | + field = "Multiply by ratio of AFR to Target AFR", includeAFR, { egoType == 2 } ; | | |
| 1757 | + ; | | |
| 1758 | + dialog = veTable2Dialog, "VE Table 2" ; | | |
| 1759 | + panel = veTable2Dialog_north, North ; V | |
| 1760 | + panel = veTable2Dialog_south, South ;[PJSC] | |
| 1555 | 1761 | |
| 1556 | - | |
| 1557 | 1762 | dialog = injChars, "Injector Characteristics" |
| 1558 | 1763 | field = "Squirt Device", squirtDeviceType ;[PJSC] |
| 1559 | 1764 | field = "PJSC solenoid freq.", pjscFreq, { squirtDeviceType == 1 } ;[PJSC] |
| @@ -1685,16 +1890,19 @@ | ||
| 1685 | 1890 | field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) } |
| 1686 | 1891 | field = "Trigger Filter", TrigFilter |
| 1687 | 1892 | field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 || TrigPattern == 9 } ;Dual wheel, 4G63, Audi 135, Nissan 360, Miata 99-05 |
| 1688 | -;[PJSC v1.10] field = "" | |
| 1689 | -;[PJSC v1.10] field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" | |
| 1690 | -;[PJSC v1.10] field = "User per tooth ignition calculation", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 12 || TrigPattern == 16 } ;Only works for missing tooth, distributor, dual wheel, nissan 360, 36-2-2-2 | |
| 1691 | 1893 | |
| 1692 | 1894 | ;[PJSC] dialog = sparkSettings,"Spark Settings",4 |
| 1895 | +;[PJSC] field = "Ignition load source", ignAlgorithm | |
| 1693 | 1896 | ;[PJSC] field = "Spark output mode", sparkMode |
| 1694 | 1897 | ;[PJSC] field = "Cranking advance Angle", CrankAng |
| 1695 | 1898 | ;[PJSC] field = "Spark Outputs triggers", IgInv |
| 1696 | 1899 | ;[PJSC] field = "" |
| 1697 | -;[PJSC] field = "Fixed Angle (0 = use map)", FixAng | |
| 1900 | +;[PJSC] field = "Enabled Fixed/Locked timing", fixAngEnable | |
| 1901 | +;[PJSC] field = "Fixed Angle", FixAng, { fixAngEnable } | |
| 1902 | +;[PJSC] field = "#Note: During cranking the fixed/locked timing angle is overriden by the Cranking advance angle value above" | |
| 1903 | +;[PJSC] field = "" | |
| 1904 | +;[PJSC] field = "#The below option is currently in testing! If unsure what this is, please set to No" | |
| 1905 | +;[PJSC] field = "User new ignition mode", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 12 } ;Only works for missing tooth, distributor, dual wheel, 4g63, nissan 360 | |
| 1698 | 1906 | |
| 1699 | 1907 | ;[PJSC] dialog = dwellSettings, "Dwell Settings", 4 |
| 1700 | 1908 | ;[PJSC] topicHelp = "http://speeduino.com/wiki/index.php/Dwell" |
| @@ -1952,72 +2160,72 @@ | ||
| 1952 | 2160 | commandButton = "Stop Test Mode", cmdStopTestMode,{testactive}, clickOnCloseIfEnabled |
| 1953 | 2161 | |
| 1954 | 2162 | dialog = outputtestinj1, "Injector CH1", yAxis |
| 1955 | - commandButton = "Off", cmdtestinj1off, {testactive} | |
| 1956 | -;[PJSC v1.10] commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive} | |
| 1957 | - commandButton = "On", cmdtestinj1on, {!testenabled & testactive} | |
| 1958 | - commandButton = "PWM", cmdtestinj150dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1959 | - field = "PWM freq.", dutyFreqTst1, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1960 | - field = "Duty ratio", dutyRatioTst1, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2163 | + commandButton = "Off", cmdtestinj1off, {testactive} | |
| 2164 | +;[PJSC v1.10] commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive} | |
| 2165 | + commandButton = "On", cmdtestinj1on, {!testenabled & testactive} | |
| 2166 | + commandButton = "PWM", cmdtestinj150dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2167 | + field = "PWM freq.", dutyFreqTst1, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2168 | + field = "Duty ratio", dutyRatioTst1, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1961 | 2169 | dialog = outputtestinj2, "Injector CH2", yAxis |
| 1962 | - commandButton = "Off", cmdtestinj2off, {testactive} | |
| 1963 | -;[PJSC v1.10] commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive} | |
| 1964 | - commandButton = "On", cmdtestinj2on, {!testenabled & testactive} | |
| 1965 | - commandButton = "PWM", cmdtestinj250dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1966 | - field = "PWM freq.", dutyFreqTst2, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1967 | - field = "Duty ratio", dutyRatioTst2, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2170 | + commandButton = "Off", cmdtestinj2off, {testactive} | |
| 2171 | +;[PJSC v1.10] commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive} | |
| 2172 | + commandButton = "On", cmdtestinj2on, {!testenabled & testactive} | |
| 2173 | + commandButton = "PWM", cmdtestinj250dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2174 | + field = "PWM freq.", dutyFreqTst2, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2175 | + field = "Duty ratio", dutyRatioTst2, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1968 | 2176 | dialog = outputtestinj3, "Injector CH3", yAxis |
| 1969 | - commandButton = "Off", cmdtestinj3off, {testactive} | |
| 1970 | -;[PJSC v1.10] commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive} | |
| 1971 | - commandButton = "On", cmdtestinj3on, {!testenabled & testactive} | |
| 1972 | - commandButton = "PWM", cmdtestinj350dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1973 | - field = "PWM freq.", dutyFreqTst3, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1974 | - field = "Duty ratio", dutyRatioTst3, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2177 | + commandButton = "Off", cmdtestinj3off, {testactive} | |
| 2178 | +;[PJSC v1.10] commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive} | |
| 2179 | + commandButton = "On", cmdtestinj3on, {!testenabled & testactive} | |
| 2180 | + commandButton = "PWM", cmdtestinj350dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2181 | + field = "PWM freq.", dutyFreqTst3, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2182 | + field = "Duty ratio", dutyRatioTst3, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1975 | 2183 | dialog = outputtestinj4, "Injector CH4", yAxis |
| 1976 | - commandButton = "Off", cmdtestinj4off, {testactive} | |
| 1977 | -;[PJSC v1.10] commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive} | |
| 1978 | - commandButton = "On", cmdtestinj4on , {!testenabled & testactive} | |
| 1979 | - commandButton = "PWM", cmdtestinj450dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1980 | - field = "PWM freq.", dutyFreqTst4, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1981 | - field = "Duty ratio", dutyRatioTst4, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2184 | + commandButton = "Off", cmdtestinj4off, {testactive} | |
| 2185 | +;[PJSC v1.10] commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive} | |
| 2186 | + commandButton = "On", cmdtestinj4on , {!testenabled & testactive} | |
| 2187 | + commandButton = "PWM", cmdtestinj450dc, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2188 | + field = "PWM freq.", dutyFreqTst4, {!testenabled & testactive} ;[PJSC v1.10] | |
| 2189 | + field = "Duty ratio", dutyRatioTst4, {!testenabled & testactive} ;[PJSC v1.10] | |
| 1982 | 2190 | |
| 1983 | 2191 | dialog = outputtest_injectors, "Injector Driver Output Test", xAxis |
| 1984 | - panel = outputtestinj1 | |
| 1985 | - panel = outputtestinj2 | |
| 1986 | - panel = outputtestinj3 | |
| 1987 | - panel = outputtestinj4 | |
| 2192 | + panel = outputtestinj1 | |
| 2193 | + panel = outputtestinj2 | |
| 2194 | + panel = outputtestinj3 | |
| 2195 | + panel = outputtestinj4 | |
| 1988 | 2196 | |
| 1989 | 2197 | ;[PJSC] dialog = outputtestspk1, "Spark CH1 ", yAxis |
| 1990 | -;[PJSC] commandButton = "Off", cmdtestspk1off,{testactive} | |
| 1991 | -;[PJSC] commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive} | |
| 1992 | -;[PJSC] commandButton = "On", cmdtestspk1on,{!testenabled & testactive} | |
| 2198 | +;[PJSC] commandButton = "Off", cmdtestspk1off,{testactive} | |
| 2199 | +;[PJSC] commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive} | |
| 2200 | +;[PJSC] commandButton = "On", cmdtestspk1on,{!testenabled & testactive} | |
| 1993 | 2201 | ;[PJSC] dialog = outputtestspk2, "Spark CH2", yAxis |
| 1994 | -;[PJSC] commandButton = "Off", cmdtestspk2off,{testactive} | |
| 1995 | -;[PJSC] commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive} | |
| 1996 | -;[PJSC] commandButton = "On", cmdtestspk2on,{!testenabled & testactive} | |
| 2202 | +;[PJSC] commandButton = "Off", cmdtestspk2off,{testactive} | |
| 2203 | +;[PJSC] commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive} | |
| 2204 | +;[PJSC] commandButton = "On", cmdtestspk2on,{!testenabled & testactive} | |
| 1997 | 2205 | ;[PJSC] dialog = outputtestspk3, "Spark CH3", yAxis |
| 1998 | -;[PJSC] commandButton = "Off", cmdtestspk3off,{testactive} | |
| 1999 | -;[PJSC] commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive} | |
| 2000 | -;[PJSC] commandButton = "On", cmdtestspk3on,{!testenabled & testactive} | |
| 2206 | +;[PJSC] commandButton = "Off", cmdtestspk3off,{testactive} | |
| 2207 | +;[PJSC] commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive} | |
| 2208 | +;[PJSC] commandButton = "On", cmdtestspk3on,{!testenabled & testactive} | |
| 2001 | 2209 | ;[PJSC] dialog = outputtestspk4, "Spark CH4", yAxis |
| 2002 | -;[PJSC] commandButton = "Off", cmdtestspk4off,{testactive} | |
| 2003 | -;[PJSC] commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive} | |
| 2004 | -;[PJSC] commandButton = "On", cmdtestspk4on,{!testenabled & testactive} | |
| 2210 | +;[PJSC] commandButton = "Off", cmdtestspk4off,{testactive} | |
| 2211 | +;[PJSC] commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive} | |
| 2212 | +;[PJSC] commandButton = "On", cmdtestspk4on,{!testenabled & testactive} | |
| 2005 | 2213 | |
| 2006 | 2214 | ;[PJSC] dialog = outputtest_spark, "Spark Driver Output Test", xAxis |
| 2007 | -;[PJSC] panel = outputtestspk1 | |
| 2008 | -;[PJSC] panel = outputtestspk2 | |
| 2009 | -;[PJSC] panel = outputtestspk3 | |
| 2010 | -;[PJSC] panel = outputtestspk4 | |
| 2215 | +;[PJSC] panel = outputtestspk1 | |
| 2216 | +;[PJSC] panel = outputtestspk2 | |
| 2217 | +;[PJSC] panel = outputtestspk3 | |
| 2218 | +;[PJSC] panel = outputtestspk4 | |
| 2011 | 2219 | |
| 2012 | 2220 | ;[PJSC v1.10] dialog = outputtest1,"Test Output Hardware" |
| 2013 | 2221 | dialog = outputtest1,"Output Test Mode - PWM" ;[PJSC v1.10] |
| 2014 | - topicHelp = "http://speeduino.com/wiki/index.php/Hardware_testing_page" | |
| 2015 | - panel = enableoutputtestbuttons | |
| 2016 | - panel = outputtest_injectors | |
| 2017 | -;[PJSC] panel = outputtest_spark | |
| 2018 | - ;panel = outputtest_io2 | |
| 2019 | - panel = outputtest_warningmessage | |
| 2020 | - | |
| 2222 | + topicHelp = "http://speeduino.com/wiki/index.php/Hardware_testing_page" | |
| 2223 | + panel = enableoutputtestbuttons | |
| 2224 | + panel = outputtest_injectors | |
| 2225 | +;[PJSC] panel = outputtest_spark | |
| 2226 | + ;panel = outputtest_io2 | |
| 2227 | + panel = outputtest_warningmessage | |
| 2228 | + | |
| 2021 | 2229 | ;[PJSC v1.10] For test mode - outputs pulse ========================================================================= |
| 2022 | 2230 | dialog = outputTestbuttons1a, "", xAxis |
| 2023 | 2231 | ;commandButton = "Label Text", command, { Enabled Condition }, optionalFlags |
| @@ -2078,6 +2286,25 @@ | ||
| 2078 | 2286 | |
| 2079 | 2287 | ;[PJSC v1.10] For test mode - outputs pulse ========================================================================= |
| 2080 | 2288 | |
| 2289 | + dialog = canAuxinput_alias, "", yAxis | |
| 2290 | + field = "Input Alias" | |
| 2291 | + field = "", AUXin00Alias , {caninput_sel0} | |
| 2292 | + field = "", AUXin01Alias , {caninput_sel1} | |
| 2293 | + field = "", AUXin02Alias , {caninput_sel2} | |
| 2294 | + field = "", AUXin03Alias , {caninput_sel3} | |
| 2295 | + field = "", AUXin04Alias , {caninput_sel4} | |
| 2296 | + field = "", AUXin05Alias , {caninput_sel5} | |
| 2297 | + field = "", AUXin06Alias , {caninput_sel6} | |
| 2298 | + field = "", AUXin07Alias , {caninput_sel7} | |
| 2299 | + field = "", AUXin08Alias , {caninput_sel8} | |
| 2300 | + field = "", AUXin09Alias , {caninput_sel9} | |
| 2301 | + field = "", AUXin10Alias , {caninput_sel10} | |
| 2302 | + field = "", AUXin11Alias , {caninput_sel11} | |
| 2303 | + field = "", AUXin12Alias , {caninput_sel12} | |
| 2304 | + field = "", AUXin13Alias , {caninput_sel13} | |
| 2305 | + field = "", AUXin14Alias , {caninput_sel14} | |
| 2306 | + field = "", AUXin15Alias , {caninput_sel15} | |
| 2307 | + | |
| 2081 | 2308 | dialog = caninput_sel, "" |
| 2082 | 2309 | ;CAN inputs |
| 2083 | 2310 | field = " CAN Input Channel on/off" |
| @@ -2100,82 +2327,103 @@ | ||
| 2100 | 2327 | |
| 2101 | 2328 | dialog = caninput_parameter_group, "", yAxis |
| 2102 | 2329 | field = " Source CAN Address" |
| 2103 | - field = "", caninput_source_can_address0, { caninput_sel0 && enable_candata_in } | |
| 2104 | - field = "", caninput_source_can_address1, { caninput_sel1 && enable_candata_in } | |
| 2105 | - field = "", caninput_source_can_address2, { caninput_sel2 && enable_candata_in } | |
| 2106 | - field = "", caninput_source_can_address3, { caninput_sel3 && enable_candata_in } | |
| 2107 | - field = "", caninput_source_can_address4, { caninput_sel4 && enable_candata_in } | |
| 2108 | - field = "", caninput_source_can_address5, { caninput_sel5 && enable_candata_in } | |
| 2109 | - field = "", caninput_source_can_address6, { caninput_sel6 && enable_candata_in } | |
| 2110 | - field = "", caninput_source_can_address7, { caninput_sel7 && enable_candata_in } | |
| 2111 | - field = "", caninput_source_can_address8, { caninput_sel8 && enable_candata_in } | |
| 2112 | - field = "", caninput_source_can_address9, { caninput_sel9 && enable_candata_in } | |
| 2113 | - field = "", caninput_source_can_address10, { caninput_sel10 && enable_candata_in } | |
| 2114 | - field = "", caninput_source_can_address11, { caninput_sel11 && enable_candata_in } | |
| 2115 | - field = "", caninput_source_can_address12, { caninput_sel12 && enable_candata_in } | |
| 2116 | - field = "", caninput_source_can_address13, { caninput_sel13 && enable_candata_in } | |
| 2117 | - field = "", caninput_source_can_address14, { caninput_sel14 && enable_candata_in } | |
| 2118 | - field = "", caninput_source_can_address15, { caninput_sel15 && enable_candata_in } | |
| 2330 | + field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in } | |
| 2331 | + field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in } | |
| 2332 | + field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in } | |
| 2333 | + field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in } | |
| 2334 | + field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in } | |
| 2335 | + field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in } | |
| 2336 | + field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in } | |
| 2337 | + field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in } | |
| 2338 | + field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in } | |
| 2339 | + field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in } | |
| 2340 | + field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in } | |
| 2341 | + field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in } | |
| 2342 | + field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in } | |
| 2343 | + field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in } | |
| 2344 | + field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in } | |
| 2345 | + field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in } | |
| 2119 | 2346 | |
| 2120 | 2347 | dialog = caninput_parameter_start_byte, "", yAxis |
| 2121 | 2348 | field = " source data start byte" |
| 2122 | - field = "", caninput_source_start_byte0, { caninput_sel0 && enable_candata_in } | |
| 2123 | - field = "", caninput_source_start_byte1, { caninput_sel1 && enable_candata_in } | |
| 2124 | - field = "", caninput_source_start_byte2, { caninput_sel2 && enable_candata_in } | |
| 2125 | - field = "", caninput_source_start_byte3, { caninput_sel3 && enable_candata_in } | |
| 2126 | - field = "", caninput_source_start_byte4, { caninput_sel4 && enable_candata_in } | |
| 2127 | - field = "", caninput_source_start_byte5, { caninput_sel5 && enable_candata_in } | |
| 2128 | - field = "", caninput_source_start_byte6, { caninput_sel6 && enable_candata_in } | |
| 2129 | - field = "", caninput_source_start_byte7, { caninput_sel7 && enable_candata_in } | |
| 2130 | - field = "", caninput_source_start_byte8, { caninput_sel8 && enable_candata_in } | |
| 2131 | - field = "", caninput_source_start_byte9, { caninput_sel9 && enable_candata_in } | |
| 2132 | - field = "", caninput_source_start_byte10, { caninput_sel10 && enable_candata_in } | |
| 2133 | - field = "", caninput_source_start_byte11, { caninput_sel11 && enable_candata_in } | |
| 2134 | - field = "", caninput_source_start_byte12, { caninput_sel12 && enable_candata_in } | |
| 2135 | - field = "", caninput_source_start_byte13, { caninput_sel13 && enable_candata_in } | |
| 2136 | - field = "", caninput_source_start_byte14, { caninput_sel14 && enable_candata_in } | |
| 2137 | - field = "", caninput_source_start_byte15, { caninput_sel15 && enable_candata_in } | |
| 2349 | + field = "", caninput_source_start_byte0, { caninput_sel0 == 1 && enable_candata_in } | |
| 2350 | + field = "", caninput_source_start_byte1, { caninput_sel1 == 1 && enable_candata_in } | |
| 2351 | + field = "", caninput_source_start_byte2, { caninput_sel2 == 1 && enable_candata_in } | |
| 2352 | + field = "", caninput_source_start_byte3, { caninput_sel3 == 1 && enable_candata_in } | |
| 2353 | + field = "", caninput_source_start_byte4, { caninput_sel4 == 1 && enable_candata_in } | |
| 2354 | + field = "", caninput_source_start_byte5, { caninput_sel5 == 1 && enable_candata_in } | |
| 2355 | + field = "", caninput_source_start_byte6, { caninput_sel6 == 1 && enable_candata_in } | |
| 2356 | + field = "", caninput_source_start_byte7, { caninput_sel7 == 1 && enable_candata_in } | |
| 2357 | + field = "", caninput_source_start_byte8, { caninput_sel8 == 1 && enable_candata_in } | |
| 2358 | + field = "", caninput_source_start_byte9, { caninput_sel9 == 1 && enable_candata_in } | |
| 2359 | + field = "", caninput_source_start_byte10, { caninput_sel10 == 1 && enable_candata_in } | |
| 2360 | + field = "", caninput_source_start_byte11, { caninput_sel11 == 1 && enable_candata_in } | |
| 2361 | + field = "", caninput_source_start_byte12, { caninput_sel12 == 1 && enable_candata_in } | |
| 2362 | + field = "", caninput_source_start_byte13, { caninput_sel13 == 1 && enable_candata_in } | |
| 2363 | + field = "", caninput_source_start_byte14, { caninput_sel14 == 1 && enable_candata_in } | |
| 2364 | + field = "", caninput_source_start_byte15, { caninput_sel15 == 1 && enable_candata_in } | |
| 2138 | 2365 | |
| 2139 | 2366 | dialog = caninput_parameter_num_byte, "", yAxis |
| 2140 | 2367 | field = "Input Parameter Number of Bytes" |
| 2141 | - field = "", caninput_source_num_bytes0, { caninput_sel0 && enable_candata_in } | |
| 2142 | - field = "", caninput_source_num_bytes1, { caninput_sel1 && enable_candata_in } | |
| 2143 | - field = "", caninput_source_num_bytes2, { caninput_sel3 && enable_candata_in } | |
| 2144 | - field = "", caninput_source_num_bytes3, { caninput_sel3 && enable_candata_in } | |
| 2145 | - field = "", caninput_source_num_bytes4, { caninput_sel4 && enable_candata_in } | |
| 2146 | - field = "", caninput_source_num_bytes5, { caninput_sel5 && enable_candata_in } | |
| 2147 | - field = "", caninput_source_num_bytes6, { caninput_sel6 && enable_candata_in } | |
| 2148 | - field = "", caninput_source_num_bytes7, { caninput_sel7 && enable_candata_in } | |
| 2149 | - field = "", caninput_source_num_bytes8, { caninput_sel8 && enable_candata_in } | |
| 2150 | - field = "", caninput_source_num_bytes9, { caninput_sel9 && enable_candata_in } | |
| 2151 | - field = "", caninput_source_num_bytes10, { caninput_sel10 && enable_candata_in } | |
| 2152 | - field = "", caninput_source_num_bytes11, { caninput_sel11 && enable_candata_in } | |
| 2153 | - field = "", caninput_source_num_bytes12, { caninput_sel12 && enable_candata_in } | |
| 2154 | - field = "", caninput_source_num_bytes13, { caninput_sel13 && enable_candata_in } | |
| 2155 | - field = "", caninput_source_num_bytes14, { caninput_sel14 && enable_candata_in } | |
| 2156 | - field = "", caninput_source_num_bytes15, { caninput_sel15 && enable_candata_in } | |
| 2368 | + field = "", caninput_source_num_bytes0, { caninput_sel0 == 1 && enable_candata_in } | |
| 2369 | + field = "", caninput_source_num_bytes1, { caninput_sel1 == 1 && enable_candata_in } | |
| 2370 | + field = "", caninput_source_num_bytes2, { caninput_sel3 == 1 && enable_candata_in } | |
| 2371 | + field = "", caninput_source_num_bytes3, { caninput_sel3 == 1 && enable_candata_in } | |
| 2372 | + field = "", caninput_source_num_bytes4, { caninput_sel4 == 1 && enable_candata_in } | |
| 2373 | + field = "", caninput_source_num_bytes5, { caninput_sel5 == 1 && enable_candata_in } | |
| 2374 | + field = "", caninput_source_num_bytes6, { caninput_sel6 == 1 && enable_candata_in } | |
| 2375 | + field = "", caninput_source_num_bytes7, { caninput_sel7 == 1 && enable_candata_in } | |
| 2376 | + field = "", caninput_source_num_bytes8, { caninput_sel8 == 1 && enable_candata_in } | |
| 2377 | + field = "", caninput_source_num_bytes9, { caninput_sel9 == 1 && enable_candata_in } | |
| 2378 | + field = "", caninput_source_num_bytes10, { caninput_sel10 == 1 && enable_candata_in } | |
| 2379 | + field = "", caninput_source_num_bytes11, { caninput_sel11 == 1 && enable_candata_in } | |
| 2380 | + field = "", caninput_source_num_bytes12, { caninput_sel12 == 1 && enable_candata_in } | |
| 2381 | + field = "", caninput_source_num_bytes13, { caninput_sel13 == 1 && enable_candata_in } | |
| 2382 | + field = "", caninput_source_num_bytes14, { caninput_sel14 == 1 && enable_candata_in } | |
| 2383 | + field = "", caninput_source_num_bytes15, { caninput_sel15 == 1 && enable_candata_in } | |
| 2157 | 2384 | |
| 2158 | 2385 | dialog = caninconfig_blank1,"" |
| 2159 | 2386 | field = "" |
| 2160 | 2387 | |
| 2161 | 2388 | dialog = Canin_config1, "", xAxis |
| 2162 | - panel = caninput_sel | |
| 2163 | - panel = caninconfig_blank1 | |
| 2164 | - panel = caninput_parameter_group | |
| 2165 | - panel = caninconfig_blank1 | |
| 2166 | - panel = caninput_parameter_start_byte | |
| 2167 | - panel = caninconfig_blank1 | |
| 2168 | - panel = caninput_parameter_num_byte | |
| 2389 | + panel = canAuxinput_alias | |
| 2390 | + panel = caninconfig_blank1 | |
| 2391 | + panel = caninput_sel | |
| 2392 | + panel = caninconfig_blank1 | |
| 2393 | + panel = caninput_parameter_group | |
| 2394 | + panel = caninconfig_blank1 | |
| 2395 | + panel = caninput_parameter_start_byte | |
| 2396 | + panel = caninconfig_blank1 | |
| 2397 | + panel = caninput_parameter_num_byte | |
| 2169 | 2398 | |
| 2170 | 2399 | dialog = Canin_config2, "External Data Input" |
| 2171 | - field = "Enable External data input", enable_candata_in | |
| 2400 | + field = "Enable External data input", enable_candata_in | |
| 2172 | 2401 | |
| 2173 | 2402 | dialog = Canin_config, "", border |
| 2174 | 2403 | topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface#Read_external_analog_data" |
| 2175 | - panel = Canin_config2, North | |
| 2176 | - panel = Canin_config1, South | |
| 2177 | - | |
| 2178 | - dialog = canoutput_sel, "" | |
| 2404 | + panel = Canin_config2, North | |
| 2405 | + panel = Canin_config1, South | |
| 2406 | + | |
| 2407 | + dialog = canAuxoutput_alias, "", yAxis | |
| 2408 | + field = "Input Alias" | |
| 2409 | + field = "", AUXin00Alias , {caninput_sel0} | |
| 2410 | + field = "", AUXin01Alias , {caninput_sel1} | |
| 2411 | + field = "", AUXin02Alias , {caninput_sel2} | |
| 2412 | + field = "", AUXin03Alias , {caninput_sel3} | |
| 2413 | + field = "", AUXin04Alias , {caninput_sel4} | |
| 2414 | + field = "", AUXin05Alias , {caninput_sel5} | |
| 2415 | + field = "", AUXin06Alias , {caninput_sel6} | |
| 2416 | + field = "", AUXin07Alias , {caninput_sel7} | |
| 2417 | + field = "", AUXin08Alias , {caninput_sel8} | |
| 2418 | + field = "", AUXin09Alias , {caninput_sel9} | |
| 2419 | + field = "", AUXin10Alias , {caninput_sel10} | |
| 2420 | + field = "", AUXin11Alias , {caninput_sel11} | |
| 2421 | + field = "", AUXin12Alias , {caninput_sel12} | |
| 2422 | + field = "", AUXin13Alias , {caninput_sel13} | |
| 2423 | + field = "", AUXin14Alias , {caninput_sel14} | |
| 2424 | + field = "", AUXin15Alias , {caninput_sel15} | |
| 2425 | + | |
| 2426 | + dialog = canoutput_sel, "", yAxis | |
| 2179 | 2427 | ;CAN outputs |
| 2180 | 2428 | field = "CAN Output Channel on/off" |
| 2181 | 2429 | field = "CAN Output 0", canoutput_sel0, { enable_candata_out} |
| @@ -2256,13 +2504,15 @@ | ||
| 2256 | 2504 | field = "" |
| 2257 | 2505 | |
| 2258 | 2506 | dialog = Canout_config1, "", xAxis |
| 2259 | - panel = canoutput_sel | |
| 2260 | - panel = canoutconfig_blank1 | |
| 2261 | - panel = canoutput_parameter_group | |
| 2262 | - panel = canoutconfig_blank1 | |
| 2263 | - panel = canoutput_parameter_start_byte | |
| 2264 | - panel = canoutconfig_blank1 | |
| 2265 | - panel = canoutput_parameter_num_byte | |
| 2507 | + panel = canAuxoutput_alias | |
| 2508 | + panel = canoutconfig_blank1 | |
| 2509 | + panel = canoutput_sel | |
| 2510 | + panel = canoutconfig_blank1 | |
| 2511 | + panel = canoutput_parameter_group | |
| 2512 | + panel = canoutconfig_blank1 | |
| 2513 | + panel = canoutput_parameter_start_byte | |
| 2514 | + panel = canoutconfig_blank1 | |
| 2515 | + panel = canoutput_parameter_num_byte | |
| 2266 | 2516 | |
| 2267 | 2517 | dialog = Canout_config2, "CAN Data Out" |
| 2268 | 2518 | field = "Enable CanBus data Output", enable_candata_out |
| @@ -2269,16 +2519,16 @@ | ||
| 2269 | 2519 | |
| 2270 | 2520 | dialog = Canout_config, "", border |
| 2271 | 2521 | topicHelp = "" |
| 2272 | - panel = Canout_config2, North | |
| 2273 | - panel = Canout_config1, South | |
| 2522 | + panel = Canout_config2, North | |
| 2523 | + panel = Canout_config1, South | |
| 2274 | 2524 | |
| 2275 | 2525 | dialog = can_serial3IO, "CanBus/Serial3 IO interface" |
| 2276 | 2526 | topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface" |
| 2277 | - field = "Enable CanBus/Second Serial", enable_canbus | |
| 2527 | + field = "Enable CanBus/Second Serial", enable_canbus | |
| 2278 | 2528 | ; field = "Speeduino TsCanId", speeduino_tsCanId |
| 2279 | - field = "True Canbus Address", true_address {enable_canbus} | |
| 2280 | - field = "NOTE! Realtime Datat Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion" | |
| 2281 | - field = "Realtime Data Base Can Address", realtime_base_address {enable_canbus} | |
| 2529 | + field = "True Canbus Address", true_address {enable_canbus} | |
| 2530 | + field = "NOTE! Realtime Datat Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion" | |
| 2531 | + field = "Realtime Data Base Can Address", realtime_base_address {enable_canbus} | |
| 2282 | 2532 | ; field = "Speeduino OBD address", obd_address |
| 2283 | 2533 | |
| 2284 | 2534 | dialog = serial3IO, "Serial3 IO interface" |
| @@ -2290,6 +2540,116 @@ | ||
| 2290 | 2540 | field = "Control Type", resetControl |
| 2291 | 2541 | field = "Control Pin", resetControlPin |
| 2292 | 2542 | |
| 2543 | + dialog = Auxinput_pin_selection, "", yAxis | |
| 2544 | + field = " PIN" | |
| 2545 | + displayOnlyField = "Off", blankfield, {caninput_sel0 == 0},{caninput_sel0 == 0} | |
| 2546 | + field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in }, {caninput_sel0 == 1} | |
| 2547 | + field = "", Auxin0pina , {caninput_sel0 == 2 || caninput_sel0 == 3 }, {caninput_sel0 == 2} | |
| 2548 | + field = "", Auxin0pinb , {caninput_sel0 == 2 || caninput_sel0 == 3 }, {caninput_sel0 == 3} | |
| 2549 | + displayOnlyField = "Off", blankfield, {caninput_sel1 == 0},{caninput_sel1 == 0} | |
| 2550 | + field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in }, {caninput_sel1 == 1} | |
| 2551 | + field = "", Auxin1pina , {caninput_sel1 == 2 || caninput_sel1 == 3}, {caninput_sel1 == 2} | |
| 2552 | + field = "", Auxin1pinb , {caninput_sel1 == 2 || caninput_sel1 == 3}, {caninput_sel1 == 3} | |
| 2553 | + displayOnlyField = "Off", blankfield, {caninput_sel2 == 0},{caninput_sel2 == 0} | |
| 2554 | + field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in }, {caninput_sel2 == 1} | |
| 2555 | + field = "", Auxin2pina , {caninput_sel2 == 2 || caninput_sel2 == 3}, {caninput_sel2 == 2} | |
| 2556 | + field = "", Auxin2pinb , {caninput_sel2 == 2 || caninput_sel2 == 3}, {caninput_sel2 == 3} | |
| 2557 | + displayOnlyField = "Off", blankfield, {caninput_sel3 == 0},{caninput_sel3 == 0} | |
| 2558 | + field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in }, {caninput_sel3 == 1} | |
| 2559 | + field = "", Auxin3pina , {caninput_sel3 == 2 || caninput_sel3 == 3}, {caninput_sel3 == 2} | |
| 2560 | + field = "", Auxin3pinb , {caninput_sel3 == 2 || caninput_sel3 == 3}, {caninput_sel3 == 3} | |
| 2561 | + displayOnlyField = "Off", blankfield, {caninput_sel4 == 0},{caninput_sel4 == 0} | |
| 2562 | + field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in }, {caninput_sel4 == 1} | |
| 2563 | + field = "", Auxin4pina , {caninput_sel4 == 2 || caninput_sel4 == 3}, {caninput_sel4 == 2} | |
| 2564 | + field = "", Auxin4pinb , {caninput_sel4 == 2 || caninput_sel4 == 3}, {caninput_sel4 == 3} | |
| 2565 | + displayOnlyField = "Off", blankfield, {caninput_sel5 == 0},{caninput_sel5 == 0} | |
| 2566 | + field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in }, {caninput_sel5 == 1} | |
| 2567 | + field = "", Auxin5pina , {caninput_sel5 == 2 || caninput_sel5 == 3}, {caninput_sel5 == 2} | |
| 2568 | + field = "", Auxin5pinb , {caninput_sel5 == 2 || caninput_sel5 == 3}, {caninput_sel5 == 3} | |
| 2569 | + displayOnlyField = "Off", blankfield, {caninput_sel6 == 0},{caninput_sel6 == 0} | |
| 2570 | + field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in }, {caninput_sel6 == 1} | |
| 2571 | + field = "", Auxin6pina , {caninput_sel6 == 2 || caninput_sel6 == 3}, {caninput_sel6 == 2} | |
| 2572 | + field = "", Auxin6pinb , {caninput_sel6 == 2 || caninput_sel6 == 3}, {caninput_sel6 == 3} | |
| 2573 | + displayOnlyField = "Off", blankfield, {caninput_sel7 == 0},{caninput_sel7 == 0} | |
| 2574 | + field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in }, {caninput_sel7 == 1} | |
| 2575 | + field = "", Auxin7pina , {caninput_sel7 == 2 || caninput_sel7 == 3}, {caninput_sel7 == 2} | |
| 2576 | + field = "", Auxin7pinb , {caninput_sel7 == 2 || caninput_sel7 == 3}, {caninput_sel7 == 3} | |
| 2577 | + displayOnlyField = "Off", blankfield, {caninput_sel8 == 8},{caninput_sel8 == 0} | |
| 2578 | + field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in }, {caninput_sel8 == 1} | |
| 2579 | + field = "", Auxin8pina , {caninput_sel8 == 2 || caninput_sel8 == 3}, {caninput_sel8 == 2} | |
| 2580 | + field = "", Auxin8pinb , {caninput_sel8 == 2 || caninput_sel8 == 3}, {caninput_sel8 == 3} | |
| 2581 | + displayOnlyField = "Off", blankfield, {caninput_sel9 == 0},{caninput_sel9 == 0} | |
| 2582 | + field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in }, {caninput_sel9 == 1} | |
| 2583 | + field = "", Auxin9pina , {caninput_sel9 == 2 || caninput_sel9 == 3}, {caninput_sel9 == 2} | |
| 2584 | + field = "", Auxin9pinb , {caninput_sel9 == 2 || caninput_sel9 == 3}, {caninput_sel9 == 3} | |
| 2585 | + displayOnlyField = "Off", blankfield, {caninput_sel10 == 0},{caninput_sel10 == 0} | |
| 2586 | + field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in }, {caninput_sel10 == 1} | |
| 2587 | + field = "", Auxin10pina , {caninput_sel10 == 2 || caninput_sel10 == 3}, {caninput_sel10 == 2} | |
| 2588 | + field = "", Auxin10pinb , {caninput_sel10 == 2 || caninput_sel10 == 3}, {caninput_sel10 == 3} | |
| 2589 | + displayOnlyField = "Off", blankfield, {caninput_sel11 == 0},{caninput_sel11 == 0} | |
| 2590 | + field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in }, {caninput_sel11 == 1} | |
| 2591 | + field = "", Auxin11pina , {caninput_sel11 == 2 || caninput_sel11 == 3}, {caninput_sel11 == 2} | |
| 2592 | + field = "", Auxin11pinb , {caninput_sel11 == 2 || caninput_sel11 == 3}, {caninput_sel11 == 3} | |
| 2593 | + displayOnlyField = "Off", blankfield, {caninput_sel12 == 0},{caninput_sel12 == 0} | |
| 2594 | + field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in }, {caninput_sel12 == 1} | |
| 2595 | + field = "", Auxin12pina , {caninput_sel12 == 2 || caninput_sel12 == 3}, {caninput_sel12 == 2} | |
| 2596 | + field = "", Auxin12pinb , {caninput_sel12 == 2 || caninput_sel12 == 3}, {caninput_sel12 == 3} | |
| 2597 | + displayOnlyField = "Off", blankfield, {caninput_sel13 == 0},{caninput_sel13 == 0} | |
| 2598 | + field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in }, {caninput_sel13 == 1} | |
| 2599 | + field = "", Auxin13pina , {caninput_sel13 == 2 || caninput_sel13 == 3}, {caninput_sel13 == 2} | |
| 2600 | + field = "", Auxin13pinb , {caninput_sel13 == 2 || caninput_sel13 == 3}, {caninput_sel13 == 3} | |
| 2601 | + displayOnlyField = "Off", blankfield, {caninput_sel14 == 0},{caninput_sel14 == 0} | |
| 2602 | + field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in }, {caninput_sel14 == 1} | |
| 2603 | + field = "", Auxin14pina , {caninput_sel14 == 2 || caninput_sel14 == 3}, {caninput_sel14 == 2} | |
| 2604 | + field = "", Auxin14pinb , {caninput_sel14 == 2 || caninput_sel14 == 3}, {caninput_sel14 == 3} | |
| 2605 | + displayOnlyField = "Off", blankfield, {caninput_sel15 == 0},{caninput_sel15 == 0} | |
| 2606 | + field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in }, {caninput_sel15 == 1} | |
| 2607 | + field = "", Auxin15pina , {caninput_sel15 == 2 || caninput_sel15 == 3}, {caninput_sel15 == 2} | |
| 2608 | + field = "", Auxin15pinb , {caninput_sel15 == 2 || caninput_sel15 == 3}, {caninput_sel15 == 3} | |
| 2609 | + | |
| 2610 | + dialog = Auxinput_alias, "", yAxis | |
| 2611 | + field = "Input Alias" | |
| 2612 | + field = "", AUXin00Alias , {caninput_sel0} | |
| 2613 | + field = "", AUXin01Alias , {caninput_sel1} | |
| 2614 | + field = "", AUXin02Alias , {caninput_sel2} | |
| 2615 | + field = "", AUXin03Alias , {caninput_sel3} | |
| 2616 | + field = "", AUXin04Alias , {caninput_sel4} | |
| 2617 | + field = "", AUXin05Alias , {caninput_sel5} | |
| 2618 | + field = "", AUXin06Alias , {caninput_sel6} | |
| 2619 | + field = "", AUXin07Alias , {caninput_sel7} | |
| 2620 | + field = "", AUXin08Alias , {caninput_sel8} | |
| 2621 | + field = "", AUXin09Alias , {caninput_sel9} | |
| 2622 | + field = "", AUXin10Alias , {caninput_sel10} | |
| 2623 | + field = "", AUXin11Alias , {caninput_sel11} | |
| 2624 | + field = "", AUXin12Alias , {caninput_sel12} | |
| 2625 | + field = "", AUXin13Alias , {caninput_sel13} | |
| 2626 | + field = "", AUXin14Alias , {caninput_sel14} | |
| 2627 | + field = "", AUXin15Alias , {caninput_sel15} | |
| 2628 | + | |
| 2629 | + dialog = Auxinput_channelenable, "", yAxis | |
| 2630 | + field = " Aux Input Channel Enable" | |
| 2631 | + field = "AUX Input 0", caninput_sel0 | |
| 2632 | + field = "AUX Input 1", caninput_sel1 | |
| 2633 | + field = "AUX Input 2", caninput_sel2 | |
| 2634 | + field = "AUX Input 3", caninput_sel3 | |
| 2635 | + field = "AUX Input 4", caninput_sel4 | |
| 2636 | + field = "AUX Input 5", caninput_sel5 | |
| 2637 | + field = "AUX Input 6", caninput_sel6 | |
| 2638 | + field = "AUX Input 7", caninput_sel7 | |
| 2639 | + field = "AUX Input 8", caninput_sel8 | |
| 2640 | + field = "AUX Input 9", caninput_sel9 | |
| 2641 | + field = "AUX Input 10", caninput_sel10 | |
| 2642 | + field = "AUX Input 11", caninput_sel11 | |
| 2643 | + field = "AUX Input 12", caninput_sel12 | |
| 2644 | + field = "AUX Input 13", caninput_sel13 | |
| 2645 | + field = "AUX Input 14", caninput_sel14 | |
| 2646 | + field = "AUX Input 15", caninput_sel15 | |
| 2647 | + | |
| 2648 | + dialog = Auxin_config, "Auxillary Input Configuration",xAxis | |
| 2649 | + panel = Auxinput_alias | |
| 2650 | + panel = Auxinput_channelenable | |
| 2651 | + panel = Auxinput_pin_selection | |
| 2652 | + | |
| 2293 | 2653 | ;------------------------------------------------------------------------------- |
| 2294 | 2654 | ; General help text |
| 2295 | 2655 |
| @@ -2486,7 +2846,7 @@ | ||
| 2486 | 2846 | |
| 2487 | 2847 | curve = flex_adv_curve, "Flex Timing Advance" |
| 2488 | 2848 | columnLabel = "Ethanol", "Advance" |
| 2489 | - xAxis = 0, 100, 10 | |
| 2849 | + xAxis = 0, 100, 10 | |
| 2490 | 2850 | yAxis = 0, 50, 5 |
| 2491 | 2851 | xBins = flexAdvBins, flex |
| 2492 | 2852 | yBins = flexAdvAdj |
| @@ -2494,12 +2854,29 @@ | ||
| 2494 | 2854 | |
| 2495 | 2855 | curve = flex_boost_curve, "Flex Boost Adjustments" |
| 2496 | 2856 | columnLabel = "Ethanol", "Boost" |
| 2497 | - xAxis = 0, 100, 10 | |
| 2857 | + xAxis = 0, 100, 10 | |
| 2498 | 2858 | yAxis = -100, 200, 5 |
| 2499 | 2859 | xBins = flexBoostBins, flex |
| 2500 | 2860 | yBins = flexBoostAdj |
| 2501 | 2861 | size = 400, 200 |
| 2502 | 2862 | |
| 2863 | +;Knock sensor windows | |
| 2864 | + curve = knock_window_angle_curve, "Knock Window" | |
| 2865 | + columnLabel = "RPM", "Window Start" | |
| 2866 | + xAxis = 0, 8000, 9 | |
| 2867 | + yAxis = -100, 100, 11 | |
| 2868 | + xBins = knock_window_rpms, rpm | |
| 2869 | + yBins = knock_window_angle | |
| 2870 | + size = 400, 200 | |
| 2871 | + | |
| 2872 | + curve = knock_window_duration_curve, "Knock Window Duration" | |
| 2873 | + columnLabel = "RPM", "Window Duration" | |
| 2874 | + xAxis = 0, 8000, 9 | |
| 2875 | + yAxis = 0, 100, 10 | |
| 2876 | + xBins = knock_window_rpms, rpm | |
| 2877 | + yBins = knock_window_dur | |
| 2878 | + size = 400, 200 | |
| 2879 | + | |
| 2503 | 2880 | [TableEditor] |
| 2504 | 2881 | ; table_id, map3d_id, "title", page |
| 2505 | 2882 | table = veTable1Tbl, veTable1Map, "VE Table", 1 |
| @@ -2516,11 +2893,12 @@ | ||
| 2516 | 2893 | |
| 2517 | 2894 | table = sparkTbl, sparkMap, "Ignition Advance Table", 3 |
| 2518 | 2895 | xBins = rpmBins2, rpm |
| 2519 | - yBins = ignLoadBins, ignLoad | |
| 2896 | + ;yBins = ignLoadBins, ignLoad | |
| 2897 | + yBins = mapBins1, ignLoad | |
| 2520 | 2898 | xyLabels = "RPM", "Ignition Load: " |
| 2521 | 2899 | zBins = advTable1 |
| 2522 | 2900 | gridHeight = 3.0 |
| 2523 | - upDownLabel = "ADVANCED", "RETARDED" | |
| 2901 | + upDownLabel = "ADVANCING", "RETARDING" | |
| 2524 | 2902 | |
| 2525 | 2903 | ;table = afrTbl, afrTableMap, "AFR Table", 5 |
| 2526 | 2904 | table = afrTable1Tbl, afrTable1Map, "AFR Table", 5 |
| @@ -2660,37 +3038,37 @@ | ||
| 2660 | 3038 | ; ld = Label decimal places for display of Lo and Hi, above. |
| 2661 | 3039 | |
| 2662 | 3040 | gaugeCategory = "Main" |
| 2663 | - ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld | |
| 2664 | - accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 | |
| 2665 | - dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1 | |
| 2666 | - egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0 | |
| 3041 | + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld | |
| 3042 | + accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 | |
| 3043 | + dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1 | |
| 3044 | + egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0 | |
| 2667 | 3045 | |
| 2668 | - gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0 | |
| 2669 | - pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 | |
| 2670 | - tachometer = rpm, "Engine Speed", "RPM", 0, 13000, 500, 900,11500,12000, 0, 0 | |
| 2671 | - veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 | |
| 3046 | + gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0 | |
| 3047 | + pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 | |
| 3048 | + tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 300, 600, 3000, 5000, 0, 0 | |
| 3049 | + veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 | |
| 2672 | 3050 | veGauge2 = veCurr2, "VE2 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC] |
| 2673 | - warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0 | |
| 2674 | - aseEnrichGauge = ase_enrich, "Afterstart Enrichment", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 2675 | - batCorrectGauge = batCorrection, "Voltage Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 2676 | - iatCorrectGauge = airCorrection, "IAT Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 2677 | - flexEnrich, = flexFuelCor, "Flex Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 2678 | - advanceGauge = advance, "Spark Advance", "deg BTDC", 50, -10, 0, 0, 35, 45, 0, 0 | |
| 2679 | - dwellGauge = dwell, "Ign Dwell", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 | |
| 3051 | + warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0 | |
| 3052 | + aseEnrichGauge = ase_enrich, "Afterstart Enrichment","%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 3053 | + batCorrectGauge = batCorrection, "Voltage Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 3054 | + iatCorrectGauge = airCorrection, "IAT Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 3055 | + flexEnrich, = flexFuelCor, "Flex Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 3056 | + advanceGauge = advance, "Spark Advance", "deg BTDC", 50, -10, 0, 0, 35, 45, 0, 0 | |
| 3057 | + dwellGauge = dwell, "Ign Dwell", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 | |
| 2680 | 3058 | |
| 2681 | 3059 | gaugeCategory = "Sensor inputs" |
| 2682 | - mapGauge = map, "Engine MAP", "kPa", 0, 200, 20, 40, 160, 180, 1, 0 | |
| 2683 | - mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0 | |
| 2684 | - mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2 | |
| 2685 | - mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1 | |
| 2686 | - batteryVoltage = batteryVoltage, "Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2 | |
| 3060 | + mapGauge = map, "Engine MAP", "kPa", 0, 255, 0, 20, 200, 245, 0, 0 | |
| 3061 | + mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0 | |
| 3062 | + mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2 | |
| 3063 | + mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1 | |
| 3064 | + batteryVoltage = batteryVoltage,"Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2 | |
| 2687 | 3065 | |
| 2688 | - tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 | |
| 2689 | - throttleGauge = throttle, "Throttle Position", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0 | |
| 3066 | + tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 | |
| 3067 | + throttleGauge = throttle, "Throttle Position", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0 | |
| 2690 | 3068 | |
| 2691 | - afrGauge = afr, "Air:Fuel Ratio", "", 7, 22, 12, 13, 16, 17, 2, 2 | |
| 2692 | - afrGauge2 = afr2, "Air:Fuel Ratio 2", "", 7, 25, 12, 13, 15, 16, 2, 2 | |
| 2693 | - lambdaGauge = lambda, "Lambda", "", 0.5, 1.5, 0.5, 0.7, 2, 1.1, 2, 2 | |
| 3069 | + afrGauge = afr, "Air:Fuel Ratio", "", 7, 25, 12, 13, 15, 16, 2, 2 | |
| 3070 | + afrGauge2 = afr2, "Air:Fuel Ratio 2", "", 7, 25, 12, 13, 15, 16, 2, 2 | |
| 3071 | + lambdaGauge = lambda, "Lambda", "", 0.5, 1.5, 0.5, 0.7, 2, 1.1, 2, 2 | |
| 2694 | 3072 | exValvePosGauge = valvePosition, "Exhaust Valve Position", "%open", 0, 100, -1, 1, 90, 100, 0, 0 ;[PJSC]For External Trigger |
| 2695 | 3073 | exValveADCGauge = valvePositionADC, "Exhaust Valve ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 ;[PJSC]For External Trigger |
| 2696 | 3074 | exSparkGauge = sparkedAngle, "Sparked Angle", "deg BTDC", -20, 60, -10, 0, 45, 50, 0, 0 ;[PJSC]For External Trigger |
| @@ -2702,42 +3080,40 @@ | ||
| 2702 | 3080 | injcountGauge = testCnt, "Injection Count", "pulses", 0, 1000, 65535, 65535,65535, 65535,0, 0 ;[PJSC v1.10] For test mode |
| 2703 | 3081 | |
| 2704 | 3082 | #if CELSIUS |
| 2705 | - cltGauge = coolant, "Coolant Temp", "TEMP", -20, 120, -15, 0, 95, 105, 0, 0 | |
| 2706 | - iatGauge = iat, "Inlet Air Temp", "TEMP", -20, 120, -10, 0, 75, 85, 0, 0 | |
| 3083 | + cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, -15, 0, 95, 105, 0, 0 | |
| 3084 | + iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, -15, 0, 95, 100, 0, 0 | |
| 2707 | 3085 | #else |
| 2708 | - cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, 0, 30, 200, 220, 0, 0 | |
| 2709 | - iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, 0, 30, 200, 210, 0, 0 | |
| 3086 | + cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, 0, 30, 200, 220, 0, 0 | |
| 3087 | + iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, 0, 30, 200, 210, 0, 0 | |
| 2710 | 3088 | #endif |
| 2711 | - flexGauge = flex, "Flex sensor", "%", 0, 100, -1, -1, 999, 999, 0, 0 | |
| 3089 | + flexGauge = flex, "Flex sensor", "%", 0, 100, -1, -1, 999, 999, 0, 0 | |
| 2712 | 3090 | |
| 2713 | - #if CAN_COMMANDS | |
| 2714 | - gaugeCategory = "CanBus Inputs" | |
| 2715 | - CanGauge0 = canin_gauge0, "Can In0" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2716 | - CanGauge1 = canin_gauge1, "Can In1" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2717 | - CanGauge2 = canin_gauge2, "Can In2" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2718 | - CanGauge3 = canin_gauge3, "Can In3" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2719 | - CanGauge4 = canin_gauge4, "Can In4" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2720 | - CanGauge5 = canin_gauge5, "Can In5" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2721 | - CanGauge6 = canin_gauge6, "Can In6" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2722 | - CanGauge7 = canin_gauge7, "Can In7" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2723 | - CanGauge8 = canin_gauge8, "Can In8" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2724 | - CanGauge9 = canin_gauge9, "Can In9" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2725 | - CanGauge10 = canin_gauge10, "Can In10" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2726 | - CanGauge11 = canin_gauge11, "Can In11" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2727 | - CanGauge12 = canin_gauge12, "Can In12" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2728 | - CanGauge13 = canin_gauge13, "Can In13" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2729 | - CanGauge14 = canin_gauge14, "Can In14" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2730 | - CanGauge15 = canin_gauge15, "Can In15" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2731 | - #endif | |
| 3091 | + gaugeCategory = "Auxillary Input Channels" | |
| 3092 | + AuxInGauge0 = auxin_gauge0, { stringValue(AUXin00Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3093 | + AuxInGauge1 = auxin_gauge1, { stringValue(AUXin01Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3094 | + AuxInGauge2 = auxin_gauge2, { stringValue(AUXin02Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3095 | + AuxInGauge3 = auxin_gauge3, { stringValue(AUXin03Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3096 | + AuxInGauge4 = auxin_gauge4, { stringValue(AUXin04Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3097 | + AuxInGauge5 = auxin_gauge5, { stringValue(AUXin05Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3098 | + AuxInGauge6 = auxin_gauge6, { stringValue(AUXin06Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3099 | + AuxInGauge7 = auxin_gauge7, { stringValue(AUXin07Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3100 | + AuxInGauge8 = auxin_gauge8, { stringValue(AUXin08Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3101 | + AuxInGauge9 = auxin_gauge9, { stringValue(AUXin09Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3102 | + AuxInGauge10 = auxin_gauge10, { stringValue(AUXin10Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3103 | + AuxInGauge11 = auxin_gauge11, { stringValue(AUXin11Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3104 | + AuxInGauge12 = auxin_gauge12, { stringValue(AUXin12Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3105 | + AuxInGauge13 = auxin_gauge13, { stringValue(AUXin13Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3106 | + AuxInGauge14 = auxin_gauge14, { stringValue(AUXin14Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 3107 | + AuxInGauge15 = auxin_gauge15, { stringValue(AUXin15Alias) }, "", 0, 1024, -1, -1, 1025, 1025, 0, 0 | |
| 2732 | 3108 | |
| 2733 | 3109 | gaugeCategory = "System Data" |
| 2734 | - clockGauge = secl, "Clock", "Seconds", 0, 255, 10, 10, 245, 245, 0, 0 | |
| 2735 | - loopGauge = loopsPerSecond, "Main loop speed", "Loops/S" , 0, 70000, -1, 500, 1800, 4000, 0, 0 | |
| 2736 | - memoryGauge = freeRAM, "Free memory", "bytes" , 0, 8000, -1, 1000, 8000, 1000, 0, 0 | |
| 2737 | - reqFuelGauge = req_fuel, "Req. Fuel", "ms", 0, 35.0, 1.0, 1.2, 20, 25, 2, 2 | |
| 2738 | - injOpenGauge = inj_open, "Injector Open Time", "ms", 0, 35.0, 1.0, 1.2, 20, 25, 1, 1 | |
| 2739 | - mapMultiplyGauge = map_multiply_amt, "MAP Multiply", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 2740 | - nSquirtsGauge = nSquirts, "# Squirts", "", 0, 10, 130, 140, 140, 150, 0, 0 | |
| 3110 | + clockGauge = secl, "Clock", "Seconds", 0, 255, 10, 10, 245, 245, 0, 0 | |
| 3111 | + loopGauge = loopsPerSecond,"Main loop speed", "Loops/S" , 0, 70000, -1, 500,1800, 4000, 0, 0 | |
| 3112 | + memoryGauge = freeRAM, "Free memory", "bytes" , 0, 8000, -1, 1000,8000, 1000, 0, 0 | |
| 3113 | + reqFuelGauge = req_fuel, "Req. Fuel", "ms", 0, 35.0, 1.0, 1.2, 20, 25, 2, 2 | |
| 3114 | + injOpenGauge = inj_open, "Injector Open Time", "ms", 0, 35.0, 1.0, 1.2, 20, 25, 1, 1 | |
| 3115 | + mapMultiplyGauge = map_multiply_amt, "MAP Multiply", "%", 0, 200, 130, 140, 140, 150, 0, 0 | |
| 3116 | + nSquirtsGauge = nSquirts, "# Squirts", "", 0, 10, 130, 140, 140, 150, 0, 0 | |
| 2741 | 3117 | ;------------------------------------------------------------------------------- |
| 2742 | 3118 | |
| 2743 | 3119 | [FrontPage] |
| @@ -2750,12 +3126,12 @@ | ||
| 2750 | 3126 | |
| 2751 | 3127 | gauge1 = tachometer |
| 2752 | 3128 | gauge2 = throttleGauge |
| 2753 | - gauge3 = mapGauge | |
| 2754 | - gauge4 = pulseWidthGauge | |
| 2755 | - gauge5 = afrGauge | |
| 3129 | + gauge3 = pulseWidthGauge | |
| 3130 | + gauge4 = dutyCycleGauge | |
| 3131 | + gauge5 = mapGauge | |
| 2756 | 3132 | gauge6 = iatGauge |
| 2757 | 3133 | gauge7 = cltGauge |
| 2758 | - gauge8 = batteryVoltage | |
| 3134 | + gauge8 = gammaEnrichGauge | |
| 2759 | 3135 | |
| 2760 | 3136 | ;---------------------------------------------------------------------------- |
| 2761 | 3137 | ; Indicators |
| @@ -2790,34 +3166,34 @@ | ||
| 2790 | 3166 | ; you change it. |
| 2791 | 3167 | |
| 2792 | 3168 | ochGetCommand = "r\$tsCanId\x30%2o%2c" |
| 2793 | -;[PJSC] ochBlockSize = 89 | |
| 2794 | - ochBlockSize = 104 ;[PJSC v1.10] Extend block size for Test mode | |
| 3169 | +;[PJSC] ochBlockSize = 90 | |
| 3170 | + ochBlockSize = 106 ;[PJSC v1.10] Extend block size for Test mode | |
| 2795 | 3171 | |
| 2796 | - secl = scalar, U08, 0, "sec", 1.000, 0.000 | |
| 2797 | - status1 = scalar, U08, 1, "bits", 1.000, 0.000 | |
| 2798 | - inj1Status = bits, U08, 1, [0:0] | |
| 2799 | - inj2Status = bits, U08, 1, [1:1] | |
| 2800 | - inj3Status = bits, U08, 1, [2:2] | |
| 2801 | - inj4Status = bits, U08, 1, [3:3] | |
| 2802 | - DFCOOn = bits, U08, 1, [4:4] | |
| 2803 | - boostCutFuel = bits, U08, 1, [5:5] | |
| 2804 | - toothLog1Ready = bits, U08, 1, [6:6] | |
| 2805 | - toothLog2Ready = bits, U08, 1, [7:7] | |
| 2806 | - engine = scalar, U08, 2, "bits", 1.000, 0.000 | |
| 2807 | - running = bits, U08, 2, [0:0] | |
| 2808 | - crank = bits, U08, 2, [1:1] | |
| 2809 | - ase = bits, U08, 2, [2:2] | |
| 2810 | - warmup = bits, U08, 2, [3:3] | |
| 2811 | - tpsaccaen = bits, U08, 2, [4:4] | |
| 2812 | - tpsaccden = bits, U08, 2, [5:5] | |
| 2813 | - mapaccaen = bits, U08, 2, [6:6] | |
| 2814 | - mapaccden = bits, U08, 2, [7:7] | |
| 2815 | - dwell = scalar, U08, 3, "ms", 0.100, 0.000 | |
| 2816 | - map = scalar, U16, 4, "kpa", 1.000, 0.000 | |
| 2817 | - iatRaw = scalar, U08, 6, "°C", 1.000, 0.000 | |
| 2818 | - coolantRaw = scalar, U08, 7, "°C", 1.000, 0.000 | |
| 2819 | - batCorrection = scalar, U08, 8, "%", 1.000, 0.000 | |
| 2820 | - batteryVoltage = scalar, U08, 9, "V", 0.100, 0.000 | |
| 3172 | + secl = scalar, U08, 0, "sec", 1.000, 0.000 | |
| 3173 | + status1 = scalar, U08, 1, "bits", 1.000, 0.000 | |
| 3174 | + inj1Status = bits, U08, 1, [0:0] | |
| 3175 | + inj2Status = bits, U08, 1, [1:1] | |
| 3176 | + inj3Status = bits, U08, 1, [2:2] | |
| 3177 | + inj4Status = bits, U08, 1, [3:3] | |
| 3178 | + DFCOOn = bits, U08, 1, [4:4] | |
| 3179 | + boostCutFuel = bits, U08, 1, [5:5] | |
| 3180 | + toothLog1Ready = bits, U08, 1, [6:6] | |
| 3181 | + toothLog2Ready = bits, U08, 1, [7:7] | |
| 3182 | + engine = scalar, U08, 2, "bits", 1.000, 0.000 | |
| 3183 | + running = bits, U08, 2, [0:0] | |
| 3184 | + crank = bits, U08, 2, [1:1] | |
| 3185 | + ase = bits, U08, 2, [2:2] | |
| 3186 | + warmup = bits, U08, 2, [3:3] | |
| 3187 | + tpsaccaen = bits, U08, 2, [4:4] | |
| 3188 | + tpsaccden = bits, U08, 2, [5:5] | |
| 3189 | + mapaccaen = bits, U08, 2, [6:6] | |
| 3190 | + mapaccden = bits, U08, 2, [7:7] | |
| 3191 | + dwell = scalar, U08, 3, "ms", 0.100, 0.000 | |
| 3192 | + map = scalar, U16, 4, "kpa", 1.000, 0.000 | |
| 3193 | + iatRaw = scalar, U08, 6, "°C", 1.000, 0.000 | |
| 3194 | + coolantRaw = scalar, U08, 7, "°C", 1.000, 0.000 | |
| 3195 | + batCorrection = scalar, U08, 8, "%", 1.000, 0.000 | |
| 3196 | + batteryVoltage = scalar, U08, 9, "V", 0.100, 0.000 | |
| 2821 | 3197 | afr = scalar, U08, 10, "O2", 0.100, 0.000 |
| 2822 | 3198 | egoCorrection = scalar, U08, 11, "%", 1.000, 0.000 |
| 2823 | 3199 | airCorrection = scalar, U08, 12, "%", 1.000, 0.000 |
| @@ -2836,68 +3212,71 @@ | ||
| 2836 | 3212 | boostTarget = scalar, U08, 29, "kPa", 2.000, 0.000 |
| 2837 | 3213 | boostDuty = scalar, U08, 30, "%", 1.000, 0.000 |
| 2838 | 3214 | status2 = scalar, U08, 31, "bits", 1.000, 0.000 |
| 2839 | - launchHard = bits, U08, 31, [0:0] | |
| 2840 | - launchSoft = bits, U08, 31, [1:1] | |
| 2841 | - hardLimitOn = bits, U08, 31, [2:2] | |
| 2842 | - softlimitOn = bits, U08, 31, [3:3] | |
| 2843 | - boostCutSpark = bits, U08, 31, [4:4] | |
| 2844 | - error = bits, U08, 31, [5:5] | |
| 2845 | - idle = bits, U08, 31, [6:6] | |
| 2846 | - sync = bits, U08, 31, [7:7] | |
| 2847 | - rpmDOT = scalar, S16, 32, "rpm/s", 1.000, 0.000 | |
| 2848 | - flex = scalar, U08, 34, "%", 1.000, 0.000 | |
| 2849 | - flexFuelCor = scalar, U08, 35, "%", 1.000, 0.000 | |
| 2850 | - flexIgnCor = scalar, U08, 36, "deg", 1.000, 0.000 | |
| 3215 | + launchHard = bits, U08, 31, [0:0] | |
| 3216 | + launchSoft = bits, U08, 31, [1:1] | |
| 3217 | + hardLimitOn = bits, U08, 31, [2:2] | |
| 3218 | + softlimitOn = bits, U08, 31, [3:3] | |
| 3219 | + boostCutSpark = bits, U08, 31, [4:4] | |
| 3220 | + error = bits, U08, 31, [5:5] | |
| 3221 | + idle = bits, U08, 31, [6:6] | |
| 3222 | + sync = bits, U08, 31, [7:7] | |
| 3223 | + rpmDOT = scalar, S16, 32, "rpm/s", 1.000, 0.000 | |
| 3224 | + flex = scalar, U08, 34, "%", 1.000, 0.000 | |
| 3225 | + flexFuelCor = scalar, U08, 35, "%", 1.000, 0.000 | |
| 3226 | + flexIgnCor = scalar, U08, 36, "deg", 1.000, 0.000 | |
| 2851 | 3227 | |
| 2852 | - idleLoad = scalar, U08, 37, { 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 | |
| 2853 | - testoutputs = scalar, U08, 38, "bits", 1.000, 0.000 | |
| 2854 | - testenabled = bits, U08, 38, [0:0] | |
| 2855 | - testactive = bits, U08, 38, [1:1] | |
| 2856 | - afr2 = scalar, U08, 39, "O2", 0.100, 0.000 | |
| 2857 | - baro = scalar, U08, 40, "kpa", 1.000, 0.000 | |
| 2858 | - canin_gauge0 = scalar, U16, 41, "", 1.000, 0.000 | |
| 2859 | - canin_gauge1 = scalar, U16, 43, "", 1.000, 0.000 | |
| 2860 | - canin_gauge2 = scalar, U16, 45, "", 1.000, 0.000 | |
| 2861 | - canin_gauge3 = scalar, U16, 47, "", 1.000, 0.000 | |
| 2862 | - canin_gauge4 = scalar, U16, 49, "", 1.000, 0.000 | |
| 2863 | - canin_gauge5 = scalar, U16, 51, "", 1.000, 0.000 | |
| 2864 | - canin_gauge6 = scalar, U16, 53, "", 1.000, 0.000 | |
| 2865 | - canin_gauge7 = scalar, U16, 55, "", 1.000, 0.000 | |
| 2866 | - canin_gauge8 = scalar, U16, 57, "", 1.000, 0.000 | |
| 2867 | - canin_gauge9 = scalar, U16, 59, "", 1.000, 0.000 | |
| 2868 | - canin_gauge10 = scalar, U16, 61, "", 1.000, 0.000 | |
| 2869 | - canin_gauge11 = scalar, U16, 63, "", 1.000, 0.000 | |
| 2870 | - canin_gauge12 = scalar, U16, 65, "", 1.000, 0.000 | |
| 2871 | - canin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 | |
| 2872 | - canin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 | |
| 2873 | - canin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 | |
| 2874 | - tpsADC = scalar, U08, 73, "ADC",1.000, 0.000 | |
| 2875 | - errors = scalar, U08, 74, "bits", 1.000, 0.000 | |
| 2876 | - errorNum = bits, U08, 74, [0:1] | |
| 2877 | - currentError = bits, U08, 74, [2:7] | |
| 3228 | + idleLoad = scalar, U08, 37, { 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 | |
| 3229 | + testoutputs = scalar, U08, 38, "bits", 1.000, 0.000 | |
| 3230 | + testenabled = bits, U08, 38, [0:0] | |
| 3231 | + testactive = bits, U08, 38, [1:1] | |
| 3232 | +;[PJSC v1.10] afr2 = scalar, U08, 39, "O2", 0.100, 0.000 | |
| 3233 | +;[PJSC v1.10] baro = scalar, U08, 40, "kpa", 1.000, 0.000 | |
| 3234 | + baro = scalar, U16, 39, "kpa", 1.000, 0.000 ;[PJSC v1.10] | |
| 3235 | + auxin_gauge0 = scalar, U16, 41, "", 1.000, 0.000 | |
| 3236 | + auxin_gauge1 = scalar, U16, 43, "", 1.000, 0.000 | |
| 3237 | + auxin_gauge2 = scalar, U16, 45, "", 1.000, 0.000 | |
| 3238 | + auxin_gauge3 = scalar, U16, 47, "", 1.000, 0.000 | |
| 3239 | + auxin_gauge4 = scalar, U16, 49, "", 1.000, 0.000 | |
| 3240 | + auxin_gauge5 = scalar, U16, 51, "", 1.000, 0.000 | |
| 3241 | + auxin_gauge6 = scalar, U16, 53, "", 1.000, 0.000 | |
| 3242 | + auxin_gauge7 = scalar, U16, 55, "", 1.000, 0.000 | |
| 3243 | + auxin_gauge8 = scalar, U16, 57, "", 1.000, 0.000 | |
| 3244 | + auxin_gauge9 = scalar, U16, 59, "", 1.000, 0.000 | |
| 3245 | + auxin_gauge10 = scalar, U16, 61, "", 1.000, 0.000 | |
| 3246 | + auxin_gauge11 = scalar, U16, 63, "", 1.000, 0.000 | |
| 3247 | + auxin_gauge12 = scalar, U16, 65, "", 1.000, 0.000 | |
| 3248 | + auxin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 | |
| 3249 | + auxin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 | |
| 3250 | + auxin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 | |
| 3251 | + tpsADC = scalar, U08, 73, "ADC",1.000, 0.000 | |
| 3252 | + errors = scalar, U08, 74, "bits", 1.000, 0.000 | |
| 3253 | + errorNum = bits, U08, 74, [0:1] | |
| 3254 | + currentError = bits, U08, 74, [2:7] | |
| 2878 | 3255 | pulseWidth2 = scalar, U16, 75, "ms", 0.001, 0.000 |
| 2879 | 3256 | pulseWidth3 = scalar, U16, 77, "ms", 0.001, 0.000 |
| 2880 | 3257 | pulseWidth4 = scalar, U16, 79, "ms", 0.001, 0.000 |
| 2881 | 3258 | status3 = scalar, U08, 81, "bits", 1.000, 0.000 |
| 2882 | - resetLockOn = bits, U08, 81, [0:0] | |
| 2883 | - nitrousOn = bits, U08, 81, [1:1] | |
| 2884 | - unused81_2-4 = bits, U08, 81, [2:4] | |
| 2885 | - nSquirts = bits, U08, 81, [5:7] | |
| 2886 | - flexBoostCor = scalar, S16, 82, "kPa", 1.000, 0.000 | |
| 2887 | - nChannels = scalar, U08, 84, "bits", 1.000, 0.000 | |
| 3259 | + resetLockOn = bits, U08, 81, [0:0] | |
| 3260 | + nitrousOn = bits, U08, 81, [1:1] | |
| 3261 | + unused81_2-4 = bits, U08, 81, [2:4] | |
| 3262 | + nSquirts = bits, U08, 81, [5:7] | |
| 3263 | + flexBoostCor = scalar, S16, 82, "kPa", 1.000, 0.000 | |
| 3264 | + nChannels = scalar, U08, 84, "bits", 1.000, 0.000 | |
| 2888 | 3265 | nIgnChannels = bits, U08, 84, [0:3] |
| 2889 | 3266 | nFuelChannels = bits, U08, 84, [4:7] |
| 2890 | - fuelLoad = scalar, S16, 85, { bitStringValue( algorithmUnits , algorithm ) }, 1.000, 0.000 | |
| 2891 | - ignLoad = scalar, S16, 87, { bitStringValue( algorithmUnits , ignAlgorithm ) }, 1.000, 0.000 | |
| 2892 | - veCurr2 = scalar, U08, 89, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
| 2893 | - valvePosition = scalar, U08, 90, "%", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 2894 | - valvePositionADC = scalar, U08, 91, "ADC", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 2895 | - sparkedAngle = scalar, S16, 92, "deg", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 2896 | - dutyFreq = scalar, U16, 94, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 2897 | - dutyRatio = scalar, U16, 96, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 2898 | - dutyFreq2 = scalar, U16, 98, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 2899 | - dutyRatio2 = scalar, U16, 100, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 2900 | - testCnt = scalar, U16, 102, "", 1.000, 0.000 ;[PJSC v1.10]For test mode | |
| 3267 | + fuelLoad = scalar, S16, 85, { bitStringValue( algorithmUnits , algorithm ) }, 1.000, 0.000 | |
| 3268 | + ignLoad = scalar, S16, 87, { bitStringValue( algorithmUnits , ignAlgorithm ) }, 1.000, 0.000 | |
| 3269 | + syncLossCounter = scalar, U08, 89, "", 1.000, 0.000 | |
| 3270 | + veCurr2 = scalar, U08, 90, "%", 1.000, 0.000 ;[PJSC]Multi VE Map support | |
| 3271 | + valvePosition = scalar, U08, 91, "%", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3272 | + valvePositionADC = scalar, U08, 92, "ADC", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3273 | + sparkedAngle = scalar, S16, 93, "deg", 1.000, 0.000 ;[PJSC]Extend output channel for External Trigger | |
| 3274 | + dutyFreq = scalar, U16, 95, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3275 | + dutyRatio = scalar, U16, 97, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3276 | + dutyFreq2 = scalar, U16, 99, "Hz", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3277 | + dutyRatio2 = scalar, U16, 101, "%", 1.000, 0.000 ;[PJSC]For capturing duty pulse | |
| 3278 | + testCnt = scalar, U16, 103, "", 1.000, 0.000 ;[PJSC v1.10]For test mode | |
| 3279 | + afr2 = scalar, U08, 105, "O2", 0.100, 0.000 ;[PJSC v1.10] | |
| 2901 | 3280 | |
| 2902 | 3281 | |
| 2903 | 3282 | #if CELSIUS |
| @@ -3000,6 +3379,7 @@ | ||
| 3000 | 3379 | entry = idleLoad, "IAC value", int, "%d" |
| 3001 | 3380 | entry = baro, "Baro Pressure",int, "%d" |
| 3002 | 3381 | entry = nitrousOn, "Nitrous On", int, "%d", { n2o_enable > 0 } |
| 3382 | + entry = syncLossCounter, "Sync Loss #", int, "%d" | |
| 3003 | 3383 | entry = valvePosition, "ExValve Pos", int, "%d", { exValveCaptureEnabled } ;[PJSC] |
| 3004 | 3384 | entry = sparkedAngle, "Spark Angle", int, "%d", { exTrigModeSelect == 1 } ;[PJSC] |
| 3005 | 3385 | entry = dutyFreq, "Duty Frequency", int, "%d", { dutyPulseCaptureEnabled } ;[PJSC] |
| @@ -3007,16 +3387,14 @@ | ||
| 3007 | 3387 | entry = dutyFreq2, "Duty Frequency2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC] |
| 3008 | 3388 | entry = dutyRatio2, "Duty Ratio2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC] |
| 3009 | 3389 | |
| 3010 | -#if CAN_COMMANDS | |
| 3011 | - entry = canin_gauge0, "CanIn CH0", int, "%d" | |
| 3012 | - entry = canin_gauge1, "CanIn CH1", int, "%d" | |
| 3013 | - entry = canin_gauge2, "CanIn CH2", int, "%d" | |
| 3014 | - entry = canin_gauge3, "CanIn CH3", int, "%d" | |
| 3015 | - entry = canin_gauge4, "CanIn CH4", int, "%d" | |
| 3016 | - entry = canin_gauge5, "CanIn CH5", int, "%d" | |
| 3017 | - entry = canin_gauge6, "CanIn CH6", int, "%d" | |
| 3018 | - entry = canin_gauge7, "CanIn CH7", int, "%d" | |
| 3019 | -#endif | |
| 3390 | + entry = auxin_gauge0, "AuxIn CH0", int, "%d" | |
| 3391 | + entry = auxin_gauge1, "AuxIn CH1", int, "%d" | |
| 3392 | + entry = auxin_gauge2, "AuxIn CH2", int, "%d" | |
| 3393 | + entry = auxin_gauge3, "AuxIn CH3", int, "%d" | |
| 3394 | + entry = auxin_gauge4, "AuxIn CH4", int, "%d" | |
| 3395 | + entry = auxin_gauge5, "AuxIn CH5", int, "%d" | |
| 3396 | + entry = auxin_gauge6, "AuxIn CH6", int, "%d" | |
| 3397 | + entry = auxin_gauge7, "AuxIn CH7", int, "%d" | |
| 3020 | 3398 | |
| 3021 | 3399 | |
| 3022 | 3400 | [LoggerDefinition] |
| @@ -3034,7 +3412,7 @@ | ||
| 3034 | 3412 | recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes |
| 3035 | 3413 | |
| 3036 | 3414 | ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition |
| 3037 | - recordField = toothGap, "ToothTime", 0, 16, 1.0, "uS" | |
| 3415 | + recordField = toothTime, "ToothTime", 0, 16, 1.0, "uS" | |
| 3038 | 3416 | |
| 3039 | 3417 | |
| 3040 | 3418 | [Tools] |
| @@ -3,9 +3,12 @@ | ||
| 3 | 3 | |
| 4 | 4 | void initialiseAuxPWM(); |
| 5 | 5 | void boostControl(); |
| 6 | +void boostDisable(); | |
| 7 | +void idleControl(); | |
| 6 | 8 | void vvtControl(); |
| 7 | 9 | void initialiseFan(); |
| 8 | 10 | void nitrousControl(); |
| 11 | +void fanControl(); | |
| 9 | 12 | |
| 10 | 13 | #if defined(CORE_AVR) |
| 11 | 14 | #define ENABLE_BOOST_TIMER() TIMSK1 |= (1 << OCIE1A) |
| @@ -88,6 +91,9 @@ | ||
| 88 | 91 | long boost_cl_target_boost; |
| 89 | 92 | byte boostCounter; |
| 90 | 93 | |
| 94 | +byte fanHIGH = HIGH; // Used to invert the cooling fan output | |
| 95 | +byte fanLOW = LOW; // Used to invert the cooling fan output | |
| 96 | + | |
| 91 | 97 | volatile bool vvt_pwm_state; |
| 92 | 98 | unsigned int vvt_pwm_max_count; //Used for variable PWM frequency |
| 93 | 99 | volatile unsigned int vvt_pwm_cur_value; |
| @@ -14,8 +14,8 @@ | ||
| 14 | 14 | #define ve2MapPage 11 //[PJSC] Config Page 11 |
| 15 | 15 | #define ve2SetPage 12 //[PJSC] Config Page 12 |
| 16 | 16 | |
| 17 | -//[PJSC]#define SERIAL_PACKET_SIZE 89 //Must match ochBlockSize in ini file | |
| 18 | -#define SERIAL_PACKET_SIZE 104 //[PJSC v1.10] Extend serial packet block size for Test mode | |
| 17 | +//[PJSC]#define SERIAL_PACKET_SIZE 90 //Must match ochBlockSize in ini file | |
| 18 | +#define SERIAL_PACKET_SIZE 106 //[PJSC v1.10] Extend serial packet block size for Test mode | |
| 19 | 19 | |
| 20 | 20 | byte currentPage = 1;//Not the same as the speeduino config page numbers |
| 21 | 21 | bool isMap = true; |
| @@ -29,9 +29,14 @@ | ||
| 29 | 29 | static inline int8_t correctionNitrous(int8_t); |
| 30 | 30 | static inline int8_t correctionSoftLaunch(int8_t); |
| 31 | 31 | static inline int8_t correctionSoftFlatShift(int8_t); |
| 32 | +static inline int8_t correctionKnock(int8_t); | |
| 32 | 33 | |
| 33 | 34 | uint16_t correctionsDwell(uint16_t dwell); |
| 34 | 35 | |
| 35 | 36 | uint16_t AFRnextCycle; |
| 37 | +unsigned long knockStartTime; | |
| 38 | +byte lastKnockCount; | |
| 39 | +int16_t knockWindowMin; //The current minimum crank angle for a knock pulse to be valid | |
| 40 | +int16_t knockWindowMax;//The current maximum crank angle for a knock pulse to be valid | |
| 36 | 41 | |
| 37 | 42 | #endif // CORRECTIONS_H |
| @@ -1,7 +1,29 @@ | ||
| 1 | -#define CRANKMATH_METHOD_INTERVAL_RPM 0 | |
| 2 | -#define CRANKMATH_METHOD_INTERVAL_TOOTH 1 | |
| 3 | -#define CRANKMATH_METHOD_ALPHA_BETA 2 | |
| 4 | -#define CRANKMATH_METHOD_2ND_DERIVATIVE 3 | |
| 1 | +#ifndef CRANKMATHS_H | |
| 2 | +#define CRANKMATHS_H | |
| 5 | 3 | |
| 6 | -unsigned long angleToTime(int16_t angle); | |
| 7 | -uint16_t timeToAngle(unsigned long time); | |
| \ No newline at end of file | ||
| 4 | +#define CRANKMATH_METHOD_INTERVAL_DEFAULT 0 | |
| 5 | +#define CRANKMATH_METHOD_INTERVAL_REV 1 | |
| 6 | +#define CRANKMATH_METHOD_INTERVAL_TOOTH 2 | |
| 7 | +#define CRANKMATH_METHOD_ALPHA_BETA 3 | |
| 8 | +#define CRANKMATH_METHOD_2ND_DERIVATIVE 4 | |
| 9 | + | |
| 10 | +//#define fastDegreesToUS(targetDegrees) ((targetDegrees) * (unsigned long)timePerDegree) | |
| 11 | +#define fastDegreesToUS(targetDegrees) (((targetDegrees) * (unsigned long)timePerDegreex16) >> 4) | |
| 12 | +#define fastTimeToAngle(time) (((unsigned long)time * degreesPeruSx2048) / 2048) //Divide by 2048 will be converted at compile time to bitshift | |
| 13 | + | |
| 14 | +#define ignitionLimits(angle) ( (((int16_t)angle) >= CRANK_ANGLE_MAX_IGN) ? (angle - CRANK_ANGLE_MAX_IGN) : ( (angle < 0) ? (angle + CRANK_ANGLE_MAX_IGN) : angle) ) | |
| 15 | + | |
| 16 | + | |
| 17 | +unsigned long angleToTime(int16_t, byte); | |
| 18 | +uint16_t timeToAngle(unsigned long, byte); | |
| 19 | +void doCrankSpeedCalcs(); | |
| 20 | + | |
| 21 | +volatile uint16_t timePerDegree; | |
| 22 | +volatile uint16_t timePerDegreex16; | |
| 23 | +volatile uint16_t degreesPeruSx2048; | |
| 24 | + | |
| 25 | +//These are only part of the experimental 2nd deriv calcs | |
| 26 | +byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc | |
| 27 | +int rpmDelta; | |
| 28 | + | |
| 29 | +#endif | |
| \ No newline at end of file |
| @@ -1,33 +1,146 @@ | ||
| 1 | 1 | #ifndef DECODERS_H |
| 2 | 2 | #define DECODERS_H |
| 3 | 3 | |
| 4 | -#include <limits.h> | |
| 5 | - | |
| 6 | 4 | #if defined(CORE_AVR) |
| 7 | 5 | #define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? true : false) |
| 8 | 6 | #define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? true : false) |
| 9 | -#elif defined(CORE_TEENSY) || defined(CORE_STM32) | |
| 7 | +#else | |
| 10 | 8 | #define READ_PRI_TRIGGER() digitalRead(pinTrigger) |
| 11 | 9 | #define READ_SEC_TRIGGER() digitalRead(pinTrigger2) |
| 12 | 10 | #endif |
| 13 | 11 | |
| 14 | 12 | static inline void addToothLogEntry(unsigned long); |
| 15 | -static inline uint16_t stdGetRPM(uint16_t degreesOver); | |
| 13 | +static inline uint16_t stdGetRPM(uint16_t); | |
| 16 | 14 | static inline void setFilter(unsigned long); |
| 17 | 15 | static inline int crankingGetRPM(byte); |
| 18 | -static inline void doPerToothTiming(uint16_t crankAngle); | |
| 16 | +//static inline void doPerToothTiming(uint16_t); | |
| 19 | 17 | |
| 18 | +void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder) | |
| 19 | +void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder) | |
| 20 | +uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder) | |
| 21 | +int (*getCrankAngle)(); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder) | |
| 22 | +void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder | |
| 23 | + | |
| 24 | +//All of the below are the 6 required functions for each decoder / pattern | |
| 20 | 25 | void triggerSetup_missingTooth(); |
| 21 | 26 | void triggerPri_missingTooth(); |
| 22 | 27 | void triggerSec_missingTooth(); |
| 23 | 28 | uint16_t getRPM_missingTooth(); |
| 24 | -int getCrankAngle_missingTooth(int timePerDegree); | |
| 29 | +int getCrankAngle_missingTooth(); | |
| 30 | +void triggerSetEndTeeth_missingTooth(); | |
| 31 | + | |
| 25 | 32 | void triggerSetup_DualWheel(); |
| 26 | 33 | void triggerPri_DualWheel(); |
| 27 | 34 | void triggerSec_DualWheel(); |
| 28 | 35 | uint16_t getRPM_DualWheel(); |
| 29 | -int getCrankAngle_DualWheel(int timePerDegree); | |
| 36 | +int getCrankAngle_DualWheel(); | |
| 37 | +void triggerSetEndTeeth_DualWheel(); | |
| 30 | 38 | |
| 39 | +void triggerSetup_BasicDistributor(); | |
| 40 | +void triggerPri_BasicDistributor(); | |
| 41 | +void triggerSec_BasicDistributor(); | |
| 42 | +uint16_t getRPM_BasicDistributor(); | |
| 43 | +int getCrankAngle_BasicDistributor(); | |
| 44 | +void triggerSetEndTeeth_BasicDistributor(); | |
| 45 | + | |
| 46 | +void triggerSetup_GM7X(); | |
| 47 | +void triggerPri_GM7X(); | |
| 48 | +void triggerSec_GM7X(); | |
| 49 | +uint16_t getRPM_GM7X(); | |
| 50 | +int getCrankAngle_GM7X(); | |
| 51 | +void triggerSetEndTeeth_GM7X(); | |
| 52 | + | |
| 53 | +void triggerSetup_4G63(); | |
| 54 | +void triggerPri_4G63(); | |
| 55 | +void triggerSec_4G63(); | |
| 56 | +uint16_t getRPM_4G63(); | |
| 57 | +int getCrankAngle_4G63(); | |
| 58 | +void triggerSetEndTeeth_4G63(); | |
| 59 | + | |
| 60 | +void triggerSetup_24X(); | |
| 61 | +void triggerPri_24X(); | |
| 62 | +void triggerSec_24X(); | |
| 63 | +uint16_t getRPM_24X(); | |
| 64 | +int getCrankAngle_24X(); | |
| 65 | +void triggerSetEndTeeth_24X(); | |
| 66 | + | |
| 67 | +void triggerSetup_Jeep2000(); | |
| 68 | +void triggerPri_Jeep2000(); | |
| 69 | +void triggerSec_Jeep2000(); | |
| 70 | +uint16_t getRPM_Jeep2000(); | |
| 71 | +int getCrankAngle_Jeep2000(); | |
| 72 | +void triggerSetEndTeeth_Jeep2000(); | |
| 73 | + | |
| 74 | +void triggerSetup_Audi135(); | |
| 75 | +void triggerPri_Audi135(); | |
| 76 | +void triggerSec_Audi135(); | |
| 77 | +uint16_t getRPM_Audi135(); | |
| 78 | +int getCrankAngle_Audi135(); | |
| 79 | +void triggerSetEndTeeth_Audi135(); | |
| 80 | + | |
| 81 | +void triggerSetup_HondaD17(); | |
| 82 | +void triggerPri_HondaD17(); | |
| 83 | +void triggerSec_HondaD17(); | |
| 84 | +uint16_t getRPM_HondaD17(); | |
| 85 | +int getCrankAngle_HondaD17(); | |
| 86 | +void triggerSetEndTeeth_HondaD17(); | |
| 87 | + | |
| 88 | +void triggerSetup_Miata9905(); | |
| 89 | +void triggerPri_Miata9905(); | |
| 90 | +void triggerSec_Miata9905(); | |
| 91 | +uint16_t getRPM_Miata9905(); | |
| 92 | +int getCrankAngle_Miata9905(); | |
| 93 | +void triggerSetEndTeeth_Miata9905(); | |
| 94 | + | |
| 95 | +void triggerSetup_MazdaAU(); | |
| 96 | +void triggerPri_MazdaAU(); | |
| 97 | +void triggerSec_MazdaAU(); | |
| 98 | +uint16_t getRPM_MazdaAU(); | |
| 99 | +int getCrankAngle_MazdaAU(); | |
| 100 | +void triggerSetEndTeeth_MazdaAU(); | |
| 101 | + | |
| 102 | +void triggerSetup_non360(); | |
| 103 | +void triggerPri_non360(); | |
| 104 | +void triggerSec_non360(); | |
| 105 | +uint16_t getRPM_non360(); | |
| 106 | +int getCrankAngle_non360(); | |
| 107 | +void triggerSetEndTeeth_non360(); | |
| 108 | + | |
| 109 | +void triggerSetup_Nissan360(); | |
| 110 | +void triggerPri_Nissan360(); | |
| 111 | +void triggerSec_Nissan360(); | |
| 112 | +uint16_t getRPM_Nissan360(); | |
| 113 | +int getCrankAngle_Nissan360(); | |
| 114 | +void triggerSetEndTeeth_Nissan360(); | |
| 115 | + | |
| 116 | +void triggerSetup_Subaru67(); | |
| 117 | +void triggerPri_Subaru67(); | |
| 118 | +void triggerSec_Subaru67(); | |
| 119 | +uint16_t getRPM_Subaru67(); | |
| 120 | +int getCrankAngle_Subaru67(); | |
| 121 | +void triggerSetEndTeeth_Subaru67(); | |
| 122 | + | |
| 123 | +void triggerSetup_Daihatsu(); | |
| 124 | +void triggerPri_Daihatsu(); | |
| 125 | +void triggerSec_Daihatsu(); | |
| 126 | +uint16_t getRPM_Daihatsu(); | |
| 127 | +int getCrankAngle_Daihatsu(); | |
| 128 | +void triggerSetEndTeeth_Daihatsu(); | |
| 129 | + | |
| 130 | +void triggerSetup_Harley(); | |
| 131 | +void triggerPri_Harley(); | |
| 132 | +void triggerSec_Harley(); | |
| 133 | +uint16_t getRPM_Harley(); | |
| 134 | +int getCrankAngle_Harley(); | |
| 135 | +void triggerSetEndTeeth_Harley(); | |
| 136 | + | |
| 137 | +void triggerSetup_ThirtySixMinus222(); | |
| 138 | +void triggerPri_ThirtySixMinus222(); | |
| 139 | +void triggerSec_ThirtySixMinus222(); | |
| 140 | +uint16_t getRPM_ThirtySixMinus222(); | |
| 141 | +int getCrankAngle_ThirtySixMinus222(); | |
| 142 | +void triggerSetEndTeeth_ThirtySixMinus222(); | |
| 143 | + | |
| 31 | 144 | void captureExtTrigger(); //[PJSC] For External Trigger |
| 32 | 145 | void captureDutyPulseONtime(); //[PJSC] For capturing duty pulse |
| 33 | 146 | void captureDutyPulseOFFtime(); //[PJSC] For capturing duty pulse |
| @@ -56,9 +169,6 @@ | ||
| 56 | 169 | volatile unsigned long toothOneTime = 0; //The time (micros()) that tooth 1 last triggered |
| 57 | 170 | volatile unsigned long toothOneMinusOneTime = 0; //The 2nd to last time (micros()) that tooth 1 last triggered |
| 58 | 171 | volatile bool revolutionOne = 0; // For sequential operation, this tracks whether the current revolution is 1 or 2 (not 1) |
| 59 | -volatile uint16_t toothHistory[TOOTH_LOG_BUFFER]; | |
| 60 | -volatile unsigned int toothHistoryIndex = 0; | |
| 61 | -volatile bool toothLogRead = false; //Flag to indicate whether the current tooth log values have been read out yet | |
| 62 | 172 | |
| 63 | 173 | volatile unsigned int secondaryToothCount; //Used for identifying the current secondary (Usually cam) tooth for patterns with multiple secondary teeth |
| 64 | 174 | volatile unsigned long secondaryLastToothTime = 0; //The time (micros()) that the last tooth was registered (Cam input) |
| @@ -66,15 +176,18 @@ | ||
| 66 | 176 | |
| 67 | 177 | volatile int triggerActualTeeth; |
| 68 | 178 | volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) |
| 69 | -unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input | |
| 179 | +volatile unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input | |
| 70 | 180 | unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION |
| 71 | 181 | volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth |
| 72 | 182 | volatile bool triggerToothAngleIsCorrect = false; //Whether or not the triggerToothAngle variable is currently accurate. Some patterns have times when the triggerToothAngle variable cannot be accurately set. |
| 73 | -bool secondDerivEnabled; //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine | |
| 183 | +bool secondDerivEnabled = false; //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine | |
| 74 | 184 | bool decoderIsSequential; //Whether or not the decoder supports sequential operation |
| 75 | 185 | bool decoderIsLowRes = false; //Is set true, certain extra calculations are performed for better timing accuracy |
| 76 | 186 | bool decoderHasFixedCrankingTiming = false; //Whether or not the decoder supports fixed cranking timing |
| 77 | 187 | byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders) |
| 188 | +unsigned long elapsedTime; | |
| 189 | +unsigned long lastCrankAngleCalc; | |
| 190 | +int16_t lastToothCalcAdvance = 99; //Invalid value here forces calculation of this on first main loop | |
| 78 | 191 | |
| 79 | 192 | int16_t ignition1EndTooth = 0; |
| 80 | 193 | int16_t ignition2EndTooth = 0; |
| @@ -18,6 +18,7 @@ | ||
| 18 | 18 | #elif defined(CORE_TEENSY) |
| 19 | 19 | #define BOARD_DIGITAL_GPIO_PINS 34 |
| 20 | 20 | #define BOARD_NR_GPIO_PINS 34 |
| 21 | + | |
| 21 | 22 | #elif defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(__STM32F1__) || defined(STM32F4) || defined(STM32) |
| 22 | 23 | #define CORE_STM32 |
| 23 | 24 | #ifndef word |
| @@ -190,6 +191,10 @@ | ||
| 190 | 191 | #define NITROUS_STAGE1 1 |
| 191 | 192 | #define NITROUS_STAGE2 2 |
| 192 | 193 | |
| 194 | +#define KNOCK_MODE_OFF 0 | |
| 195 | +#define KNOCK_MODE_DIGITAL 1 | |
| 196 | +#define KNOCK_MODE_ANALOG 2 | |
| 197 | + | |
| 193 | 198 | #define RESET_CONTROL_DISABLED 0 |
| 194 | 199 | #define RESET_CONTROL_PREVENT_WHEN_RUNNING 1 |
| 195 | 200 | #define RESET_CONTROL_PREVENT_ALWAYS 2 |
| @@ -216,8 +221,8 @@ | ||
| 216 | 221 | |
| 217 | 222 | const byte data_structure_version = 2; //This identifies the data structure when reading / writing. |
| 218 | 223 | //const byte page_size = 64; |
| 219 | -//[PJSC]const int16_t npage_size[11] = {0,288,128,288,128,288,128,240,192,128,192}; | |
| 220 | -const int16_t npage_size[12] = {0,288,128,288,128,288,128,240,192,128,192,288}; //[PJSC] | |
| 224 | +//[PJSC]const int16_t npage_size[11] = {0,288,128,288,128,288,128,240,192,192,192}; | |
| 225 | +const int16_t npage_size[12] = {0,288,128,288,128,288,128,240,192,192,192,288}; //[PJSC] | |
| 221 | 226 | //const byte page11_size = 128; |
| 222 | 227 | #define MAP_PAGE_SIZE 288 |
| 223 | 228 |
| @@ -261,6 +266,8 @@ | ||
| 261 | 266 | struct table2D flexFuelTable; //6 bin flex fuel correction table for fuel adjustments (2D) |
| 262 | 267 | struct table2D flexAdvTable; //6 bin flex fuel correction table for timing advance (2D) |
| 263 | 268 | struct table2D flexBoostTable; //6 bin flex fuel correction table for boost adjustments (2D) |
| 269 | +struct table2D knockWindowStartTable; | |
| 270 | +struct table2D knockWindowDurationTable; | |
| 264 | 271 | |
| 265 | 272 | //These are for the direct port manipulation of the injectors, coils and aux outputs |
| 266 | 273 | volatile byte *inj1_pin_port; |
| @@ -328,10 +335,23 @@ | ||
| 328 | 335 | int ignition4EndAngle = 0; |
| 329 | 336 | int ignition5EndAngle = 0; |
| 330 | 337 | |
| 331 | -//This is used across multiple files | |
| 338 | +//These are variables used across multiple files | |
| 339 | +bool initialisationComplete = false; //Tracks whether the setup() functino has run completely | |
| 340 | +volatile uint16_t mainLoopCount; | |
| 332 | 341 | unsigned long revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that) |
| 333 | 342 | volatile unsigned long timer5_overflow_count = 0; //Increments every time counter 5 overflows. Used for the fast version of micros() |
| 334 | 343 | volatile unsigned long ms_counter = 0; //A counter that increments once per ms |
| 344 | +uint16_t fixedCrankingOverride = 0; | |
| 345 | +bool clutchTrigger; | |
| 346 | +bool previousClutchTrigger; | |
| 347 | +volatile uint16_t toothHistory[TOOTH_LOG_BUFFER]; | |
| 348 | +volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet | |
| 349 | +volatile unsigned int toothHistoryIndex = 0; | |
| 350 | +volatile bool toothLogRead = false; //Flag to indicate whether the current tooth log values have been read out yet | |
| 351 | +int CRANK_ANGLE_MAX = 720; | |
| 352 | +int CRANK_ANGLE_MAX_IGN = 360; | |
| 353 | +int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential | |
| 354 | + | |
| 335 | 355 | |
| 336 | 356 | //This needs to be here because using the config page directly can prevent burning the setting |
| 337 | 357 | byte resetControl = RESET_CONTROL_DISABLED; |
| @@ -350,7 +370,8 @@ | ||
| 350 | 370 | long MAP; //Has to be a long for PID calcs (Boost control) |
| 351 | 371 | int16_t EMAP; |
| 352 | 372 | int16_t EMAPADC; |
| 353 | - byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running. Alternatively, can be taken from an external sensor | |
| 373 | +//[PJSC v1.10] byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running. Alternatively, can be taken from an external sensor | |
| 374 | + int baro; //[PJSC v1.10] Barometric pressure is simply the inital MAP reading, taken before the engine is running. Alternatively, can be taken from an external sensor | |
| 354 | 375 | byte TPS; //The current TPS reading (0% - 100%) |
| 355 | 376 | byte TPSlast; //The previous TPS reading |
| 356 | 377 | unsigned long TPS_time; //The time the TPS sample was taken |
| @@ -381,7 +402,7 @@ | ||
| 381 | 402 | byte iatCorrection; //The amount of inlet air temperature adjustment currently being applied |
| 382 | 403 | byte launchCorrection; //The amount of correction being applied if launch control is active |
| 383 | 404 | byte flexCorrection; //Amount of correction being applied to compensate for ethanol content |
| 384 | - byte flexIgnCorrection; //Amount of additional advance being applied based on flex | |
| 405 | + int8_t flexIgnCorrection; //Amount of additional advance being applied based on flex. Note the type as this allows for negative values | |
| 385 | 406 | byte afrTarget; |
| 386 | 407 | byte idleDuty; |
| 387 | 408 | bool idleUpActive; |
| @@ -408,7 +429,7 @@ | ||
| 408 | 429 | uint16_t freeRAM; |
| 409 | 430 | unsigned int clutchEngagedRPM; |
| 410 | 431 | bool flatShiftingHard; |
| 411 | - volatile uint16_t startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. | |
| 432 | + volatile uint32_t startRevolutions; //A counter for how many revolutions have been completed since sync was achieved. | |
| 412 | 433 | uint16_t boostTarget; |
| 413 | 434 | byte testOutputs; |
| 414 | 435 | bool testActive; |
| @@ -424,6 +445,10 @@ | ||
| 424 | 445 | byte nChannels; //Number of fuel and ignition channels |
| 425 | 446 | int16_t fuelLoad; |
| 426 | 447 | int16_t ignLoad; |
| 448 | + bool fuelPumpOn; //The current status of the fuel pump | |
| 449 | + byte syncLossCounter; | |
| 450 | + byte knockRetard; | |
| 451 | + bool knockActive; | |
| 427 | 452 | byte exValvePosition; //[PJSC] For External Trigger |
| 428 | 453 | byte exValvePositionADC; //[PJSC] For External Trigger |
| 429 | 454 | int extTriggerAngle; //[PJSC] For External Trigger |
| @@ -766,12 +791,12 @@ | ||
| 766 | 791 | struct config9 { |
| 767 | 792 | byte enable_canbus:2; |
| 768 | 793 | byte enable_candata_in:1; |
| 769 | - uint16_t caninput_sel; //bit status on/off if input is enabled | |
| 794 | + byte caninput_sel[16]; //bit status on/Can/analog_local/digtal_local if input is enabled | |
| 770 | 795 | uint16_t caninput_source_can_address[16]; //u16 [15] array holding can address of input |
| 771 | 796 | uint8_t caninput_source_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7) |
| 772 | 797 | uint16_t caninput_source_num_bytes; //u16 bit status of the number of bytes length 1 or 2 |
| 773 | - byte unused10_53; | |
| 774 | - byte unused10_54; | |
| 798 | + byte unused10_67; | |
| 799 | + byte unused10_68; | |
| 775 | 800 | byte enable_candata_out : 1; |
| 776 | 801 | byte canoutput_sel[8]; |
| 777 | 802 | uint16_t canoutput_param_group[8]; |
| @@ -778,34 +803,58 @@ | ||
| 778 | 803 | uint8_t canoutput_param_start_byte[8]; |
| 779 | 804 | byte canoutput_param_num_bytes[8]; |
| 780 | 805 | |
| 781 | - byte unused10_97; | |
| 782 | - byte unused10_98; | |
| 783 | - byte unused10_99; | |
| 806 | + byte unused10_110; | |
| 807 | + byte unused10_111; | |
| 808 | + byte unused10_112; | |
| 809 | + byte unused10_113; | |
| 784 | 810 | byte speeduino_tsCanId:4; //speeduino TS canid (0-14) |
| 785 | 811 | uint16_t true_address; //speeduino 11bit can address |
| 786 | 812 | uint16_t realtime_base_address; //speeduino 11 bit realtime base address |
| 787 | 813 | uint16_t obd_address; //speeduino OBD diagnostic address |
| 788 | - byte unused10_107; | |
| 789 | - byte unused10_108; | |
| 790 | - byte unused10_109; | |
| 791 | - byte unused10_110; | |
| 792 | - byte unused10_111; | |
| 793 | - byte unused10_112; | |
| 794 | - byte unused10_113; | |
| 795 | - byte unused10_114; | |
| 796 | - byte unused10_115; | |
| 797 | - byte unused10_116; | |
| 798 | - byte unused10_117; | |
| 799 | - byte unused10_118; | |
| 800 | - byte unused10_119; | |
| 801 | - byte unused10_120; | |
| 802 | - byte unused10_121; | |
| 803 | - byte unused10_122; | |
| 804 | - byte unused10_123; | |
| 805 | - byte unused10_124; | |
| 806 | - byte unused10_125; | |
| 807 | - byte unused10_126; | |
| 808 | - byte unused10_127; | |
| 814 | + uint8_t Auxinpina[16]; //analog pin number when internal aux in use | |
| 815 | + uint8_t Auxinpinb[16]; // digital pin number when internal aux in use | |
| 816 | + | |
| 817 | + byte unused10_152; | |
| 818 | + byte unused10_153; | |
| 819 | + byte unused10_154; | |
| 820 | + byte unused10_155; | |
| 821 | + byte unused10_156; | |
| 822 | + byte unused10_157; | |
| 823 | + byte unused10_158; | |
| 824 | + byte unused10_159; | |
| 825 | + byte unused10_160; | |
| 826 | + byte unused10_161; | |
| 827 | + byte unused10_162; | |
| 828 | + byte unused10_163; | |
| 829 | + byte unused10_164; | |
| 830 | + byte unused10_165; | |
| 831 | + byte unused10_166; | |
| 832 | + byte unused10_167; | |
| 833 | + byte unused10_168; | |
| 834 | + byte unused10_169; | |
| 835 | + byte unused10_170; | |
| 836 | + byte unused10_171; | |
| 837 | + byte unused10_172; | |
| 838 | + byte unused10_173; | |
| 839 | + byte unused10_174; | |
| 840 | + byte unused10_175; | |
| 841 | + byte unused10_176; | |
| 842 | + byte unused10_177; | |
| 843 | + byte unused10_178; | |
| 844 | + byte unused10_179; | |
| 845 | + byte unused10_180; | |
| 846 | + byte unused10_181; | |
| 847 | + byte unused10_182; | |
| 848 | + byte unused10_183; | |
| 849 | + byte unused10_184; | |
| 850 | + byte unused10_185; | |
| 851 | + byte unused10_186; | |
| 852 | + byte unused10_187; | |
| 853 | + byte unused10_188; | |
| 854 | + byte unused10_189; | |
| 855 | + byte unused10_190; | |
| 856 | + byte unused10_191; | |
| 857 | + | |
| 809 | 858 | #if defined(CORE_AVR) |
| 810 | 859 | }; |
| 811 | 860 | #else |
| @@ -840,7 +889,7 @@ | ||
| 840 | 889 | uint8_t flexFuelBins[6]; |
| 841 | 890 | uint8_t flexFuelAdj[6]; //Fuel % @ current ethanol (typically 100% @ 0%, 163% @ 100%) |
| 842 | 891 | uint8_t flexAdvBins[6]; |
| 843 | - uint8_t flexAdvAdj[6]; //Additional advance (in degrees) @ current ethanol (typically 0 @ 0%, 10-20 @ 100%) | |
| 892 | + uint8_t flexAdvAdj[6]; //Additional advance (in degrees) @ current ethanol (typically 0 @ 0%, 10-20 @ 100%). NOTE: THIS IS A SIGNED VALUE! | |
| 844 | 893 | //And another three corn rows die. |
| 845 | 894 | |
| 846 | 895 | byte n2o_enable : 2; |
| @@ -867,8 +916,33 @@ | ||
| 867 | 916 | byte n2o_stage2_adderMax; |
| 868 | 917 | byte n2o_stage2_retard; |
| 869 | 918 | |
| 870 | - byte unused11_75_191[99]; | |
| 919 | + byte knock_mode : 2; | |
| 920 | + byte knock_pin : 6; | |
| 871 | 921 | |
| 922 | + byte knock_trigger : 1; | |
| 923 | + byte knock_pullup : 1; | |
| 924 | + byte knock_limiterDisable : 1; | |
| 925 | + byte knock_unused : 2; | |
| 926 | + byte knock_count : 3; | |
| 927 | + | |
| 928 | + byte knock_threshold; | |
| 929 | + byte knock_maxMAP; | |
| 930 | + byte knock_maxRPM; | |
| 931 | + byte knock_window_rpms[6]; | |
| 932 | + byte knock_window_angle[6]; | |
| 933 | + byte knock_window_dur[6]; | |
| 934 | + | |
| 935 | + byte knock_maxRetard; | |
| 936 | + byte knock_firstStep; | |
| 937 | + byte knock_stepSize; | |
| 938 | + byte knock_stepTime; | |
| 939 | + | |
| 940 | + byte knock_duration; //Time after knock retard starts that it should start recovering | |
| 941 | + byte knock_recoveryStepTime; | |
| 942 | + byte knock_recoveryStep; | |
| 943 | + | |
| 944 | + byte unused11_122_191[69]; | |
| 945 | + | |
| 872 | 946 | #if defined(CORE_AVR) |
| 873 | 947 | }; |
| 874 | 948 | #else |
| @@ -3,6 +3,9 @@ | ||
| 3 | 3 | |
| 4 | 4 | int fastMap1023toX(int, int); |
| 5 | 5 | unsigned long percentage(byte, unsigned long); |
| 6 | +inline long powint(int, unsigned int); | |
| 7 | +int divs100(long); | |
| 8 | +unsigned long divu100(unsigned long); | |
| 6 | 9 | |
| 7 | 10 | #define DIV_ROUND_CLOSEST(n, d) ((((n) < 0) ^ ((d) < 0)) ? (((n) - (d)/2)/(d)) : (((n) + (d)/2)/(d))) |
| 8 | 11 |
| @@ -33,7 +33,13 @@ | ||
| 33 | 33 | inline void endTrailingCoilCharge1(); |
| 34 | 34 | inline void endTrailingCoilCharge2(); |
| 35 | 35 | |
| 36 | +//And the combined versions of the above for simplicity | |
| 37 | +void beginCoil1and3Charge(); | |
| 38 | +void endCoil1and3Charge(); | |
| 39 | +void beginCoil2and4Charge(); | |
| 40 | +void endCoil2and4Charge(); | |
| 36 | 41 | |
| 42 | + | |
| 37 | 43 | #define openInjector1() *inj1_pin_port |= (inj1_pin_mask); BIT_SET(currentStatus.status1, BIT_STATUS1_INJ1) |
| 38 | 44 | #define closeInjector1() *inj1_pin_port &= ~(inj1_pin_mask); BIT_CLEAR(currentStatus.status1, BIT_STATUS1_INJ1) |
| 39 | 45 | #define openInjector2() *inj2_pin_port |= (inj2_pin_mask); BIT_SET(currentStatus.status1, BIT_STATUS1_INJ2) |
| @@ -61,4 +67,18 @@ | ||
| 61 | 67 | #define openInjector3and5() openInjector3(); openInjector5() |
| 62 | 68 | #define closeInjector3and5() closeInjector3(); closeInjector5() |
| 63 | 69 | |
| 70 | +#define coil1Low() (*ign1_pin_port &= ~(ign1_pin_mask)) | |
| 71 | +#define coil1High() (*ign1_pin_port |= (ign1_pin_mask)) | |
| 72 | +#define coil2Low() (*ign2_pin_port &= ~(ign2_pin_mask)) | |
| 73 | +#define coil2High() (*ign2_pin_port |= (ign2_pin_mask)) | |
| 74 | +#define coil3Low() (*ign3_pin_port &= ~(ign3_pin_mask)) | |
| 75 | +#define coil3High() (*ign3_pin_port |= (ign3_pin_mask)) | |
| 76 | +#define coil4Low() (*ign4_pin_port &= ~(ign4_pin_mask)) | |
| 77 | +#define coil4High() (*ign4_pin_port |= (ign4_pin_mask)) | |
| 78 | + | |
| 79 | +void nullCallback(); | |
| 80 | + | |
| 81 | +static byte coilHIGH = HIGH; | |
| 82 | +static byte coilLOW = LOW; | |
| 83 | + | |
| 64 | 84 | #endif |
| @@ -25,6 +25,7 @@ | ||
| 25 | 25 | #ifndef SCHEDULER_H |
| 26 | 26 | #define SCHEDULER_H |
| 27 | 27 | |
| 28 | +#define USE_IGN_REFRESH | |
| 28 | 29 | #define IGNITION_REFRESH_THRESHOLD 30 //Time in uS that the refresh functions will check to ensure there is enough time before changing the end compare |
| 29 | 30 | #if defined(CORE_AVR) |
| 30 | 31 | #include <avr/interrupt.h> |
| @@ -446,13 +447,14 @@ | ||
| 446 | 447 | unsigned int nextStartCompare; |
| 447 | 448 | unsigned int nextEndCompare; |
| 448 | 449 | volatile bool hasNextSchedule = false; |
| 450 | + volatile bool endScheduleSetByDecoder = false; | |
| 449 | 451 | #if defined(CORE_AVR) |
| 450 | 452 | volatile uint16_t * counter; |
| 451 | 453 | volatile uint16_t * compare; |
| 452 | -#elif defined(CORE_STM32) || defined(CORE_TEENSY) | |
| 454 | +#else | |
| 453 | 455 | volatile uint32_t * counter; |
| 454 | 456 | volatile uint32_t * compare; |
| 455 | - #endif | |
| 457 | +#endif | |
| 456 | 458 | }; |
| 457 | 459 | |
| 458 | 460 | volatile Schedule *timer3Aqueue[4]; |
| @@ -3,7 +3,6 @@ | ||
| 3 | 3 | |
| 4 | 4 | #include "Arduino.h" |
| 5 | 5 | |
| 6 | - | |
| 7 | 6 | // The following are alpha values for the ADC filters. |
| 8 | 7 | // Their values are from 0 to 255 with 0 being no filtering and 255 being maximum |
| 9 | 8 | #define ADCFILTER_TPS 128 |
| @@ -17,6 +16,9 @@ | ||
| 17 | 16 | #define BARO_MIN 87 |
| 18 | 17 | #define BARO_MAX 108 |
| 19 | 18 | |
| 19 | +#define KNOCK_MODE_DIGITAL 1 | |
| 20 | +#define KNOCK_MODE_ANALOG 2 | |
| 21 | + | |
| 20 | 22 | /* |
| 21 | 23 | #if defined(CORE_AVR) |
| 22 | 24 | #define ANALOG_ISR |
| @@ -24,13 +26,21 @@ | ||
| 24 | 26 | */ |
| 25 | 27 | |
| 26 | 28 | volatile byte flexCounter = 0; |
| 29 | +volatile byte knockCounter = 0; | |
| 30 | +volatile uint16_t knockAngle; | |
| 27 | 31 | volatile int AnChannel[15]; |
| 28 | 32 | |
| 29 | 33 | unsigned long MAPrunningValue; //Used for tracking either the total of all MAP readings in this cycle (Event average) or the lowest value detected in this cycle (event minimum) |
| 30 | 34 | unsigned long EMAPrunningValue; //As above but for EMAP |
| 31 | 35 | unsigned int MAPcount; //Number of samples taken in the current MAP cycle |
| 32 | -uint16_t MAPcurRev; //Tracks which revolution we're sampling on | |
| 36 | +uint32_t MAPcurRev; //Tracks which revolution we're sampling on | |
| 37 | +bool auxIsEnabled; | |
| 33 | 38 | |
| 39 | +//These variables are used for tracking the number of running sensors values that appear to be errors. Once a threshold is reached, the sensor reading will go to default value and assume the sensor is faulty | |
| 40 | +byte mapErrorCount = 0; | |
| 41 | +byte iatErrorCount = 0; | |
| 42 | +byte cltErrorCount = 0; | |
| 43 | + | |
| 34 | 44 | /* |
| 35 | 45 | * Simple low pass IIR filter macro for the analog inputs |
| 36 | 46 | * This is effectively implementing the smooth filter from http://playground.arduino.cc/Main/Smooth |
| @@ -40,12 +50,19 @@ | ||
| 40 | 50 | |
| 41 | 51 | static inline void instanteneousMAPReading() __attribute__((always_inline)); |
| 42 | 52 | static inline void readMAP() __attribute__((always_inline)); |
| 53 | +void initialiseADC(); | |
| 43 | 54 | void readTPS(); |
| 44 | 55 | void readO2_2(); |
| 45 | 56 | void flexPulse(); |
| 57 | +uint16_t readAuxanalog(uint8_t analogPin); | |
| 58 | +uint16_t readAuxdigital(uint8_t digitalPin); | |
| 59 | +void readCLT(); | |
| 60 | +void readIAT(); | |
| 61 | +void readO2(); | |
| 62 | +void readBat(); | |
| 63 | +void readBaro(); | |
| 46 | 64 | void readExValvePosition(); //[PJSC] For External Trigger |
| 47 | 65 | |
| 48 | - | |
| 49 | 66 | #if defined(ANALOG_ISR) |
| 50 | 67 | //Analog ISR interrupt routine |
| 51 | 68 | /* |
| @@ -1,9 +1,14 @@ | ||
| 1 | 1 | #ifndef SPEEDUINO_H |
| 2 | 2 | #define SPEEDUINO_H |
| 3 | 3 | |
| 4 | -static inline unsigned int PW(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen) __attribute__((always_inline)); | |
| 5 | -static inline byte getVE(); | |
| 4 | +uint16_t PW(int REQ_FUEL, byte VE, long MAP, int corrections, int injOpen); | |
| 5 | +byte getVE(); | |
| 6 | 6 | static inline byte getVE2(); //[PJSC]Multi VE Map support |
| 7 | -static inline byte getAdvance(); | |
| 7 | +byte getAdvance(); | |
| 8 | 8 | |
| 9 | +uint16_t calculateInjector2StartAngle(unsigned int); | |
| 10 | +uint16_t calculateInjector3StartAngle(unsigned int); | |
| 11 | +uint16_t calculateInjector4StartAngle(unsigned int); | |
| 12 | +uint16_t calculateInjector4StartAngle(unsigned int); | |
| 13 | + | |
| 9 | 14 | #endif |
| @@ -2,7 +2,7 @@ | ||
| 2 | 2 | #define STORAGE_H |
| 3 | 3 | |
| 4 | 4 | void writeAllConfig(); |
| 5 | -void writeConfig(); | |
| 5 | +void writeConfig(byte); | |
| 6 | 6 | void loadConfig(); |
| 7 | 7 | void loadCalibration(); |
| 8 | 8 | void writeCalibration(); |
| @@ -56,12 +56,12 @@ | ||
| 56 | 56 | | 1441 |2 | X and Y size4 | |
| 57 | 57 | | 1443 |36 | PAGE 9 MAP4 | |
| 58 | 58 | | 1479 |6 | X and Y Bins4 | |
| 59 | -| 1500 |128 | CANBUS config and data (Table 10_) | | |
| 60 | -| 1628 |192 | Table 11 - General settings | | |
| 61 | -| 1820 |2 | X and Y sizes for VE2 table |[PJSC] | |
| 62 | -| 1822 |256 | VE Map (16x16) | | | |
| 63 | -| 2078 |16 | VE Table RPM bins | V | |
| 64 | -| 2094 |16 | VE Table MAP/TPS bins |[PJSC] | |
| 59 | +| 1500 |192 | CANBUS config and data (Table 10_) | | |
| 60 | +| 1692 |192 | Table 11 - General settings | | |
| 61 | +| 1884 |2 | X and Y sizes for VE2 table |[PJSC] | |
| 62 | +| 1886 |256 | VE Map (16x16) | | | |
| 63 | +| 2142 |16 | VE Table RPM bins | V | |
| 64 | +| 2158 |16 | VE Table MAP/TPS bins |[PJSC] | |
| 65 | 65 | | | |
| 66 | 66 | | 2559 |512 | Calibration data (O2) | |
| 67 | 67 | | 3071 |512 | Calibration data (IAT) | |
| @@ -131,15 +131,15 @@ | ||
| 131 | 131 | #define EEPROM_CONFIG8_XBINS4 1689 |
| 132 | 132 | #define EEPROM_CONFIG8_YBINS4 1695 |
| 133 | 133 | #define EEPROM_CONFIG9_START 1710 |
| 134 | -#define EEPROM_CONFIG9_END 1838 | |
| 135 | -#define EEPROM_CONFIG10_START 1838 | |
| 136 | -#define EEPROM_CONFIG10_END 2030 | |
| 137 | -#define EEPROM_CONFIG12_XSIZE 2030 //[PJSC] | |
| 138 | -#define EEPROM_CONFIG12_YSIZE 2031 // | | |
| 139 | -#define EEPROM_CONFIG12_MAP 2032 // | | |
| 140 | -#define EEPROM_CONFIG12_XBINS 2288 // | | |
| 141 | -#define EEPROM_CONFIG12_YBINS 2304 // V | |
| 142 | -#define EEPROM_CONFIG12_END 2320 //[PJSC] | |
| 134 | +#define EEPROM_CONFIG9_END 1902 | |
| 135 | +#define EEPROM_CONFIG10_START 1902 | |
| 136 | +#define EEPROM_CONFIG10_END 2094 | |
| 137 | +#define EEPROM_CONFIG12_XSIZE 2094 //[PJSC] | |
| 138 | +#define EEPROM_CONFIG12_YSIZE 2095 // | | |
| 139 | +#define EEPROM_CONFIG12_MAP 2096 // | | |
| 140 | +#define EEPROM_CONFIG12_XBINS 2352 // | | |
| 141 | +#define EEPROM_CONFIG12_YBINS 2368 // V | |
| 142 | +#define EEPROM_CONFIG12_END 2384 //[PJSC] | |
| 143 | 143 | |
| 144 | 144 | //Calibration data is stored at the end of the EEPROM (This is in case any further calibration tables are needed as they are large blocks) |
| 145 | 145 | #define EEPROM_LAST_BARO 2558 |
| @@ -3,7 +3,6 @@ | ||
| 3 | 3 | */ |
| 4 | 4 | #ifndef TABLE_H |
| 5 | 5 | #define TABLE_H |
| 6 | -#include <Arduino.h> | |
| 7 | 6 | |
| 8 | 7 | #define TABLE_RPM_MULTIPLIER 100 |
| 9 | 8 | #define TABLE_LOAD_MULTIPLIER 2 |
| @@ -0,0 +1,6 @@ | ||
| 1 | +#ifndef UPDATES_H | |
| 2 | +#define UPDATES_H | |
| 3 | + | |
| 4 | +void doUpdates(); | |
| 5 | + | |
| 6 | +#endif | |
| \ No newline at end of file |
| @@ -8,6 +8,7 @@ | ||
| 8 | 8 | |
| 9 | 9 | uint16_t freeRam (); |
| 10 | 10 | void setPinMapping(byte boardID); |
| 11 | +void initialiseTriggers(); | |
| 11 | 12 | |
| 12 | 13 | //This is dumb, but it'll do for now to get things compiling |
| 13 | 14 | #if defined(CORE_STM32) |