• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。


Commit MetaInfo

Revision24 (tree)
Time2018-09-12 01:07:37
Authormaharu

Log Message

Based on Speeduino Aug/2018 version.

Change Summary

Incremental Difference

--- branches/Ver1.00_base/reference/PJSC.ini (revision 23)
+++ branches/Ver1.00_base/reference/PJSC.ini (revision 24)
@@ -61,6 +61,22 @@
6161
6262 fuelLoadMax = scalar, U08, "", 1, 0, 0, 511, 0
6363 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
6480
6581
6682 [Constants]
@@ -116,9 +132,9 @@
116132
117133 endianness = little
118134 ;[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
120136 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]
122138
123139 ;burnCommand = "B"
124140 ;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 @@
126142 ;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"
127143
128144 ; 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
130146 ;[PJSC] pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A"
131147 ;[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"
133149 ;[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"
134150 ;[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"
135151
@@ -140,14 +156,11 @@
140156 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]
141157 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]
142158
143-;[PJSC] blockingFactor = 2048
144-;[PJSC] tableBlockingFactor = 2048
145- blockingFactor = 2238 ;[PJSC]
146- tableBlockingFactor = 2238 ;[PJSC]
159+ blockingFactor = 2048
160+ tableBlockingFactor = 2048
147161 delayAfterPortOpen=1000
148162 ;validateArrayBounds = true
149-;[PJSC] blockReadTimeout = 2000
150- blockReadTimeout = 3000 ;[PJSC]
163+ blockReadTimeout = 2000
151164 ;tsWriteBlocks = on
152165 interWriteDelay = 5 ;Ignored when tsWriteBlocks is on
153166 pageActivationDelay = 10
@@ -156,8 +169,12 @@
156169
157170 #define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
158171 #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"
161178 #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"
162179 #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"
163180 #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 @@
192209 aseCount = scalar, U08, 3, "s", 1.0, 0.0, 0.0, 255, 0
193210 wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0
194211 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)
197214 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"
198215 tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID"
199216 unused2-17 = scalar, U08, 17, "ms", 0.1, 0.0, 0.0, 25.5, 1
@@ -248,7 +265,7 @@
248265 dfcoEnabled = bits, U08, 38, [7:7], "Off", "On"
249266
250267 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
252269 flexFreqLow = scalar, U08, 41, "Hz", 1.0, 0.0, 0.0, 250.0, 0
253270 flexFreqHigh = scalar, U08, 42, "Hz", 1.0, 0.0, 0.0, 250.0, 0
254271
@@ -334,7 +351,8 @@
334351 page = 3
335352 advTable1 = array, U08, 0,[16x16], "deg", 1.0, -40, -40, 215.0, 0
336353 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 :(
338356
339357 ;--------------------------------------------------
340358 ;Start Page 4
@@ -621,7 +639,7 @@
621639 #endif
622640
623641 ;--------------------------------------------------
624-;CANBUS control (Page 9)
642+;CANBUS control and Auxillary io(Page 9)
625643 ;--------------------------------------------------
626644 page = 9
627645 #if CAN_COMMANDS
@@ -630,148 +648,230 @@
630648 enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID"
631649 #endif
632650 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
633703
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"
650704
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
668705
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"
669722
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"
670739
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"
687769
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
704774
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
733779
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-
749780 ;AFR offset for WUE VeAnalyze
750781 ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0
751782 ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0
752783
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+
775875 page = 10
776876 #if CELSIUS
777877 crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0
@@ -803,7 +903,7 @@
803903 flexFuelBins = array, U08, 51, [6], "%", 1.0, 0.0, 0.0, 250.0, 0
804904 flexFuelAdj = array, U08, 57, [6], "%", 1.0, 0.0, 0.0, 250.0, 0
805905 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
807907
808908 n2o_enable = bits , U08, 75, [0:1], "Off","1 Stage","2 stage", "INVALID"
809909 n2o_arming_pin = bits , U08, 75, [2:7], $IO_Pins_no_def
@@ -814,12 +914,11 @@
814914 #endif
815915 n2o_maxMAP = scalar, U08, 77, "kPa", 2.0, 0.0, 0.0, 511.0, 0
816916 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
818918
819-
820919 n2o_stage1_pin = bits , U08, 80, [0:5], $IO_Pins_no_def
821920 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"
823922 n2o_stage1_minRPM = scalar, U08, 81, "RPM", 100, 0.0, 1000, 10000, 0
824923 n2o_stage1_maxRPM = scalar, U08, 82, "RPM", 100, 0.0, 1000, 10000, 0
825924 n2o_stage1_adderMin = scalar, U08, 83, "ms", 0.1, 0, 0, 25.5, 1
@@ -827,7 +926,7 @@
827926 n2o_stage1_retard = scalar, U08, 85, "Deg", 1.0, 0.0, 0.0, 250.0, 0
828927
829928 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"
831930 n2o_stage2_minRPM = scalar, U08, 87, "RPM", 100, 0.0, 1000, 10000, 0
832931 n2o_stage2_maxRPM = scalar, U08, 88, "RPM", 100, 0.0, 1000, 10000, 0
833932 n2o_stage2_adderMin = scalar, U08, 89, "ms", 0.1, 0, 0, 32, 1
@@ -834,9 +933,36 @@
834933 n2o_stage2_adderMax = scalar, U08, 90, "ms", 0.1, 0, 0, 32, 1
835934 n2o_stage2_retard = scalar, U08, 91, "Deg", 1.0, 0.0, 0.0, 250.0, 0
836935
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"
837939
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"
839944
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+
840966 ;--------------------------------------------------
841967 ;Page 12 is the fuel map and axis bins only [PJSC]
842968 ;--------------------------------------------------
@@ -844,9 +970,9 @@
844970 ; name = bits, type, offset, bits
845971 ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits
846972 ; 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
850976
851977 ;-------------------------------------------------------------------------------
852978
@@ -889,6 +1015,10 @@
8891015 requiresPowerCycle = n2o_enable
8901016 requiresPowerCycle = n2o_arming_pin
8911017 requiresPowerCycle = n2o_pin_polarity
1018+ requiresPowerCycle = knock_mode
1019+ requiresPowerCycle = knock_pin
1020+ requiresPowerCycle = knock_trigger
1021+ requiresPowerCycle = knock_pullup
8921022 requiresPowerCycle = pjscFreq ;[PJSC]
8931023 requiresPowerCycle = squirtDeviceType ; |
8941024 requiresPowerCycle = multiVEmapEnabled ; |
@@ -910,7 +1040,7 @@
9101040 defaultValue = inj3Ang, 355
9111041 defaultValue = inj4Ang, 355
9121042 defaultValue = nInjectors, 4
913- defaultValue = dutyLim, 100
1043+ defaultValue = dutyLim, 80
9141044 defaultValue = mapMin, 10
9151045 defaultValue = mapMax, 260
9161046 defaultValue = baroMin 10
@@ -1014,6 +1144,22 @@
10141144
10151145 controllerPriority = bootloaderCaps
10161146
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
10171163
10181164 [Menu]
10191165
@@ -1069,11 +1215,12 @@
10691215 subMenu = stagingTableDialog, "Staged Injection", 10, { nCylinders <= 4 } ; Can't do staging on more than 4 cylinder engines
10701216
10711217 ;[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"
10751221 ;[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"
10771224 ;[PJSC] subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 }
10781225
10791226 menu = "&Starting/Idle"
@@ -1121,7 +1268,7 @@
11211268 subMenu = tacho, "Tacho Output", { muxout1selection == 7 || muxout2selection == 7 } ;[PJSC v1.10] For MUX selection
11221269
11231270 subMenu = std_separator ;[PJSC]
1124- subMenu = inputPortSetting, "Input Port Setting" ; |
1271+ subMenu = inputPortSetting, "Input Port Setting" ;[PJSC]
11251272
11261273 subMenu = std_separator
11271274
@@ -1128,11 +1275,13 @@
11281275 #if CAN_COMMANDS
11291276 subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface"
11301277 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"
11321280 ;subMenu = std_separator
11331281 ;subMenu = Canout_config, "Canbus Output Configuration"
11341282 #else
11351283 subMenu = serial3IO, "Secondary Serial IO Interface"
1284+ subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
11361285 #endif
11371286
11381287 menuDialog = main
@@ -1189,7 +1338,7 @@
11891338 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"
11901339 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!)"
11911340 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"
11931342 FixAng = "Timing will be locked at this value if the above is enabled"
11941343
11951344 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 @@
12531402 true_address = "This is the 11bit Can address of the Speeduino ECU "
12541403 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"
12551404 ;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 "
12721437 caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0"
12731438 caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1"
12741439 caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2"
@@ -1395,15 +1560,15 @@
13951560
13961561 dialog = captExValveSetting, "Capture Exhaust Valve Position Control" ;[PJSC]
13971562 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
14071572 field = "Duty pulse ON Level ch2", dutyPulseOnLevel2 ;[PJSC]
14081573
14091574 dialog = analogInputPort1select, "" ;[PJSC v1.10]
@@ -1450,7 +1615,7 @@
14501615 panel = digitalInputPort2 ; V
14511616 panel = digitalInputPort3 ;[PJSC v1.10]
14521617
1453-# Flex fuel stuff
1618+; Flex fuel stuff
14541619 dialog = flexFuelSettings, "", yAxis
14551620 field = "Flex Fuel Sensor ", flexEnabled
14561621 field = "Low (E0) ", flexFreqLow, { flexEnabled }
@@ -1474,6 +1639,47 @@
14741639 panel = flexFuelSettings, North
14751640 panel = flexCurves, South
14761641
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+
14771683 dialog = tacho, "Tacho"
14781684 field = "Output pin", tachoPin
14791685 field = "Output speed", tachoDiv
@@ -1542,18 +1748,17 @@
15421748 panel = veTable1Dialog_north, North ;[PJSC]
15431749 panel = veTable1Dialog_south, South ;[PJSC]
15441750
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]
15551761
1556-
15571762 dialog = injChars, "Injector Characteristics"
15581763 field = "Squirt Device", squirtDeviceType ;[PJSC]
15591764 field = "PJSC solenoid freq.", pjscFreq, { squirtDeviceType == 1 } ;[PJSC]
@@ -1685,16 +1890,19 @@
16851890 field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) }
16861891 field = "Trigger Filter", TrigFilter
16871892 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
16911893
16921894 ;[PJSC] dialog = sparkSettings,"Spark Settings",4
1895+;[PJSC] field = "Ignition load source", ignAlgorithm
16931896 ;[PJSC] field = "Spark output mode", sparkMode
16941897 ;[PJSC] field = "Cranking advance Angle", CrankAng
16951898 ;[PJSC] field = "Spark Outputs triggers", IgInv
16961899 ;[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
16981906
16991907 ;[PJSC] dialog = dwellSettings, "Dwell Settings", 4
17001908 ;[PJSC] topicHelp = "http://speeduino.com/wiki/index.php/Dwell"
@@ -1952,72 +2160,72 @@
19522160 commandButton = "Stop Test Mode", cmdStopTestMode,{testactive}, clickOnCloseIfEnabled
19532161
19542162 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]
19612169 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]
19682176 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]
19752183 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]
19822190
19832191 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
19882196
19892197 ;[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}
19932201 ;[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}
19972205 ;[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}
20012209 ;[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}
20052213
20062214 ;[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
20112219
20122220 ;[PJSC v1.10] dialog = outputtest1,"Test Output Hardware"
20132221 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+
20212229 ;[PJSC v1.10] For test mode - outputs pulse =========================================================================
20222230 dialog = outputTestbuttons1a, "", xAxis
20232231 ;commandButton = "Label Text", command, { Enabled Condition }, optionalFlags
@@ -2078,6 +2286,25 @@
20782286
20792287 ;[PJSC v1.10] For test mode - outputs pulse =========================================================================
20802288
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+
20812308 dialog = caninput_sel, ""
20822309 ;CAN inputs
20832310 field = " CAN Input Channel on/off"
@@ -2100,82 +2327,103 @@
21002327
21012328 dialog = caninput_parameter_group, "", yAxis
21022329 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 }
21192346
21202347 dialog = caninput_parameter_start_byte, "", yAxis
21212348 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 }
21382365
21392366 dialog = caninput_parameter_num_byte, "", yAxis
21402367 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 }
21572384
21582385 dialog = caninconfig_blank1,""
21592386 field = ""
21602387
21612388 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
21692398
21702399 dialog = Canin_config2, "External Data Input"
2171- field = "Enable External data input", enable_candata_in
2400+ field = "Enable External data input", enable_candata_in
21722401
21732402 dialog = Canin_config, "", border
21742403 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
21792427 ;CAN outputs
21802428 field = "CAN Output Channel on/off"
21812429 field = "CAN Output 0", canoutput_sel0, { enable_candata_out}
@@ -2256,13 +2504,15 @@
22562504 field = ""
22572505
22582506 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
22662516
22672517 dialog = Canout_config2, "CAN Data Out"
22682518 field = "Enable CanBus data Output", enable_candata_out
@@ -2269,16 +2519,16 @@
22692519
22702520 dialog = Canout_config, "", border
22712521 topicHelp = ""
2272- panel = Canout_config2, North
2273- panel = Canout_config1, South
2522+ panel = Canout_config2, North
2523+ panel = Canout_config1, South
22742524
22752525 dialog = can_serial3IO, "CanBus/Serial3 IO interface"
22762526 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
22782528 ; 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}
22822532 ; field = "Speeduino OBD address", obd_address
22832533
22842534 dialog = serial3IO, "Serial3 IO interface"
@@ -2290,6 +2540,116 @@
22902540 field = "Control Type", resetControl
22912541 field = "Control Pin", resetControlPin
22922542
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+
22932653 ;-------------------------------------------------------------------------------
22942654 ; General help text
22952655
@@ -2486,7 +2846,7 @@
24862846
24872847 curve = flex_adv_curve, "Flex Timing Advance"
24882848 columnLabel = "Ethanol", "Advance"
2489- xAxis = 0, 100, 10
2849+ xAxis = 0, 100, 10
24902850 yAxis = 0, 50, 5
24912851 xBins = flexAdvBins, flex
24922852 yBins = flexAdvAdj
@@ -2494,12 +2854,29 @@
24942854
24952855 curve = flex_boost_curve, "Flex Boost Adjustments"
24962856 columnLabel = "Ethanol", "Boost"
2497- xAxis = 0, 100, 10
2857+ xAxis = 0, 100, 10
24982858 yAxis = -100, 200, 5
24992859 xBins = flexBoostBins, flex
25002860 yBins = flexBoostAdj
25012861 size = 400, 200
25022862
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+
25032880 [TableEditor]
25042881 ; table_id, map3d_id, "title", page
25052882 table = veTable1Tbl, veTable1Map, "VE Table", 1
@@ -2516,11 +2893,12 @@
25162893
25172894 table = sparkTbl, sparkMap, "Ignition Advance Table", 3
25182895 xBins = rpmBins2, rpm
2519- yBins = ignLoadBins, ignLoad
2896+ ;yBins = ignLoadBins, ignLoad
2897+ yBins = mapBins1, ignLoad
25202898 xyLabels = "RPM", "Ignition Load: "
25212899 zBins = advTable1
25222900 gridHeight = 3.0
2523- upDownLabel = "ADVANCED", "RETARDED"
2901+ upDownLabel = "ADVANCING", "RETARDING"
25242902
25252903 ;table = afrTbl, afrTableMap, "AFR Table", 5
25262904 table = afrTable1Tbl, afrTable1Map, "AFR Table", 5
@@ -2660,37 +3038,37 @@
26603038 ; ld = Label decimal places for display of Lo and Hi, above.
26613039
26623040 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
26673045
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
26723050 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
26803058
26813059 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
26873065
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
26903068
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
26943072 exValvePosGauge = valvePosition, "Exhaust Valve Position", "%open", 0, 100, -1, 1, 90, 100, 0, 0 ;[PJSC]For External Trigger
26953073 exValveADCGauge = valvePositionADC, "Exhaust Valve ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 ;[PJSC]For External Trigger
26963074 exSparkGauge = sparkedAngle, "Sparked Angle", "deg BTDC", -20, 60, -10, 0, 45, 50, 0, 0 ;[PJSC]For External Trigger
@@ -2702,42 +3080,40 @@
27023080 injcountGauge = testCnt, "Injection Count", "pulses", 0, 1000, 65535, 65535,65535, 65535,0, 0 ;[PJSC v1.10] For test mode
27033081
27043082 #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
27073085 #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
27103088 #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
27123090
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
27323108
27333109 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
27413117 ;-------------------------------------------------------------------------------
27423118
27433119 [FrontPage]
@@ -2750,12 +3126,12 @@
27503126
27513127 gauge1 = tachometer
27523128 gauge2 = throttleGauge
2753- gauge3 = mapGauge
2754- gauge4 = pulseWidthGauge
2755- gauge5 = afrGauge
3129+ gauge3 = pulseWidthGauge
3130+ gauge4 = dutyCycleGauge
3131+ gauge5 = mapGauge
27563132 gauge6 = iatGauge
27573133 gauge7 = cltGauge
2758- gauge8 = batteryVoltage
3134+ gauge8 = gammaEnrichGauge
27593135
27603136 ;----------------------------------------------------------------------------
27613137 ; Indicators
@@ -2790,34 +3166,34 @@
27903166 ; you change it.
27913167
27923168 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
27953171
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
28213197 afr = scalar, U08, 10, "O2", 0.100, 0.000
28223198 egoCorrection = scalar, U08, 11, "%", 1.000, 0.000
28233199 airCorrection = scalar, U08, 12, "%", 1.000, 0.000
@@ -2836,68 +3212,71 @@
28363212 boostTarget = scalar, U08, 29, "kPa", 2.000, 0.000
28373213 boostDuty = scalar, U08, 30, "%", 1.000, 0.000
28383214 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
28513227
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]
28783255 pulseWidth2 = scalar, U16, 75, "ms", 0.001, 0.000
28793256 pulseWidth3 = scalar, U16, 77, "ms", 0.001, 0.000
28803257 pulseWidth4 = scalar, U16, 79, "ms", 0.001, 0.000
28813258 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
28883265 nIgnChannels = bits, U08, 84, [0:3]
28893266 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]
29013280
29023281
29033282 #if CELSIUS
@@ -3000,6 +3379,7 @@
30003379 entry = idleLoad, "IAC value", int, "%d"
30013380 entry = baro, "Baro Pressure",int, "%d"
30023381 entry = nitrousOn, "Nitrous On", int, "%d", { n2o_enable > 0 }
3382+ entry = syncLossCounter, "Sync Loss #", int, "%d"
30033383 entry = valvePosition, "ExValve Pos", int, "%d", { exValveCaptureEnabled } ;[PJSC]
30043384 entry = sparkedAngle, "Spark Angle", int, "%d", { exTrigModeSelect == 1 } ;[PJSC]
30053385 entry = dutyFreq, "Duty Frequency", int, "%d", { dutyPulseCaptureEnabled } ;[PJSC]
@@ -3007,16 +3387,14 @@
30073387 entry = dutyFreq2, "Duty Frequency2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC]
30083388 entry = dutyRatio2, "Duty Ratio2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC]
30093389
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"
30203398
30213399
30223400 [LoggerDefinition]
@@ -3034,7 +3412,7 @@
30343412 recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes
30353413
30363414 ;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"
30383416
30393417
30403418 [Tools]
--- branches/Ver1.00_base/speeduino/auxiliaries.h (revision 23)
+++ branches/Ver1.00_base/speeduino/auxiliaries.h (revision 24)
@@ -3,9 +3,12 @@
33
44 void initialiseAuxPWM();
55 void boostControl();
6+void boostDisable();
7+void idleControl();
68 void vvtControl();
79 void initialiseFan();
810 void nitrousControl();
11+void fanControl();
912
1013 #if defined(CORE_AVR)
1114 #define ENABLE_BOOST_TIMER() TIMSK1 |= (1 << OCIE1A)
@@ -88,6 +91,9 @@
8891 long boost_cl_target_boost;
8992 byte boostCounter;
9093
94+byte fanHIGH = HIGH; // Used to invert the cooling fan output
95+byte fanLOW = LOW; // Used to invert the cooling fan output
96+
9197 volatile bool vvt_pwm_state;
9298 unsigned int vvt_pwm_max_count; //Used for variable PWM frequency
9399 volatile unsigned int vvt_pwm_cur_value;
--- branches/Ver1.00_base/speeduino/comms.h (revision 23)
+++ branches/Ver1.00_base/speeduino/comms.h (revision 24)
@@ -14,8 +14,8 @@
1414 #define ve2MapPage 11 //[PJSC] Config Page 11
1515 #define ve2SetPage 12 //[PJSC] Config Page 12
1616
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
1919
2020 byte currentPage = 1;//Not the same as the speeduino config page numbers
2121 bool isMap = true;
--- branches/Ver1.00_base/speeduino/corrections.h (revision 23)
+++ branches/Ver1.00_base/speeduino/corrections.h (revision 24)
@@ -29,9 +29,14 @@
2929 static inline int8_t correctionNitrous(int8_t);
3030 static inline int8_t correctionSoftLaunch(int8_t);
3131 static inline int8_t correctionSoftFlatShift(int8_t);
32+static inline int8_t correctionKnock(int8_t);
3233
3334 uint16_t correctionsDwell(uint16_t dwell);
3435
3536 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
3641
3742 #endif // CORRECTIONS_H
--- branches/Ver1.00_base/speeduino/crankMaths.h (revision 23)
+++ branches/Ver1.00_base/speeduino/crankMaths.h (revision 24)
@@ -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
53
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
--- branches/Ver1.00_base/speeduino/decoders.h (revision 23)
+++ branches/Ver1.00_base/speeduino/decoders.h (revision 24)
@@ -1,33 +1,146 @@
11 #ifndef DECODERS_H
22 #define DECODERS_H
33
4-#include <limits.h>
5-
64 #if defined(CORE_AVR)
75 #define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? true : false)
86 #define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? true : false)
9-#elif defined(CORE_TEENSY) || defined(CORE_STM32)
7+#else
108 #define READ_PRI_TRIGGER() digitalRead(pinTrigger)
119 #define READ_SEC_TRIGGER() digitalRead(pinTrigger2)
1210 #endif
1311
1412 static inline void addToothLogEntry(unsigned long);
15-static inline uint16_t stdGetRPM(uint16_t degreesOver);
13+static inline uint16_t stdGetRPM(uint16_t);
1614 static inline void setFilter(unsigned long);
1715 static inline int crankingGetRPM(byte);
18-static inline void doPerToothTiming(uint16_t crankAngle);
16+//static inline void doPerToothTiming(uint16_t);
1917
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
2025 void triggerSetup_missingTooth();
2126 void triggerPri_missingTooth();
2227 void triggerSec_missingTooth();
2328 uint16_t getRPM_missingTooth();
24-int getCrankAngle_missingTooth(int timePerDegree);
29+int getCrankAngle_missingTooth();
30+void triggerSetEndTeeth_missingTooth();
31+
2532 void triggerSetup_DualWheel();
2633 void triggerPri_DualWheel();
2734 void triggerSec_DualWheel();
2835 uint16_t getRPM_DualWheel();
29-int getCrankAngle_DualWheel(int timePerDegree);
36+int getCrankAngle_DualWheel();
37+void triggerSetEndTeeth_DualWheel();
3038
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+
31144 void captureExtTrigger(); //[PJSC] For External Trigger
32145 void captureDutyPulseONtime(); //[PJSC] For capturing duty pulse
33146 void captureDutyPulseOFFtime(); //[PJSC] For capturing duty pulse
@@ -56,9 +169,6 @@
56169 volatile unsigned long toothOneTime = 0; //The time (micros()) that tooth 1 last triggered
57170 volatile unsigned long toothOneMinusOneTime = 0; //The 2nd to last time (micros()) that tooth 1 last triggered
58171 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
62172
63173 volatile unsigned int secondaryToothCount; //Used for identifying the current secondary (Usually cam) tooth for patterns with multiple secondary teeth
64174 volatile unsigned long secondaryLastToothTime = 0; //The time (micros()) that the last tooth was registered (Cam input)
@@ -66,15 +176,18 @@
66176
67177 volatile int triggerActualTeeth;
68178 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
70180 unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION
71181 volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth
72182 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
74184 bool decoderIsSequential; //Whether or not the decoder supports sequential operation
75185 bool decoderIsLowRes = false; //Is set true, certain extra calculations are performed for better timing accuracy
76186 bool decoderHasFixedCrankingTiming = false; //Whether or not the decoder supports fixed cranking timing
77187 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
78191
79192 int16_t ignition1EndTooth = 0;
80193 int16_t ignition2EndTooth = 0;
--- branches/Ver1.00_base/speeduino/globals.h (revision 23)
+++ branches/Ver1.00_base/speeduino/globals.h (revision 24)
@@ -18,6 +18,7 @@
1818 #elif defined(CORE_TEENSY)
1919 #define BOARD_DIGITAL_GPIO_PINS 34
2020 #define BOARD_NR_GPIO_PINS 34
21+
2122 #elif defined(STM32_MCU_SERIES) || defined(ARDUINO_ARCH_STM32) || defined(__STM32F1__) || defined(STM32F4) || defined(STM32)
2223 #define CORE_STM32
2324 #ifndef word
@@ -190,6 +191,10 @@
190191 #define NITROUS_STAGE1 1
191192 #define NITROUS_STAGE2 2
192193
194+#define KNOCK_MODE_OFF 0
195+#define KNOCK_MODE_DIGITAL 1
196+#define KNOCK_MODE_ANALOG 2
197+
193198 #define RESET_CONTROL_DISABLED 0
194199 #define RESET_CONTROL_PREVENT_WHEN_RUNNING 1
195200 #define RESET_CONTROL_PREVENT_ALWAYS 2
@@ -216,8 +221,8 @@
216221
217222 const byte data_structure_version = 2; //This identifies the data structure when reading / writing.
218223 //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]
221226 //const byte page11_size = 128;
222227 #define MAP_PAGE_SIZE 288
223228
@@ -261,6 +266,8 @@
261266 struct table2D flexFuelTable; //6 bin flex fuel correction table for fuel adjustments (2D)
262267 struct table2D flexAdvTable; //6 bin flex fuel correction table for timing advance (2D)
263268 struct table2D flexBoostTable; //6 bin flex fuel correction table for boost adjustments (2D)
269+struct table2D knockWindowStartTable;
270+struct table2D knockWindowDurationTable;
264271
265272 //These are for the direct port manipulation of the injectors, coils and aux outputs
266273 volatile byte *inj1_pin_port;
@@ -328,10 +335,23 @@
328335 int ignition4EndAngle = 0;
329336 int ignition5EndAngle = 0;
330337
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;
332341 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)
333342 volatile unsigned long timer5_overflow_count = 0; //Increments every time counter 5 overflows. Used for the fast version of micros()
334343 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+
335355
336356 //This needs to be here because using the config page directly can prevent burning the setting
337357 byte resetControl = RESET_CONTROL_DISABLED;
@@ -350,7 +370,8 @@
350370 long MAP; //Has to be a long for PID calcs (Boost control)
351371 int16_t EMAP;
352372 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
354375 byte TPS; //The current TPS reading (0% - 100%)
355376 byte TPSlast; //The previous TPS reading
356377 unsigned long TPS_time; //The time the TPS sample was taken
@@ -381,7 +402,7 @@
381402 byte iatCorrection; //The amount of inlet air temperature adjustment currently being applied
382403 byte launchCorrection; //The amount of correction being applied if launch control is active
383404 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
385406 byte afrTarget;
386407 byte idleDuty;
387408 bool idleUpActive;
@@ -408,7 +429,7 @@
408429 uint16_t freeRAM;
409430 unsigned int clutchEngagedRPM;
410431 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.
412433 uint16_t boostTarget;
413434 byte testOutputs;
414435 bool testActive;
@@ -424,6 +445,10 @@
424445 byte nChannels; //Number of fuel and ignition channels
425446 int16_t fuelLoad;
426447 int16_t ignLoad;
448+ bool fuelPumpOn; //The current status of the fuel pump
449+ byte syncLossCounter;
450+ byte knockRetard;
451+ bool knockActive;
427452 byte exValvePosition; //[PJSC] For External Trigger
428453 byte exValvePositionADC; //[PJSC] For External Trigger
429454 int extTriggerAngle; //[PJSC] For External Trigger
@@ -766,12 +791,12 @@
766791 struct config9 {
767792 byte enable_canbus:2;
768793 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
770795 uint16_t caninput_source_can_address[16]; //u16 [15] array holding can address of input
771796 uint8_t caninput_source_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7)
772797 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;
775800 byte enable_candata_out : 1;
776801 byte canoutput_sel[8];
777802 uint16_t canoutput_param_group[8];
@@ -778,34 +803,58 @@
778803 uint8_t canoutput_param_start_byte[8];
779804 byte canoutput_param_num_bytes[8];
780805
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;
784810 byte speeduino_tsCanId:4; //speeduino TS canid (0-14)
785811 uint16_t true_address; //speeduino 11bit can address
786812 uint16_t realtime_base_address; //speeduino 11 bit realtime base address
787813 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+
809858 #if defined(CORE_AVR)
810859 };
811860 #else
@@ -840,7 +889,7 @@
840889 uint8_t flexFuelBins[6];
841890 uint8_t flexFuelAdj[6]; //Fuel % @ current ethanol (typically 100% @ 0%, 163% @ 100%)
842891 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!
844893 //And another three corn rows die.
845894
846895 byte n2o_enable : 2;
@@ -867,8 +916,33 @@
867916 byte n2o_stage2_adderMax;
868917 byte n2o_stage2_retard;
869918
870- byte unused11_75_191[99];
919+ byte knock_mode : 2;
920+ byte knock_pin : 6;
871921
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+
872946 #if defined(CORE_AVR)
873947 };
874948 #else
--- branches/Ver1.00_base/speeduino/maths.h (revision 23)
+++ branches/Ver1.00_base/speeduino/maths.h (revision 24)
@@ -3,6 +3,9 @@
33
44 int fastMap1023toX(int, int);
55 unsigned long percentage(byte, unsigned long);
6+inline long powint(int, unsigned int);
7+int divs100(long);
8+unsigned long divu100(unsigned long);
69
710 #define DIV_ROUND_CLOSEST(n, d) ((((n) < 0) ^ ((d) < 0)) ? (((n) - (d)/2)/(d)) : (((n) + (d)/2)/(d)))
811
--- branches/Ver1.00_base/speeduino/scheduledIO.h (revision 23)
+++ branches/Ver1.00_base/speeduino/scheduledIO.h (revision 24)
@@ -33,7 +33,13 @@
3333 inline void endTrailingCoilCharge1();
3434 inline void endTrailingCoilCharge2();
3535
36+//And the combined versions of the above for simplicity
37+void beginCoil1and3Charge();
38+void endCoil1and3Charge();
39+void beginCoil2and4Charge();
40+void endCoil2and4Charge();
3641
42+
3743 #define openInjector1() *inj1_pin_port |= (inj1_pin_mask); BIT_SET(currentStatus.status1, BIT_STATUS1_INJ1)
3844 #define closeInjector1() *inj1_pin_port &= ~(inj1_pin_mask); BIT_CLEAR(currentStatus.status1, BIT_STATUS1_INJ1)
3945 #define openInjector2() *inj2_pin_port |= (inj2_pin_mask); BIT_SET(currentStatus.status1, BIT_STATUS1_INJ2)
@@ -61,4 +67,18 @@
6167 #define openInjector3and5() openInjector3(); openInjector5()
6268 #define closeInjector3and5() closeInjector3(); closeInjector5()
6369
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+
6484 #endif
--- branches/Ver1.00_base/speeduino/scheduler.h (revision 23)
+++ branches/Ver1.00_base/speeduino/scheduler.h (revision 24)
@@ -25,6 +25,7 @@
2525 #ifndef SCHEDULER_H
2626 #define SCHEDULER_H
2727
28+#define USE_IGN_REFRESH
2829 #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
2930 #if defined(CORE_AVR)
3031 #include <avr/interrupt.h>
@@ -446,13 +447,14 @@
446447 unsigned int nextStartCompare;
447448 unsigned int nextEndCompare;
448449 volatile bool hasNextSchedule = false;
450+ volatile bool endScheduleSetByDecoder = false;
449451 #if defined(CORE_AVR)
450452 volatile uint16_t * counter;
451453 volatile uint16_t * compare;
452-#elif defined(CORE_STM32) || defined(CORE_TEENSY)
454+#else
453455 volatile uint32_t * counter;
454456 volatile uint32_t * compare;
455- #endif
457+#endif
456458 };
457459
458460 volatile Schedule *timer3Aqueue[4];
--- branches/Ver1.00_base/speeduino/sensors.h (revision 23)
+++ branches/Ver1.00_base/speeduino/sensors.h (revision 24)
@@ -3,7 +3,6 @@
33
44 #include "Arduino.h"
55
6-
76 // The following are alpha values for the ADC filters.
87 // Their values are from 0 to 255 with 0 being no filtering and 255 being maximum
98 #define ADCFILTER_TPS 128
@@ -17,6 +16,9 @@
1716 #define BARO_MIN 87
1817 #define BARO_MAX 108
1918
19+#define KNOCK_MODE_DIGITAL 1
20+#define KNOCK_MODE_ANALOG 2
21+
2022 /*
2123 #if defined(CORE_AVR)
2224 #define ANALOG_ISR
@@ -24,13 +26,21 @@
2426 */
2527
2628 volatile byte flexCounter = 0;
29+volatile byte knockCounter = 0;
30+volatile uint16_t knockAngle;
2731 volatile int AnChannel[15];
2832
2933 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)
3034 unsigned long EMAPrunningValue; //As above but for EMAP
3135 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;
3338
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+
3444 /*
3545 * Simple low pass IIR filter macro for the analog inputs
3646 * This is effectively implementing the smooth filter from http://playground.arduino.cc/Main/Smooth
@@ -40,12 +50,19 @@
4050
4151 static inline void instanteneousMAPReading() __attribute__((always_inline));
4252 static inline void readMAP() __attribute__((always_inline));
53+void initialiseADC();
4354 void readTPS();
4455 void readO2_2();
4556 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();
4664 void readExValvePosition(); //[PJSC] For External Trigger
4765
48-
4966 #if defined(ANALOG_ISR)
5067 //Analog ISR interrupt routine
5168 /*
--- branches/Ver1.00_base/speeduino/speeduino.h (revision 23)
+++ branches/Ver1.00_base/speeduino/speeduino.h (revision 24)
@@ -1,9 +1,14 @@
11 #ifndef SPEEDUINO_H
22 #define SPEEDUINO_H
33
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();
66 static inline byte getVE2(); //[PJSC]Multi VE Map support
7-static inline byte getAdvance();
7+byte getAdvance();
88
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+
914 #endif
--- branches/Ver1.00_base/speeduino/storage.h (revision 23)
+++ branches/Ver1.00_base/speeduino/storage.h (revision 24)
@@ -2,7 +2,7 @@
22 #define STORAGE_H
33
44 void writeAllConfig();
5-void writeConfig();
5+void writeConfig(byte);
66 void loadConfig();
77 void loadCalibration();
88 void writeCalibration();
@@ -56,12 +56,12 @@
5656 | 1441 |2 | X and Y size4 |
5757 | 1443 |36 | PAGE 9 MAP4 |
5858 | 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]
6565 | |
6666 | 2559 |512 | Calibration data (O2) |
6767 | 3071 |512 | Calibration data (IAT) |
@@ -131,15 +131,15 @@
131131 #define EEPROM_CONFIG8_XBINS4 1689
132132 #define EEPROM_CONFIG8_YBINS4 1695
133133 #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]
143143
144144 //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)
145145 #define EEPROM_LAST_BARO 2558
--- branches/Ver1.00_base/speeduino/table.h (revision 23)
+++ branches/Ver1.00_base/speeduino/table.h (revision 24)
@@ -3,7 +3,6 @@
33 */
44 #ifndef TABLE_H
55 #define TABLE_H
6-#include <Arduino.h>
76
87 #define TABLE_RPM_MULTIPLIER 100
98 #define TABLE_LOAD_MULTIPLIER 2
--- branches/Ver1.00_base/speeduino/updates.h (nonexistent)
+++ branches/Ver1.00_base/speeduino/updates.h (revision 24)
@@ -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
--- branches/Ver1.00_base/speeduino/utils.h (revision 23)
+++ branches/Ver1.00_base/speeduino/utils.h (revision 24)
@@ -8,6 +8,7 @@
88
99 uint16_t freeRam ();
1010 void setPinMapping(byte boardID);
11+void initialiseTriggers();
1112
1213 //This is dumb, but it'll do for now to get things compiling
1314 #if defined(CORE_STM32)