diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..7674f8a4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,18 @@ +# Set the default behavior, in case people don't have core.autocrlf set. +* text=auto + +*.ino text eol=lf +*.h text eol=lf +*.c text eol=lf +*.ini text eol=lf +*.msq text eol=lf + +# Denote all files that are truly binary and should not be modified. +*.png binary +*.jpg binary +*.dll binary +*.fzz binary +*.xls binary + + +*.pdf -text diff --git a/.gitignore b/.gitignore index 52197162..03a043d1 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ reference/hardware/v0.4/gerbers/Archive.zip .project .vscode .build +.kicad_pcb-bak diff --git a/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/SpeedyMAP.ino b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/SpeedyMAP.ino new file mode 100644 index 00000000..106c7078 --- /dev/null +++ b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/SpeedyMAP.ino @@ -0,0 +1,111 @@ +#include +#include +#include "globals.h" +#include "comms.h" + +uint16_t map1_adc, map2_adc, map3_adc, map4_adc; +uint16_t map5_adc, map6_adc, map7_adc, map8_adc; +uint16_t currentMAP, map1, map2, map3, map4; //These values are all stored in kPa x 8 for 1 point of extra precision. They are the instantaneous values +uint16_t map1_min, map2_min, map3_min, map4_min; //As above, but represent the minimum reading for each sensor within the current cycle + +byte currentLowestCylinder; +uint16_t cycle_count = 0; +unsigned long cycleStartTime; + +bool serialStream = false; + +void setup() { + //This sets the ADC (Analog to Digitial Converter) to run at 1Mhz, greatly reducing analog read times (MAP/TPS) when using the standard analogRead() function + //1Mhz is the fastest speed permitted by the CPU without affecting accuracy + //Please see chapter 11 of 'Practical Arduino' (http://books.google.com.au/books?id=HsTxON1L6D4C&printsec=frontcover#v=onepage&q&f=false) for more detail + BIT_SET(ADCSRA,ADPS2); + BIT_CLEAR(ADCSRA,ADPS1); + BIT_CLEAR(ADCSRA,ADPS0); + + Serial.begin(115200); + + //Setup for the MCP4921 SPI + SPI.begin(); + SPI.setBitOrder(MSBFIRST); + SPI.setClockDivider(SPI_CLOCK_DIV4); //Probably need to speed this up + pinMode(pinChipSelect, OUTPUT); + digitalWrite(pinChipSelect, HIGH); + + //Configure Timer2 for our 1ms interrupt code. + TCCR2B = 0x00; //Disbale Timer2 while we set it up + TCNT2 = 131; //Preload timer2 with 131 cycles, leaving 125 till overflow. As the timer runs at 125Khz, this causes overflow to occur at 1Khz = 1ms + TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag + TIMSK2 = 0x01; //Timer2 Set Overflow Interrupt enabled. + TCCR2A = 0x00; //Timer2 Control Reg A: Wave Gen Mode normal + /* Now configure the prescaler to CPU clock divided by 128 = 125Khz */ + TCCR2B |= (1<= SERIAL_BUFFER_THRESHOLD) { command(); } + if(serialStream == true && Serial.availableForWrite() ) { sendCSV(); } //If serialStream is enabled and the serial write buffer isn't full, the current map values are sent continually as CSV + + //Read each of the 4 sensors and map them using the calibration values (Results in map1 value in kPa etc) + map1_adc = analogRead(pinMAP1); + map1_adc = analogRead(pinMAP1); + map1 = fastMap10BitX8(map1_adc, MPX2450_min, MPX2450_max); + + map2_adc = analogRead(pinMAP2); + map2_adc = analogRead(pinMAP2); + map2 = fastMap10BitX8(map2_adc, MPX2450_min, MPX2450_max); + + map3_adc = analogRead(pinMAP3); + map3_adc = analogRead(pinMAP3); + map3 = fastMap10BitX8(map3_adc, MPX2450_min, MPX2450_max); + + map4_adc = analogRead(pinMAP4); + map4_adc = analogRead(pinMAP4); + map4 = fastMap10BitX8(map4_adc, MPX2450_min, MPX2450_max); + + //Find the lowest current value + byte tempLowestCylinder = 1; + currentMAP = map1; + if(map2 < currentMAP) { currentMAP = map2; tempLowestCylinder = 2; } + if(map3 < currentMAP) { currentMAP = map3; tempLowestCylinder = 3; } + if(map4 < currentMAP) { currentMAP = map4; tempLowestCylinder = 4; } + + //Check if we're starting a new cycle yet + //This is determined to be when sensor 1 has the lowest reading, but only if the previous lowest reading was on another cylinder + //Note that this is only really accurate for determining that a new cycle has started. RPM readings based on it will bounce around by a few 100 + if( tempLowestCylinder == 1 && currentLowestCylinder != 1) + { + cycle_count++; + currentLowestCylinder = tempLowestCylinder; + cycleStartTime = micros(); + } + + + //Set the DAC output value from the above + setDAC(); +} + +static inline void setDAC() +{ + + byte outputValueByte0, outputValueByte1; + + outputValue = map(currentMAP, 0, 2048, 0, 4095); //The MAP readings have been multiplied by 8 for better resolution. The 2048 brings them back into an 8 bit (256) range equivalent + outputValueByte0 = byte(outputValue); + outputValue = outputValue >> 8; + outputValueByte1 = byte(outputValue | 0b00110000); //Combines the remaining part of the + + CS_PIN_LOW(); + SPI.transfer(outputValueByte1); + SPI.transfer(outputValueByte0); + CS_PIN_HIGH(); +} diff --git a/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/comms.h b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/comms.h new file mode 100644 index 00000000..c1cd7659 --- /dev/null +++ b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/comms.h @@ -0,0 +1,6 @@ +#define SERIAL_BUFFER_THRESHOLD 1 +byte cmdPending = false; +byte currentCommand; + +void command();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable. +void sendCSV(); diff --git a/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/comms.ino b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/comms.ino new file mode 100644 index 00000000..e09c3350 --- /dev/null +++ b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/comms.ino @@ -0,0 +1,44 @@ + + +void command() +{ + + if (cmdPending == false) { currentCommand = Serial.read(); } + + switch (currentCommand) + { + + case 'S': // send diag stats + sendStats(); + break; + + case 'C': //Toggle continuous data send mode + if(serialStream == false) { serialStream = true; } + else { serialStream = false; } + break; + + } + +} + +void sendCSV() +{ + Serial.print(map1/8); + Serial.print(","); + Serial.print(map2/8); + Serial.print(","); + Serial.print(map3/8); + Serial.print(","); + Serial.print(map4/8); + Serial.println(""); +} + +void sendStats() +{ + Serial.println("Version: 0.1"); + Serial.print("Loops/s: "); + Serial.println(loopsPerSecond); + Serial.print("Output: "); + Serial.println(outputValue); +} + diff --git a/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/globals.h b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/globals.h new file mode 100644 index 00000000..f6af7de6 --- /dev/null +++ b/reference/hardware/Speedy MAP/Firmware/SpeedyMAP/globals.h @@ -0,0 +1,100 @@ + +//Handy bitsetting macros +#define BIT_SET(a,b) ((a) |= (1<<(b))) +#define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) +#define BIT_CHECK(var,pos) !!((var) & (1<<(pos))) + +#define pinMAP1 A0 +#define pinMAP2 A1 +#define pinMAP3 A2 +#define pinMAP4 A3 + +#define pinChipSelect 10 //Almost certainly not right + +//Calibration values for the MPX4250 sensor +#define MPX2450_min 10 +#define MPX2450_max 260 + +byte *cs_pin_port; +byte cs_pin_mask; + +uint16_t loopCount = 0; +volatile uint16_t loopsPerSecond = 0; + +volatile byte loop33ms; +volatile byte loop66ms; +volatile byte loop100ms; +volatile byte loop250ms; +volatile int loopSec; +uint16_t outputValue; + +#define CS_PIN_LOW() *cs_pin_port &= ~(cs_pin_mask) +#define CS_PIN_HIGH() *cs_pin_port |= (cs_pin_mask) + +#define fastMap10BitX10(x, out_min, out_max) ( ( ((unsigned long)x * 10 * (out_max-out_min)) >> 10 ) + (out_min * 10)) +#define fastMap10BitX8(x, out_min, out_max) ( ( ((unsigned long)x * 8 * (out_max-out_min)) >> 10 ) + (out_min * 8)) +#define map1(x, in_min, in_max, out_min, out_max) ( (unsigned long)x * out_max / in_max ) +void setDAC(); + +//Interrupt for timer. Fires every 1ms +ISR(TIMER2_OVF_vect, ISR_NOBLOCK) +{ + //Increment Loop Counters + loop33ms++; + loop66ms++; + loop100ms++; + loop250ms++; + loopSec++; + + //30Hz loop + if (loop33ms == 33) + { + loop33ms = 0; + } + + //15Hz loop + if (loop66ms == 66) + { + loop66ms = 0; + } + + //Loop executed every 100ms loop + //Anything inside this if statement will run every 100ms. + if (loop100ms == 100) + { + loop100ms = 0; //Reset counter + } + + //Loop executed every 250ms loop (1ms x 250 = 250ms) + //Anything inside this if statement will run every 250ms. + if (loop250ms == 250) + { + loop250ms = 0; //Reset Counter + } + + //Loop executed every 1 second (1ms x 1000 = 1000ms) + if (loopSec == 1000) + { + loopSec = 0; + loopsPerSecond = loopCount; + loopCount = 0; + } + + TCNT2 = 131; //Preload timer2 with 131 cycles, leaving 125 till overflow. As the timer runs at 125Khz, this causes overflow to occur at 1Khz = 1ms +} + +void SPIasyncTransfer(byte data1, byte data0) +{ + //Check whether the last send is still in progress + if( SPSR & _BV(SPIF) ) + { + //This means the last transfer has completed and we're safe to do the next one + SPDR = data1; + } + else + { + //The last transfer is still in progress + //Can possibly implement a buffer here, but for now, just do nothing + } +} + diff --git a/reference/hardware/Speedy MAP/Hardware/MAP Sensors.bak b/reference/hardware/Speedy MAP/Hardware/MAP Sensors.bak new file mode 100644 index 00000000..2c6de6fd --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/MAP Sensors.bak @@ -0,0 +1,496 @@ +EESchema Schematic File Version 2 +LIBS:switches +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:mpx4250 +LIBS:SpeedyMAP-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 2 2 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L MPX4250 U2 +U 1 1 5A52CB30 +P 5800 2900 +F 0 "U2" H 5950 2750 60 0000 C CNN +F 1 "MPX4250" H 5750 3050 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 2900 60 0001 C CNN +F 3 "" H 5750 2900 60 0000 C CNN + 1 5800 2900 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 2850 5250 2850 +$Comp +L R R2 +U 1 1 5A52CB31 +P 6700 2900 +F 0 "R2" V 6780 2900 50 0000 C CNN +F 1 "R750" V 6700 2900 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 2900 50 0001 C CNN +F 3 "" H 6700 2900 50 0000 C CNN + 1 6700 2900 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 2900 6550 2900 +$Comp +L GND #PWR16 +U 1 1 5A52CB32 +P 5100 3400 +F 0 "#PWR16" H 5100 3150 50 0001 C CNN +F 1 "GND" H 5100 3250 50 0000 C CNN +F 2 "" H 5100 3400 50 0000 C CNN +F 3 "" H 5100 3400 50 0000 C CNN + 1 5100 3400 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 2950 5100 2950 +Wire Wire Line + 5100 2950 5100 3400 +Wire Wire Line + 6850 2900 7350 2900 +Connection ~ 7100 2900 +$Comp +L C C10 +U 1 1 5A52CB33 +P 7100 3100 +F 0 "C10" H 7125 3200 50 0000 L CNN +F 1 "C0.3uF" H 7125 3000 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 2950 50 0001 C CNN +F 3 "" H 7100 3100 50 0000 C CNN + 1 7100 3100 + 1 0 0 -1 +$EndComp +Connection ~ 5100 3300 +Wire Wire Line + 4500 3300 7100 3300 +$Comp +L +5V #PWR12 +U 1 1 5A52CB34 +P 4300 2850 +F 0 "#PWR12" H 4300 2700 50 0001 C CNN +F 1 "+5V" H 4300 2990 50 0000 C CNN +F 2 "" H 4300 2850 50 0000 C CNN +F 3 "" H 4300 2850 50 0000 C CNN + 1 4300 2850 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 2850 +Connection ~ 4850 2850 +$Comp +L C C2 +U 1 1 5A52CB35 +P 4500 3100 +F 0 "C2" H 4525 3200 50 0000 L CNN +F 1 "C1uF" H 4525 3000 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 2950 50 0001 C CNN +F 3 "" H 4500 3100 50 0000 C CNN + 1 4500 3100 + 1 0 0 -1 +$EndComp +$Comp +L C C6 +U 1 1 5A52CB36 +P 4850 3100 +F 0 "C6" H 4875 3200 50 0000 L CNN +F 1 "C0.01uF" H 4875 3000 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 2950 50 0001 C CNN +F 3 "" H 4850 3100 50 0000 C CNN + 1 4850 3100 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 2850 4500 2950 +Wire Wire Line + 4850 2850 4850 2950 +Wire Wire Line + 4850 3250 4850 3300 +Wire Wire Line + 4500 3300 4500 3250 +Connection ~ 4850 3300 +Wire Wire Line + 7100 3300 7100 3250 +Wire Wire Line + 4500 2850 4850 2850 +Text GLabel 7350 2900 2 60 Input ~ 0 +MAP2 +Wire Wire Line + 4850 3300 5100 3300 +Wire Wire Line + 7100 2900 7100 2950 +$Comp +L MPX4250 U1 +U 1 1 5A52CB37 +P 5800 2000 +F 0 "U1" H 5950 1850 60 0000 C CNN +F 1 "MPX4250" H 5750 2150 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 2000 60 0001 C CNN +F 3 "" H 5750 2000 60 0000 C CNN + 1 5800 2000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 1950 5250 1950 +$Comp +L R R1 +U 1 1 5A52CB38 +P 6700 2000 +F 0 "R1" V 6780 2000 50 0000 C CNN +F 1 "R750" V 6700 2000 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 2000 50 0001 C CNN +F 3 "" H 6700 2000 50 0000 C CNN + 1 6700 2000 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 2000 6550 2000 +$Comp +L GND #PWR15 +U 1 1 5A52CB39 +P 5100 2500 +F 0 "#PWR15" H 5100 2250 50 0001 C CNN +F 1 "GND" H 5100 2350 50 0000 C CNN +F 2 "" H 5100 2500 50 0000 C CNN +F 3 "" H 5100 2500 50 0000 C CNN + 1 5100 2500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 2050 5100 2050 +Wire Wire Line + 5100 2050 5100 2500 +Wire Wire Line + 6850 2000 7350 2000 +Connection ~ 7100 2000 +$Comp +L C C9 +U 1 1 5A52CB3A +P 7100 2200 +F 0 "C9" H 7125 2300 50 0000 L CNN +F 1 "C0.3uF" H 7125 2100 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 2050 50 0001 C CNN +F 3 "" H 7100 2200 50 0000 C CNN + 1 7100 2200 + 1 0 0 -1 +$EndComp +Connection ~ 5100 2400 +Wire Wire Line + 4500 2400 7100 2400 +$Comp +L +5V #PWR11 +U 1 1 5A52CB3B +P 4300 1950 +F 0 "#PWR11" H 4300 1800 50 0001 C CNN +F 1 "+5V" H 4300 2090 50 0000 C CNN +F 2 "" H 4300 1950 50 0000 C CNN +F 3 "" H 4300 1950 50 0000 C CNN + 1 4300 1950 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 1950 +Connection ~ 4850 1950 +$Comp +L C C1 +U 1 1 5A52CB3C +P 4500 2200 +F 0 "C1" H 4525 2300 50 0000 L CNN +F 1 "C1uF" H 4525 2100 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 2050 50 0001 C CNN +F 3 "" H 4500 2200 50 0000 C CNN + 1 4500 2200 + 1 0 0 -1 +$EndComp +$Comp +L C C5 +U 1 1 5A52CB3D +P 4850 2200 +F 0 "C5" H 4875 2300 50 0000 L CNN +F 1 "C0.01uF" H 4875 2100 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 2050 50 0001 C CNN +F 3 "" H 4850 2200 50 0000 C CNN + 1 4850 2200 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 1950 4500 2050 +Wire Wire Line + 4850 1950 4850 2050 +Wire Wire Line + 4850 2350 4850 2400 +Wire Wire Line + 4500 2400 4500 2350 +Connection ~ 4850 2400 +Wire Wire Line + 7100 2400 7100 2350 +Wire Wire Line + 4500 1950 4850 1950 +Text GLabel 7350 2000 2 60 Input ~ 0 +MAP1 +Wire Wire Line + 4850 2400 5100 2400 +Wire Wire Line + 7100 2000 7100 2050 +$Comp +L MPX4250 U3 +U 1 1 5A52CB3E +P 5800 3800 +F 0 "U3" H 5950 3650 60 0000 C CNN +F 1 "MPX4250" H 5750 3950 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 3800 60 0001 C CNN +F 3 "" H 5750 3800 60 0000 C CNN + 1 5800 3800 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 3750 5250 3750 +$Comp +L R R3 +U 1 1 5A52CB3F +P 6700 3800 +F 0 "R3" V 6780 3800 50 0000 C CNN +F 1 "R750" V 6700 3800 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 3800 50 0001 C CNN +F 3 "" H 6700 3800 50 0000 C CNN + 1 6700 3800 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 3800 6550 3800 +$Comp +L GND #PWR17 +U 1 1 5A52CB40 +P 5100 4300 +F 0 "#PWR17" H 5100 4050 50 0001 C CNN +F 1 "GND" H 5100 4150 50 0000 C CNN +F 2 "" H 5100 4300 50 0000 C CNN +F 3 "" H 5100 4300 50 0000 C CNN + 1 5100 4300 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 3850 5100 3850 +Wire Wire Line + 5100 3850 5100 4300 +Wire Wire Line + 6850 3800 7350 3800 +Connection ~ 7100 3800 +$Comp +L C C11 +U 1 1 5A52CB41 +P 7100 4000 +F 0 "C11" H 7125 4100 50 0000 L CNN +F 1 "C0.3uF" H 7125 3900 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 3850 50 0001 C CNN +F 3 "" H 7100 4000 50 0000 C CNN + 1 7100 4000 + 1 0 0 -1 +$EndComp +Connection ~ 5100 4200 +Wire Wire Line + 4500 4200 7100 4200 +$Comp +L +5V #PWR13 +U 1 1 5A52CB42 +P 4300 3750 +F 0 "#PWR13" H 4300 3600 50 0001 C CNN +F 1 "+5V" H 4300 3890 50 0000 C CNN +F 2 "" H 4300 3750 50 0000 C CNN +F 3 "" H 4300 3750 50 0000 C CNN + 1 4300 3750 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 3750 +Connection ~ 4850 3750 +$Comp +L C C3 +U 1 1 5A52CB43 +P 4500 4000 +F 0 "C3" H 4525 4100 50 0000 L CNN +F 1 "C1uF" H 4525 3900 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 3850 50 0001 C CNN +F 3 "" H 4500 4000 50 0000 C CNN + 1 4500 4000 + 1 0 0 -1 +$EndComp +$Comp +L C C7 +U 1 1 5A52CB44 +P 4850 4000 +F 0 "C7" H 4875 4100 50 0000 L CNN +F 1 "C0.01uF" H 4875 3900 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 3850 50 0001 C CNN +F 3 "" H 4850 4000 50 0000 C CNN + 1 4850 4000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 3750 4500 3850 +Wire Wire Line + 4850 3750 4850 3850 +Wire Wire Line + 4850 4150 4850 4200 +Wire Wire Line + 4500 4200 4500 4150 +Connection ~ 4850 4200 +Wire Wire Line + 7100 4200 7100 4150 +Wire Wire Line + 4500 3750 4850 3750 +Text GLabel 7350 3800 2 60 Input ~ 0 +MAP3 +Wire Wire Line + 4850 4200 5100 4200 +Wire Wire Line + 7100 3800 7100 3850 +$Comp +L MPX4250 U4 +U 1 1 5A52CB45 +P 5800 4700 +F 0 "U4" H 5950 4550 60 0000 C CNN +F 1 "MPX4250" H 5750 4850 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 4700 60 0001 C CNN +F 3 "" H 5750 4700 60 0000 C CNN + 1 5800 4700 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 4650 5250 4650 +$Comp +L R R4 +U 1 1 5A52CB46 +P 6700 4700 +F 0 "R4" V 6780 4700 50 0000 C CNN +F 1 "R750" V 6700 4700 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 4700 50 0001 C CNN +F 3 "" H 6700 4700 50 0000 C CNN + 1 6700 4700 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 4700 6550 4700 +$Comp +L GND #PWR18 +U 1 1 5A52CB47 +P 5100 5200 +F 0 "#PWR18" H 5100 4950 50 0001 C CNN +F 1 "GND" H 5100 5050 50 0000 C CNN +F 2 "" H 5100 5200 50 0000 C CNN +F 3 "" H 5100 5200 50 0000 C CNN + 1 5100 5200 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 4750 5100 4750 +Wire Wire Line + 5100 4750 5100 5200 +Wire Wire Line + 6850 4700 7350 4700 +Connection ~ 7100 4700 +$Comp +L C C12 +U 1 1 5A52CB48 +P 7100 4900 +F 0 "C12" H 7125 5000 50 0000 L CNN +F 1 "C0.3uF" H 7125 4800 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 4750 50 0001 C CNN +F 3 "" H 7100 4900 50 0000 C CNN + 1 7100 4900 + 1 0 0 -1 +$EndComp +Connection ~ 5100 5100 +Wire Wire Line + 4500 5100 7100 5100 +$Comp +L +5V #PWR14 +U 1 1 5A52CB49 +P 4300 4650 +F 0 "#PWR14" H 4300 4500 50 0001 C CNN +F 1 "+5V" H 4300 4790 50 0000 C CNN +F 2 "" H 4300 4650 50 0000 C CNN +F 3 "" H 4300 4650 50 0000 C CNN + 1 4300 4650 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 4650 +Connection ~ 4850 4650 +$Comp +L C C4 +U 1 1 5A52CB4A +P 4500 4900 +F 0 "C4" H 4525 5000 50 0000 L CNN +F 1 "C1uF" H 4525 4800 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 4750 50 0001 C CNN +F 3 "" H 4500 4900 50 0000 C CNN + 1 4500 4900 + 1 0 0 -1 +$EndComp +$Comp +L C C8 +U 1 1 5A52CB4B +P 4850 4900 +F 0 "C8" H 4875 5000 50 0000 L CNN +F 1 "C0.01uF" H 4875 4800 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 4750 50 0001 C CNN +F 3 "" H 4850 4900 50 0000 C CNN + 1 4850 4900 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 4650 4500 4750 +Wire Wire Line + 4850 4650 4850 4750 +Wire Wire Line + 4850 5050 4850 5100 +Wire Wire Line + 4500 5100 4500 5050 +Connection ~ 4850 5100 +Wire Wire Line + 7100 5100 7100 5050 +Wire Wire Line + 4500 4650 4850 4650 +Text GLabel 7350 4700 2 60 Input ~ 0 +MAP4 +Wire Wire Line + 4850 5100 5100 5100 +Wire Wire Line + 7100 4700 7100 4750 +$EndSCHEMATC diff --git a/reference/hardware/Speedy MAP/Hardware/MAP Sensors.sch b/reference/hardware/Speedy MAP/Hardware/MAP Sensors.sch new file mode 100644 index 00000000..2c6de6fd --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/MAP Sensors.sch @@ -0,0 +1,496 @@ +EESchema Schematic File Version 2 +LIBS:switches +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:mpx4250 +LIBS:SpeedyMAP-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 2 2 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L MPX4250 U2 +U 1 1 5A52CB30 +P 5800 2900 +F 0 "U2" H 5950 2750 60 0000 C CNN +F 1 "MPX4250" H 5750 3050 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 2900 60 0001 C CNN +F 3 "" H 5750 2900 60 0000 C CNN + 1 5800 2900 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 2850 5250 2850 +$Comp +L R R2 +U 1 1 5A52CB31 +P 6700 2900 +F 0 "R2" V 6780 2900 50 0000 C CNN +F 1 "R750" V 6700 2900 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 2900 50 0001 C CNN +F 3 "" H 6700 2900 50 0000 C CNN + 1 6700 2900 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 2900 6550 2900 +$Comp +L GND #PWR16 +U 1 1 5A52CB32 +P 5100 3400 +F 0 "#PWR16" H 5100 3150 50 0001 C CNN +F 1 "GND" H 5100 3250 50 0000 C CNN +F 2 "" H 5100 3400 50 0000 C CNN +F 3 "" H 5100 3400 50 0000 C CNN + 1 5100 3400 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 2950 5100 2950 +Wire Wire Line + 5100 2950 5100 3400 +Wire Wire Line + 6850 2900 7350 2900 +Connection ~ 7100 2900 +$Comp +L C C10 +U 1 1 5A52CB33 +P 7100 3100 +F 0 "C10" H 7125 3200 50 0000 L CNN +F 1 "C0.3uF" H 7125 3000 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 2950 50 0001 C CNN +F 3 "" H 7100 3100 50 0000 C CNN + 1 7100 3100 + 1 0 0 -1 +$EndComp +Connection ~ 5100 3300 +Wire Wire Line + 4500 3300 7100 3300 +$Comp +L +5V #PWR12 +U 1 1 5A52CB34 +P 4300 2850 +F 0 "#PWR12" H 4300 2700 50 0001 C CNN +F 1 "+5V" H 4300 2990 50 0000 C CNN +F 2 "" H 4300 2850 50 0000 C CNN +F 3 "" H 4300 2850 50 0000 C CNN + 1 4300 2850 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 2850 +Connection ~ 4850 2850 +$Comp +L C C2 +U 1 1 5A52CB35 +P 4500 3100 +F 0 "C2" H 4525 3200 50 0000 L CNN +F 1 "C1uF" H 4525 3000 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 2950 50 0001 C CNN +F 3 "" H 4500 3100 50 0000 C CNN + 1 4500 3100 + 1 0 0 -1 +$EndComp +$Comp +L C C6 +U 1 1 5A52CB36 +P 4850 3100 +F 0 "C6" H 4875 3200 50 0000 L CNN +F 1 "C0.01uF" H 4875 3000 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 2950 50 0001 C CNN +F 3 "" H 4850 3100 50 0000 C CNN + 1 4850 3100 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 2850 4500 2950 +Wire Wire Line + 4850 2850 4850 2950 +Wire Wire Line + 4850 3250 4850 3300 +Wire Wire Line + 4500 3300 4500 3250 +Connection ~ 4850 3300 +Wire Wire Line + 7100 3300 7100 3250 +Wire Wire Line + 4500 2850 4850 2850 +Text GLabel 7350 2900 2 60 Input ~ 0 +MAP2 +Wire Wire Line + 4850 3300 5100 3300 +Wire Wire Line + 7100 2900 7100 2950 +$Comp +L MPX4250 U1 +U 1 1 5A52CB37 +P 5800 2000 +F 0 "U1" H 5950 1850 60 0000 C CNN +F 1 "MPX4250" H 5750 2150 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 2000 60 0001 C CNN +F 3 "" H 5750 2000 60 0000 C CNN + 1 5800 2000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 1950 5250 1950 +$Comp +L R R1 +U 1 1 5A52CB38 +P 6700 2000 +F 0 "R1" V 6780 2000 50 0000 C CNN +F 1 "R750" V 6700 2000 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 2000 50 0001 C CNN +F 3 "" H 6700 2000 50 0000 C CNN + 1 6700 2000 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 2000 6550 2000 +$Comp +L GND #PWR15 +U 1 1 5A52CB39 +P 5100 2500 +F 0 "#PWR15" H 5100 2250 50 0001 C CNN +F 1 "GND" H 5100 2350 50 0000 C CNN +F 2 "" H 5100 2500 50 0000 C CNN +F 3 "" H 5100 2500 50 0000 C CNN + 1 5100 2500 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 2050 5100 2050 +Wire Wire Line + 5100 2050 5100 2500 +Wire Wire Line + 6850 2000 7350 2000 +Connection ~ 7100 2000 +$Comp +L C C9 +U 1 1 5A52CB3A +P 7100 2200 +F 0 "C9" H 7125 2300 50 0000 L CNN +F 1 "C0.3uF" H 7125 2100 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 2050 50 0001 C CNN +F 3 "" H 7100 2200 50 0000 C CNN + 1 7100 2200 + 1 0 0 -1 +$EndComp +Connection ~ 5100 2400 +Wire Wire Line + 4500 2400 7100 2400 +$Comp +L +5V #PWR11 +U 1 1 5A52CB3B +P 4300 1950 +F 0 "#PWR11" H 4300 1800 50 0001 C CNN +F 1 "+5V" H 4300 2090 50 0000 C CNN +F 2 "" H 4300 1950 50 0000 C CNN +F 3 "" H 4300 1950 50 0000 C CNN + 1 4300 1950 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 1950 +Connection ~ 4850 1950 +$Comp +L C C1 +U 1 1 5A52CB3C +P 4500 2200 +F 0 "C1" H 4525 2300 50 0000 L CNN +F 1 "C1uF" H 4525 2100 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 2050 50 0001 C CNN +F 3 "" H 4500 2200 50 0000 C CNN + 1 4500 2200 + 1 0 0 -1 +$EndComp +$Comp +L C C5 +U 1 1 5A52CB3D +P 4850 2200 +F 0 "C5" H 4875 2300 50 0000 L CNN +F 1 "C0.01uF" H 4875 2100 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 2050 50 0001 C CNN +F 3 "" H 4850 2200 50 0000 C CNN + 1 4850 2200 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 1950 4500 2050 +Wire Wire Line + 4850 1950 4850 2050 +Wire Wire Line + 4850 2350 4850 2400 +Wire Wire Line + 4500 2400 4500 2350 +Connection ~ 4850 2400 +Wire Wire Line + 7100 2400 7100 2350 +Wire Wire Line + 4500 1950 4850 1950 +Text GLabel 7350 2000 2 60 Input ~ 0 +MAP1 +Wire Wire Line + 4850 2400 5100 2400 +Wire Wire Line + 7100 2000 7100 2050 +$Comp +L MPX4250 U3 +U 1 1 5A52CB3E +P 5800 3800 +F 0 "U3" H 5950 3650 60 0000 C CNN +F 1 "MPX4250" H 5750 3950 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 3800 60 0001 C CNN +F 3 "" H 5750 3800 60 0000 C CNN + 1 5800 3800 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 3750 5250 3750 +$Comp +L R R3 +U 1 1 5A52CB3F +P 6700 3800 +F 0 "R3" V 6780 3800 50 0000 C CNN +F 1 "R750" V 6700 3800 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 3800 50 0001 C CNN +F 3 "" H 6700 3800 50 0000 C CNN + 1 6700 3800 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 3800 6550 3800 +$Comp +L GND #PWR17 +U 1 1 5A52CB40 +P 5100 4300 +F 0 "#PWR17" H 5100 4050 50 0001 C CNN +F 1 "GND" H 5100 4150 50 0000 C CNN +F 2 "" H 5100 4300 50 0000 C CNN +F 3 "" H 5100 4300 50 0000 C CNN + 1 5100 4300 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 3850 5100 3850 +Wire Wire Line + 5100 3850 5100 4300 +Wire Wire Line + 6850 3800 7350 3800 +Connection ~ 7100 3800 +$Comp +L C C11 +U 1 1 5A52CB41 +P 7100 4000 +F 0 "C11" H 7125 4100 50 0000 L CNN +F 1 "C0.3uF" H 7125 3900 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 3850 50 0001 C CNN +F 3 "" H 7100 4000 50 0000 C CNN + 1 7100 4000 + 1 0 0 -1 +$EndComp +Connection ~ 5100 4200 +Wire Wire Line + 4500 4200 7100 4200 +$Comp +L +5V #PWR13 +U 1 1 5A52CB42 +P 4300 3750 +F 0 "#PWR13" H 4300 3600 50 0001 C CNN +F 1 "+5V" H 4300 3890 50 0000 C CNN +F 2 "" H 4300 3750 50 0000 C CNN +F 3 "" H 4300 3750 50 0000 C CNN + 1 4300 3750 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 3750 +Connection ~ 4850 3750 +$Comp +L C C3 +U 1 1 5A52CB43 +P 4500 4000 +F 0 "C3" H 4525 4100 50 0000 L CNN +F 1 "C1uF" H 4525 3900 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 3850 50 0001 C CNN +F 3 "" H 4500 4000 50 0000 C CNN + 1 4500 4000 + 1 0 0 -1 +$EndComp +$Comp +L C C7 +U 1 1 5A52CB44 +P 4850 4000 +F 0 "C7" H 4875 4100 50 0000 L CNN +F 1 "C0.01uF" H 4875 3900 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 3850 50 0001 C CNN +F 3 "" H 4850 4000 50 0000 C CNN + 1 4850 4000 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 3750 4500 3850 +Wire Wire Line + 4850 3750 4850 3850 +Wire Wire Line + 4850 4150 4850 4200 +Wire Wire Line + 4500 4200 4500 4150 +Connection ~ 4850 4200 +Wire Wire Line + 7100 4200 7100 4150 +Wire Wire Line + 4500 3750 4850 3750 +Text GLabel 7350 3800 2 60 Input ~ 0 +MAP3 +Wire Wire Line + 4850 4200 5100 4200 +Wire Wire Line + 7100 3800 7100 3850 +$Comp +L MPX4250 U4 +U 1 1 5A52CB45 +P 5800 4700 +F 0 "U4" H 5950 4550 60 0000 C CNN +F 1 "MPX4250" H 5750 4850 60 0000 C CNN +F 2 "MPX4250:MPX4250" H 5750 4700 60 0001 C CNN +F 3 "" H 5750 4700 60 0000 C CNN + 1 5800 4700 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4300 4650 5250 4650 +$Comp +L R R4 +U 1 1 5A52CB46 +P 6700 4700 +F 0 "R4" V 6780 4700 50 0000 C CNN +F 1 "R750" V 6700 4700 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 6630 4700 50 0001 C CNN +F 3 "" H 6700 4700 50 0000 C CNN + 1 6700 4700 + 0 1 1 0 +$EndComp +Wire Wire Line + 6300 4700 6550 4700 +$Comp +L GND #PWR18 +U 1 1 5A52CB47 +P 5100 5200 +F 0 "#PWR18" H 5100 4950 50 0001 C CNN +F 1 "GND" H 5100 5050 50 0000 C CNN +F 2 "" H 5100 5200 50 0000 C CNN +F 3 "" H 5100 5200 50 0000 C CNN + 1 5100 5200 + 1 0 0 -1 +$EndComp +Wire Wire Line + 5250 4750 5100 4750 +Wire Wire Line + 5100 4750 5100 5200 +Wire Wire Line + 6850 4700 7350 4700 +Connection ~ 7100 4700 +$Comp +L C C12 +U 1 1 5A52CB48 +P 7100 4900 +F 0 "C12" H 7125 5000 50 0000 L CNN +F 1 "C0.3uF" H 7125 4800 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 7138 4750 50 0001 C CNN +F 3 "" H 7100 4900 50 0000 C CNN + 1 7100 4900 + 1 0 0 -1 +$EndComp +Connection ~ 5100 5100 +Wire Wire Line + 4500 5100 7100 5100 +$Comp +L +5V #PWR14 +U 1 1 5A52CB49 +P 4300 4650 +F 0 "#PWR14" H 4300 4500 50 0001 C CNN +F 1 "+5V" H 4300 4790 50 0000 C CNN +F 2 "" H 4300 4650 50 0000 C CNN +F 3 "" H 4300 4650 50 0000 C CNN + 1 4300 4650 + 0 -1 -1 0 +$EndComp +Connection ~ 4500 4650 +Connection ~ 4850 4650 +$Comp +L C C4 +U 1 1 5A52CB4A +P 4500 4900 +F 0 "C4" H 4525 5000 50 0000 L CNN +F 1 "C1uF" H 4525 4800 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4538 4750 50 0001 C CNN +F 3 "" H 4500 4900 50 0000 C CNN + 1 4500 4900 + 1 0 0 -1 +$EndComp +$Comp +L C C8 +U 1 1 5A52CB4B +P 4850 4900 +F 0 "C8" H 4875 5000 50 0000 L CNN +F 1 "C0.01uF" H 4875 4800 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 4888 4750 50 0001 C CNN +F 3 "" H 4850 4900 50 0000 C CNN + 1 4850 4900 + 1 0 0 -1 +$EndComp +Wire Wire Line + 4500 4650 4500 4750 +Wire Wire Line + 4850 4650 4850 4750 +Wire Wire Line + 4850 5050 4850 5100 +Wire Wire Line + 4500 5100 4500 5050 +Connection ~ 4850 5100 +Wire Wire Line + 7100 5100 7100 5050 +Wire Wire Line + 4500 4650 4850 4650 +Text GLabel 7350 4700 2 60 Input ~ 0 +MAP4 +Wire Wire Line + 4850 5100 5100 5100 +Wire Wire Line + 7100 4700 7100 4750 +$EndSCHEMATC diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP-cache.lib b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP-cache.lib new file mode 100644 index 00000000..206f38ac --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP-cache.lib @@ -0,0 +1,264 @@ +EESchema-LIBRARY Version 2.3 +#encoding utf-8 +# +# +5V +# +DEF +5V #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -150 50 H I C CNN +F1 "+5V" 0 140 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +DRAW +P 2 0 1 0 -30 50 0 100 N +P 2 0 1 0 0 0 0 100 N +P 2 0 1 0 0 100 30 50 N +X +5V 1 0 0 0 U 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# 7805 +# +DEF 7805 U 0 30 N Y 1 F N +F0 "U" 150 -196 50 H V C CNN +F1 "7805" 0 200 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +ALIAS LM7805 LM7812 78L05 +DRAW +S -200 -150 200 150 0 1 0 N +X VI VI -400 50 200 R 40 40 1 1 I +X VO VO 400 50 200 L 40 40 1 1 w +X GND GND 0 -250 100 U 40 40 1 1 I +ENDDRAW +ENDDEF +# +# ATMEGA168A-A +# +DEF ATMEGA168A-A IC 0 40 Y Y 1 F N +F0 "IC" -750 1250 50 H V L BNN +F1 "ATMEGA168A-A" 400 -1400 50 H V L BNN +F2 "TQFP32" 0 0 50 H V C CIN +F3 "" 0 0 50 H V C CNN +ALIAS ATMEGA48A-A ATMEGA48PA-A ATMEGA88A-A ATMEGA88PA-A ATMEGA168PA-A ATMEGA328-A ATMEGA328P-A +DRAW +S -750 1200 850 -1300 0 1 10 f +X (PCINT19/OC2B/INT1)PD3 1 1000 -800 150 L 40 40 1 1 B +X (PCINT20/XCK/T0)PD4 2 1000 -900 150 L 40 40 1 1 B +X GND 3 -900 -1200 150 R 40 40 1 1 W +X VCC 4 -900 1100 150 R 40 40 1 1 W +X GND 5 -900 -1100 150 R 40 40 1 1 W +X VCC 6 -900 1000 150 R 40 40 1 1 W +X (PCINT6/XTAL1/TOSC1)PB6 7 1000 500 150 L 40 40 1 1 B +X (PCINT7/XTAL2/TOSC2)PB7 8 1000 400 150 L 40 40 1 1 B +X (PCINT21/OC0B/T1)PD5 9 1000 -1000 150 L 40 40 1 1 B +X (PCINT22/OC0A/AIN0)PD6 10 1000 -1100 150 L 40 40 1 1 B +X AREF 20 -900 500 150 R 40 40 1 1 B +X (PCINT16/RXD)PD0 30 1000 -500 150 L 40 40 1 1 B +X (PCINT23/AIN1)PD7 11 1000 -1200 150 L 40 40 1 1 B +X GND 21 -900 -1000 150 R 40 40 1 1 W +X (PCINT17/TXD)PD1 31 1000 -600 150 L 40 40 1 1 B +X (PCINT0/CLKO/ICP1)PB0 12 1000 1100 150 L 40 40 1 1 B +X ADC7 22 -900 -350 150 R 40 40 1 1 I +X (PCINT18/INT0)PD2 32 1000 -700 150 L 40 40 1 1 B +X (PCINT1/OC1A)PB1 13 1000 1000 150 L 40 40 1 1 B +X (PCINT8/ADC0)PC0 23 1000 250 150 L 40 40 1 1 B +X (PCINT2/OC1B/~SS~)PB2 14 1000 900 150 L 40 40 1 1 B +X (PCINT9/ADC1)PC1 24 1000 150 150 L 40 40 1 1 B +X (PCINT3/OC2A/MOSI)PB3 15 1000 800 150 L 40 40 1 1 B +X (PCINT10/ADC2)PC2 25 1000 50 150 L 40 40 1 1 B +X (PCINT4/MISO)PB4 16 1000 700 150 L 40 40 1 1 B +X (PCINT11/ADC3)PC3 26 1000 -50 150 L 40 40 1 1 B +X (PCINT5/SCK)PB5 17 1000 600 150 L 40 40 1 1 B +X (PCINT12/SDA/ADC4)PC4 27 1000 -150 150 L 40 40 1 1 B +X AVCC 18 -900 800 150 R 40 40 1 1 W +X (PCINT13/SCL/ADC5)PC5 28 1000 -250 150 L 40 40 1 1 B +X ADC6 19 -900 -250 150 R 40 40 1 1 I +X (PCINT14/~RESET~)PC6 29 1000 -350 150 L 40 40 1 1 B +ENDDRAW +ENDDEF +# +# AVR-ISP-6 +# +DEF AVR-ISP-6 CON 0 40 Y Y 1 F N +F0 "CON" -105 240 50 H V C CNN +F1 "AVR-ISP-6" -265 -230 50 H V L BNN +F2 "AVR-ISP-6" -520 40 50 V I C CNN +F3 "" -25 0 50 H V C CNN +DRAW +T 0 -315 5 45 0 0 0 SCK Normal 1 C C +T 0 275 110 45 0 0 0 VCC Normal 1 C C +T 0 285 -105 45 0 1 0 GND Normal 1 C C +T 0 -333 102 45 0 1 0 MISO Normal 1 C C +T 0 307 -2 45 0 1 0 MOSI Normal 1 C C +T 0 -315 -100 45 0 1 0 RST Normal 1 C C +S -205 -140 165 -160 0 1 0 F +S -205 200 155 180 0 1 0 F +S -200 -160 -220 -40 0 1 0 F +S -200 200 -220 40 0 1 0 F +S 155 200 175 -160 0 1 0 F +X ~ 1 -150 100 100 R 40 40 1 1 P +X ~ 2 100 100 100 L 40 40 1 1 P +X ~ 3 -150 0 100 R 40 40 1 1 P +X ~ 4 100 0 100 L 40 40 1 1 P +X ~ 5 -150 -100 100 R 40 40 1 1 P +X ~ 6 100 -100 100 L 40 40 1 1 P +ENDDRAW +ENDDEF +# +# C +# +DEF C C 0 10 N Y 1 F N +F0 "C" 25 100 50 H V L CNN +F1 "C" 25 -100 50 H V L CNN +F2 "" 38 -150 50 H V C CNN +F3 "" 0 0 50 H V C CNN +$FPLIST + C? + C_????_* + C_???? + SMD*_c + Capacitor* +$ENDFPLIST +DRAW +P 2 0 1 20 -80 -30 80 -30 N +P 2 0 1 20 -80 30 80 30 N +X ~ 1 0 150 110 D 50 50 1 1 P +X ~ 2 0 -150 110 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# Crystal +# +DEF Crystal Y 0 40 N N 1 F N +F0 "Y" 0 150 50 H V C CNN +F1 "Crystal" 0 -150 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +$FPLIST + Crystal* +$ENDFPLIST +DRAW +S -45 100 45 -100 0 1 12 N +P 2 0 1 0 -100 0 -75 0 N +P 2 0 1 20 -75 -50 -75 50 N +P 2 0 1 20 75 -50 75 50 N +P 2 0 1 0 100 0 75 0 N +X 1 1 -150 0 50 R 50 50 1 1 P +X 2 2 150 0 50 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# D +# +DEF D D 0 40 N N 1 F N +F0 "D" 0 100 50 H V C CNN +F1 "D" 0 -100 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +$FPLIST + Diode_* + D-* + *SingleDiode + *_Diode_* + *SingleDiode* + D_* +$ENDFPLIST +DRAW +P 2 0 1 8 -50 50 -50 -50 N +P 2 0 1 0 50 0 -50 0 N +P 4 0 1 8 50 50 50 -50 -50 0 50 50 N +X K 1 -150 0 100 R 50 50 1 1 P +X A 2 150 0 100 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# GND +# +DEF GND #PWR 0 0 Y Y 1 F P +F0 "#PWR" 0 -250 50 H I C CNN +F1 "GND" 0 -150 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +DRAW +P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N +X GND 1 0 0 0 D 50 50 1 1 W N +ENDDRAW +ENDDEF +# +# MCP4921-E/MS +# +DEF MCP4921-E/MS U 0 40 Y Y 1 F N +F0 "U" -450 300 50 H V L CNN +F1 "MCP4921-E/MS" 0 300 50 H V L CNN +F2 "" 0 0 50 H V C CIN +F3 "" 0 0 50 H V C CNN +ALIAS MCP4921-E/SN MCP4921-E/P +$FPLIST + MSOP* + SOIC* + DIP* + PDIP* +$ENDFPLIST +DRAW +P 6 0 1 10 -450 250 200 250 450 0 200 -250 -450 -250 -450 250 f +X VDD 1 -100 400 150 D 50 50 1 1 W +X ~CS~ 2 -600 0 150 R 50 50 1 1 I +X SCK 3 -600 100 150 R 50 50 1 1 I +X SDI 4 -600 200 150 R 50 50 1 1 I +X ~LDAC~ 5 -600 -100 150 R 50 50 1 1 I +X VrefA 6 100 -400 150 U 50 50 1 1 P +X AVSS 7 -100 -400 150 U 50 50 1 1 W +X VoutA 8 600 0 150 L 50 50 1 1 P +ENDDRAW +ENDDEF +# +# MPX4250 +# +DEF MPX4250 U 0 40 Y Y 1 F N +F0 "U" 150 -150 60 H V C CNN +F1 "MPX4250" -50 150 60 H V C CNN +F2 "" -50 0 60 H V C CNN +F3 "" -50 0 60 H V C CNN +DRAW +S -250 100 200 -100 0 1 0 N +X VOUT 1 500 0 300 L 50 50 1 1 O +X GND 2 -550 -50 300 R 50 50 1 1 W +X VCC 3 -550 50 300 R 50 50 1 1 W +ENDDRAW +ENDDEF +# +# R +# +DEF R R 0 0 N Y 1 F N +F0 "R" 80 0 50 V V C CNN +F1 "R" 0 0 50 V V C CNN +F2 "" -70 0 50 V V C CNN +F3 "" 0 0 50 H V C CNN +$FPLIST + R_* + Resistor_* +$ENDFPLIST +DRAW +S -40 -100 40 100 0 1 10 N +X ~ 1 0 150 50 D 50 50 1 1 P +X ~ 2 0 -150 50 U 50 50 1 1 P +ENDDRAW +ENDDEF +# +# SW_SPST +# +DEF SW_SPST SW 0 0 Y N 1 F N +F0 "SW" 0 125 50 H V C CNN +F1 "SW_SPST" 0 -100 50 H V C CNN +F2 "" 0 0 50 H V C CNN +F3 "" 0 0 50 H V C CNN +DRAW +C -80 0 20 0 0 0 N +C 80 0 20 0 0 0 N +P 2 0 0 0 -60 10 60 70 N +X A 1 -200 0 100 R 50 50 1 1 I +X B 2 200 0 100 L 50 50 1 1 I +ENDDRAW +ENDDEF +# +#End Library diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.bak b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.bak new file mode 100644 index 00000000..e423d4e5 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.bak @@ -0,0 +1,469 @@ +EESchema Schematic File Version 2 +LIBS:switches +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:mpx4250 +LIBS:SpeedyMAP-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 2 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L ATMEGA328-A IC1 +U 1 1 5A51EF33 +P 6250 2550 +F 0 "IC1" H 5500 3800 50 0000 L BNN +F 1 "ATMEGA328-A" H 6650 1150 50 0000 L BNN +F 2 "Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm" H 6250 2550 50 0001 C CIN +F 3 "" H 6250 2550 50 0000 C CNN + 1 6250 2550 + 1 0 0 -1 +$EndComp +$Comp +L Crystal Y1 +U 1 1 5A5261DD +P 9250 2100 +F 0 "Y1" H 9250 2250 50 0000 C CNN +F 1 "Crystal" H 9250 1950 50 0000 C CNN +F 2 "Crystals:Crystal_HC49-SD_SMD" H 9250 2100 50 0001 C CNN +F 3 "" H 9250 2100 50 0000 C CNN + 1 9250 2100 + 0 1 1 0 +$EndComp +Text GLabel 7700 2400 2 60 Input ~ 0 +MAP2 +Text GLabel 7350 2300 2 60 Input ~ 0 +MAP1 +Text GLabel 7350 2500 2 60 Input ~ 0 +MAP3 +Text GLabel 7700 2600 2 60 Input ~ 0 +MAP4 +$Sheet +S 7150 4900 3700 1400 +U 5A52C37B +F0 "MAP Sensors" 60 +F1 "MAP Sensors.sch" 60 +$EndSheet +$Comp +L C C13 +U 1 1 5A52D01C +P 9700 1850 +F 0 "C13" H 9725 1950 50 0000 L CNN +F 1 "C22pF" H 9725 1750 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 9738 1700 50 0001 C CNN +F 3 "" H 9700 1850 50 0000 C CNN + 1 9700 1850 + 0 1 1 0 +$EndComp +$Comp +L GND #PWR9 +U 1 1 5A52D09E +P 10100 1850 +F 0 "#PWR9" H 10100 1600 50 0001 C CNN +F 1 "GND" H 10100 1700 50 0000 C CNN +F 2 "" H 10100 1850 50 0000 C CNN +F 3 "" H 10100 1850 50 0000 C CNN + 1 10100 1850 + 0 -1 -1 0 +$EndComp +$Comp +L GND #PWR10 +U 1 1 5A52D0C2 +P 10100 2350 +F 0 "#PWR10" H 10100 2100 50 0001 C CNN +F 1 "GND" H 10100 2200 50 0000 C CNN +F 2 "" H 10100 2350 50 0000 C CNN +F 3 "" H 10100 2350 50 0000 C CNN + 1 10100 2350 + 0 -1 -1 0 +$EndComp +$Comp +L C C14 +U 1 1 5A52D16E +P 9700 2350 +F 0 "C14" H 9725 2450 50 0000 L CNN +F 1 "C22pF" H 9725 2250 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 9738 2200 50 0001 C CNN +F 3 "" H 9700 2350 50 0000 C CNN + 1 9700 2350 + 0 1 1 0 +$EndComp +$Comp +L SW_SPST SW1 +U 1 1 5A52D320 +P 2800 3900 +F 0 "SW1" H 2800 4025 50 0000 C CNN +F 1 "SW_SPST" H 2800 3800 50 0000 C CNN +F 2 "Buttons_Switches_ThroughHole:SW_TH_Tactile_Omron_B3F-10xx" H 2800 3900 50 0001 C CNN +F 3 "" H 2800 3900 50 0000 C CNN +F 4 "B3F-1002" H 2800 3900 60 0001 C CNN "Part Number" + 1 2800 3900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR7 +U 1 1 5A52D36F +P 3250 3900 +F 0 "#PWR7" H 3250 3650 50 0001 C CNN +F 1 "GND" H 3250 3750 50 0000 C CNN +F 2 "" H 3250 3900 50 0000 C CNN +F 3 "" H 3250 3900 50 0000 C CNN + 1 3250 3900 + 0 -1 -1 0 +$EndComp +$Comp +L R R5 +U 1 1 5A52D3DC +P 2800 4400 +F 0 "R5" V 2880 4400 50 0000 C CNN +F 1 "R10k" V 2800 4400 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 2730 4400 50 0001 C CNN +F 3 "" H 2800 4400 50 0000 C CNN + 1 2800 4400 + 0 1 1 0 +$EndComp +$Comp +L +5V #PWR8 +U 1 1 5A52D42B +P 3250 4400 +F 0 "#PWR8" H 3250 4250 50 0001 C CNN +F 1 "+5V" H 3250 4540 50 0000 C CNN +F 2 "" H 3250 4400 50 0000 C CNN +F 3 "" H 3250 4400 50 0000 C CNN + 1 3250 4400 + 0 1 1 0 +$EndComp +$Comp +L +5V #PWR6 +U 1 1 5A52DDB8 +P 5150 1450 +F 0 "#PWR6" H 5150 1300 50 0001 C CNN +F 1 "+5V" H 5150 1590 50 0000 C CNN +F 2 "" H 5150 1450 50 0000 C CNN +F 3 "" H 5150 1450 50 0000 C CNN + 1 5150 1450 + 0 -1 -1 0 +$EndComp +$Comp +L GND #PWR5 +U 1 1 5A52DE6E +P 5100 3650 +F 0 "#PWR5" H 5100 3400 50 0001 C CNN +F 1 "GND" H 5100 3500 50 0000 C CNN +F 2 "" H 5100 3650 50 0000 C CNN +F 3 "" H 5100 3650 50 0000 C CNN + 1 5100 3650 + 0 1 1 0 +$EndComp +$Comp +L MCP4921-E/SN U5 +U 1 1 5A52E25F +P 3000 2450 +F 0 "U5" H 2550 2750 50 0000 L CNN +F 1 "MCP4921-E/SN" H 3000 2750 50 0000 L CNN +F 2 "Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm" H 3000 2450 50 0001 C CIN +F 3 "" H 3000 2450 50 0000 C CNN + 1 3000 2450 + 1 0 0 -1 +$EndComp +Text GLabel 7400 1950 2 60 Input ~ 0 +SCK +Text GLabel 7400 1750 2 60 Input ~ 0 +DAC_Serial +Text GLabel 2250 2250 0 60 Input ~ 0 +DAC_Serial +Text GLabel 2250 2350 0 60 Input ~ 0 +SCK +Text GLabel 7400 1650 2 60 Input ~ 0 +DAC_SS +Text GLabel 2250 2450 0 60 Input ~ 0 +DAC_SS +$Comp +L GND #PWR3 +U 1 1 5A52E5DE +P 2900 3050 +F 0 "#PWR3" H 2900 2800 50 0001 C CNN +F 1 "GND" H 2900 2900 50 0000 C CNN +F 2 "" H 2900 3050 50 0000 C CNN +F 3 "" H 2900 3050 50 0000 C CNN + 1 2900 3050 + 1 0 0 -1 +$EndComp +$Comp +L +5V #PWR4 +U 1 1 5A52E654 +P 3100 2950 +F 0 "#PWR4" H 3100 2800 50 0001 C CNN +F 1 "+5V" H 3100 3090 50 0000 C CNN +F 2 "" H 3100 2950 50 0000 C CNN +F 3 "" H 3100 2950 50 0000 C CNN + 1 3100 2950 + -1 0 0 1 +$EndComp +$Comp +L +5V #PWR2 +U 1 1 5A52E6B5 +P 2900 1900 +F 0 "#PWR2" H 2900 1750 50 0001 C CNN +F 1 "+5V" H 2900 2040 50 0000 C CNN +F 2 "" H 2900 1900 50 0000 C CNN +F 3 "" H 2900 1900 50 0000 C CNN + 1 2900 1900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR1 +U 1 1 5A52E833 +P 1700 2550 +F 0 "#PWR1" H 1700 2300 50 0001 C CNN +F 1 "GND" H 1700 2400 50 0000 C CNN +F 2 "" H 1700 2550 50 0000 C CNN +F 3 "" H 1700 2550 50 0000 C CNN + 1 1700 2550 + 0 1 1 0 +$EndComp +$Comp +L 7805 U6 +U 1 1 5A52F79A +P 3450 5700 +F 0 "U6" H 3600 5504 50 0000 C CNN +F 1 "7805" H 3450 5900 50 0000 C CNN +F 2 "" H 3450 5700 50 0000 C CNN +F 3 "" H 3450 5700 50 0000 C CNN + 1 3450 5700 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 5A5300ED +P 2800 4150 +F 0 "C?" H 2825 4250 50 0000 L CNN +F 1 "C4.7nF" H 2825 4050 50 0000 L CNN +F 2 "" H 2838 4000 50 0000 C CNN +F 3 "" H 2800 4150 50 0000 C CNN + 1 2800 4150 + 0 1 1 0 +$EndComp +$Comp +L D D? +U 1 1 5A530312 +P 2800 4700 +F 0 "D?" H 2800 4800 50 0000 C CNN +F 1 "D" H 2800 4600 50 0000 C CNN +F 2 "" H 2800 4700 50 0000 C CNN +F 3 "" H 2800 4700 50 0000 C CNN + 1 2800 4700 + -1 0 0 1 +$EndComp +$Comp +L AVR-ISP-6 CON? +U 1 1 5A530418 +P 10050 3300 +F 0 "CON?" H 9945 3540 50 0000 C CNN +F 1 "AVR-ISP-6" H 9785 3070 50 0000 L BNN +F 2 "AVR-ISP-6" V 9530 3340 50 0001 C CNN +F 3 "" H 10025 3300 50 0000 C CNN + 1 10050 3300 + 1 0 0 -1 +$EndComp +Text GLabel 7400 1850 2 60 Input ~ 0 +MISO +Text GLabel 7400 2900 2 60 Input ~ 0 +RESET +Text GLabel 1800 3900 0 60 Input ~ 0 +RESET +Text GLabel 9550 3400 0 60 Input ~ 0 +RESET +Text GLabel 9550 3300 0 60 Input ~ 0 +SCK +Text GLabel 9550 3200 0 60 Input ~ 0 +MISO +$Comp +L GND #PWR? +U 1 1 5A530AC6 +P 10650 3550 +F 0 "#PWR?" H 10650 3300 50 0001 C CNN +F 1 "GND" H 10650 3400 50 0000 C CNN +F 2 "" H 10650 3550 50 0000 C CNN +F 3 "" H 10650 3550 50 0000 C CNN + 1 10650 3550 + 0 -1 -1 0 +$EndComp +Text GLabel 10500 3300 2 60 Input ~ 0 +DAC_Serial +$Comp +L +5V #PWR? +U 1 1 5A530D05 +P 10700 3100 +F 0 "#PWR?" H 10700 2950 50 0001 C CNN +F 1 "+5V" H 10700 3240 50 0000 C CNN +F 2 "" H 10700 3100 50 0000 C CNN +F 3 "" H 10700 3100 50 0000 C CNN + 1 10700 3100 + 0 1 1 0 +$EndComp +Connection ~ 11950 2050 +Wire Wire Line + 7250 2300 7350 2300 +Wire Wire Line + 7250 2400 7700 2400 +Wire Wire Line + 7250 2500 7350 2500 +Wire Wire Line + 7250 2600 7700 2600 +Wire Wire Line + 7250 2050 8000 2050 +Wire Wire Line + 8000 2050 8000 1950 +Wire Wire Line + 8000 1950 9250 1950 +Wire Wire Line + 7250 2150 8000 2150 +Wire Wire Line + 8000 2150 8000 2250 +Wire Wire Line + 8000 2250 9250 2250 +Connection ~ 8800 1950 +Connection ~ 8800 2250 +Wire Wire Line + 8800 2250 8800 2350 +Wire Wire Line + 8800 2350 9550 2350 +Wire Wire Line + 9850 2350 10100 2350 +Wire Wire Line + 9850 1850 10100 1850 +Wire Wire Line + 8800 1950 8800 1850 +Wire Wire Line + 8800 1850 9550 1850 +Wire Wire Line + 3250 3900 3000 3900 +Wire Wire Line + 1800 3900 2600 3900 +Wire Wire Line + 3250 4400 2950 4400 +Connection ~ 2400 3900 +Wire Wire Line + 2400 4150 2650 4150 +Wire Wire Line + 5150 1450 5350 1450 +Wire Wire Line + 5350 1550 5150 1550 +Wire Wire Line + 5150 1550 5150 1450 +Wire Wire Line + 5100 3650 5350 3650 +Wire Wire Line + 5350 3550 5100 3550 +Wire Wire Line + 5100 3550 5100 3750 +Wire Wire Line + 5100 3750 5350 3750 +Connection ~ 5100 3650 +Wire Wire Line + 7400 1950 7250 1950 +Wire Wire Line + 7400 1750 7250 1750 +Wire Wire Line + 2250 2250 2400 2250 +Wire Wire Line + 2250 2350 2400 2350 +Wire Wire Line + 7400 1650 7250 1650 +Wire Wire Line + 2250 2450 2400 2450 +Wire Wire Line + 2900 3050 2900 2850 +Wire Wire Line + 3100 2950 3100 2850 +Wire Wire Line + 2900 1900 2900 2050 +Wire Wire Line + 1700 2550 2400 2550 +Wire Wire Line + 2950 4150 3250 4150 +Wire Wire Line + 3250 4150 3250 3900 +Wire Wire Line + 2400 4400 2650 4400 +Connection ~ 2400 4150 +Wire Wire Line + 2400 3900 2400 4700 +Wire Wire Line + 2400 4700 2650 4700 +Connection ~ 2400 4400 +Wire Wire Line + 2950 4700 3250 4700 +Wire Wire Line + 3250 4700 3250 4400 +Wire Wire Line + 7400 1850 7250 1850 +Wire Notes Line + 1350 3600 4400 3600 +Wire Notes Line + 4400 3600 4400 5300 +Wire Notes Line + 4400 5300 1350 5300 +Wire Notes Line + 1350 5300 1350 3600 +Wire Wire Line + 7400 2900 7250 2900 +Wire Wire Line + 9550 3400 9900 3400 +Wire Wire Line + 9550 3300 9900 3300 +Wire Wire Line + 9550 3200 9900 3200 +Wire Wire Line + 10500 3300 10150 3300 +Wire Wire Line + 10150 3200 10600 3200 +Wire Wire Line + 10600 3200 10600 3100 +Wire Wire Line + 10600 3100 10700 3100 +Wire Wire Line + 10150 3400 10600 3400 +Wire Wire Line + 10600 3400 10600 3550 +Wire Wire Line + 10600 3550 10650 3550 +$EndSCHEMATC diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.kicad_pcb b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.kicad_pcb new file mode 100644 index 00000000..bdfe1402 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.kicad_pcb @@ -0,0 +1,1149 @@ +(kicad_pcb (version 4) (host pcbnew 4.0.5) + + (general + (links 60) + (no_connects 60) + (area 39.924999 39.924999 140.075001 140.075001) + (thickness 1.6) + (drawings 8) + (tracks 0) + (zones 0) + (modules 27) + (nets 35) + ) + + (page A4) + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user) + (33 F.Adhes user) + (34 B.Paste user) + (35 F.Paste user) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user) + (41 Cmts.User user) + (42 Eco1.User user) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user) + (46 B.CrtYd user) + (47 F.CrtYd user) + (48 B.Fab user) + (49 F.Fab user) + ) + + (setup + (last_trace_width 0.25) + (trace_clearance 0.2) + (zone_clearance 0.508) + (zone_45_only no) + (trace_min 0.2) + (segment_width 0.2) + (edge_width 0.15) + (via_size 0.6) + (via_drill 0.4) + (via_min_size 0.4) + (via_min_drill 0.3) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.15) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 1.524 1.524) + (pad_drill 0.762) + (pad_to_mask_clearance 0.2) + (aux_axis_origin 0 0) + (visible_elements FFFEFF7F) + (pcbplotparams + (layerselection 0x00030_80000001) + (usegerberextensions false) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15) + (hpglpenoverlay 2) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 1) + (scaleselection 1) + (outputdirectory "")) + ) + + (net 0 "") + (net 1 +5V) + (net 2 GND) + (net 3 MAP1) + (net 4 MAP2) + (net 5 MAP3) + (net 6 MAP4) + (net 7 "Net-(IC1-Pad1)") + (net 8 "Net-(IC1-Pad2)") + (net 9 "Net-(IC1-Pad9)") + (net 10 "Net-(IC1-Pad10)") + (net 11 "Net-(IC1-Pad11)") + (net 12 "Net-(IC1-Pad12)") + (net 13 "Net-(IC1-Pad13)") + (net 14 "Net-(IC1-Pad16)") + (net 15 "Net-(IC1-Pad18)") + (net 16 "Net-(IC1-Pad19)") + (net 17 "Net-(IC1-Pad20)") + (net 18 "Net-(IC1-Pad22)") + (net 19 "Net-(IC1-Pad27)") + (net 20 "Net-(IC1-Pad28)") + (net 21 "Net-(IC1-Pad29)") + (net 22 "Net-(IC1-Pad30)") + (net 23 "Net-(IC1-Pad31)") + (net 24 "Net-(IC1-Pad32)") + (net 25 "Net-(R1-Pad2)") + (net 26 "Net-(R2-Pad2)") + (net 27 "Net-(R3-Pad2)") + (net 28 "Net-(R4-Pad2)") + (net 29 "Net-(C13-Pad2)") + (net 30 "Net-(C14-Pad2)") + (net 31 DAC_SS) + (net 32 DAC_Serial) + (net 33 SCK) + (net 34 "Net-(U5-Pad8)") + + (net_class Default "This is the default net class." + (clearance 0.2) + (trace_width 0.25) + (via_dia 0.6) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net +5V) + (add_net DAC_SS) + (add_net DAC_Serial) + (add_net GND) + (add_net MAP1) + (add_net MAP2) + (add_net MAP3) + (add_net MAP4) + (add_net "Net-(C13-Pad2)") + (add_net "Net-(C14-Pad2)") + (add_net "Net-(IC1-Pad1)") + (add_net "Net-(IC1-Pad10)") + (add_net "Net-(IC1-Pad11)") + (add_net "Net-(IC1-Pad12)") + (add_net "Net-(IC1-Pad13)") + (add_net "Net-(IC1-Pad16)") + (add_net "Net-(IC1-Pad18)") + (add_net "Net-(IC1-Pad19)") + (add_net "Net-(IC1-Pad2)") + (add_net "Net-(IC1-Pad20)") + (add_net "Net-(IC1-Pad22)") + (add_net "Net-(IC1-Pad27)") + (add_net "Net-(IC1-Pad28)") + (add_net "Net-(IC1-Pad29)") + (add_net "Net-(IC1-Pad30)") + (add_net "Net-(IC1-Pad31)") + (add_net "Net-(IC1-Pad32)") + (add_net "Net-(IC1-Pad9)") + (add_net "Net-(R1-Pad2)") + (add_net "Net-(R2-Pad2)") + (add_net "Net-(R3-Pad2)") + (add_net "Net-(R4-Pad2)") + (add_net "Net-(U5-Pad8)") + (add_net SCK) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5C8) (tstamp 5A5A353F) + (at 108.04 80.52) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB3C) + (attr smd) + (fp_text reference C1 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5EE) (tstamp 5A5A354F) + (at 108.04 110.92) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB35) + (attr smd) + (fp_text reference C2 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D664) (tstamp 5A5A355F) + (at 69.18 116) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB43) + (attr smd) + (fp_text reference C3 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D6B3) (tstamp 5A5A356F) + (at 69.18 80.79) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB4A) + (attr smd) + (fp_text reference C4 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5BF) (tstamp 5A5A357F) + (at 108.04 76.71) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB3D) + (attr smd) + (fp_text reference C5 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D601) (tstamp 5A5A358F) + (at 108.04 114.73) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB36) + (attr smd) + (fp_text reference C6 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D675) (tstamp 5A5A359F) + (at 69.18 112.19) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB44) + (attr smd) + (fp_text reference C7 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D6BE) (tstamp 5A5A35AF) + (at 69.18 76.98) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB4B) + (attr smd) + (fp_text reference C8 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5CF) (tstamp 5A5A35BF) + (at 108 84) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB3A) + (attr smd) + (fp_text reference C9 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 3 MAP1)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D608) (tstamp 5A5A35CF) + (at 108.04 118.54) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB33) + (attr smd) + (fp_text reference C10 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 4 MAP2)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D657) (tstamp 5A5A35DF) + (at 69.18 108.38) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB41) + (attr smd) + (fp_text reference C11 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 5 MAP3)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D6C4) (tstamp 5A5A35EF) + (at 69.18 73.17) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB48) + (attr smd) + (fp_text reference C12 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 6 MAP4)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm (layer F.Cu) (tedit 54130A77) (tstamp 5A5A3626) + (at 95.15 93.22) + (descr "32-Lead Plastic Thin Quad Flatpack (PT) - 7x7x1.0 mm Body, 2.00 mm [TQFP] (see Microchip Packaging Specification 00000049BS.pdf)") + (tags "QFP 0.8") + (path /5A51EF33) + (attr smd) + (fp_text reference IC1 (at 0 -6.05) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value ATMEGA328-A (at 0 6.05) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.15)) + (fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.15)) + (fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.15)) + (fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.15)) + (fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.15)) + (fp_line (start -5.3 -5.3) (end -5.3 5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start 5.3 -5.3) (end 5.3 5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.3 -5.3) (end 5.3 -5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.3 5.3) (end 5.3 5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.625 -3.625) (end -3.625 -3.4) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 -3.625) (end 3.625 -3.3) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 3.625) (end 3.625 3.3) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 3.625) (end -3.625 3.3) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 -3.625) (end -3.3 -3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 3.625) (end -3.3 3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 3.625) (end 3.3 3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 -3.625) (end 3.3 -3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 -3.4) (end -5.05 -3.4) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -4.25 -2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 7 "Net-(IC1-Pad1)")) + (pad 2 smd rect (at -4.25 -2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 8 "Net-(IC1-Pad2)")) + (pad 3 smd rect (at -4.25 -1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 4 smd rect (at -4.25 -0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 5 smd rect (at -4.25 0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 6 smd rect (at -4.25 1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 7 smd rect (at -4.25 2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(C13-Pad2)")) + (pad 8 smd rect (at -4.25 2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 30 "Net-(C14-Pad2)")) + (pad 9 smd rect (at -2.8 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 9 "Net-(IC1-Pad9)")) + (pad 10 smd rect (at -2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 10 "Net-(IC1-Pad10)")) + (pad 11 smd rect (at -1.2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(IC1-Pad11)")) + (pad 12 smd rect (at -0.4 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(IC1-Pad12)")) + (pad 13 smd rect (at 0.4 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(IC1-Pad13)")) + (pad 14 smd rect (at 1.2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 31 DAC_SS)) + (pad 15 smd rect (at 2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 32 DAC_Serial)) + (pad 16 smd rect (at 2.8 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(IC1-Pad16)")) + (pad 17 smd rect (at 4.25 2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 33 SCK)) + (pad 18 smd rect (at 4.25 2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 15 "Net-(IC1-Pad18)")) + (pad 19 smd rect (at 4.25 1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 16 "Net-(IC1-Pad19)")) + (pad 20 smd rect (at 4.25 0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 17 "Net-(IC1-Pad20)")) + (pad 21 smd rect (at 4.25 -0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 22 smd rect (at 4.25 -1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 18 "Net-(IC1-Pad22)")) + (pad 23 smd rect (at 4.25 -2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 3 MAP1)) + (pad 24 smd rect (at 4.25 -2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 4 MAP2)) + (pad 25 smd rect (at 2.8 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 5 MAP3)) + (pad 26 smd rect (at 2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 6 MAP4)) + (pad 27 smd rect (at 1.2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(IC1-Pad27)")) + (pad 28 smd rect (at 0.4 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 20 "Net-(IC1-Pad28)")) + (pad 29 smd rect (at -0.4 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 21 "Net-(IC1-Pad29)")) + (pad 30 smd rect (at -1.2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 22 "Net-(IC1-Pad30)")) + (pad 31 smd rect (at -2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 23 "Net-(IC1-Pad31)")) + (pad 32 smd rect (at -2.8 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 24 "Net-(IC1-Pad32)")) + (model Housings_QFP.3dshapes/TQFP-32_7x7mm_Pitch0.8mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D5BC) (tstamp 5A5A3636) + (at 108.04 72.9) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB38) + (attr smd) + (fp_text reference R1 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 3 MAP1)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 25 "Net-(R1-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D5F0) (tstamp 5A5A3646) + (at 108.04 107.11) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB31) + (attr smd) + (fp_text reference R2 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 4 MAP2)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 26 "Net-(R2-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D65B) (tstamp 5A5A3656) + (at 69.18 119.81) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB3F) + (attr smd) + (fp_text reference R3 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 5 MAP3)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 27 "Net-(R3-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D6B1) (tstamp 5A5A3666) + (at 69.18 84.6) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB46) + (attr smd) + (fp_text reference R4 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 6 MAP4)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 28 "Net-(R4-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A3673) + (at 117 71.84 270) + (path /5A52C37B/5A52CB37) + (fp_text reference U1 (at 2.54 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 25 "Net-(R1-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A3680) + (at 116.93 107.11 270) + (path /5A52C37B/5A52CB30) + (fp_text reference U2 (at 2.54 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 26 "Net-(R2-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A368D) + (at 62.83 119.81 90) + (path /5A52C37B/5A52CB3E) + (fp_text reference U3 (at 2.54 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 27 "Net-(R3-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A369A) + (at 62.83 84.6 90) + (path /5A52C37B/5A52CB45) + (fp_text reference U4 (at 2.54 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 28 "Net-(R4-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 541A9B8D) (tstamp 5A52D453) + (at 168 141) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52D01C) + (attr smd) + (fp_text reference C13 (at 0 -2.1) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C22pF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(C13-Pad2)")) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 541A9B8D) (tstamp 5A52D459) + (at 182 128) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52D16E) + (attr smd) + (fp_text reference C14 (at 0 -2.1) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C22pF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 30 "Net-(C14-Pad2)")) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 58307B90) (tstamp 5A52D45F) + (at 168 149) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52D3DC) + (attr smd) + (fp_text reference R5 (at 0 -2.1) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R10k (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 21 "Net-(IC1-Pad29)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Buttons_Switches_ThroughHole:SW_TH_Tactile_Omron_B3F-10xx (layer F.Cu) (tedit 563F14D4) (tstamp 5A52D467) + (at 115.66 96.95) + (descr SW_TH_Tactile_Omron_B3F-10xx) + (tags "Omron B3F-10xx") + (path /5A52D320) + (fp_text reference SW1 (at 3 6) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value SW_SPST (at 2.95 -2.05) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.95 -1) (end -0.95 -0.9) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.05 -1.05) (end -0.7 -1.05) (layer F.SilkS) (width 0.15)) + (fp_arc (start 0 0) (end -1.05 -0.7) (angle 22.61986495) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.05 -1.05) (end -1.05 -0.7) (layer F.SilkS) (width 0.15)) + (fp_line (start 7.15 -1.15) (end 0.45 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 7.15 5.15) (end 7.15 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 5.15) (end 7.15 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0) (end -1.15 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -1.15) (end 0.45 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0) (end -1.15 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 3 2) (end 4 3) (layer F.SilkS) (width 0.15)) + (fp_line (start 1 5) (end 5 5) (layer F.SilkS) (width 0.15)) + (fp_line (start 1 -1) (end 5 -1) (layer F.SilkS) (width 0.15)) + (fp_line (start 0 2.75) (end 0 1.25) (layer F.SilkS) (width 0.15)) + (fp_line (start 6 1.25) (end 6 2.75) (layer F.SilkS) (width 0.15)) + (fp_line (start 0 2) (end 0 2) (layer F.SilkS) (width 0)) + (fp_line (start 5 5) (end 1 5) (layer F.SilkS) (width 0)) + (fp_line (start 5 -1) (end 1 -1) (layer F.SilkS) (width 0)) + (fp_line (start 6 2) (end 6 2) (layer F.SilkS) (width 0)) + (fp_circle (center 3 2) (end 4 3) (layer F.SilkS) (width 0)) + (pad 4 thru_hole circle (at 6 4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 3 thru_hole circle (at 0 4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole circle (at 6 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 1 thru_hole circle (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 21 "Net-(IC1-Pad29)")) + ) + + (module Crystals:Crystal_HC49-SD_SMD (layer F.Cu) (tedit 0) (tstamp 5A52D46D) + (at 201.93 149.86) + (descr "Crystal Quarz HC49-SD SMD") + (tags "Crystal Quarz HC49-SD SMD") + (path /5A5261DD) + (attr smd) + (fp_text reference Y1 (at 0 -5.08) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Crystal (at 2.54 5.08) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 0.8509 0) (layer F.Adhes) (width 0.381)) + (fp_circle (center 0 0) (end 0.50038 0) (layer F.Adhes) (width 0.381)) + (fp_circle (center 0 0) (end 0.14986 0.0508) (layer F.Adhes) (width 0.381)) + (fp_line (start -5.84962 2.49936) (end 5.84962 2.49936) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.84962 -2.49936) (end -5.84962 -2.49936) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.84962 2.49936) (end 5.84962 1.651) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.84962 -2.49936) (end 5.84962 -1.651) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.84962 2.49936) (end -5.84962 1.651) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.84962 -2.49936) (end -5.84962 -1.651) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -4.84886 0) (size 5.6007 2.10058) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(C13-Pad2)")) + (pad 2 smd rect (at 4.84886 0) (size 5.6007 2.10058) (layers F.Cu F.Paste F.Mask) + (net 30 "Net-(C14-Pad2)")) + ) + + (module Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm (layer F.Cu) (tedit 54130A77) (tstamp 5A52ED23) + (at 78 94) + (descr "8-Lead Plastic Small Outline (SN) - Narrow, 3.90 mm Body [SOIC] (see Microchip Packaging Specification 00000049BS.pdf)") + (tags "SOIC 1.27") + (path /5A52E25F) + (attr smd) + (fp_text reference U5 (at 0 -3.5) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MCP4921-E/SN (at 0 3.5) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.95 -2.45) (end 1.95 -2.45) (layer F.Fab) (width 0.15)) + (fp_line (start 1.95 -2.45) (end 1.95 2.45) (layer F.Fab) (width 0.15)) + (fp_line (start 1.95 2.45) (end -1.95 2.45) (layer F.Fab) (width 0.15)) + (fp_line (start -1.95 2.45) (end -1.95 -1.45) (layer F.Fab) (width 0.15)) + (fp_line (start -1.95 -1.45) (end -0.95 -2.45) (layer F.Fab) (width 0.15)) + (fp_line (start -3.75 -2.75) (end -3.75 2.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start 3.75 -2.75) (end 3.75 2.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 -2.75) (end 3.75 -2.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.75 2.75) (end 3.75 2.75) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.075 -2.575) (end -2.075 -2.525) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.075 -2.575) (end 2.075 -2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start 2.075 2.575) (end 2.075 2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 2.575) (end -2.075 2.43) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 -2.575) (end 2.075 -2.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 2.575) (end 2.075 2.575) (layer F.SilkS) (width 0.15)) + (fp_line (start -2.075 -2.525) (end -3.475 -2.525) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -2.7 -1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at -2.7 -0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 31 DAC_SS)) + (pad 3 smd rect (at -2.7 0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 33 SCK)) + (pad 4 smd rect (at -2.7 1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 32 DAC_Serial)) + (pad 5 smd rect (at 2.7 1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 6 smd rect (at 2.7 0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 7 smd rect (at 2.7 -0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 8 smd rect (at 2.7 -1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask) + (net 34 "Net-(U5-Pad8)")) + (model Housings_SOIC.3dshapes/SOIC-8_3.9x4.9mm_Pitch1.27mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (gr_line (start 40 140) (end 40 40) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 140 140) (end 40 140) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 140 40) (end 140 140) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 40 40) (end 140 40) (layer Edge.Cuts) (width 0.15)) + (gr_text "Flat side up" (at 50.13 113.46) (layer F.SilkS) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (gr_text "Flat side up" (at 50.13 78.25) (layer F.SilkS) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (gr_text "Flat side up" (at 129.63 79.25) (layer F.SilkS) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + (gr_text "Flat side up" (at 129.63 113.46) (layer F.SilkS) + (effects (font (size 1.5 1.5) (thickness 0.3))) + ) + + (zone (net 2) (net_name GND) (layer F.Cu) (tstamp 0) (hatch edge 0.508) + (connect_pads (clearance 0.508)) + (min_thickness 0.254) + (fill (arc_segments 16) (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 139 137) (xy 41 137) (xy 41 43) (xy 139 43) + ) + ) + ) + (zone (net 2) (net_name GND) (layer B.Cu) (tstamp 0) (hatch edge 0.508) + (connect_pads (clearance 0.508)) + (min_thickness 0.254) + (fill (arc_segments 16) (thermal_gap 0.508) (thermal_bridge_width 0.508)) + (polygon + (pts + (xy 41 137) (xy 41 43) (xy 139 43) (xy 139 137) + ) + ) + ) +) diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.kicad_pcb-bak b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.kicad_pcb-bak new file mode 100644 index 00000000..ece19cd3 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.kicad_pcb-bak @@ -0,0 +1,1079 @@ +(kicad_pcb (version 4) (host pcbnew 4.0.5) + + (general + (links 48) + (no_connects 44) + (area 228.524999 81.204999 245.185001 138.505001) + (thickness 1.6) + (drawings 9) + (tracks 0) + (zones 0) + (modules 26) + (nets 39) + ) + + (page A4) + (layers + (0 F.Cu signal) + (31 B.Cu signal) + (32 B.Adhes user) + (33 F.Adhes user) + (34 B.Paste user) + (35 F.Paste user) + (36 B.SilkS user) + (37 F.SilkS user) + (38 B.Mask user) + (39 F.Mask user) + (40 Dwgs.User user) + (41 Cmts.User user) + (42 Eco1.User user) + (43 Eco2.User user) + (44 Edge.Cuts user) + (45 Margin user) + (46 B.CrtYd user) + (47 F.CrtYd user) + (48 B.Fab user) + (49 F.Fab user) + ) + + (setup + (last_trace_width 0.25) + (trace_clearance 0.2) + (zone_clearance 0.508) + (zone_45_only no) + (trace_min 0.2) + (segment_width 0.2) + (edge_width 0.15) + (via_size 0.6) + (via_drill 0.4) + (via_min_size 0.4) + (via_min_drill 0.3) + (uvia_size 0.3) + (uvia_drill 0.1) + (uvias_allowed no) + (uvia_min_size 0.2) + (uvia_min_drill 0.1) + (pcb_text_width 0.3) + (pcb_text_size 1.5 1.5) + (mod_edge_width 0.15) + (mod_text_size 1 1) + (mod_text_width 0.15) + (pad_size 1.524 1.524) + (pad_drill 0.762) + (pad_to_mask_clearance 0.2) + (aux_axis_origin 0 0) + (visible_elements FFFFF77F) + (pcbplotparams + (layerselection 0x00030_80000001) + (usegerberextensions false) + (excludeedgelayer true) + (linewidth 0.100000) + (plotframeref false) + (viasonmask false) + (mode 1) + (useauxorigin false) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15) + (hpglpenoverlay 2) + (psnegative false) + (psa4output false) + (plotreference true) + (plotvalue true) + (plotinvisibletext false) + (padsonsilk false) + (subtractmaskfromsilk false) + (outputformat 1) + (mirror false) + (drillshape 1) + (scaleselection 1) + (outputdirectory "")) + ) + + (net 0 "") + (net 1 +5V) + (net 2 GND) + (net 3 MAP1) + (net 4 MAP2) + (net 5 MAP3) + (net 6 MAP4) + (net 7 "Net-(IC1-Pad1)") + (net 8 "Net-(IC1-Pad2)") + (net 9 "Net-(IC1-Pad3)") + (net 10 "Net-(IC1-Pad4)") + (net 11 "Net-(IC1-Pad5)") + (net 12 "Net-(IC1-Pad6)") + (net 13 "Net-(IC1-Pad9)") + (net 14 "Net-(IC1-Pad10)") + (net 15 "Net-(IC1-Pad11)") + (net 16 "Net-(IC1-Pad12)") + (net 17 "Net-(IC1-Pad13)") + (net 18 "Net-(IC1-Pad14)") + (net 19 "Net-(IC1-Pad15)") + (net 20 "Net-(IC1-Pad16)") + (net 21 "Net-(IC1-Pad17)") + (net 22 "Net-(IC1-Pad18)") + (net 23 "Net-(IC1-Pad19)") + (net 24 "Net-(IC1-Pad20)") + (net 25 "Net-(IC1-Pad21)") + (net 26 "Net-(IC1-Pad22)") + (net 27 "Net-(IC1-Pad27)") + (net 28 "Net-(IC1-Pad28)") + (net 29 "Net-(IC1-Pad29)") + (net 30 "Net-(IC1-Pad30)") + (net 31 "Net-(IC1-Pad31)") + (net 32 "Net-(IC1-Pad32)") + (net 33 "Net-(R1-Pad2)") + (net 34 "Net-(R2-Pad2)") + (net 35 "Net-(R3-Pad2)") + (net 36 "Net-(R4-Pad2)") + (net 37 "Net-(C13-Pad2)") + (net 38 "Net-(C14-Pad2)") + + (net_class Default "This is the default net class." + (clearance 0.2) + (trace_width 0.25) + (via_dia 0.6) + (via_drill 0.4) + (uvia_dia 0.3) + (uvia_drill 0.1) + (add_net +5V) + (add_net GND) + (add_net MAP1) + (add_net MAP2) + (add_net MAP3) + (add_net MAP4) + (add_net "Net-(C13-Pad2)") + (add_net "Net-(C14-Pad2)") + (add_net "Net-(IC1-Pad1)") + (add_net "Net-(IC1-Pad10)") + (add_net "Net-(IC1-Pad11)") + (add_net "Net-(IC1-Pad12)") + (add_net "Net-(IC1-Pad13)") + (add_net "Net-(IC1-Pad14)") + (add_net "Net-(IC1-Pad15)") + (add_net "Net-(IC1-Pad16)") + (add_net "Net-(IC1-Pad17)") + (add_net "Net-(IC1-Pad18)") + (add_net "Net-(IC1-Pad19)") + (add_net "Net-(IC1-Pad2)") + (add_net "Net-(IC1-Pad20)") + (add_net "Net-(IC1-Pad21)") + (add_net "Net-(IC1-Pad22)") + (add_net "Net-(IC1-Pad27)") + (add_net "Net-(IC1-Pad28)") + (add_net "Net-(IC1-Pad29)") + (add_net "Net-(IC1-Pad3)") + (add_net "Net-(IC1-Pad30)") + (add_net "Net-(IC1-Pad31)") + (add_net "Net-(IC1-Pad32)") + (add_net "Net-(IC1-Pad4)") + (add_net "Net-(IC1-Pad5)") + (add_net "Net-(IC1-Pad6)") + (add_net "Net-(IC1-Pad9)") + (add_net "Net-(R1-Pad2)") + (add_net "Net-(R2-Pad2)") + (add_net "Net-(R3-Pad2)") + (add_net "Net-(R4-Pad2)") + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5C8) (tstamp 5A5A353F) + (at 193.04 96.52) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB3C) + (attr smd) + (fp_text reference C1 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5EE) (tstamp 5A5A354F) + (at 193.04 121.92) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB35) + (attr smd) + (fp_text reference C2 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D664) (tstamp 5A5A355F) + (at 170.18 127) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB43) + (attr smd) + (fp_text reference C3 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D6B3) (tstamp 5A5A356F) + (at 170.18 97.79) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB4A) + (attr smd) + (fp_text reference C4 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C1uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5BF) (tstamp 5A5A357F) + (at 193.04 92.71) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB3D) + (attr smd) + (fp_text reference C5 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D601) (tstamp 5A5A358F) + (at 193.04 125.73) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB36) + (attr smd) + (fp_text reference C6 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D675) (tstamp 5A5A359F) + (at 170.18 123.19) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB44) + (attr smd) + (fp_text reference C7 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D6BE) (tstamp 5A5A35AF) + (at 170.18 93.98) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB4B) + (attr smd) + (fp_text reference C8 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.01uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D5CF) (tstamp 5A5A35BF) + (at 193.04 100.33) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB3A) + (attr smd) + (fp_text reference C9 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 3 MAP1)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D608) (tstamp 5A5A35CF) + (at 193.04 129.54) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB33) + (attr smd) + (fp_text reference C10 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 4 MAP2)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D657) (tstamp 5A5A35DF) + (at 170.18 119.38) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB41) + (attr smd) + (fp_text reference C11 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 5 MAP3)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 5A52D6C4) (tstamp 5A5A35EF) + (at 170.18 90.17) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52C37B/5A52CB48) + (attr smd) + (fp_text reference C12 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C0.3uF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 6 MAP4)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm (layer F.Cu) (tedit 54130A77) (tstamp 5A5A3626) + (at 184.15 109.22) + (descr "32-Lead Plastic Thin Quad Flatpack (PT) - 7x7x1.0 mm Body, 2.00 mm [TQFP] (see Microchip Packaging Specification 00000049BS.pdf)") + (tags "QFP 0.8") + (path /5A51EF33) + (attr smd) + (fp_text reference IC1 (at 0 -6.05) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value ATMEGA328-A (at 0 6.05) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text user %R (at 0 0) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.15)) + (fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.15)) + (fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.15)) + (fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.15)) + (fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.15)) + (fp_line (start -5.3 -5.3) (end -5.3 5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start 5.3 -5.3) (end 5.3 5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.3 -5.3) (end 5.3 -5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start -5.3 5.3) (end 5.3 5.3) (layer F.CrtYd) (width 0.05)) + (fp_line (start -3.625 -3.625) (end -3.625 -3.4) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 -3.625) (end 3.625 -3.3) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 3.625) (end 3.625 3.3) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 3.625) (end -3.625 3.3) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 -3.625) (end -3.3 -3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 3.625) (end -3.3 3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 3.625) (end 3.3 3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start 3.625 -3.625) (end 3.3 -3.625) (layer F.SilkS) (width 0.15)) + (fp_line (start -3.625 -3.4) (end -5.05 -3.4) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -4.25 -2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 7 "Net-(IC1-Pad1)")) + (pad 2 smd rect (at -4.25 -2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 8 "Net-(IC1-Pad2)")) + (pad 3 smd rect (at -4.25 -1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 9 "Net-(IC1-Pad3)")) + (pad 4 smd rect (at -4.25 -0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 10 "Net-(IC1-Pad4)")) + (pad 5 smd rect (at -4.25 0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 11 "Net-(IC1-Pad5)")) + (pad 6 smd rect (at -4.25 1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 12 "Net-(IC1-Pad6)")) + (pad 7 smd rect (at -4.25 2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 37 "Net-(C13-Pad2)")) + (pad 8 smd rect (at -4.25 2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 38 "Net-(C14-Pad2)")) + (pad 9 smd rect (at -2.8 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 13 "Net-(IC1-Pad9)")) + (pad 10 smd rect (at -2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 14 "Net-(IC1-Pad10)")) + (pad 11 smd rect (at -1.2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 15 "Net-(IC1-Pad11)")) + (pad 12 smd rect (at -0.4 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 16 "Net-(IC1-Pad12)")) + (pad 13 smd rect (at 0.4 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 17 "Net-(IC1-Pad13)")) + (pad 14 smd rect (at 1.2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 18 "Net-(IC1-Pad14)")) + (pad 15 smd rect (at 2 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 19 "Net-(IC1-Pad15)")) + (pad 16 smd rect (at 2.8 4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 20 "Net-(IC1-Pad16)")) + (pad 17 smd rect (at 4.25 2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 21 "Net-(IC1-Pad17)")) + (pad 18 smd rect (at 4.25 2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 22 "Net-(IC1-Pad18)")) + (pad 19 smd rect (at 4.25 1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 23 "Net-(IC1-Pad19)")) + (pad 20 smd rect (at 4.25 0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 24 "Net-(IC1-Pad20)")) + (pad 21 smd rect (at 4.25 -0.4) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 25 "Net-(IC1-Pad21)")) + (pad 22 smd rect (at 4.25 -1.2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 26 "Net-(IC1-Pad22)")) + (pad 23 smd rect (at 4.25 -2) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 3 MAP1)) + (pad 24 smd rect (at 4.25 -2.8) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 4 MAP2)) + (pad 25 smd rect (at 2.8 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 5 MAP3)) + (pad 26 smd rect (at 2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 6 MAP4)) + (pad 27 smd rect (at 1.2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 27 "Net-(IC1-Pad27)")) + (pad 28 smd rect (at 0.4 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 28 "Net-(IC1-Pad28)")) + (pad 29 smd rect (at -0.4 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(IC1-Pad29)")) + (pad 30 smd rect (at -1.2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 30 "Net-(IC1-Pad30)")) + (pad 31 smd rect (at -2 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 31 "Net-(IC1-Pad31)")) + (pad 32 smd rect (at -2.8 -4.25 90) (size 1.6 0.55) (layers F.Cu F.Paste F.Mask) + (net 32 "Net-(IC1-Pad32)")) + (model Housings_QFP.3dshapes/TQFP-32_7x7mm_Pitch0.8mm.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D5BC) (tstamp 5A5A3636) + (at 193.04 88.9) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB38) + (attr smd) + (fp_text reference R1 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 3 MAP1)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 33 "Net-(R1-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D5F0) (tstamp 5A5A3646) + (at 193.04 118.11) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB31) + (attr smd) + (fp_text reference R2 (at -3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 4 MAP2)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 34 "Net-(R2-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D65B) (tstamp 5A5A3656) + (at 170.18 130.81) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB3F) + (attr smd) + (fp_text reference R3 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 5 MAP3)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 35 "Net-(R3-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 5A52D6B1) (tstamp 5A5A3666) + (at 170.18 101.6) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52C37B/5A52CB46) + (attr smd) + (fp_text reference R4 (at 3.81 0) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R750 (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 6 MAP4)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 36 "Net-(R4-Pad2)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A3673) + (at 201.93 88.9 270) + (path /5A52C37B/5A52CB37) + (fp_text reference U1 (at 2.54 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 33 "Net-(R1-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A3680) + (at 201.93 118.11 270) + (path /5A52C37B/5A52CB30) + (fp_text reference U2 (at 2.54 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 270) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 34 "Net-(R2-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 270) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 270) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A368D) + (at 163.83 130.81 90) + (path /5A52C37B/5A52CB3E) + (fp_text reference U3 (at 2.54 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 35 "Net-(R3-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module MPX4250:MPX4250 (layer F.Cu) (tedit 55AD8302) (tstamp 5A5A369A) + (at 163.83 101.6 90) + (path /5A52C37B/5A52CB45) + (fp_text reference U4 (at 2.54 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value MPX4250 (at 10.16 2.54 90) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 6.4 -12.3) (end 10.2 -3.7) (layer F.SilkS) (width 0.15)) + (pad 1 thru_hole circle (at 0 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 36 "Net-(R4-Pad2)")) + (pad 2 thru_hole circle (at 2.54 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 2 GND)) + (pad 3 thru_hole circle (at 5.08 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS) + (net 1 +5V)) + (pad 4 thru_hole circle (at 7.62 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 5 thru_hole circle (at 10.16 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad 6 thru_hole circle (at 12.7 0 90) (size 1.5 1.5) (drill 0.84) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at 17.9 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + (pad ~ thru_hole circle (at -5.25 -12.32 90) (size 4.1 4.1) (drill 4.1) (layers *.Cu *.Mask F.SilkS)) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 541A9B8D) (tstamp 5A52D453) + (at 236.855 148.505001) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52D01C) + (attr smd) + (fp_text reference C13 (at 0 -2.1) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C22pF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 37 "Net-(C13-Pad2)")) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Capacitors_SMD:C_0805_HandSoldering (layer F.Cu) (tedit 541A9B8D) (tstamp 5A52D459) + (at 236.855 148.505001) + (descr "Capacitor SMD 0805, hand soldering") + (tags "capacitor 0805") + (path /5A52D16E) + (attr smd) + (fp_text reference C14 (at 0 -2.1) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value C22pF (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.15)) + (fp_line (start -2.3 -1) (end 2.3 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.3 -1) (end -2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.3 -1) (end 2.3 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.5 -0.85) (end -0.5 -0.85) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.5 0.85) (end 0.5 0.85) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 2 GND)) + (pad 2 smd rect (at 1.25 0) (size 1.5 1.25) (layers F.Cu F.Paste F.Mask) + (net 38 "Net-(C14-Pad2)")) + (model Capacitors_SMD.3dshapes/C_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Resistors_SMD:R_0805_HandSoldering (layer F.Cu) (tedit 58307B90) (tstamp 5A52D45F) + (at 236.855 148.505001) + (descr "Resistor SMD 0805, hand soldering") + (tags "resistor 0805") + (path /5A52D3DC) + (attr smd) + (fp_text reference R5 (at 0 -2.1) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value R10k (at 0 2.1) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -1 0.625) (end -1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 0.625) (end -1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start 1 -0.625) (end 1 0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -1 -0.625) (end 1 -0.625) (layer F.Fab) (width 0.1)) + (fp_line (start -2.4 -1) (end 2.4 -1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start -2.4 -1) (end -2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 2.4 -1) (end 2.4 1) (layer F.CrtYd) (width 0.05)) + (fp_line (start 0.6 0.875) (end -0.6 0.875) (layer F.SilkS) (width 0.15)) + (fp_line (start -0.6 -0.875) (end 0.6 -0.875) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 1 +5V)) + (pad 2 smd rect (at 1.35 0) (size 1.5 1.3) (layers F.Cu F.Paste F.Mask) + (net 29 "Net-(IC1-Pad29)")) + (model Resistors_SMD.3dshapes/R_0805_HandSoldering.wrl + (at (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + + (module Buttons_Switches_ThroughHole:SW_TH_Tactile_Omron_B3F-10xx (layer F.Cu) (tedit 563F14D4) (tstamp 5A52D467) + (at 200.66 107.95) + (descr SW_TH_Tactile_Omron_B3F-10xx) + (tags "Omron B3F-10xx") + (path /5A52D320) + (fp_text reference SW1 (at 3 6) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value SW_SPST (at 2.95 -2.05) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_line (start -0.95 -1) (end -0.95 -0.9) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.05 -1.05) (end -0.7 -1.05) (layer F.SilkS) (width 0.15)) + (fp_arc (start 0 0) (end -1.05 -0.7) (angle 22.61986495) (layer F.SilkS) (width 0.15)) + (fp_line (start -1.05 -1.05) (end -1.05 -0.7) (layer F.SilkS) (width 0.15)) + (fp_line (start 7.15 -1.15) (end 0.45 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start 7.15 5.15) (end 7.15 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 5.15) (end 7.15 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0) (end -1.15 5.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 -1.15) (end 0.45 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_line (start -1.15 0) (end -1.15 -1.15) (layer F.CrtYd) (width 0.05)) + (fp_circle (center 3 2) (end 4 3) (layer F.SilkS) (width 0.15)) + (fp_line (start 1 5) (end 5 5) (layer F.SilkS) (width 0.15)) + (fp_line (start 1 -1) (end 5 -1) (layer F.SilkS) (width 0.15)) + (fp_line (start 0 2.75) (end 0 1.25) (layer F.SilkS) (width 0.15)) + (fp_line (start 6 1.25) (end 6 2.75) (layer F.SilkS) (width 0.15)) + (fp_line (start 0 2) (end 0 2) (layer F.SilkS) (width 0)) + (fp_line (start 5 5) (end 1 5) (layer F.SilkS) (width 0)) + (fp_line (start 5 -1) (end 1 -1) (layer F.SilkS) (width 0)) + (fp_line (start 6 2) (end 6 2) (layer F.SilkS) (width 0)) + (fp_circle (center 3 2) (end 4 3) (layer F.SilkS) (width 0)) + (pad 4 thru_hole circle (at 6 4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 3 thru_hole circle (at 0 4) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)) + (pad 2 thru_hole circle (at 6 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 2 GND)) + (pad 1 thru_hole circle (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask) + (net 29 "Net-(IC1-Pad29)")) + ) + + (module Crystals:Crystal_HC49-SD_SMD (layer F.Cu) (tedit 0) (tstamp 5A52D46D) + (at 201.93 149.86) + (descr "Crystal Quarz HC49-SD SMD") + (tags "Crystal Quarz HC49-SD SMD") + (path /5A5261DD) + (attr smd) + (fp_text reference Y1 (at 0 -5.08) (layer F.SilkS) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_text value Crystal (at 2.54 5.08) (layer F.Fab) + (effects (font (size 1 1) (thickness 0.15))) + ) + (fp_circle (center 0 0) (end 0.8509 0) (layer F.Adhes) (width 0.381)) + (fp_circle (center 0 0) (end 0.50038 0) (layer F.Adhes) (width 0.381)) + (fp_circle (center 0 0) (end 0.14986 0.0508) (layer F.Adhes) (width 0.381)) + (fp_line (start -5.84962 2.49936) (end 5.84962 2.49936) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.84962 -2.49936) (end -5.84962 -2.49936) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.84962 2.49936) (end 5.84962 1.651) (layer F.SilkS) (width 0.15)) + (fp_line (start 5.84962 -2.49936) (end 5.84962 -1.651) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.84962 2.49936) (end -5.84962 1.651) (layer F.SilkS) (width 0.15)) + (fp_line (start -5.84962 -2.49936) (end -5.84962 -1.651) (layer F.SilkS) (width 0.15)) + (pad 1 smd rect (at -4.84886 0) (size 5.6007 2.10058) (layers F.Cu F.Paste F.Mask) + (net 37 "Net-(C13-Pad2)")) + (pad 2 smd rect (at 4.84886 0) (size 5.6007 2.10058) (layers F.Cu F.Paste F.Mask) + (net 38 "Net-(C14-Pad2)")) + ) + + (gr_line (start 231.14 138.43) (end 242.57 138.43) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 231.14 81.28) (end 242.57 81.28) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 228.6 83.82) (end 228.6 135.89) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 231.14 83.82) (end 228.6 83.82) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 231.14 135.89) (end 231.14 138.43) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_line (start 245.11 83.82) (end 245.11 135.89) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 242.57 135.89) (end 245.11 135.89) (angle 90) (layer Edge.Cuts) (width 0.15)) + (gr_circle (center 241.3 86.36) (end 240.03 86.36) (layer Edge.Cuts) (width 0.15)) + (gr_arc (start 242.57 83.82) (end 242.57 81.28) (angle 90) (layer Edge.Cuts) (width 0.15)) + +) diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.net b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.net new file mode 100644 index 00000000..71f5e4d3 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.net @@ -0,0 +1,455 @@ +(export (version D) + (design + (source /Users/josh/Documents/SpeedyMAP/SpeedyMAP.sch) + (date "Monday, 08 January 2018 'pmt' 02:58:07 pm") + (tool "Eeschema 4.0.5") + (sheet (number 1) (name /) (tstamps /) + (title_block + (title) + (company) + (rev) + (date) + (source SpeedyMAP.sch) + (comment (number 1) (value "")) + (comment (number 2) (value "")) + (comment (number 3) (value "")) + (comment (number 4) (value "")))) + (sheet (number 2) (name "/MAP Sensors/") (tstamps /5A52C37B/) + (title_block + (title) + (company) + (rev) + (date) + (source "MAP Sensors.sch") + (comment (number 1) (value "")) + (comment (number 2) (value "")) + (comment (number 3) (value "")) + (comment (number 4) (value ""))))) + (components + (comp (ref IC1) + (value ATMEGA328-A) + (footprint Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm) + (libsource (lib atmel) (part ATMEGA328-A)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A51EF33)) + (comp (ref Y1) + (value Crystal) + (footprint Crystals:Crystal_HC49-SD_SMD) + (libsource (lib device) (part Crystal)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A5261DD)) + (comp (ref C13) + (value C22pF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A52D01C)) + (comp (ref C14) + (value C22pF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A52D16E)) + (comp (ref SW1) + (value SW_SPST) + (footprint Buttons_Switches_ThroughHole:SW_TH_Tactile_Omron_B3F-10xx) + (fields + (field (name "Part Number") B3F-1002)) + (libsource (lib switches) (part SW_SPST)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A52D320)) + (comp (ref R5) + (value R10k) + (footprint Resistors_SMD:R_0805_HandSoldering) + (libsource (lib device) (part R)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A52D3DC)) + (comp (ref U5) + (value MCP4921-E/SN) + (footprint Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm) + (libsource (lib adc-dac) (part MCP4921-E/SN)) + (sheetpath (names /) (tstamps /)) + (tstamp 5A52E25F)) + (comp (ref U2) + (value MPX4250) + (footprint MPX4250:MPX4250) + (libsource (lib mpx4250) (part MPX4250)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB30)) + (comp (ref R2) + (value R750) + (footprint Resistors_SMD:R_0805_HandSoldering) + (libsource (lib device) (part R)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB31)) + (comp (ref C10) + (value C0.3uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB33)) + (comp (ref C2) + (value C1uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB35)) + (comp (ref C6) + (value C0.01uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB36)) + (comp (ref U1) + (value MPX4250) + (footprint MPX4250:MPX4250) + (libsource (lib mpx4250) (part MPX4250)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB37)) + (comp (ref R1) + (value R750) + (footprint Resistors_SMD:R_0805_HandSoldering) + (libsource (lib device) (part R)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB38)) + (comp (ref C9) + (value C0.3uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB3A)) + (comp (ref C1) + (value C1uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB3C)) + (comp (ref C5) + (value C0.01uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB3D)) + (comp (ref U3) + (value MPX4250) + (footprint MPX4250:MPX4250) + (libsource (lib mpx4250) (part MPX4250)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB3E)) + (comp (ref R3) + (value R750) + (footprint Resistors_SMD:R_0805_HandSoldering) + (libsource (lib device) (part R)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB3F)) + (comp (ref C11) + (value C0.3uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB41)) + (comp (ref C3) + (value C1uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB43)) + (comp (ref C7) + (value C0.01uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB44)) + (comp (ref U4) + (value MPX4250) + (footprint MPX4250:MPX4250) + (libsource (lib mpx4250) (part MPX4250)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB45)) + (comp (ref R4) + (value R750) + (footprint Resistors_SMD:R_0805_HandSoldering) + (libsource (lib device) (part R)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB46)) + (comp (ref C12) + (value C0.3uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB48)) + (comp (ref C4) + (value C1uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB4A)) + (comp (ref C8) + (value C0.01uF) + (footprint Capacitors_SMD:C_0805_HandSoldering) + (libsource (lib device) (part C)) + (sheetpath (names "/MAP Sensors/") (tstamps /5A52C37B/)) + (tstamp 5A52CB4B))) + (libparts + (libpart (lib atmel) (part ATMEGA168A-A) + (aliases + (alias ATMEGA48A-A) + (alias ATMEGA48PA-A) + (alias ATMEGA88A-A) + (alias ATMEGA88PA-A) + (alias ATMEGA168PA-A) + (alias ATMEGA328-A) + (alias ATMEGA328P-A)) + (description "TQFP32, 16k Flash, 1kB SRAM, 512B EEPROM") + (docs http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet.pdf) + (fields + (field (name Reference) IC) + (field (name Value) ATMEGA168A-A) + (field (name Footprint) TQFP32)) + (pins + (pin (num 1) (name "(PCINT19/OC2B/INT1)PD3") (type BiDi)) + (pin (num 2) (name "(PCINT20/XCK/T0)PD4") (type BiDi)) + (pin (num 3) (name GND) (type power_in)) + (pin (num 4) (name VCC) (type power_in)) + (pin (num 5) (name GND) (type power_in)) + (pin (num 6) (name VCC) (type power_in)) + (pin (num 7) (name "(PCINT6/XTAL1/TOSC1)PB6") (type BiDi)) + (pin (num 8) (name "(PCINT7/XTAL2/TOSC2)PB7") (type BiDi)) + (pin (num 9) (name "(PCINT21/OC0B/T1)PD5") (type BiDi)) + (pin (num 10) (name "(PCINT22/OC0A/AIN0)PD6") (type BiDi)) + (pin (num 11) (name "(PCINT23/AIN1)PD7") (type BiDi)) + (pin (num 12) (name "(PCINT0/CLKO/ICP1)PB0") (type BiDi)) + (pin (num 13) (name "(PCINT1/OC1A)PB1") (type BiDi)) + (pin (num 14) (name "(PCINT2/OC1B/~SS~)PB2") (type BiDi)) + (pin (num 15) (name "(PCINT3/OC2A/MOSI)PB3") (type BiDi)) + (pin (num 16) (name "(PCINT4/MISO)PB4") (type BiDi)) + (pin (num 17) (name "(PCINT5/SCK)PB5") (type BiDi)) + (pin (num 18) (name AVCC) (type power_in)) + (pin (num 19) (name ADC6) (type input)) + (pin (num 20) (name AREF) (type BiDi)) + (pin (num 21) (name GND) (type power_in)) + (pin (num 22) (name ADC7) (type input)) + (pin (num 23) (name "(PCINT8/ADC0)PC0") (type BiDi)) + (pin (num 24) (name "(PCINT9/ADC1)PC1") (type BiDi)) + (pin (num 25) (name "(PCINT10/ADC2)PC2") (type BiDi)) + (pin (num 26) (name "(PCINT11/ADC3)PC3") (type BiDi)) + (pin (num 27) (name "(PCINT12/SDA/ADC4)PC4") (type BiDi)) + (pin (num 28) (name "(PCINT13/SCL/ADC5)PC5") (type BiDi)) + (pin (num 29) (name "(PCINT14/~RESET~)PC6") (type BiDi)) + (pin (num 30) (name "(PCINT16/RXD)PD0") (type BiDi)) + (pin (num 31) (name "(PCINT17/TXD)PD1") (type BiDi)) + (pin (num 32) (name "(PCINT18/INT0)PD2") (type BiDi)))) + (libpart (lib device) (part C) + (description "Unpolarized capacitor") + (footprints + (fp C?) + (fp C_????_*) + (fp C_????) + (fp SMD*_c) + (fp Capacitor*)) + (fields + (field (name Reference) C) + (field (name Value) C)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib device) (part Crystal) + (description "Two pin crystal") + (footprints + (fp Crystal*)) + (fields + (field (name Reference) Y) + (field (name Value) Crystal)) + (pins + (pin (num 1) (name 1) (type passive)) + (pin (num 2) (name 2) (type passive)))) + (libpart (lib adc-dac) (part MCP4921-E/MS) + (aliases + (alias MCP4921-E/SN) + (alias MCP4921-E/P)) + (description "MCP4921, Single 12-bit Digital to Analog Converter, SPI Interface, MSOP-8") + (docs http://ww1.microchip.com/downloads/en/devicedoc/21897a.pdf) + (footprints + (fp MSOP*) + (fp SOIC*) + (fp DIP*) + (fp PDIP*)) + (fields + (field (name Reference) U) + (field (name Value) MCP4921-E/MS)) + (pins + (pin (num 1) (name VDD) (type power_in)) + (pin (num 2) (name ~CS~) (type input)) + (pin (num 3) (name SCK) (type input)) + (pin (num 4) (name SDI) (type input)) + (pin (num 5) (name ~LDAC~) (type input)) + (pin (num 6) (name VrefA) (type passive)) + (pin (num 7) (name AVSS) (type power_in)) + (pin (num 8) (name VoutA) (type passive)))) + (libpart (lib mpx4250) (part MPX4250) + (fields + (field (name Reference) U) + (field (name Value) MPX4250)) + (pins + (pin (num 1) (name VOUT) (type output)) + (pin (num 2) (name GND) (type power_in)) + (pin (num 3) (name VCC) (type power_in)))) + (libpart (lib device) (part R) + (description Resistor) + (footprints + (fp R_*) + (fp Resistor_*)) + (fields + (field (name Reference) R) + (field (name Value) R)) + (pins + (pin (num 1) (name ~) (type passive)) + (pin (num 2) (name ~) (type passive)))) + (libpart (lib switches) (part SW_SPST) + (description "Single Pole Single Throw (SPST) switch") + (fields + (field (name Reference) SW) + (field (name Value) SW_SPST)) + (pins + (pin (num 1) (name A) (type input)) + (pin (num 2) (name B) (type input))))) + (libraries + (library (logical device) + (uri "/Library/Application Support/kicad/library/device.lib")) + (library (logical adc-dac) + (uri "/Library/Application Support/kicad/library/adc-dac.lib")) + (library (logical mpx4250) + (uri /Users/josh/Documents/SpeedyMAP/libs/mpx4250.lib)) + (library (logical atmel) + (uri "/Library/Application Support/kicad/library/atmel.lib")) + (library (logical switches) + (uri "/Library/Application Support/kicad/library/switches.lib"))) + (nets + (net (code 1) (name GND) + (node (ref C2) (pin 2)) + (node (ref C11) (pin 2)) + (node (ref C6) (pin 2)) + (node (ref U5) (pin 5)) + (node (ref U5) (pin 7)) + (node (ref U2) (pin 2)) + (node (ref C10) (pin 2)) + (node (ref C14) (pin 1)) + (node (ref C8) (pin 2)) + (node (ref C13) (pin 1)) + (node (ref IC1) (pin 3)) + (node (ref IC1) (pin 5)) + (node (ref C4) (pin 2)) + (node (ref U4) (pin 2)) + (node (ref IC1) (pin 21)) + (node (ref C12) (pin 2)) + (node (ref U1) (pin 2)) + (node (ref C3) (pin 2)) + (node (ref C9) (pin 2)) + (node (ref C7) (pin 2)) + (node (ref U3) (pin 2)) + (node (ref C1) (pin 2)) + (node (ref C5) (pin 2)) + (node (ref SW1) (pin 2))) + (net (code 2) (name +5V) + (node (ref U3) (pin 3)) + (node (ref C8) (pin 1)) + (node (ref C4) (pin 1)) + (node (ref U1) (pin 3)) + (node (ref C5) (pin 1)) + (node (ref C1) (pin 1)) + (node (ref U2) (pin 3)) + (node (ref C6) (pin 1)) + (node (ref C2) (pin 1)) + (node (ref U4) (pin 3)) + (node (ref IC1) (pin 4)) + (node (ref IC1) (pin 6)) + (node (ref U5) (pin 6)) + (node (ref R5) (pin 1)) + (node (ref U5) (pin 1)) + (node (ref C7) (pin 1)) + (node (ref C3) (pin 1))) + (net (code 3) (name "Net-(IC1-Pad29)") + (node (ref R5) (pin 2)) + (node (ref IC1) (pin 29)) + (node (ref SW1) (pin 1))) + (net (code 4) (name DAC_SS) + (node (ref IC1) (pin 14)) + (node (ref U5) (pin 2))) + (net (code 5) (name SCK) + (node (ref U5) (pin 3)) + (node (ref IC1) (pin 17))) + (net (code 6) (name DAC_Serial) + (node (ref U5) (pin 4)) + (node (ref IC1) (pin 15))) + (net (code 7) (name "Net-(U5-Pad8)") + (node (ref U5) (pin 8))) + (net (code 8) (name "Net-(IC1-Pad19)") + (node (ref IC1) (pin 19))) + (net (code 9) (name "Net-(IC1-Pad28)") + (node (ref IC1) (pin 28))) + (net (code 10) (name "Net-(IC1-Pad18)") + (node (ref IC1) (pin 18))) + (net (code 11) (name "Net-(IC1-Pad27)") + (node (ref IC1) (pin 27))) + (net (code 12) (name "Net-(IC1-Pad16)") + (node (ref IC1) (pin 16))) + (net (code 13) (name "Net-(IC1-Pad13)") + (node (ref IC1) (pin 13))) + (net (code 14) (name "Net-(IC1-Pad32)") + (node (ref IC1) (pin 32))) + (net (code 15) (name "Net-(IC1-Pad22)") + (node (ref IC1) (pin 22))) + (net (code 16) (name "Net-(IC1-Pad12)") + (node (ref IC1) (pin 12))) + (net (code 17) (name "Net-(IC1-Pad31)") + (node (ref IC1) (pin 31))) + (net (code 18) (name "Net-(IC1-Pad11)") + (node (ref IC1) (pin 11))) + (net (code 19) (name "Net-(IC1-Pad30)") + (node (ref IC1) (pin 30))) + (net (code 20) (name "Net-(IC1-Pad20)") + (node (ref IC1) (pin 20))) + (net (code 21) (name "Net-(IC1-Pad10)") + (node (ref IC1) (pin 10))) + (net (code 22) (name "Net-(IC1-Pad9)") + (node (ref IC1) (pin 9))) + (net (code 23) (name "Net-(C13-Pad2)") + (node (ref C13) (pin 2)) + (node (ref Y1) (pin 1)) + (node (ref IC1) (pin 7))) + (net (code 24) (name "Net-(IC1-Pad2)") + (node (ref IC1) (pin 2))) + (net (code 25) (name "Net-(IC1-Pad1)") + (node (ref IC1) (pin 1))) + (net (code 26) (name "Net-(C14-Pad2)") + (node (ref C14) (pin 2)) + (node (ref IC1) (pin 8)) + (node (ref Y1) (pin 2))) + (net (code 28) (name MAP2) + (node (ref C10) (pin 1)) + (node (ref R2) (pin 1)) + (node (ref IC1) (pin 24))) + (net (code 29) (name MAP1) + (node (ref R1) (pin 1)) + (node (ref IC1) (pin 23)) + (node (ref C9) (pin 1))) + (net (code 30) (name MAP3) + (node (ref R3) (pin 1)) + (node (ref IC1) (pin 25)) + (node (ref C11) (pin 1))) + (net (code 31) (name MAP4) + (node (ref R4) (pin 1)) + (node (ref C12) (pin 1)) + (node (ref IC1) (pin 26))) + (net (code 32) (name "Net-(R3-Pad2)") + (node (ref R3) (pin 2)) + (node (ref U3) (pin 1))) + (net (code 33) (name "Net-(R4-Pad2)") + (node (ref R4) (pin 2)) + (node (ref U4) (pin 1))) + (net (code 34) (name "Net-(R2-Pad2)") + (node (ref U2) (pin 1)) + (node (ref R2) (pin 2))) + (net (code 35) (name "Net-(R1-Pad2)") + (node (ref R1) (pin 2)) + (node (ref U1) (pin 1))))) \ No newline at end of file diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.pro b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.pro new file mode 100644 index 00000000..ee4874f3 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.pro @@ -0,0 +1,62 @@ +update=Monday, 08 January 2018 'pmt' 12:06:03 pm +version=1 +last_client=kicad +[pcbnew] +version=1 +LastNetListRead= +UseCmpFile=1 +PadDrill=0.600000000000 +PadDrillOvalY=0.600000000000 +PadSizeH=1.500000000000 +PadSizeV=1.500000000000 +PcbTextSizeV=1.500000000000 +PcbTextSizeH=1.500000000000 +PcbTextThickness=0.300000000000 +ModuleTextSizeV=1.000000000000 +ModuleTextSizeH=1.000000000000 +ModuleTextSizeThickness=0.150000000000 +SolderMaskClearance=0.000000000000 +SolderMaskMinWidth=0.000000000000 +DrawSegmentWidth=0.200000000000 +BoardOutlineThickness=0.100000000000 +ModuleOutlineThickness=0.150000000000 +[cvpcb] +version=1 +NetIExt=net +[general] +version=1 +[eeschema] +version=1 +LibDir= +[eeschema/libraries] +LibName1=switches +LibName2=power +LibName3=device +LibName4=transistors +LibName5=conn +LibName6=linear +LibName7=regul +LibName8=74xx +LibName9=cmos4000 +LibName10=adc-dac +LibName11=memory +LibName12=xilinx +LibName13=microcontrollers +LibName14=dsp +LibName15=microchip +LibName16=analog_switches +LibName17=motorola +LibName18=texas +LibName19=intel +LibName20=audio +LibName21=interface +LibName22=digital-audio +LibName23=philips +LibName24=display +LibName25=cypress +LibName26=siliconi +LibName27=opto +LibName28=atmel +LibName29=contrib +LibName30=valves +LibName31=libs/mpx4250 diff --git a/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.sch b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.sch new file mode 100644 index 00000000..3082a4dd --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/SpeedyMAP.sch @@ -0,0 +1,469 @@ +EESchema Schematic File Version 2 +LIBS:switches +LIBS:power +LIBS:device +LIBS:transistors +LIBS:conn +LIBS:linear +LIBS:regul +LIBS:74xx +LIBS:cmos4000 +LIBS:adc-dac +LIBS:memory +LIBS:xilinx +LIBS:microcontrollers +LIBS:dsp +LIBS:microchip +LIBS:analog_switches +LIBS:motorola +LIBS:texas +LIBS:intel +LIBS:audio +LIBS:interface +LIBS:digital-audio +LIBS:philips +LIBS:display +LIBS:cypress +LIBS:siliconi +LIBS:opto +LIBS:atmel +LIBS:contrib +LIBS:valves +LIBS:mpx4250 +LIBS:SpeedyMAP-cache +EELAYER 25 0 +EELAYER END +$Descr A4 11693 8268 +encoding utf-8 +Sheet 1 2 +Title "" +Date "" +Rev "" +Comp "" +Comment1 "" +Comment2 "" +Comment3 "" +Comment4 "" +$EndDescr +$Comp +L ATMEGA328-A IC1 +U 1 1 5A51EF33 +P 6250 2550 +F 0 "IC1" H 5500 3800 50 0000 L BNN +F 1 "ATMEGA328-A" H 6650 1150 50 0000 L BNN +F 2 "Housings_QFP:TQFP-32_7x7mm_Pitch0.8mm" H 6250 2550 50 0001 C CIN +F 3 "" H 6250 2550 50 0000 C CNN + 1 6250 2550 + 1 0 0 -1 +$EndComp +$Comp +L Crystal Y1 +U 1 1 5A5261DD +P 9250 2100 +F 0 "Y1" H 9250 2250 50 0000 C CNN +F 1 "Crystal" H 9250 1950 50 0000 C CNN +F 2 "Crystals:Crystal_HC49-SD_SMD" H 9250 2100 50 0001 C CNN +F 3 "" H 9250 2100 50 0000 C CNN + 1 9250 2100 + 0 1 1 0 +$EndComp +Text GLabel 7700 2400 2 60 Input ~ 0 +MAP2 +Text GLabel 7350 2300 2 60 Input ~ 0 +MAP1 +Text GLabel 7350 2500 2 60 Input ~ 0 +MAP3 +Text GLabel 7700 2600 2 60 Input ~ 0 +MAP4 +$Sheet +S 7150 4900 3700 1400 +U 5A52C37B +F0 "MAP Sensors" 60 +F1 "MAP Sensors.sch" 60 +$EndSheet +$Comp +L C C13 +U 1 1 5A52D01C +P 9700 1850 +F 0 "C13" H 9725 1950 50 0000 L CNN +F 1 "C22pF" H 9725 1750 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 9738 1700 50 0001 C CNN +F 3 "" H 9700 1850 50 0000 C CNN + 1 9700 1850 + 0 1 1 0 +$EndComp +$Comp +L GND #PWR9 +U 1 1 5A52D09E +P 10100 1850 +F 0 "#PWR9" H 10100 1600 50 0001 C CNN +F 1 "GND" H 10100 1700 50 0000 C CNN +F 2 "" H 10100 1850 50 0000 C CNN +F 3 "" H 10100 1850 50 0000 C CNN + 1 10100 1850 + 0 -1 -1 0 +$EndComp +$Comp +L GND #PWR10 +U 1 1 5A52D0C2 +P 10100 2350 +F 0 "#PWR10" H 10100 2100 50 0001 C CNN +F 1 "GND" H 10100 2200 50 0000 C CNN +F 2 "" H 10100 2350 50 0000 C CNN +F 3 "" H 10100 2350 50 0000 C CNN + 1 10100 2350 + 0 -1 -1 0 +$EndComp +$Comp +L C C14 +U 1 1 5A52D16E +P 9700 2350 +F 0 "C14" H 9725 2450 50 0000 L CNN +F 1 "C22pF" H 9725 2250 50 0000 L CNN +F 2 "Capacitors_SMD:C_0805_HandSoldering" H 9738 2200 50 0001 C CNN +F 3 "" H 9700 2350 50 0000 C CNN + 1 9700 2350 + 0 1 1 0 +$EndComp +$Comp +L SW_SPST SW1 +U 1 1 5A52D320 +P 3050 4050 +F 0 "SW1" H 3050 4175 50 0000 C CNN +F 1 "SW_SPST" H 3050 3950 50 0000 C CNN +F 2 "Buttons_Switches_ThroughHole:SW_TH_Tactile_Omron_B3F-10xx" H 3050 4050 50 0001 C CNN +F 3 "" H 3050 4050 50 0000 C CNN +F 4 "B3F-1002" H 3050 4050 60 0001 C CNN "Part Number" + 1 3050 4050 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR7 +U 1 1 5A52D36F +P 3500 4050 +F 0 "#PWR7" H 3500 3800 50 0001 C CNN +F 1 "GND" H 3500 3900 50 0000 C CNN +F 2 "" H 3500 4050 50 0000 C CNN +F 3 "" H 3500 4050 50 0000 C CNN + 1 3500 4050 + 0 -1 -1 0 +$EndComp +$Comp +L R R5 +U 1 1 5A52D3DC +P 3050 4550 +F 0 "R5" V 3130 4550 50 0000 C CNN +F 1 "R10k" V 3050 4550 50 0000 C CNN +F 2 "Resistors_SMD:R_0805_HandSoldering" V 2980 4550 50 0001 C CNN +F 3 "" H 3050 4550 50 0000 C CNN + 1 3050 4550 + 0 1 1 0 +$EndComp +$Comp +L +5V #PWR8 +U 1 1 5A52D42B +P 3500 4550 +F 0 "#PWR8" H 3500 4400 50 0001 C CNN +F 1 "+5V" H 3500 4690 50 0000 C CNN +F 2 "" H 3500 4550 50 0000 C CNN +F 3 "" H 3500 4550 50 0000 C CNN + 1 3500 4550 + 0 1 1 0 +$EndComp +$Comp +L +5V #PWR6 +U 1 1 5A52DDB8 +P 5150 1450 +F 0 "#PWR6" H 5150 1300 50 0001 C CNN +F 1 "+5V" H 5150 1590 50 0000 C CNN +F 2 "" H 5150 1450 50 0000 C CNN +F 3 "" H 5150 1450 50 0000 C CNN + 1 5150 1450 + 0 -1 -1 0 +$EndComp +$Comp +L GND #PWR5 +U 1 1 5A52DE6E +P 5100 3650 +F 0 "#PWR5" H 5100 3400 50 0001 C CNN +F 1 "GND" H 5100 3500 50 0000 C CNN +F 2 "" H 5100 3650 50 0000 C CNN +F 3 "" H 5100 3650 50 0000 C CNN + 1 5100 3650 + 0 1 1 0 +$EndComp +$Comp +L MCP4921-E/SN U5 +U 1 1 5A52E25F +P 3000 2450 +F 0 "U5" H 2550 2750 50 0000 L CNN +F 1 "MCP4921-E/SN" H 3000 2750 50 0000 L CNN +F 2 "Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm" H 3000 2450 50 0001 C CIN +F 3 "" H 3000 2450 50 0000 C CNN + 1 3000 2450 + 1 0 0 -1 +$EndComp +Text GLabel 7400 1950 2 60 Input ~ 0 +SCK +Text GLabel 7400 1750 2 60 Input ~ 0 +MOSI +Text GLabel 2250 2250 0 60 Input ~ 0 +MOSI +Text GLabel 2250 2350 0 60 Input ~ 0 +SCK +Text GLabel 7400 1650 2 60 Input ~ 0 +DAC_SS +Text GLabel 2250 2450 0 60 Input ~ 0 +DAC_SS +$Comp +L GND #PWR3 +U 1 1 5A52E5DE +P 2900 3050 +F 0 "#PWR3" H 2900 2800 50 0001 C CNN +F 1 "GND" H 2900 2900 50 0000 C CNN +F 2 "" H 2900 3050 50 0000 C CNN +F 3 "" H 2900 3050 50 0000 C CNN + 1 2900 3050 + 1 0 0 -1 +$EndComp +$Comp +L +5V #PWR4 +U 1 1 5A52E654 +P 3100 2950 +F 0 "#PWR4" H 3100 2800 50 0001 C CNN +F 1 "+5V" H 3100 3090 50 0000 C CNN +F 2 "" H 3100 2950 50 0000 C CNN +F 3 "" H 3100 2950 50 0000 C CNN + 1 3100 2950 + -1 0 0 1 +$EndComp +$Comp +L +5V #PWR2 +U 1 1 5A52E6B5 +P 2900 1900 +F 0 "#PWR2" H 2900 1750 50 0001 C CNN +F 1 "+5V" H 2900 2040 50 0000 C CNN +F 2 "" H 2900 1900 50 0000 C CNN +F 3 "" H 2900 1900 50 0000 C CNN + 1 2900 1900 + 1 0 0 -1 +$EndComp +$Comp +L GND #PWR1 +U 1 1 5A52E833 +P 1700 2550 +F 0 "#PWR1" H 1700 2300 50 0001 C CNN +F 1 "GND" H 1700 2400 50 0000 C CNN +F 2 "" H 1700 2550 50 0000 C CNN +F 3 "" H 1700 2550 50 0000 C CNN + 1 1700 2550 + 0 1 1 0 +$EndComp +$Comp +L 7805 U6 +U 1 1 5A52F79A +P 2900 6100 +F 0 "U6" H 3050 5904 50 0000 C CNN +F 1 "7805" H 2900 6300 50 0000 C CNN +F 2 "" H 2900 6100 50 0000 C CNN +F 3 "" H 2900 6100 50 0000 C CNN + 1 2900 6100 + 1 0 0 -1 +$EndComp +$Comp +L C C? +U 1 1 5A5300ED +P 3050 4300 +F 0 "C?" H 3075 4400 50 0000 L CNN +F 1 "C4.7nF" H 3075 4200 50 0000 L CNN +F 2 "" H 3088 4150 50 0000 C CNN +F 3 "" H 3050 4300 50 0000 C CNN + 1 3050 4300 + 0 1 1 0 +$EndComp +$Comp +L D D? +U 1 1 5A530312 +P 3050 4850 +F 0 "D?" H 3050 4950 50 0000 C CNN +F 1 "D" H 3050 4750 50 0000 C CNN +F 2 "" H 3050 4850 50 0000 C CNN +F 3 "" H 3050 4850 50 0000 C CNN + 1 3050 4850 + -1 0 0 1 +$EndComp +$Comp +L AVR-ISP-6 CON? +U 1 1 5A530418 +P 9250 3700 +F 0 "CON?" H 9145 3940 50 0000 C CNN +F 1 "AVR-ISP-6" H 8985 3470 50 0000 L BNN +F 2 "AVR-ISP-6" V 8730 3740 50 0001 C CNN +F 3 "" H 9225 3700 50 0000 C CNN + 1 9250 3700 + 1 0 0 -1 +$EndComp +Text GLabel 7400 1850 2 60 Input ~ 0 +MISO +Text GLabel 7400 2900 2 60 Input ~ 0 +RESET +Text GLabel 2050 4050 0 60 Input ~ 0 +RESET +Text GLabel 8750 3800 0 60 Input ~ 0 +RESET +Text GLabel 8750 3700 0 60 Input ~ 0 +SCK +Text GLabel 8750 3600 0 60 Input ~ 0 +MISO +$Comp +L GND #PWR? +U 1 1 5A530AC6 +P 9850 3950 +F 0 "#PWR?" H 9850 3700 50 0001 C CNN +F 1 "GND" H 9850 3800 50 0000 C CNN +F 2 "" H 9850 3950 50 0000 C CNN +F 3 "" H 9850 3950 50 0000 C CNN + 1 9850 3950 + 0 -1 -1 0 +$EndComp +Text GLabel 9700 3700 2 60 Input ~ 0 +MOSI +$Comp +L +5V #PWR? +U 1 1 5A530D05 +P 9900 3500 +F 0 "#PWR?" H 9900 3350 50 0001 C CNN +F 1 "+5V" H 9900 3640 50 0000 C CNN +F 2 "" H 9900 3500 50 0000 C CNN +F 3 "" H 9900 3500 50 0000 C CNN + 1 9900 3500 + 0 1 1 0 +$EndComp +Connection ~ 11950 2050 +Wire Wire Line + 7250 2300 7350 2300 +Wire Wire Line + 7250 2400 7700 2400 +Wire Wire Line + 7250 2500 7350 2500 +Wire Wire Line + 7250 2600 7700 2600 +Wire Wire Line + 7250 2050 8000 2050 +Wire Wire Line + 8000 2050 8000 1950 +Wire Wire Line + 8000 1950 9250 1950 +Wire Wire Line + 7250 2150 8000 2150 +Wire Wire Line + 8000 2150 8000 2250 +Wire Wire Line + 8000 2250 9250 2250 +Connection ~ 8800 1950 +Connection ~ 8800 2250 +Wire Wire Line + 8800 2250 8800 2350 +Wire Wire Line + 8800 2350 9550 2350 +Wire Wire Line + 9850 2350 10100 2350 +Wire Wire Line + 9850 1850 10100 1850 +Wire Wire Line + 8800 1950 8800 1850 +Wire Wire Line + 8800 1850 9550 1850 +Wire Wire Line + 3500 4050 3250 4050 +Wire Wire Line + 2050 4050 2850 4050 +Wire Wire Line + 3500 4550 3200 4550 +Connection ~ 2650 4050 +Wire Wire Line + 2650 4300 2900 4300 +Wire Wire Line + 5150 1450 5350 1450 +Wire Wire Line + 5350 1550 5150 1550 +Wire Wire Line + 5150 1550 5150 1450 +Wire Wire Line + 5100 3650 5350 3650 +Wire Wire Line + 5350 3550 5100 3550 +Wire Wire Line + 5100 3550 5100 3750 +Wire Wire Line + 5100 3750 5350 3750 +Connection ~ 5100 3650 +Wire Wire Line + 7400 1950 7250 1950 +Wire Wire Line + 7400 1750 7250 1750 +Wire Wire Line + 2250 2250 2400 2250 +Wire Wire Line + 2250 2350 2400 2350 +Wire Wire Line + 7400 1650 7250 1650 +Wire Wire Line + 2250 2450 2400 2450 +Wire Wire Line + 2900 3050 2900 2850 +Wire Wire Line + 3100 2950 3100 2850 +Wire Wire Line + 2900 1900 2900 2050 +Wire Wire Line + 1700 2550 2400 2550 +Wire Wire Line + 3200 4300 3500 4300 +Wire Wire Line + 3500 4300 3500 4050 +Wire Wire Line + 2650 4550 2900 4550 +Connection ~ 2650 4300 +Wire Wire Line + 2650 4050 2650 4850 +Wire Wire Line + 2650 4850 2900 4850 +Connection ~ 2650 4550 +Wire Wire Line + 3200 4850 3500 4850 +Wire Wire Line + 3500 4850 3500 4550 +Wire Wire Line + 7400 1850 7250 1850 +Wire Notes Line + 1350 3600 4400 3600 +Wire Notes Line + 4400 3600 4400 5300 +Wire Notes Line + 4400 5300 1350 5300 +Wire Notes Line + 1350 5300 1350 3600 +Wire Wire Line + 7400 2900 7250 2900 +Wire Wire Line + 8750 3800 9100 3800 +Wire Wire Line + 8750 3700 9100 3700 +Wire Wire Line + 8750 3600 9100 3600 +Wire Wire Line + 9700 3700 9350 3700 +Wire Wire Line + 9350 3600 9800 3600 +Wire Wire Line + 9800 3600 9800 3500 +Wire Wire Line + 9800 3500 9900 3500 +Wire Wire Line + 9350 3800 9800 3800 +Wire Wire Line + 9800 3800 9800 3950 +Wire Wire Line + 9800 3950 9850 3950 +$EndSCHEMATC diff --git a/reference/hardware/Speedy MAP/Hardware/libs/MPX4250.mod b/reference/hardware/Speedy MAP/Hardware/libs/MPX4250.mod new file mode 100755 index 00000000..ee9f0247 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/libs/MPX4250.mod @@ -0,0 +1,73 @@ +PCBNEW-LibModule-V1 Tue 21 Jul 2015 09:24:58 AEST +# encoding utf-8 +Units mm +$INDEX +MPX4250 +$EndINDEX +$MODULE MPX4250 +Po 0 0 0 15 55AD8302 00000000 ~~ +Li MPX4250 +Sc 0 +AR +Op 0 0 0 +T0 2.54 2.54 1 1 0 0.15 N V 21 N "MPX4250" +T1 10.16 2.54 1 1 0 0.15 N V 21 N "VAL**" +DC 6.4 -12.3 10.2 -3.7 0.15 21 +$PAD +Sh "1" C 1.5 1.5 0 0 0 +Dr 0.84 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 0 0 +$EndPAD +$PAD +Sh "2" C 1.5 1.5 0 0 0 +Dr 0.84 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 2.54 0 +$EndPAD +$PAD +Sh "3" C 1.5 1.5 0 0 0 +Dr 0.84 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 5.08 0 +$EndPAD +$PAD +Sh "4" C 1.5 1.5 0 0 0 +Dr 0.84 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 7.62 0 +$EndPAD +$PAD +Sh "5" C 1.5 1.5 0 0 0 +Dr 0.84 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 10.16 0 +$EndPAD +$PAD +Sh "6" C 1.5 1.5 0 0 0 +Dr 0.84 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 12.7 0 +$EndPAD +$PAD +Sh "~" C 4.1 4.1 0 0 0 +Dr 4.1 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po 17.9 -12.32 +$EndPAD +$PAD +Sh "~" C 4.1 4.1 0 0 0 +Dr 4.1 0 0 +At STD N 00E0FFFF +Ne 0 "" +Po -5.25 -12.32 +$EndPAD +$EndMODULE MPX4250 +$EndLIBRARY diff --git a/reference/hardware/Speedy MAP/Hardware/libs/mpx4250.lib b/reference/hardware/Speedy MAP/Hardware/libs/mpx4250.lib new file mode 100755 index 00000000..8783d2e3 --- /dev/null +++ b/reference/hardware/Speedy MAP/Hardware/libs/mpx4250.lib @@ -0,0 +1,19 @@ +EESchema-LIBRARY Version 2.3 Date: Thu 27 Feb 2014 18:55:37 EST +#encoding utf-8 +# +# MPX4250 +# +DEF MPX4250 U 0 40 Y Y 1 F N +F0 "U" 150 -150 60 H V C CNN +F1 "MPX4250" -50 150 60 H V C CNN +F2 "~" -50 0 60 H V C CNN +F3 "~" -50 0 60 H V C CNN +DRAW +S -250 100 200 -100 0 1 0 N +X VOUT 1 500 0 300 L 50 50 1 1 O +X GND 2 -550 -50 300 R 50 50 1 1 W +X VCC 3 -550 50 300 R 50 50 1 1 W +ENDDRAW +ENDDEF +# +#End Library diff --git a/reference/hardware/Teensy Adapter/Teensy 3.5 Adaptor.fzz b/reference/hardware/Teensy Adapter/Teensy 3.5 Adaptor.fzz index 0ee86ee3..998c62c9 100644 Binary files a/reference/hardware/Teensy Adapter/Teensy 3.5 Adaptor.fzz and b/reference/hardware/Teensy Adapter/Teensy 3.5 Adaptor.fzz differ diff --git a/reference/hardware/VR Conditioner/rounded_pcb.svg b/reference/hardware/VR Conditioner/rounded_pcb.svg index 7d7ad3f1..d5095a37 100644 --- a/reference/hardware/VR Conditioner/rounded_pcb.svg +++ b/reference/hardware/VR Conditioner/rounded_pcb.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/reference/hardware/v0.4/BOMs/Templates/Bom-template-0.4.4_ITEAD.xls b/reference/hardware/v0.4/BOMs/Templates/Bom-template-0.4.4_ITEAD.xls index 33aecfec..642b3eb5 100644 Binary files a/reference/hardware/v0.4/BOMs/Templates/Bom-template-0.4.4_ITEAD.xls and b/reference/hardware/v0.4/BOMs/Templates/Bom-template-0.4.4_ITEAD.xls differ diff --git a/reference/hardware/v0.4/Interface boards/48 Pin NA Miata/NA Miata 48 pin.fzz b/reference/hardware/v0.4/Interface boards/48 Pin NA Miata/NA Miata 48 pin.fzz index f83c2361..c4d1ede2 100644 Binary files a/reference/hardware/v0.4/Interface boards/48 Pin NA Miata/NA Miata 48 pin.fzz and b/reference/hardware/v0.4/Interface boards/48 Pin NA Miata/NA Miata 48 pin.fzz differ diff --git a/reference/speeduino.ini b/reference/speeduino.ini index 702c52e5..72902c7b 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -1,2489 +1,2493 @@ -;------------------------------------------------------------------------------- -#unset CAN_COMMANDS -#unset enablehardware_test - -[MegaTune] - MTversion = 2.25 - - queryCommand = "Q" - signature = "speeduino 201712" - versionInfo = "S" ;This info is what is displayed to user - -[TunerStudio] - iniSpecVersion = 3.46 - -;------------------------------------------------------------------------------- - -[SettingGroups] - ; the referenceName will over-ride previous, so if you are creating a - ; settingGroup with a reference name of lambdaSensor, it will replace the - ; setting group defined in the settingGroups.xml of the TunerStudio config - ; folder. If is is an undefined referenceName, it will be added. - ; keyword = referenceName, DisplayName - - ;settingGroup = boostUnits, "Boost table units" - ;settingOption = DEFAULT, "kPa" - ;settingOption = BOOSTPSI, "PSI" - settingGroup = enablehardware_test, "Enable Hardware Test Page" - - -[PcVariables] - ; valid types: boolean, double, int, list - ; - ; no offset as they are local variables. - ; entry format the same as Constants, except there is no offset. - ; arrays are not yet supported. - ; name = class, type, shape, units, scale, translate, lo, hi, digits - ; name = type, min, max; - ; - ; type List: value will be index. - tsCanId = bits, U08, [0:3], "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID" - rpmhigh = scalar, U16, "rpm", 1, 0, 0, 30000, 0 - rpmwarn = scalar, U16, "rpm", 1, 0, 0, 30000, 0 - rpmdang = scalar, U16, "rpm", 1, 0, 0, 30000, 0 - - idleUnits = bits, U08, [0:2], "None", "On/Off", "Duty Cycle", "Duty Cycle", "Steps", "Steps" - -[Constants] - - ;---------------------------------------------------------------------------- - ; Constants Definition - ; -------------------- - ; - ; Scalar Values - ; ------------- - ; The scaling and translation values are used as follows: - ; msValue = userValue / scale - translate - ; userValue = (msValue + translate) * scale - ; - ; - ; Temperatures are fine, check out the Fielding IAC example (fastIdleT). - ; - ; Array Values - ; ------------ - ; Arrays are specified just like scalars, except that they have a "shape" - ; entry in the fourth parameter. The shape allows you to define lists or - ; tables, for example [8] defines a list with eight values and [2x4] defines - ; a table with eight values (two rows and four columns). Tables may be - ; stored in either "X-" or "Y-order." X-order means that memory is layed - ; out like. - ; - ; [x1,y1] [x2,y1]...[xn,y1] [x1,y2]... - ; - ; Y-order would be - ; - ; [x1,y1] [x1,y2]...[x1,yn] [x2,y1]... - ; - ; To use the TableEditor, you must define two lists and a table, and - ; the lengths of the lists must correspond to the shape of the table. - ; - ; Bit Fields - ; ---------- - ; Bits are numbered 0-7, the rightmost being bit zero. The basic - ; data word that stores bit fields must be unsigned. - ; - ; You need NOT supply the correct number of labels matching the - ; number of bits you've specified (one bit requires 2 values, two - ; bits requires 4 values and so on). If you neglect to supply enough - ; labels, they will be synthesized using the sequence "1", "2" and so - ; on based upon their position in the sequence (the cltType and matType - ; will end up with identical lists). - ; - ; If you specify a label as "INVALID" (all upper case), then it will - ; not be displayed in the combo box, so you can leave out values that - ; make no sense. - ; - ;---------------------------------------------------------------------------- - - endianness = little - nPages = 10 - pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 128, 192 - - ;burnCommand = "B" - ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" - ;pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" - ;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" - - ; New commands - ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 - pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" - burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" - 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" - 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" - 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" - - blockingFactor = 2048 - tableBlockingFactor = 2048 - delayAfterPortOpen=1000 - ;validateArrayBounds = true - blockReadTimeout = 2000 - ;tsWriteBlocks = on - interWriteDelay = 5 ;Ignored when tsWriteBlocks is on - pageActivationDelay = 10 - -;New for TS 3.0.08ish upwards, define lists of standard I/O options - - #define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - #define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - - #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" - #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" - #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" - #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" - #define CAN_ADDRESS_HEX_02XX = "0x200", "0x201", "0x202", "0x203", "0x204", "0x205", "0x206", "0x207", "0x208", "0x209", "0x20A", "0x20B", "0x20C", "0x20D", "0x20E", "0x20F", "0x210", "0x211", "0x212", "0x213", "0x214", "0x215", "0x216", "0x217", "0x218", "0x219", "0x21A", "0x21B", "0x21C", "0x21D", "0x21E", "0x21F", "0x220", "0x221", "0x222", "0x223", "0x224", "0x225", "0x226", "0x227", "0x228", "0x229", "0x22A", "0x22B", "0x22C", "0x22D", "0x22E", "0x22F", "0x230", "0x231", "0x232", "0x233", "0x234", "0x235", "0x236", "0x237", "0x238", "0x239", "0x23A", "0x23B", "0x23C", "0x23D", "0x23E", "0x23F", "0x240", "0x241", "0x242", "0x243", "0x244", "0x245", "0x246", "0x247", "0x248", "0x249", "0x24A", "0x24B", "0x24C", "0x24D", "0x24E", "0x24F", "0x250", "0x251", "0x252", "0x253", "0x254", "0x255", "0x256", "0x257", "0x258", "0x259", "0x25A", "0x25B", "0x25C", "0x25D", "0x25E", "0x25F" ,"0x260", "0x261", "0x262", "0x263", "0x264", "0x265", "0x266", "0x267", "0x268", "0x269", "0x26A", "0x26B", "0x26C", "0x26D", "0x26E", "0x26F", "0x270", "0x271", "0x272", "0x273", "0x274", "0x275", "0x276", "0x277", "0x278", "0x279", "0x27A", "0x27B", "0x27C", "0x27D", "0x27E", "0x27F", "0x280", "0x281", "0x282", "0x283", "0x284", "0x285", "0x286", "0x287", "0x288", "0x289", "0x28A", "0x28B", "0x28C", "0x28D", "0x28E", "0x28F" ,"0x290", "0x291", "0x292", "0x293", "0x294", "0x295", "0x296", "0x297", "0x298", "0x299", "0x29A", "0x29B", "0x29C", "0x29D", "0x29E", "0x29F", "0x2A0", "0x2A1", "0x2A2", "0x2A3", "0x2A4", "0x2A5", "0x2A6", "0x2A7", "0x2A8", "0x2A9", "0x2AA", "0x2AB", "0x2AC", "0x2AD", "0x2AE", "0x2AF", "0x2B0", "0x2B1", "0x2B2", "0x2B3", "0x2B4", "0x2B5", "0x2B6", "0x2B7", "0x2B8", "0x2B9", "0x2BA", "0x2BB", "0x2BC", "0x2BD", "0x2BE", "0x2BF" ,"0x2C0", "0x2C1", "0x2C2", "0x2C3", "0x2C4", "0x2C5", "0x2C6", "0x2C7", "0x2C8", "0x2C9", "0x2CA", "0x2CB", "0x2CC", "0x2CD", "0x2CE", "0x2CF", "0x2D0", "0x2D1", "0x2D2", "0x2D3", "0x2D4", "0x2D5", "0x2D6", "0x2D7", "0x2D8", "0x2D9", "0x2DA", "0x2DB", "0x2DC", "0x2DD", "0x2DE", "0x2DF", "0x2E0", "0x2E1", "0x2E2", "0x2E3", "0x2E4", "0x2E5", "0x2E6", "0x2E7", "0x2E8", "0x2E9", "0x2EA", "0x2EB", "0x2EC", "0x2ED", "0x2EE", "0x2EF" ,"0x2F0", "0x2F1", "0x2F2", "0x2F3", "0x2F4", "0x2F5", "0x2F6", "0x2F7", "0x2F8", "0x2F9", "0x2FA", "0x2FB", "0x2FC", "0x2FD", "0x2FE", "0x2FF" - #define CAN_ADDRESS_HEX_03XX = "0x300", "0x301", "0x302", "0x303", "0x304", "0x305", "0x306", "0x307", "0x308", "0x309", "0x30A", "0x30B", "0x30C", "0x30D", "0x30E", "0x30F", "0x310", "0x311", "0x312", "0x313", "0x314", "0x315", "0x316", "0x317", "0x318", "0x319", "0x31A", "0x31B", "0x31C", "0x31D", "0x31E", "0x31F", "0x320", "0x321", "0x322", "0x323", "0x324", "0x325", "0x326", "0x327", "0x328", "0x329", "0x32A", "0x32B", "0x32C", "0x32D", "0x32E", "0x32F", "0x330", "0x331", "0x332", "0x333", "0x334", "0x335", "0x336", "0x337", "0x338", "0x339", "0x33A", "0x33B", "0x33C", "0x33D", "0x33E", "0x33F", "0x340", "0x341", "0x342", "0x343", "0x344", "0x345", "0x346", "0x347", "0x348", "0x349", "0x34A", "0x34B", "0x34C", "0x34D", "0x34E", "0x34F", "0x350", "0x351", "0x352", "0x353", "0x354", "0x355", "0x356", "0x357", "0x358", "0x359", "0x35A", "0x35B", "0x35C", "0x35D", "0x35E", "0x35F" ,"0x360", "0x361", "0x362", "0x363", "0x364", "0x365", "0x366", "0x367", "0x368", "0x369", "0x36A", "0x36B", "0x36C", "0x36D", "0x36E", "0x36F", "0x370", "0x371", "0x372", "0x373", "0x374", "0x375", "0x376", "0x377", "0x378", "0x379", "0x37A", "0x37B", "0x37C", "0x37D", "0x37E", "0x37F", "0x380", "0x381", "0x382", "0x383", "0x384", "0x385", "0x386", "0x387", "0x388", "0x389", "0x38A", "0x38B", "0x38C", "0x38D", "0x38E", "0x38F" ,"0x390", "0x391", "0x392", "0x393", "0x394", "0x395", "0x396", "0x397", "0x398", "0x399", "0x39A", "0x39B", "0x39C", "0x39D", "0x39E", "0x39F", "0x3A0", "0x3A1", "0x3A2", "0x3A3", "0x3A4", "0x3A5", "0x3A6", "0x3A7", "0x3A8", "0x3A9", "0x3AA", "0x3AB", "0x3AC", "0x3AD", "0x3AE", "0x3AF", "0x3B0", "0x3B1", "0x3B2", "0x3B3", "0x3B4", "0x3B5", "0x3B6", "0x3B7", "0x3B8", "0x3B9", "0x3BA", "0x3BB", "0x3BC", "0x3BD", "0x3BE", "0x3BF" ,"0x3C0", "0x3C1", "0x3C2", "0x3C3", "0x3C4", "0x3C5", "0x3C6", "0x3C7", "0x3C8", "0x3C9", "0x3CA", "0x3CB", "0x3CC", "0x3CD", "0x3CE", "0x3CF", "0x3D0", "0x3D1", "0x3D2", "0x3D3", "0x3D4", "0x3D5", "0x3D6", "0x3D7", "0x3D8", "0x3D9", "0x3DA", "0x3DB", "0x3DC", "0x3DD", "0x3DE", "0x3DF", "0x3E0", "0x3E1", "0x3E2", "0x3E3", "0x3E4", "0x3E5", "0x3E6", "0x3E7", "0x3E8", "0x3E9", "0x3EA", "0x3EB", "0x3EC", "0x3ED", "0x3EE", "0x3EF" ,"0x3F0", "0x3F1", "0x3F2", "0x3F3", "0x3F4", "0x3F5", "0x3F6", "0x3F7", "0x3F8", "0x3F9", "0x3FA", "0x3FB", "0x3FC", "0x3FD", "0x3FE", "0x3FF" - #define CAN_ADDRESS_HEX_04XX = "0x400", "0x401", "0x402", "0x403", "0x404", "0x405", "0x406", "0x407", "0x408", "0x409", "0x40A", "0x40B", "0x40C", "0x40D", "0x40E", "0x40F", "0x410", "0x411", "0x412", "0x413", "0x414", "0x415", "0x416", "0x417", "0x418", "0x419", "0x41A", "0x41B", "0x41C", "0x41D", "0x41E", "0x41F", "0x420", "0x421", "0x422", "0x423", "0x424", "0x425", "0x426", "0x427", "0x428", "0x429", "0x42A", "0x42B", "0x42C", "0x42D", "0x42E", "0x42F", "0x430", "0x431", "0x432", "0x433", "0x434", "0x435", "0x436", "0x437", "0x438", "0x439", "0x43A", "0x43B", "0x43C", "0x43D", "0x43E", "0x43F", "0x440", "0x441", "0x442", "0x443", "0x444", "0x445", "0x446", "0x447", "0x448", "0x449", "0x44A", "0x44B", "0x44C", "0x44D", "0x44E", "0x44F", "0x450", "0x451", "0x452", "0x453", "0x454", "0x455", "0x456", "0x457", "0x458", "0x459", "0x45A", "0x45B", "0x45C", "0x45D", "0x45E", "0x45F" ,"0x460", "0x461", "0x462", "0x463", "0x464", "0x465", "0x466", "0x467", "0x468", "0x469", "0x46A", "0x46B", "0x46C", "0x46D", "0x46E", "0x46F", "0x470", "0x471", "0x472", "0x473", "0x474", "0x475", "0x476", "0x477", "0x478", "0x479", "0x47A", "0x47B", "0x47C", "0x47D", "0x47E", "0x47F", "0x480", "0x481", "0x482", "0x483", "0x484", "0x485", "0x486", "0x487", "0x488", "0x489", "0x48A", "0x48B", "0x48C", "0x48D", "0x48E", "0x48F" ,"0x490", "0x491", "0x492", "0x493", "0x494", "0x495", "0x496", "0x497", "0x498", "0x499", "0x49A", "0x49B", "0x49C", "0x49D", "0x49E", "0x49F", "0x4A0", "0x4A1", "0x4A2", "0x4A3", "0x4A4", "0x4A5", "0x4A6", "0x4A7", "0x4A8", "0x4A9", "0x4AA", "0x4AB", "0x4AC", "0x4AD", "0x4AE", "0x4AF", "0x4B0", "0x4B1", "0x4B2", "0x4B3", "0x4B4", "0x4B5", "0x4B6", "0x4B7", "0x4B8", "0x4B9", "0x4BA", "0x4BB", "0x4BC", "0x4BD", "0x4BE", "0x4BF" ,"0x4C0", "0x4C1", "0x4C2", "0x4C3", "0x4C4", "0x4C5", "0x4C6", "0x4C7", "0x4C8", "0x4C9", "0x4CA", "0x4CB", "0x4CC", "0x4CD", "0x4CE", "0x4CF", "0x4D0", "0x4D1", "0x4D2", "0x4D3", "0x4D4", "0x4D5", "0x4D6", "0x4D7", "0x4D8", "0x4D9", "0x4DA", "0x4DB", "0x4DC", "0x4DD", "0x4DE", "0x4DF", "0x4E0", "0x4E1", "0x4E2", "0x4E3", "0x4E4", "0x4E5", "0x4E6", "0x4E7", "0x4E8", "0x4E9", "0x4EA", "0x4EB", "0x4EC", "0x4ED", "0x4EE", "0x4EF" ,"0x4F0", "0x4F1", "0x4F2", "0x4F3", "0x4F4", "0x4F5", "0x4F6", "0x4F7", "0x4F8", "0x4F9", "0x4FA", "0x4FB", "0x4FC", "0x4FD", "0x4FE", "0x4FF" - #define CAN_ADDRESS_HEX_05XX = "0x500", "0x501", "0x502", "0x503", "0x504", "0x505", "0x506", "0x507", "0x508", "0x509", "0x50A", "0x50B", "0x50C", "0x50D", "0x50E", "0x50F", "0x510", "0x511", "0x512", "0x513", "0x514", "0x515", "0x516", "0x517", "0x518", "0x519", "0x51A", "0x51B", "0x51C", "0x51D", "0x51E", "0x51F", "0x520", "0x521", "0x522", "0x523", "0x524", "0x525", "0x526", "0x527", "0x528", "0x529", "0x52A", "0x52B", "0x52C", "0x52D", "0x52E", "0x52F", "0x530", "0x531", "0x532", "0x533", "0x534", "0x535", "0x536", "0x537", "0x538", "0x539", "0x53A", "0x53B", "0x53C", "0x53D", "0x53E", "0x53F", "0x540", "0x541", "0x542", "0x543", "0x544", "0x545", "0x546", "0x547", "0x548", "0x549", "0x54A", "0x54B", "0x54C", "0x54D", "0x54E", "0x54F", "0x550", "0x551", "0x552", "0x553", "0x554", "0x555", "0x556", "0x557", "0x558", "0x559", "0x55A", "0x55B", "0x55C", "0x55D", "0x55E", "0x55F" ,"0x560", "0x561", "0x562", "0x563", "0x564", "0x565", "0x566", "0x567", "0x568", "0x569", "0x56A", "0x56B", "0x56C", "0x56D", "0x56E", "0x56F", "0x570", "0x571", "0x572", "0x573", "0x574", "0x575", "0x576", "0x577", "0x578", "0x579", "0x57A", "0x57B", "0x57C", "0x57D", "0x57E", "0x57F", "0x580", "0x581", "0x582", "0x583", "0x584", "0x585", "0x586", "0x587", "0x588", "0x589", "0x58A", "0x58B", "0x58C", "0x58D", "0x58E", "0x58F" ,"0x590", "0x591", "0x592", "0x593", "0x594", "0x595", "0x596", "0x597", "0x598", "0x599", "0x59A", "0x59B", "0x59C", "0x59D", "0x59E", "0x59F", "0x5A0", "0x5A1", "0x5A2", "0x5A3", "0x5A4", "0x5A5", "0x5A6", "0x5A7", "0x5A8", "0x5A9", "0x5AA", "0x5AB", "0x5AC", "0x5AD", "0x5AE", "0x5AF", "0x5B0", "0x5B1", "0x5B2", "0x5B3", "0x5B4", "0x5B5", "0x5B6", "0x5B7", "0x5B8", "0x5B9", "0x5BA", "0x5BB", "0x5BC", "0x5BD", "0x5BE", "0x5BF" ,"0x5C0", "0x5C1", "0x5C2", "0x5C3", "0x5C4", "0x5C5", "0x5C6", "0x5C7", "0x5C8", "0x5C9", "0x5CA", "0x5CB", "0x5CC", "0x5CD", "0x5CE", "0x5CF", "0x5D0", "0x5D1", "0x5D2", "0x5D3", "0x5D4", "0x5D5", "0x5D6", "0x5D7", "0x5D8", "0x5D9", "0x5DA", "0x5DB", "0x5DC", "0x5DD", "0x5DE", "0x5DF", "0x5E0", "0x5E1", "0x5E2", "0x5E3", "0x5E4", "0x5E5", "0x5E6", "0x5E7", "0x5E8", "0x5E9", "0x5EA", "0x5EB", "0x5EC", "0x5ED", "0x5EE", "0x5EF" ,"0x5F0", "0x5F1", "0x5F2", "0x5F3", "0x5F4", "0x5F5", "0x5F6", "0x5F7", "0x5F8", "0x5F9", "0x5FA", "0x5FB", "0x5FC", "0x5FD", "0x5FE", "0x5FF" - #define CAN_ADDRESS_HEX_06XX = "0x600", "0x601", "0x602", "0x603", "0x604", "0x605", "0x606", "0x607", "0x608", "0x609", "0x60A", "0x60B", "0x60C", "0x60D", "0x60E", "0x60F", "0x610", "0x611", "0x612", "0x613", "0x614", "0x615", "0x616", "0x617", "0x618", "0x619", "0x61A", "0x61B", "0x61C", "0x61D", "0x61E", "0x61F", "0x620", "0x621", "0x622", "0x623", "0x624", "0x625", "0x626", "0x627", "0x628", "0x629", "0x62A", "0x62B", "0x62C", "0x62D", "0x62E", "0x62F", "0x630", "0x631", "0x632", "0x633", "0x634", "0x635", "0x636", "0x637", "0x638", "0x639", "0x63A", "0x63B", "0x63C", "0x63D", "0x63E", "0x63F", "0x640", "0x641", "0x642", "0x643", "0x644", "0x645", "0x646", "0x647", "0x648", "0x649", "0x64A", "0x64B", "0x64C", "0x64D", "0x64E", "0x64F", "0x650", "0x651", "0x652", "0x653", "0x654", "0x655", "0x656", "0x657", "0x658", "0x659", "0x65A", "0x65B", "0x65C", "0x65D", "0x65E", "0x65F" ,"0x660", "0x661", "0x662", "0x663", "0x664", "0x665", "0x666", "0x667", "0x668", "0x669", "0x66A", "0x66B", "0x66C", "0x66D", "0x66E", "0x66F", "0x670", "0x671", "0x672", "0x673", "0x674", "0x675", "0x676", "0x677", "0x678", "0x679", "0x67A", "0x67B", "0x67C", "0x67D", "0x67E", "0x67F", "0x680", "0x681", "0x682", "0x683", "0x684", "0x685", "0x686", "0x687", "0x688", "0x689", "0x68A", "0x68B", "0x68C", "0x68D", "0x68E", "0x68F" ,"0x690", "0x691", "0x692", "0x693", "0x694", "0x695", "0x696", "0x697", "0x698", "0x699", "0x69A", "0x69B", "0x69C", "0x69D", "0x69E", "0x69F", "0x6A0", "0x6A1", "0x6A2", "0x6A3", "0x6A4", "0x6A5", "0x6A6", "0x6A7", "0x6A8", "0x6A9", "0x6AA", "0x6AB", "0x6AC", "0x6AD", "0x6AE", "0x6AF", "0x6B0", "0x6B1", "0x6B2", "0x6B3", "0x6B4", "0x6B5", "0x6B6", "0x6B7", "0x6B8", "0x6B9", "0x6BA", "0x6BB", "0x6BC", "0x6BD", "0x6BE", "0x6BF" ,"0x6C0", "0x6C1", "0x6C2", "0x6C3", "0x6C4", "0x6C5", "0x6C6", "0x6C7", "0x6C8", "0x6C9", "0x6CA", "0x6CB", "0x6CC", "0x6CD", "0x6CE", "0x6CF", "0x6D0", "0x6D1", "0x6D2", "0x6D3", "0x6D4", "0x6D5", "0x6D6", "0x6D7", "0x6D8", "0x6D9", "0x6DA", "0x6DB", "0x6DC", "0x6DD", "0x6DE", "0x6DF", "0x6E0", "0x6E1", "0x6E2", "0x6E3", "0x6E4", "0x6E5", "0x6E6", "0x6E7", "0x6E8", "0x6E9", "0x6EA", "0x6EB", "0x6EC", "0x6ED", "0x6EE", "0x6EF" ,"0x6F0", "0x6F1", "0x6F2", "0x6F3", "0x6F4", "0x6F5", "0x6F6", "0x6F7", "0x6F8", "0x6F9", "0x6FA", "0x6FB", "0x6FC", "0x6FD", "0x6FE", "0x6FF" - #define CAN_ADDRESS_HEX_07XX = "0x700", "0x701", "0x702", "0x703", "0x704", "0x705", "0x706", "0x707", "0x708", "0x709", "0x70A", "0x70B", "0x70C", "0x70D", "0x70E", "0x70F", "0x710", "0x711", "0x712", "0x713", "0x714", "0x715", "0x716", "0x717", "0x718", "0x719", "0x71A", "0x71B", "0x71C", "0x71D", "0x71E", "0x71F", "0x720", "0x721", "0x722", "0x723", "0x724", "0x725", "0x726", "0x727", "0x728", "0x729", "0x72A", "0x72B", "0x72C", "0x72D", "0x72E", "0x72F", "0x730", "0x731", "0x732", "0x733", "0x734", "0x735", "0x736", "0x737", "0x738", "0x739", "0x73A", "0x73B", "0x73C", "0x73D", "0x73E", "0x73F", "0x740", "0x741", "0x742", "0x743", "0x744", "0x745", "0x746", "0x747", "0x748", "0x749", "0x74A", "0x74B", "0x74C", "0x74D", "0x74E", "0x74F", "0x750", "0x751", "0x752", "0x753", "0x754", "0x755", "0x756", "0x757", "0x758", "0x759", "0x75A", "0x75B", "0x75C", "0x75D", "0x75E", "0x75F" ,"0x760", "0x761", "0x762", "0x763", "0x764", "0x765", "0x766", "0x767", "0x768", "0x769", "0x76A", "0x76B", "0x76C", "0x76D", "0x76E", "0x76F", "0x770", "0x771", "0x772", "0x773", "0x774", "0x775", "0x776", "0x777", "0x778", "0x779", "0x77A", "0x77B", "0x77C", "0x77D", "0x77E", "0x77F", "0x780", "0x781", "0x782", "0x783", "0x784", "0x785", "0x786", "0x787", "0x788", "0x789", "0x78A", "0x78B", "0x78C", "0x78D", "0x78E", "0x78F" ,"0x790", "0x791", "0x792", "0x793", "0x794", "0x795", "0x796", "0x797", "0x798", "0x799", "0x79A", "0x79B", "0x79C", "0x79D", "0x79E", "0x79F", "0x7A0", "0x7A1", "0x7A2", "0x7A3", "0x7A4", "0x7A5", "0x7A6", "0x7A7", "0x7A8", "0x7A9", "0x7AA", "0x7AB", "0x7AC", "0x7AD", "0x7AE", "0x7AF", "0x7B0", "0x7B1", "0x7B2", "0x7B3", "0x7B4", "0x7B5", "0x7B6", "0x7B7", "0x7B8", "0x7B9", "0x7BA", "0x7BB", "0x7BC", "0x7BD", "0x7BE", "0x7BF" ,"0x7C0", "0x7C1", "0x7C2", "0x7C3", "0x7C4", "0x7C5", "0x7C6", "0x7C7", "0x7C8", "0x7C9", "0x7CA", "0x7CB", "0x7CC", "0x7CD", "0x7CE", "0x7CF", "0x7D0", "0x7D1", "0x7D2", "0x7D3", "0x7D4", "0x7D5", "0x7D6", "0x7D7", "0x7D8", "0x7D9", "0x7DA", "0x7DB", "0x7DC", "0x7DD", "0x7DE", "0x7DF", "0x7E0", "0x7E1", "0x7E2", "0x7E3", "0x7E4", "0x7E5", "0x7E6", "0x7E7", "0x7E8", "0x7E9", "0x7EA", "0x7EB", "0x7EC", "0x7ED", "0x7EE", "0x7EF" ,"0x7F0", "0x7F1", "0x7F2", "0x7F3", "0x7F4", "0x7F5", "0x7F6", "0x7F7", "0x7F8", "0x7F9", "0x7FA", "0x7FB", "0x7FC", "0x7FD", "0x7FE", "0x7FF" - #define CAN_ADDRESS_HEX = $CAN_ADDRESS_HEX_01XX, $CAN_ADDRESS_HEX_02XX, $CAN_ADDRESS_HEX_03XX, $CAN_ADDRESS_HEX_04XX, $CAN_ADDRESS_HEX_05XX, $CAN_ADDRESS_HEX_06XX, $CAN_ADDRESS_HEX_07XX, $CAN_ADDRESS_HEX_inv255 - -;Page 1 is the fuel map and axis bins only -page = 1 - ; name = bits, type, offset, bits - ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits - ; name = scalar, type, offset, units, scale, translate, lo, hi, digits - veTable = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 - rpmBins = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 - #if SPEED_DENSITY - ;mapBins = array, U08, 272, [ 16], "kPa", 1.0, 0.0, 0.0, 255.0, 0 - mapBins = array, U08, 272, [ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 - #elif ALPHA_N - tpsBins = array, U08, 272, [ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 - #endif - - -;-------------------------------------------------- -;Start Page 2 -;Page 2 is all general settings (Previously part of page 1) -;-------------------------------------------------- -page = 2 - flexBoostLow = scalar, S08, 0, "kPa", 1.0, 0.0, -127, 127, 0 - flexBoostHigh = scalar, U08, 1, "kPa", 1.0, 0.0, 0.0, 255, 0 - asePct = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 95.0, 0 - aseCount = scalar, U08, 3, "s", 1.0, 0.0, 0.0, 255, 0 - wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0 - crankingPct = scalar, U08, 14, "%", 1.0, 0.0, 0.0, 255, 0 - 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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - 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" - tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID" - unused2-17 = scalar, U08, 17, "ms", 0.1, 0.0, 0.0, 25.5, 1 - unused2-18 = scalar, U08, 18, "ms", 0.1, 0.0, 0.0, 25.5, 1 - tpsThresh = scalar, U08, 19, "%/s", 1.0, 0.0, 0.0, 255, 0 - taeTime = scalar, U08, 20, "ms", 10, 0.0, 0.0, 2550, 0 - - ; Display (Options for what the display is showing) - display = bits, U08, 21, [0:2], "Unused", "Adafruit 128x32", "Generic 128x32", "Adafruit 128x64", "Generic 128x64", "INVALID", "INVALID", "INVALID" - display1 = bits U08, 21, [3:5], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" - display2 = bits U08, 21, [6:7], "O2", "Voltage", "CPU", "Mem" - - display3 = bits U08, 22, [0:2], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" - display4 = bits U08, 22, [3:4], "O2", "Voltage", "CPU", "Mem" - display5 = bits U08, 22, [5:7], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" - - displayB1 = bits U08, 23, [0:3], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" - displayB2 = bits U08, 23, [4:7], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" - - reqFuel = scalar, U08, 24, "ms", 0.1, 0.0, 0.0, 25.5, 1 - divider = scalar, U08, 25, "", 1.0, 0.0 - alternate = bits, U08, 26, [0:0], "Simultaneous", "Alternating" - multiplyMAP = bits, U08, 26, [1:1], "No", "Yes" - includeAFR = bits, U08, 26, [2:2], "No", "Yes" - hardCutType = bits, U08, 26, [3:3], "Full", "Rolling" - unused2-26e = bits, U08, 26, [4:4], "No", "Yes" - unused2-26f = bits, U08, 26, [5:5], "No", "Yes" - unused2-26g = bits, U08, 26, [6:6], "No", "Yes" - indInjAng = bits, U08, 26, [7:7], "Disabled", "Enabled" - injOpen = scalar, U08, 27, "ms", 0.1, 0.0, 0.1, 25.5, 1 - inj1Ang = scalar, U16, 28, "deg", 1.0, 0.0, 0.0, 360, 0 - inj2Ang = scalar, U16, 30, "deg", 1.0, 0.0, 0.0, 360, 0 - inj3Ang = scalar, U16, 32, "deg", 1.0, 0.0, 0.0, 360, 0 - inj4Ang = scalar, U16, 34, "deg", 1.0, 0.0, 0.0, 360, 0 - - ; Config1 - mapSample = bits, U08, 36, [0:1], "Instantaneous", "Cycle Average", "Cycle Minimum", "INVALID" - twoStroke = bits, U08, 36, [2:2], "Four-stroke", "Two-stroke" - injType = bits, U08, 36, [3:3], "Port", "Throttle Body" - nCylinders = bits, U08, 36, [4:7], "INVALID","1","2","3","4","5","6","INVALID","8","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" - - ; Config2 - unused2-37a = bits, U08, 37, [0:1], "INVALID", "None", "None", "None" - unused2-37b = bits, U08, 37, [2:3], "INVALID", "None", "None", "None" - nInjectors = bits, U08, 37, [4:7], "INVALID","1","2","3","4","5","6","INVALID","8","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" - - ; Config3 - engineType = bits, U08, 38, [0:0], "Even fire", "Odd fire" - flexEnabled = bits, U08, 38, [1:1], "Off", "On" - algorithm = bits, U08, 38, [2:2], "Speed Density", "Alpha-N" - baroCorr = bits, U08, 38, [3:3], "Off", "On" - injLayout = bits, U08, 38, [4:5], "Paired", "Semi-Sequential", "INVALID", "Sequential" - perToothIgn = bits, U08, 38, [6:6], "No", "Yes" - dfcoEnabled = bits, U08, 38, [7:7], "Off", "On" - - primePulse = scalar, U08, 39, "ms", 0.1, 0.0, 0.0, 25.5, 1 - dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 100.0, 0 - flexFreqLow = scalar, U08, 41, "Hz", 1.0, 0.0, 0.0, 250.0, 0 - flexFreqHigh = scalar, U08, 42, "Hz", 1.0, 0.0, 0.0, 250.0, 0 - - boostMaxDuty = scalar, U08, 43, "%", 1.0, 0.0, 0.0, 100.0, 0 - tpsMin = scalar, U08, 44, "ADC", 1.0, 0.0, 0.0, 255.0, 0 - tpsMax = scalar, U08, 45, "ADC", 1.0, 0.0, 0.0, 255.0, 0 - mapMin = scalar, S08, 46, "kpa", 1.0, 0.0, -100, 127.0, 0 - mapMax = scalar, U16, 47, "kpa", 1.0, 0.0, 0.0, 25500, 0 - fpPrime = scalar, U08, 49, "s", 1.0, 0.0, 0.0, 255.0, 0 - stoich = scalar, U08, 50, ":1", 0.1, 0.0, 0.0, 25.5, 1 - oddfire2 = scalar, U16, 51, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte) - oddfire3 = scalar, U16, 53, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte) - oddfire4 = scalar, U16, 55, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte) - - flexFuelLow = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 250.0, 0 - flexFuelHigh = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 250.0, 0 - flexAdvLow = scalar, U08, 59, "Deg", 1.0, 0.0, 0.0, 250.0, 0 - flexAdvHigh = scalar, U08, 60, "Deg", 1.0, 0.0, 0.0, 250.0, 0 - - iacCLminDuty = scalar, U08, 61, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles when using closed loop idle - iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0 - boostMinDuty = scalar, U08, 63, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles for boost control - - baroMin = scalar, S08, 64, "kpa", 1.0, 0.0, -100, 127.0, 0 - baroMax = scalar, U16, 65, "kpa", 1.0, 0.0, 0.0, 25500, 0 - unused2-67 = array, U08, 67, [60], "%", 1.0, 0.0, 0.0, 255, 0 - - -;-------------------------------------------------- -;Start Ignition table (Page 3) -;-------------------------------------------------- -page = 3 - advTable1 = array, U08, 0,[16x16], "deg", 1.0, -40, -40, 215.0, 0 - rpmBins2 = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 - - #if SPEED_DENSITY - mapBins2 = array, U08, 272, [ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 - #elif ALPHA_N - tpsBins2 = array, U08, 272, [ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 - #endif - -;-------------------------------------------------- -;Start Page 4 -;These are primarily ignition related settings (Previously part of page 2) -;-------------------------------------------------- -page = 4 - TrigAng = scalar, S16, 0, "Deg", 1, 0, -360, 360, 0 - FixAng = scalar, U08, 2, "Deg", 1, 0, 0, 80, 0 - CrankAng = scalar, U08, 3, "Deg", 1, 0, -10, 80, 0 - TrigAngMul = scalar, U08, 4, "", 1, 0, 0, 88, 0 ; Multiplier for tooth counts that don't evenly divide into 360 - TrigEdge = bits, U08, 5,[0:0], "Leading", "Trailing" - TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed" - IgInv = bits, U08, 5,[2:2], "Going Low", "Going High" - TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - TrigEdgeSec= bits, U08, 6,[0:0], "Leading", "Trailing" - fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" - useResync = bits, U08, 6,[7:7], "No", "Yes" - sparkDur = scalar, U08, 7, "ms", 0.1, 0, 0, 25.5, 1 ; Spark duration - unused4-8 = scalar, U08, 8, "ms", 0.1, 0.0, 0.0, 25.5, 1 - unused4-9 = scalar, U08, 9, "ms", 0.1, 0.0, 0.0, 25.5, 1 - unused4-10 = scalar, U08, 10, "ms", 0.1, 0.0, 0.0, 25.5, 1 - SkipCycles = scalar, U08, 11, "cycles", 1, 0, 0, 255, 0 - - ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits - ; name = scalar, type, offset, units, scale, translate, lo, hi, digits -;Dwell control - unused4-12a = bits, U08, 12, [0:0], "INVALID", "NOTHING" - useDwellLim = bits, U08, 12, [1:1], "Off", "On" - sparkMode = bits, U08, 12, [2:4], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential", "Rotary", "INVALID", "INVALID", "INVALID" - TrigFilter = bits, U08, 12, [5:6], "Off", "Weak", "Medium", "Aggressive" - ignCranklock = bits, U08, 12, [7:7], "Off", "On" - dwellcrank = scalar, U08, 13, "ms", 0.1, 0, 0, 25, 1 - dwellrun = scalar, U08, 14, "ms", 0.1, 0, 0, 8, 1 ;running dwell variable railed to 8 - who needs more than 8ms? - numTeeth = scalar, U08, 15, "teeth", 1.0, 0.0, 0.0, 255, 0 - missingTeeth = scalar, U08, 16, "teeth", 1.0, 0.0, 0.0, 255, 0 - - crankRPM = scalar, U08, 17, "rpm", 100, 0.0, 100, 1000, 0 - tpsflood = scalar, U08, 18, "%", 1.0, 0.0, 0.0, 255.0, 0 - -;Rev Limits - SoftRevLim = scalar, U08, 19, "rpm", 100, 0.0, 100, 25500, 0 - SoftLimRetard = scalar, U08, 20, "deg", 1.0, 0.0, 0.0, 80, 0 - SoftLimMax = scalar, U08, 21, "s", 0.1, 0.0, 0.0, 25.5, 1 - HardRevLim = scalar, U08, 22, "rpm", 100, 0.0, 100, 25500, 0 - -;TPS based acceleration enrichment - taeBins = array, U08, 23, [ 4], "%/s", 10.0, 0.0, 0.00, 2550.0, 0 - taeRates = array, U08, 27, [ 4], "%", 1.0, 0.0, 0.00, 255.0, 0 ; 4 bytes -;WUE Bins (Needed somewhere to put these - #if CELSIUS - wueBins = array, U08, 31, [10], "C", 1.0, -40, -40, 102.0, 0 - #else - wueBins = array, U08, 31, [10], "F", 1.8, -22.23, -40, 215.0, 0 - #endif -;Dwell config options - dwellLim = scalar, U08, 41, "ms", 1, 0, 0, 32, 0 - dwellRates = array, U08, 42, [6], "%", 1.0, 0.0, 0.00, 255.0, 0 - -;IAT (Inlet air temp) timing retard - #if CELSIUS - iatRetBins = array, U08, 48, [ 6], "C", 1.0, 0.0, 0.00, 255.0, 0 - #else - iatRetBins = array, U08, 48, [ 6], "F", 1.8, 17.77, 0.00, 255.0, 0 ; No -40 degree offset here - #endif - iatRetRates = array, U08, 54, [ 6], "deg", 1.0, 0.0, 0.00, 255.0, 0 -;Decelleration Fuel Cut Off (DFCO) - dfcoRPM = scalar, U08, 60, "RPM", 10.0, 0.0, 100, 2550, 0 - dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0 - dfcoTPSThresh= scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0 -;Cranking ignition bypass - ignBypassEnable = bits, U08, 63, [0:0], "Off", "On" - ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH" - - unused4-64 = array, U08, 64, [63], "%", 1.0, 0.0, 0.0, 255, 0 -;-------------------------------------------------- -;Start AFR page -;-------------------------------------------------- -page = 5 -#if LAMBDA - afrTable = array, U08, 0,[16x16], "Lambda", { 0.1 / stoich }, 0.0000, 0.00, 2.00, 3 -#else - afrTable = array, U08, 0,[16x16], "AFR", 0.1, 0.0, 7, 25.5, 1 -#endif - - rpmBinsAFR = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 - #if SPEED_DENSITY - mapBinsAFR = array, U08, 272,[ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 - #elif ALPHA_N - tpsBinsAFR = array, U08, 272,[ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 - #endif - -;-------------------------------------------------- -;Start page 6 -; Page 6 is all settings associated with O2/AFR -;-------------------------------------------------- -page = 6 - egoAlgorithm= bits , U08, 0, [0:1], "Simple", "INVALID", "PID", "No correction" ; * ( 1 byte) - egoType = bits , U08, 0, [2:3], "Disabled", "Narrow Band", "Wide Band", "INVALID" ; egoOption - boostEnabled= bits, U08, 0, [4:4], "Off", "On" - vvtEnabled = bits, U08, 0, [5:5], "Off", "On" - boostCutType= bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both" - - egoKP = scalar, U08, 1, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - egoKD = scalar, U08, 3, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - #if CELSIUS - egoTemp = scalar, U08, 4, "C", 1.0, -40, -40, 102.0, 0 - #else - egoTemp = scalar, U08, 4, "F", 1.8, -22.23, -40, 215.0, 0 - #endif - egoCount = scalar, U08, 5, "", 4.0, 0.0, 4.0, 255.0, 0 ; * ( 1 byte) - unused6-6 = scalar, U08, 6, "%", 1.0, 0.0, 0.0, 255.0, 0 - egoLimit = scalar, U08, 7, "", 1, 0, 0, 16, 0 - ego_min = scalar, U08, 8, "AFR", 0.1, 0.0, 7, 25, 1 - ego_max = scalar, U08, 9, "AFR", 0.1, 0.0, 7, 25, 1 - ego_sdelay = scalar, U08, 10, "sec", 1, 0, 0, 120, 0 - egoRPM = scalar, U08, 11, "rpm", 100, 0.0, 100, 25500, 0 - egoTPSMax = scalar, U08, 12, "%", 1, 0, 0, 120, 0 - vvtPin = bits , U08, 13, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - useExtBaro = bits, U08, 13, [6:6], "No", "Yes" - boostMode = bits, U08, 13, [7:7], "Simple", "Full" - boostPin = bits, U08, 14, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - VVTasOnOff = bits, U08, 14, [6:6], "No", "Yes" - unused6-14f = bits, U08, 14, [7:7], "ONE", "INVALID" - brvBins = array, U08, 15, [6], "V", 0.1, 0, 6, 24, 1 ; Bins for the battery reference voltage - injBatRates = array, U08, 21, [6], "%", 1, 0, 0, 255, 0 ;Values for injector pulsewidth vs voltage - #if CELSIUS - airDenBins = array, U08, 27, [9], "C", 1.0, -40, -40, 215, 0 ; Bins for the air density correction curve - #else - airDenBins = array, U08, 27, [9], "F", 1.8, -22.23, -40, 215, 0 ; Bins for the air density correction curve - #endif - airDenRates = array, U08, 36, [9], "%", 1.0, 0.0, 0, 255, 0 ; Values for the air density correction curve - -; PWM Frequencies - boostFreq = scalar, U08, 45, "Hz", 2.0, 0.0, 10, 511, 0 - vvtFreq = scalar, U08, 46, "Hz", 2.0, 0.0, 10, 511, 0 - idleFreq = scalar, U08, 47, "Hz", 2.0, 0.0, 10, 511, 0 - -; Launch Control - launchPin = bits , U08, 48, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - launchEnable= bits, U08, 48, [6:6], "No", "Yes" - launchHiLo = bits, U08, 48, [7:7], "LOW", "HIGH" - - lnchSoftLim = scalar, U08, 49, "rpm", 100, 0.0, 100, 25500, 0 - lnchRetard = scalar, S08, 50, "deg", 1.0, 0.0, -30, 40, 0 - lnchHardLim = scalar, U08, 51, "rpm", 100, 0.0, 100, 25500, 0 - lnchFuelAdd = scalar, U08, 52, "%", 1.0, 0.0, 0.0, 80, 0 - - idleKP = scalar, U08, 53, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - idleKI = scalar, U08, 54, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - idleKD = scalar, U08, 55, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - boostLimit = scalar, U08, 56, "kPa", 2.0, 0.0, 0.0, 511.0, 0 - boostKP = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - boostKI = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - boostKD = scalar, U08, 59, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - - lnchPullRes = bits, U08, 60, [0:1], "Float" , "Pullup", "INVALID", "INVALID" - fuelTrimEnabled= bits, U08, 60, [2:2], "No", "Yes" - flatSEnable = bits, U08, 60, [3:3], "No", "Yes" -; Baro Sensor pin - baroPin = bits, U08, 60, [4:7], "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A8", "A10", "A11", "A12", "A13", "A14", "A15" - -; Flat shift - flatSSoftWin = scalar, U08, 61, "rpm", 100, 0.0, 100, 25500, 0 - flatSRetard = scalar, U08, 62, "deg", 1.0, 0.0, 0.0, 80, 0 - flatSArm = scalar, U08, 63, "rpm", 100, 0.0, 100, 25500, 0 - - iacCLValues = array, U08, 64, [10], "RPM", 10.0, 0.0, 0, 2550, 0 - iacOLStepVal = array, U08, 74, [10], "Steps", 3, 0, 0, 765, 0 - iacOLPWMVal = array, U08, 84, [10], "Duty %", 1.0, 0, 0, 100, 0 - #if CELSIUS - iacBins = array, U08, 94, [10], "C", 1.0, -40, -40, 215, 0 - #else - iacBins = array, U08, 94, [10], "F", 1.8, -22.23, -40, 215, 0 - #endif - iacCrankSteps= array, U08, 104, [4], "Steps", 3, 0, 0, 765, 0 - iacCrankDuty = array, U08, 108, [4], "Duty %", 1.0, 0, 0, 100, 0 - #if CELSIUS - iacCrankBins = array, U08, 112, [4], "C", 1.0, -40, -40, 215, 0 - #else - iacCrankBins = array, U08, 112, [4], "F", 1.8, -22.23, -40, 215, 0 - #endif - - iacAlgorithm = bits , U08, 116, [0:2], "None", "On/Off", "PWM Open loop", "PWM Closed loop", "Stepper Open Loop", "Stepper Closed Loop", "INVALID", "INVALID" - iacStepTime = bits , U08, 116, [3:5], "INVALID","1", "2", "3", "4", "5", "6","INVALID" - iacChannels = bits, U08, 116, [6:6], "1", "2" - iacPWMdir = bits , U08, 116, [7:7], "Normal", "Reverse" - - #if CELSIUS - iacFastTemp = scalar, U08, 117, "C", 1.0, -40, -40, 215, 0 - #else - iacFastTemp = scalar, U08, 117, "F", 1.8, -22.23, -40, 215, 0 - #endif - - iacStepHome = scalar, U08, 118, "Steps", 3, 0, 0, 765, 0 - iacStepHyster= scalar, U08, 119, "Steps", 1, 0.0, 0.0, 10, 0 - - ; Begin fan control vairables - fanInv = bits, U08, 120, [0:0], "No", "Yes" - fanEnable = bits, U08, 120, [1:1], "Off", "On/Off" - fanPin = bits, U08, 120, [2:7], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - #if CELSIUS - fanSP = scalar, U08, 121, "C", 1.0, -40, -40, 215.0, 0 - fanHyster = scalar, U08, 122, "C", 1.0, 0.0, 0.0, 40, 0 - #else - fanSP = scalar, U08, 121, "F", 1.8, -22.23, -40, 215.0, 0 - fanHyster = scalar, U08, 122, "F", 1.0, 0.0, 0.0, 40, 0 - #endif - fanFreq = scalar, U08 , 123, "Hz", 2.0, 0.0, 10, 511, 0 - #if CELSIUS - fanPWMBins = array, U08, 124, [4], "C", 1.0, -40, -40, 215, 0 - #else - fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0 - #endif - -;-------------------------------------------------- -;Boost and vvt maps (Page 7) -;-------------------------------------------------- -page = 7 -;notes for boostTable in PSI~~~There are 6.895 psis to a kPa then x 2 like the kPa ver~~~div atmos. pressure in kPa by 2 and make neg so to subtract instead of add -; #if BOOSTPSI -; boostTable = array, U08, 0,[8x8], "PSI", 0.29007547546041846, -50.6625, 0, 74, 0 -; #else - boostTable = array, U08, 0,[8x8], "kPa", 2.0, 0.0, 0, 511, 0 -; #endif - rpmBinsBoost = array, U08, 64,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0 - tpsBinsBoost = array, U08, 72,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 - vvtTable = array, U08, 80,[8x8], "%", 1.0, 0.0, 0, 100, 0 - rpmBinsVVT = array, U08, 144,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0 - tpsBinsVVT = array, U08, 152,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 -;Fuel staging Table - stagingTable = array, U08, 160, [8x8], "%", 1.0, 0.0, 0.0, 100.0, 0 - rpmBinsStaging= array, U08, 224, [ 8], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 - #if SPEED_DENSITY - mapBinsStaging= array, U08, 232, [ 8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 - #elif ALPHA_N - tpsBinsStaging= array, U08, 232, [ 8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 - #endif - -;-------------------------------------------------- -;Sequential fuel trim tables (Page 8) -;-------------------------------------------------- -page = 8 - fuelTrim1Table = array, U08, 0,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim1loadBins = array, U08, 42,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim1loadBins = array, U08, 42,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif - - fuelTrim2Table = array, U08, 48,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim2rpmBins = array, U08, 84,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim2loadBins = array, U08, 90,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim2loadBins = array, U08, 90,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif - - fuelTrim3Table = array, U08, 96,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim3rpmBins = array, U08, 132,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim3loadBins = array, U08, 138,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim3loadBins = array, U08, 138,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif - - fuelTrim4Table = array, U08, 144,[6x6], "%", 1.0, -128, -50, 50, 0 - fuelTrim4rpmBins = array, U08, 180,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim4loadBins = array, U08, 186,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim4loadBins = array, U08, 186,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif - -;-------------------------------------------------- -;CANBUS control (Page 9) -;-------------------------------------------------- -page = 9 - #if CAN_COMMANDS - enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "ON via Internal CAN ", "INVALID" - #else - enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID" - #endif - enable_candata_in = bits, U08, 0, [2:2], "Off", "On" - - caninput_sel0 = bits, U16, 1, [0:0], "Off", "On" - caninput_sel1 = bits, U16, 1, [1:1], "Off", "On" - caninput_sel2 = bits, U16, 1, [2:2], "Off", "On" - caninput_sel3 = bits, U16, 1, [3:3], "Off", "On" - caninput_sel4 = bits, U16, 1, [4:4], "Off", "On" - caninput_sel5 = bits, U16, 1, [5:5], "Off", "On" - caninput_sel6 = bits, U16, 1, [6:6], "Off", "On" - caninput_sel7 = bits, U16, 1, [7:7], "Off", "On" - caninput_sel8 = bits, U16, 1, [8:8], "Off", "On" - caninput_sel9 = bits, U16, 1, [9:9], "Off", "On" - caninput_sel10 = bits, U16, 1, [10:10], "Off", "On" - caninput_sel11 = bits, U16, 1, [11:11], "Off", "On" - caninput_sel12 = bits, U16, 1, [12:12], "Off", "On" - caninput_sel13 = bits, U16, 1, [13:13], "Off", "On" - caninput_sel14 = bits, U16, 1, [14:14], "Off", "On" - caninput_sel15 = bits, U16, 1, [15:15], "Off", "On" - - ;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0 - caninput_source_can_address0 = bits, U16, 3, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address1 = bits, U16, 5, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address2 = bits, U16, 7, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address3 = bits, U16, 9, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address4 = bits, U16, 11, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address5 = bits, U16, 13, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address6 = bits, U16, 15, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address7 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address8 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address9 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address10 = bits, U16, 23, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address11 = bits, U16, 25, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address12 = bits, U16, 27, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address13 = bits, U16, 29, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address14 = bits, U16, 31, [0:10], $CAN_ADDRESS_HEX - caninput_source_can_address15 = bits, U16, 33, [0:10], $CAN_ADDRESS_HEX - - - - caninput_source_start_byte0 = bits, U08, 35, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte1 = bits, U08, 36, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte2 = bits, U08, 37, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte3 = bits, U08, 38, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte4 = bits, U08, 39, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte5 = bits, U08, 40, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte6 = bits, U08, 41, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte7 = bits, U08, 42, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte8 = bits, U08, 43, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte9 = bits, U08, 44, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte10 = bits, U08, 45, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte11 = bits, U08, 46, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte12 = bits, U08, 47, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte13 = bits, U08, 48, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte14 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - caninput_source_start_byte15 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - - caninput_source_num_bytes0 = bits, U16, 51, [0:0], "1", "2" - caninput_source_num_bytes1 = bits, U16, 51, [1:1], "1", "2" - caninput_source_num_bytes2 = bits, U16, 51, [2:2], "1", "2" - caninput_source_num_bytes3 = bits, U16, 51, [3:3], "1", "2" - caninput_source_num_bytes4 = bits, U16, 51, [4:4], "1", "2" - caninput_source_num_bytes5 = bits, U16, 51, [5:5], "1", "2" - caninput_source_num_bytes6 = bits, U16, 51, [6:6], "1", "2" - caninput_source_num_bytes7 = bits, U16, 51, [7:7], "1", "2" - caninput_source_num_bytes8 = bits, U16, 51, [8:8], "1", "2" - caninput_source_num_bytes9 = bits, U16, 51, [9:9], "1", "2" - caninput_source_num_bytes10 = bits, U16, 51, [10:10], "1", "2" - caninput_source_num_bytes11 = bits, U16, 51, [11:11], "1", "2" - caninput_source_num_bytes12 = bits, U16, 51, [12:12], "1", "2" - caninput_source_num_bytes13 = bits, U16, 51, [13:13], "1", "2" - caninput_source_num_bytes14 = bits, U16, 51, [14:14], "1", "2" - caninput_source_num_bytes15 = bits, U16, 51, [15:15], "1", "2" - - unused10_53 = scalar, U08, 53, "", 1, 0, 0, 255, 0 - unused10_54 = scalar, U08, 54, "", 1, 0, 0, 255, 0 - enable_candata_out = bits, U08, 55, [0:0], "Off", "On" - canoutput_sel0 = bits, U08, 56, [0:0], "Off", "On" - canoutput_sel1 = bits, U08, 57, [0:0], "Off", "On" - canoutput_sel2 = bits, U08, 58, [0:0], "Off", "On" - canoutput_sel3 = bits, U08, 59, [0:0], "Off", "On" - canoutput_sel4 = bits, U08, 60, [0:0], "Off", "On" - canoutput_sel5 = bits, U08, 61, [0:0], "Off", "On" - canoutput_sel6 = bits, U08, 62, [0:0], "Off", "On" - canoutput_sel7 = bits, U08, 63, [0:0], "Off", "On" - canoutput_param_group = array , U16, 64, [ 8], "", 1, 0, 0, 65535, 0 - canoutput_param_start_byte0 = bits, U08, 80, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte1 = bits, U08, 81, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte2 = bits, U08, 82, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte3 = bits, U08, 83, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte4 = bits, U08, 84, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte5 = bits, U08, 85, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte6 = bits, U08, 86, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_start_byte7 = bits, U08, 87, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" - canoutput_param_num_bytes0 = bits, U08, 88, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes1 = bits, U08, 89, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes2 = bits, U08, 90, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes3 = bits, U08, 91, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes4 = bits, U08, 92, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes5 = bits, U08, 93, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes6 = bits, U08, 94, [0:1], "INVALID", "1", "2", "INVALID" - canoutput_param_num_bytes7 = bits, U08, 95, [0:1], "INVALID", "1", "2", "INVALID" - - unused10_96 = scalar, U08, 96, "", 1, 0, 0, 255, 0 - unused10_97 = scalar, U08, 97, "", 1, 0, 0, 255, 0 - unused10_98 = scalar, U08, 98, "", 1, 0, 0, 255, 0 - unused10_99 = scalar, U08, 99, "", 1, 0, 0, 255, 0 - - speeduino_tsCanId = bits, U08, 100, [0:3], $tsCanId_list - true_address = bits, U16, 101, [0:10], $CAN_ADDRESS_HEX - realtime_base_address = bits, U16, 103, [0:10], $CAN_ADDRESS_HEX - obd_address = bits, U16, 105, [0:10], $CAN_ADDRESS_HEX - - - ;unused10_101 = scalar, U16, 101, "", 1, 0, 0, 255, 0 - ;unused10_103 = scalar, U16, 103, "", 1, 0, 0, 255, 0 - ;unused10_105 = scalar, U16, 105, "", 1, 0, 0, 255, 0 - - ;AFR offset for WUE VeAnalyze - ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0 - ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0 - - unused10_107 = scalar, U08, 107, "", 1, 0, 0, 255, 0 - unused10_108 = scalar, U08, 108, "", 1, 0, 0, 255, 0 - unused10_109 = scalar, U08, 109, "", 1, 0, 0, 255, 0 - unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0 - unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0 - unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0 - unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0 - unused10_114 = scalar, U08, 114, "", 1, 0, 0, 255, 0 - unused10_115 = scalar, U08, 115, "", 1, 0, 0, 255, 0 - unused10_116 = scalar, U08, 116, "", 1, 0, 0, 255, 0 - unused10_117 = scalar, U08, 117, "", 1, 0, 0, 255, 0 - unused10_118 = scalar, U08, 118, "", 1, 0, 0, 255, 0 - unused10_119 = scalar, U08, 119, "", 1, 0, 0, 255, 0 - unused10_120 = scalar, U08, 120, "", 1, 0, 0, 255, 0 - unused10_121 = scalar, U08, 121, "", 1, 0, 0, 255, 0 - unused10_122 = scalar, U08, 122, "", 1, 0, 0, 255, 0 - unused10_123 = scalar, U08, 123, "", 1, 0, 0, 255, 0 - unused10_124 = scalar, U08, 124, "", 1, 0, 0, 255, 0 - unused10_125 = scalar, U08, 125, "", 1, 0, 0, 255, 0 - unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0 - unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0 - -page = 10 -#if CELSIUS - crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 -#else - crankingEnrichBins = array, U08, 0, [4], "F", 1.8, -22.23, -40, 215, 0 -#endif - crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve - - rotaryType = bits , U08, 8, [0:1], "FC", "FD", "RX8", "INVALID" - stagingEnabled = bits , U08, 8, [2:2], "Off","On" - stagingMode = bits , U08, 8, [3:3], "Table","Automatic" - unused11-8e = bits , U08, 8, [4:4], "Off","On" - unused11-8f = bits , U08, 8, [5:5], "Off","On" - unused11-8g = bits , U08, 8, [6:6], "Off","On" - unused11-8h = bits , U08, 8, [7:7], "Off","On" - - rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0 -#if SPEED_DENSITY - rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif - boostSens = scalar, U16, 25, "", 1, 0, 0, 5000, 0 - boostIntv = scalar, U08, 27, "ms", 1, 0, 0, 250, 0 - stagedInjSizePri = scalar, U16, 28, "cc/min", 1, 0, 0, 1500, 0 - stagedInjSizeSec = scalar, U16, 30, "cc/min", 1, 0, 0, 1500, 0 - - unused11_32_192 = array, U08, 32, [159], "RPM", 100.0, 0.0, 100, 25500, 0 - -;------------------------------------------------------------------------------- - -[ConstantsExtensions] - requiresPowerCycle = nCylinders - requiresPowerCycle = pinLayout - requiresPowerCycle = fanPin - requiresPowerCycle = reqFuel - requiresPowerCycle = numTeeth - requiresPowerCycle = missingTeeth - requiresPowerCycle = injOpen - requiresPowerCycle = IgInv - requiresPowerCycle = fanInv - requiresPowerCycle = boostEnabled - requiresPowerCycle = vvtEnabled -; requiresPowerCycle = vvtChannels - requiresPowerCycle = boostFreq - requiresPowerCycle = vvtFreq - requiresPowerCycle = idleFreq - requiresPowerCycle = sparkMode - requiresPowerCycle = launchPin - requiresPowerCycle = launchEnable - requiresPowerCycle = launchHiLo - requiresPowerCycle = flexEnabled - requiresPowerCycle = oddfire2 - requiresPowerCycle = oddfire3 - requiresPowerCycle = oddfire4 - requiresPowerCycle = iacCLminDuty - requiresPowerCycle = iacCLmaxDuty - requiresPowerCycle = useExtBaro - requiresPowerCycle = baroPin - requiresPowerCycle = rotaryType - requiresPowerCycle = stagedInjSizePri - requiresPowerCycle = stagedInjSizeSec - requiresPowerCycle = stagingEnabled - - defaultValue = pinLayout, 1 - defaultValue = TrigPattern, 0 - defaultValue = useResync, 1 - defaultValue = sparkMode, 0 - defaultValue = indInjAng, 0 - defaultValue = inj1Ang, 355 - defaultValue = inj2Ang, 355 - defaultValue = inj3Ang, 355 - defaultValue = inj4Ang, 355 - defaultValue = nInjectors, 4 - defaultValue = dutyLim, 100 - defaultValue = mapMin, 10 - defaultValue = mapMax, 260 - defaultValue = baroMin, 10 - defaultValue = baroMax, 260 - defaultValue = fpPrime, 3 - defaultValue = TrigFilter, 0 - defaultValue = ignCranklock,0 - defaultValue = multiplyMAP, 0 - defaultValue = includeAFR, 0 - defaultValue = stoich, 14.7 - defaultValue = flexEnabled, 0 - defaultValue = oddfire2, 0 - defaultValue = oddfire3, 0 - defaultValue = oddfire4, 0 - defaultValue = flexFreqLow, 50 - defaultValue = flexFreqHigh,150 - defaultValue = flexFuelLow, 100 - defaultValue = flexFuelHigh,163 - defaultValue = flexAdvLow, 0 - defaultValue = flexAdvHigh, 13 - defaultValue = flexBoostLow,0 - defaultValue = flexBoostHigh,0 - defaultValue = fuelPumpPin, 0 - defaultValue = fanPin, 0 - defaultValue = iacCLminDuty,0 - defaultValue = iacCLmaxDuty,100 - defaultValue = boostMinDuty,0 - defaultValue = boostMaxDuty,100 - defaultValue = boostSens, 2000 - defaultValue = boostIntv, 30 - defaultValue = sparkDur, 1.0 - defaultValue = speeduino_tsCanId, 0 - defaultValue = true_address, 256 - defaultValue = realtime_base_address, 336 - defaultValue = VVTasOnOff, 0 - defaultValue = stagingEnabled, 0 - ; defaultValue = obd_address, 0 - - ;Default pins - defaultValue = fanPin, 0 - defaultValue = vvtPin, 0 - defaultValue = launchPin, 0 - defaultValue = boostPin, 0 - defaultValue = fuelPumpPin, 0 - defaultValue = tachoPin, 0 - defaultValue = perToothIgn, 0 -[Menu] - - ;---------------------------------------------------------------------------- - ; There are five pre-defined values that may be used to define your menus. - ; The first four allow access to the "standard" dialog boxes, the last one - ; merely draws a separator (horizontal line) in the menu. - ; - ; std_constants - ; std_enrichments - ; std_realtime - ; std_warmup - ; - ; std_separator - ; - ; If you use any of the std_constants, std_enrichments or std_warmup - ; editors, they may be optionally suffixed with a page number (only - ; useful for multi-page code variants), which causes them to edit the - ; specified page. If you leave off the page specifier, they edit logical - ; page one as specified in the Constants section. - ; - ; There are four special menu names, which when used append to the standard - ; menus of the same name instead of creating a new one. The menu names - ; are "File", "Communications", "Tools" and "Help". - ; - ;---------------------------------------------------------------------------- - -menuDialog = main - - menu = "Settings" - subMenu = engine_constants, "Engine Constants" - subMenu = injChars, "Injector Characteristics" - subMenu = triggerSettings, "Trigger Setup" - ;subMenu = OLED, "OLED Setup" - subMenu = airdensity_curve, "IAT Density" - - - menu = "&Tuning" - subMenu = std_realtime, "Realtime Display" - subMenu = accelEnrichments, "Acceleration Enrichment" - subMenu = egoControl, "AFR/O2", 3 - subMenu = RevLimiterS, "Limiters", 2 - subMenu = flexFueling, "Flex Fuel", 2 - subMenu = veTableDialog, "VE Table", 0 - subMenu = sparkTbl, "Spark Table", 2 - subMenu = afrTable1Tbl, "AFR Table", 5 - subMenu = std_separator - subMenu = inj_trimad, "Sequential fuel trim", 9 - subMenu = stagingTableDialog, "Staged Injection", 10 - - menu = "&Spark" - subMenu = sparkSettings, "Spark Settings" - subMenu = sparkTbl, "Spark Table", 2 - subMenu = dwellSettings, "Dwell settings" - subMenu = dwell_correction_curve, "Dwell Compensation" - subMenu = iat_retard_curve, "&IAT Retard" - subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 } - - menu = "&Starting/Idle" - subMenu = crankPW, "Cranking Settings" - subMenu = warmup, "Warmup Enrichment" - subMenu = std_separator - subMenu = idleSettings, "Idle Control" - subMenu = iacClosedLoop_curve, "Idle - Closed loop targets", 7, { iacAlgorithm == 3 || iacAlgorithm == 5 } - subMenu = iacPwm_curve, "Idle - PWM Duty Cycle", 7, { iacAlgorithm == 2 } - subMenu = iacPwmCrank_curve, "Idle - PWM Cranking Duty Cycle", 7, { iacAlgorithm == 2 } - subMenu = iacStep_curve, "Idle - Stepper Motor", 7, { iacAlgorithm == 4 } - subMenu = iacStepCrank_curve, "Idle - Stepper Motor Cranking", 7, { iacAlgorithm == 4 } - - menu = "&Accessories" - subMenu = fanSettings, "Thermo Fan" - subMenu = LaunchControl, "Launch Control / Flat Shift" - subMenu = fuelpump, "Fuel Pump" - subMenu = std_separator - subMenu = boostSettings, "Boost Control" - subMenu = boostTbl, "Boost target", 8, { boostEnabled } - subMenu = std_separator - subMenu = vvtSettings, "VVT Control" - subMenu = vvtTbl, "VVT duty cycle", 8, { vvtEnabled } - subMenu = std_separator - subMenu = tacho, "Tacho Output" - - subMenu = std_separator - - #if CAN_COMMANDS - subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface" - subMenu = std_separator - subMenu = Canin_config, "External Data Input Configuration", {enable_canbus} - ;subMenu = std_separator - ;subMenu = Canout_config, "Canbus Output Configuration" - #else - subMenu = serial3IO, "Secondary Serial IO Interface" - #endif - - menuDialog = main - menu = "T&ools" - subMenu = mapCal, "Calibrate MAP" - subMenu = std_ms2gentherm, "Calibrate Temperature Sensors", 0 - subMenu = std_ms2geno2, "Calibrate AFR Sensor", 0 - - menuDialog = main - menu = "3D &Tuning Maps" - subMenu = veTable1Map, "Fuel Table" - subMenu = sparkMap, "Spark Table", 3 - subMenu = afrTable1Map, "AFR Target Table" - -#if enablehardware_test - menuDialog = main - menu = "Hardware Testing" - subMenu = outputtest1, "Test Output Hardware" -#endif - - menu = "Help" - subMenu = helpGeneral, "Speeduino Help" -;------------------------------------------------------------------------------- - -[SettingContextHelp] -; constantName = "Help Text" -; These provide the context help in the dialog when these variables are used - nCylinders = "Cylinder count" - alternate = "Whether or not the injectors should be fired at the same time. This setting is ignored when Sequential is selected below, however it will still affect the req_fuel value." - engineType = "Engines with an equal number of degrees between all firings (This is most engines) should select Even fire. Some 2 and 6 cylinder engines are Odd fire however." - twoStroke = "Four-Stroke (most engines), Two-stroke." - nInjectors = "Number of primary injectors." - mapSample = "The method used for calculating the MAP reading\nFor 1-2 Cylinder engines, Cycle Minimum is recommended.\nFor more than 2 cylinders Cycle Average is recommended" - stoich = "The stoichiometric ration of the fuel being used. For flex fuel, choose the primary fuel" - injLayout = "The injector layout and timing to be used. Options are: \n 1. Paired - 2 injectors per output. Outputs active is equal to half the number of cylinders. Outputs are timed over 1 crank revolution. \n 2. Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less. \n 3. Banked: 2 outputs only used. \n 4. Sequential: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. " - - TrigPattern = "The type of input trigger decoder to be used." - useResync = "If enabled, sync will be rechecked once every full cycle from the cam input. This is good for accuracy, however if your cam input is noisy then this can cause issues." - numTeeth = "Number of teeth on Primary Wheel." - TrigSpeed = "Primary trigger speed." - missingTeeth= "Number of Missing teeth on Primary Wheel." - TrigAng = "The Angle ATDC when tooth No:1 on the primary wheel passes the primary sensor." - TrigAngMul = "A multiplier used by non-360 degree tooth wheels (i.e. Wheels where the tooth count doesn't divide evenly into 360. Usage: (360 * ) / tooth_count = Whole number" - SkipCycles = "The number of revolutions that will be skipped during cranking before the injectors and coils are fired." - TrigEdge = "The Trigger edge of the primary sensor.\nLeading.\nTrailing." - TrigEdgeSec = "The Trigger edge of the secondary (Cam) sensor.\nLeading.\nTrailing." - TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working" - - 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" - 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!)" - sparkDur = "The duration of the spark at full dwell. Typically around 1ms" - - fanInv = "" - fanHyster = "The number of degrees of hysteresis to be used in controlling the fan. Recommended values are between 2 and 5" - - taeTime = "The duration of the acceleration enrichment" - - iacChannels = "The number of output channels used for PWM valves. Select 1 for 2-wire valves or 2 for 3-wire valves." - iacStepTime = "Pause time between each step. Values that are too low can cause the motor to behave erratically or not at all" - iacStepHome = "Homing steps to perform on startup. Must be greater than the fully open steps value" - iacStepHyster = "The minimum number of steps to move in any one go." - iacAlgorithm = "Selects method of idle control.\nNone = no idle control valve.\nOn/Off valve.\nPWM valve (2,3 wire).\nStepper Valve (4,6,8 wire)." - iacPWMdir = "Normal PWM valves increase RPM with higher duty. If RPM decreases with higher duty then select Reverse" - iacCLminDuty= "When using closed loop idle control, this is the minimum duty cycle that the PID loop will allow. Combined with the maximum value, this specifies the working range of your idle valve" - iacCLmaxDuty= "When using closed loop idle control, this is the maximum duty cycle that the PID loop will allow. Combined with the minimum value, this specifies the working range of your idle valve" - iacFastTemp = "Below this temperature, the idle output will be high (On). Above this temperature, it will turn off." - - oddfire2 = "The ATDC angle of channel 2 for oddfire engines. This is relative to the TDC angle of channel 1" - oddfire3 = "The ATDC angle of channel 3 for oddfire engines. This is relative to the TDC angle of channel 1 (NOT channel 2)" - oddfire4 = "The ATDC angle of channel 4 for oddfire engines. This is relative to the TDC angle of channel 1 (NOT channel 3)" - - dfcoRPM = "The RPM above which DFCO will be active. Typically set a few hundred RPM above maximum idle speed" - dfcoHyster = "Hysteresis for DFCO RPM. 200-300 RPM is typical for this, however a higher value may be needed if the RPM is fluctuating around the cutout speed" - dfcoTPSThresh= "The TPS value below which DFCO will be active. Typical value is 5%-10%, but higher may be needed if TPS signal is noisy" - - launchPin = "The ARDUINO pin that the clutch switch is connected to. This is NOT the pin on the connector, but the pin it relates to on the arduino" - ignBypassPin = "The ARDUINO pin that the ignition bypass is connected to. This is NOT the pin on the connector, but the pin it relates to on the arduino" - ignBypassEnable = "If turned on, a ground signal will be output during cranking on the specified pin. This is used to bypass the Speeduino ignition control during cranking." - ignCranklock = "On certain low resolution ignition patterns, the cranking timing can be locked to occur when a pulse is recieved." - - multiplyMAP = "If enabled, the MAP reading is included directly into the pulsewidth calculation by multiplying the VE lookup value by the MAP:Baro ratio. This results in a flatter VE table that can be easier to tune in some instances. VE table must be retuned when this value is changed." - includeAFR = "When enabled, the current AFR reading is incorporated directly in the pulsewidth calculation as a percentage of the current target ratio. VE table must be retuned when this value is changed. " - useExtBaro = "By Default, Speeduino will measure barometric pressure upon startup. Optionally however, a 2nd pressure sensor can be used to perform live barometric readings whilst the system is on." - - flexEnabled = "Turns on readings from the Flex sensor and enables the below adjustments" - flexFreqLow = "The frequency of the sensor at 0% ethanol (50Hz for standard GM/Continental sensor)" - flexFreqHigh = "The frequency of the sensor at 100% ethanol (150Hz for standard GM/Continental sensor)" - flexFuelLow = "Fuel % to be used for the lowest ethanol reading (Typically 100%. ie No adjustment)" - flexFuelHigh = "Fuel % to be used for the highest ethanol reading (Typically 163% for 100% ethanol)" - flexAdvLow = "Additional advance (in degrees) at lowest ethanol reading (Typically 0)" - flexAdvHigh = "Additional advance (in degrees) at highest ethanol reading (Typically 10-20 degrees)" - flexBoostHigh = "This amount that will be added to the boost target at E100. Between E0 and E100, the amount added to the boost target will be scaled from 0 to this value" - flexBoostLow = "Typically should be set to 0, but can be used to lower boost at E0 if the bast tune is setup with some ethanol" - - flatSArm = "The RPM switch point that determines whether an eganged clutch is for launch control or flat shift. Below this figure, an engaged clutch is considered to be for launch, above this figure an active clutch input will be considered a flat shift. This should be set at least several hundred RPM above idle" - flatSSoftWin= "The number of RPM below the flat shift point where the softlimit will be applied (aka Soft limit window). Recommended values are 200-1000" - flatSRetard = "The absolute timing (BTDC) that will be used when within the soft limit window" - hardCutType = "How hard cuts should be performed for rev/launch limits. Full cut will stop all ignition events, Rolling cut will step through all ignition outputs, only cutting 1 per revolution" - - #if CAN_COMMANDS - enable_canbus = "This Enables either the secondary serial port or output via internal Can module. Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor " - #else - enable_canbus = "This Enables the IO on the secondary serial port. This is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor " - #endif - ;speeduino_tsCanId = "This is the TsCanId that the Speeduino ECU will respond to. This should match the main controller CAN ID in project properties if it is connected directy to TunerStudio, Otherwise the device ID if connected via CAN passthrough" - true_address = "This is the 11bit Can address of the Speeduino ECU " - 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" - ;obd_address = "The 11bit Can address that the Speeduino ECU responds to for OBD2 diagnostic requests" - caninput_sel0 = "This Enables CAN data input channel 0 " - caninput_sel1 = "This Enables CAN data input channel 1 " - caninput_sel2 = "This Enables CAN data input channel 2 " - caninput_sel3 = "This Enables CAN data input channel 3 " - caninput_sel4 = "This Enables CAN data input channel 4 " - caninput_sel5 = "This Enables CAN data input channel 5 " - caninput_sel6 = "This Enables CAN data input channel 6 " - caninput_sel7 = "This Enables CAN data input channel 7 " - caninput_sel8 = "This Enables CAN data input channel 8 " - caninput_sel9 = "This Enables CAN data input channel 9 " - caninput_sel10 = "This Enables CAN data input channel 10 " - caninput_sel11 = "This Enables CAN data input channel 11 " - caninput_sel12 = "This Enables CAN data input channel 12 " - caninput_sel13 = "This Enables CAN data input channel 13 " - caninput_sel14 = "This Enables CAN data input channel 14 " - caninput_sel15 = "This Enables CAN data input channel 15 " - caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0" - caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1" - caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2" - caninput_source_can_address3 = "The source 11bit CAN address of the data for channel 3" - caninput_source_can_address4 = "The source 11bit CAN address of the data for channel 4" - caninput_source_can_address5 = "The source 11bit CAN address of the data for channel 5" - caninput_source_can_address6 = "The source 11bit CAN address of the data for channel 6" - caninput_source_can_address7 = "The source 11bit CAN address of the data for channel 7" - caninput_source_can_address8 = "The source 11bit CAN address of the data for channel 8 " - caninput_source_can_address9 = "The source 11bit CAN address of the data for channel 9" - caninput_source_can_address10 = "The source 11bit CAN address of the data for channel 10" - caninput_source_can_address11 = "The source 11bit CAN address of the data for channel 11" - caninput_source_can_address12 = "The source 11bit CAN address of the data for channel 12" - caninput_source_can_address13 = "The source 11bit CAN address of the data for channel 13" - caninput_source_can_address14 = "The source 11bit CAN address of the data for channel 14" - caninput_source_can_address15 = "The source 11bit CAN address of the data for channel 15" - caninput_source_start_byte0 = "The Starting byte the data begins at for channel 0" - caninput_source_start_byte1 = "The Starting byte the data begins at for channel 1" - caninput_source_start_byte2 = "The Starting byte the data begins at for channel 2" - caninput_source_start_byte3 = "The Starting byte the data begins at for channel 3" - caninput_source_start_byte4 = "The Starting byte the data begins at for channel 4" - caninput_source_start_byte5 = "The Starting byte the data begins at for channel 5" - caninput_source_start_byte6 = "The Starting byte the data begins at for channel 6" - caninput_source_start_byte7 = "The Starting byte the data begins at for channel 7" - caninput_source_start_byte8 = "The Starting byte the data begins at for channel 8" - caninput_source_start_byte9 = "The Starting byte the data begins at for channel 9" - caninput_source_start_byte10 = "The Starting byte the data begins at for channel 10" - caninput_source_start_byte11 = "The Starting byte the data begins at for channel 11" - caninput_source_start_byte12 = "The Starting byte the data begins at for channel 12" - caninput_source_start_byte13 = "The Starting byte the data begins at for channel 13" - caninput_source_start_byte14 = "The Starting byte the data begins at for channel 14" - caninput_source_start_byte15 = "The Starting byte the data begins at for channel 15" - caninput_source_num_bytes0 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes1 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes2 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes3 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes4 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes5 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes6 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes7 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes8 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes9 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes10 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes11 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes12 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes13 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes14 = "The number of bytes the data is made from starting at selected start byte number" - caninput_source_num_bytes15 = "The number of bytes the data is made from starting at selected start byte number" - - cmdEnableTestMode = "Click this to enable test mode. This will not be available if the engine is running" - cmdStopTestMode = "Click this to disable test mode" - cmdtestinj150dc = "this will cycle the output at 50% Duty cycle" - cmdtestinj250dc = "this will cycle the output at 50% Duty cycle" - cmdtestinj350dc = "this will cycle the output at 50% Duty cycle" - cmdtestinj450dc = "this will cycle the output at 50% Duty cycle" - cmdtestspk150dc = "this will cycle the output at 50% Duty cycle" - cmdtestspk250dc = "this will cycle the output at 50% Duty cycle" - cmdtestspk350dc = "this will cycle the output at 50% Duty cycle" - cmdtestspk450dc = "this will cycle the output at 50% Duty cycle" - - boostIntv = "The closed loop control interval will run every this many ms. Generally values between 50% and 100% of the valve frequency work best" - VVTasOnOff = "Whether or not the VVT table should be treated as on and off control only. If you are using the VVT map to control a switch, this should be Yes. If you are using the VVT control to drive a PWM signal, this should be No" - - stagedInjSizePri= "Size of the primary injectors. The sum of the Pri and Sec injectors values MUST match the value used in the req_fuel calculation" - stagedInjSizeSec= "Size of the secondary injectors. The sum of the Pri and Sec injectors values MUST match the value used in the req_fuel calculation" - -[UserDefined] - -; Enhanced TunerStudio dialogs can be defined here -; MegaTune will over look this section -; These dialogs will over-ride those in the UserDefined Section -; User defined ar loaded first, then if one by the same name is defiend here, -; it will replace the MegaTune definition - -; dialog = name, Title, Layout -; -; valid options for layout are xAxis, yAxis, border -; for an xAxis, each field added will be added from right to left -; A yAxis layout will add fields from top to bottom -; A border layout will expect an additional constraint to determine placement -; valid border constraints are north, South, East, West, Center -; all 5 do not need to be filled. - -; The field name can be either a constant reference, or a reference to another -; dialog which will be added. -; dialogs can be nested and can be mixed with fields - - dialog = engine_constants_southwest, "Speeduino Board" - field = "Stoichiometric ratio", stoich - field = "Injector Layout", injLayout, { nCylinders <= 4 } - field = "Board Layout", pinLayout - field = "MAP Sample method", mapSample - - dialog = engine_constants_west, "" - panel = std_injection, North - panel = engine_constants_southwest - - dialog = engine_constants_northeast, "Oddfire Angles" - field = "Channel 2 angle", oddfire2, { engineType == 1 } - field = "Channel 3 angle", oddfire3, { engineType == 1 && nCylinders >= 3 } - field = "Channel 4 angle", oddfire4, { engineType == 1 && nCylinders >= 4 } - - dialog = engine_constants_east, "" - panel = engine_constants_northeast, North - field = "" - - dialog = engine_constants, "", border - panel = engine_constants_west, West - panel = engine_constants_east, East - -# Flex fuel stuff - dialog = flexFueling, "Flex Fuel" - field = "Flex sensor", flexEnabled - - dialog = flexLeft, "" - field = "Component" - field = "Sensor Frequency" - field = "Fuel Adjustment" - field = "Additional advance" - field = "Additional boost", { boostEnabled } - - dialog = flexMiddle, "" - field = "Low (E0)" - field = "", flexFreqLow, { flexEnabled } - field = "", flexFuelLow, { flexEnabled } - field = "", flexAdvLow, { flexEnabled } - field = "", flexBoostLow, { boostEnabled } - - dialog = flexRight, "" - field = "High (E100)" - field = "", flexFreqHigh, { flexEnabled } - field = "", flexFuelHigh, { flexEnabled } - field = "", flexAdvHigh, { flexEnabled } - field = "", flexBoostHigh, { flexEnabled && boostEnabled } - - dialog = flexMain, "Flex Fuel Calibration", xAxis - panel = flexLeft - panel = flexMiddle - panel = flexRight - - dialog = flexFuelTop, "" - field = "Flex Fuel Sensor", flexEnabled - - dialog = flexFueling, "Fuel Sensor Settings", yAxis - topicHelp = "http://speeduino.com/wiki/index.php/Flex_Fuel" - panel = flexFuelTop - panel = flexMain - - dialog = tacho, "Tacho" - field = "Output pin", tachoPin - field = "Output speed", tachoDiv - - dialog = accelEnrichments_center, "" - field = "TPSdot Threshold", tpsThresh - field = "Accel Time", taeTime - - dialog = accelEnrichments_south, "Decelleration Fuel Cutoff (DFCO)" - field = "Enabled", dfcoEnabled - field = "TPS Threshold", dfcoTPSThresh, { dfcoEnabled } - field = "Cutoff RPM", dfcoRPM, { dfcoEnabled } - field = "RPM Hysteresis", dfcoHyster, { dfcoEnabled } - - dialog = accelEnrichments_north_south, "" - liveGraph = pump_ae_Graph, "AE Graph" - graphLine = afr - graphLine = TPSdot, "%", -2000, 2000, auto, auto - - dialog = accelEnrichments_north, "", xAxis - panel = time_accel_tpsdot_curve - - dialog = accelEnrichments, "Acceleration Enrichment" - topicHelp = "http://speeduino.com/wiki/index.php/Acceleration_Wizard" - panel = accelEnrichments_north, North - panel = accelEnrichments_north_south, Center - panel = accelEnrichments_center, Center - panel = accelEnrichments_south, South - - dialog = veTableDialog_north, "" - panel = veTable1Tbl - - dialog = veTableDialog_south, "" - field = "Multiply VE value by MAP:Baro ratio", multiplyMAP - field = "Multiply by ratio of AFR to Target AFR", includeAFR, { egoType == 2 } - - dialog = veTableDialog, "VE Table" - panel = veTableDialog_north, North - panel = veTableDialog_south, South - - dialog = injChars, "Injector Characteristics" - field = "Injector Open Time", injOpen - field = "Injector close angle" - field = "", inj1Ang, { indInjAng == 0 } - field = "Individual channel setting", indInjAng - field = "Channel 1", inj1Ang, { indInjAng } - field = "Channel 2", inj2Ang, { nCylinders > 1 && indInjAng } - field = "Channel 3", inj3Ang, { indInjAng && (nCylinders > 4 || nCylinders == 3 || ((nCylinders == 4) && (injLayout == 3))) } - field = "Channel 4", inj4Ang, { indInjAng && (nCylinders > 6 || ((nCylinders == 4) && (injLayout == 3))) } - field = "Injector Duty Limit", dutyLim - panel = injector_voltage_curve - - dialog = egoControl, "" - topicHelp = "http://speeduino.com/wiki/index.php/AFR/O2" - field = "Sensor Type", egoType - field = "Algorithm", egoAlgorithm, { egoType } - field = "Ignition Events per Step", egoCount, { egoType && (egoAlgorithm < 3) } - field = "Controller Auth +/-", egoLimit, { egoType && (egoAlgorithm < 3) } - field = "Only correct above:", ego_min, { egoType && (egoAlgorithm < 3) } - field = "and correct below:", ego_max, { egoType && (egoAlgorithm < 3) } - - field = "Active Above Coolant", egoTemp, { egoType && (egoAlgorithm < 3) } - field = "Active Above RPM", egoRPM, { egoType && (egoAlgorithm < 3) } - field = "Active Below TPS", egoTPSMax, { egoType && (egoAlgorithm < 3) } - field = "EGO delay after start", ego_sdelay, { (egoAlgorithm < 3) } - field = "PID Proportional Gain", egoKP, { egoType && (egoAlgorithm == 2) } - field = "PID Integral", egoKI, { egoType && (egoAlgorithm == 2) } - field = "PID Derivative", egoKD, { egoType && (egoAlgorithm == 2) } - - dialog = fanSettings,"Fan Settings",7 - field = "Fan Mode", fanEnable - field = "Fan output pin", fanPin, { fanEnable } - field = "Fan Output Inverted", fanInv , { fanEnable } - field = "Fan temperature SP", fanSP, { fanEnable } - field = "Fan hysteresis", fanHyster, { fanEnable } - - dialog = stepper_idle, "Stepper Idle" - field = "Step time (ms)", iacStepTime, { iacAlgorithm == 4 || iacAlgorithm == 5 } - field = "Home steps", iacStepHome, { iacAlgorithm == 4 || iacAlgorithm == 5 } - field = "Minimum Steps", iacStepHyster, { iacAlgorithm == 4 || iacAlgorithm == 5 } - - dialog = pwm_idle, "PWM Idle" - field = "Number of outputs", iacChannels, { iacAlgorithm == 2 || iacAlgorithm == 3 } - field = "Idle valve frequency", idleFreq, { iacAlgorithm == 2 || iacAlgorithm == 3 } - field = "Idle valve direction", iacPWMdir, { iacAlgorithm == 2 || iacAlgorithm == 3 } - - dialog = closedloop_idle, "Closed loop Idle" - field = "P", idleKP, { iacAlgorithm == 3 || iacAlgorithm == 5 } - field = "I", idleKI, { iacAlgorithm == 3 || iacAlgorithm == 5 } - field = "D", idleKD, { iacAlgorithm == 3 || iacAlgorithm == 5 } - field = "Minimum valve duty", iacCLminDuty, { iacAlgorithm == 3 } - field = "Maximum valve duty", iacCLmaxDuty, { iacAlgorithm == 3 } - - dialog = idleSettings, "Idle Settings" - topicHelp = "http://speeduino.com/wiki/index.php/Idle" - field = "Idle control type", iacAlgorithm - field = "#Fast Idle" - field = "Fast idle temp", iacFastTemp, { iacAlgorithm == 1 } - panel = pwm_idle - panel = stepper_idle - panel = closedloop_idle - - dialog = fuelpump, "Fuel pump" - field = "Fuel pump pin", fuelPumpPin - field = "Fuel pump prime duration", fpPrime - - dialog = crankingEnrichDialog, "Cranking Enrichment", yAxis - panel = cranking_enrich_curve - - dialog = crankingIgnOptions, "Cranking Timing", yAxis - field = "Cranking advance Angle", CrankAng - field = "Cranking bypass", ignBypassEnable - field = "Bypass output pin", ignBypassPin { ignBypassEnable } - field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10 || TrigPattern == 9 } - - dialog = crankingOptions, "", yAxis - field = "Cranking RPM (Max)", crankRPM - field = "Flood Clear level", tpsflood - field = "" - field = "Fuel pump prime duration", fpPrime - field = "Priming Pulsewidth", primePulse - - dialog = crankPW, "Cranking Settings", yAxis - topicHelp = "http://speeduino.com/wiki/index.php/Cranking" - panel = crankingOptions, North - panel = crankingEnrichDialog, Center - panel = crankingIgnOptions, South - - - dialog = aseSettings, "Afterstart Enrichment" - field = "Enrichment %", asePct - field = "Number of Sec to run", aseCount - - - dialog = triggerSettings,"Trigger Settings",4 - topicHelp = "http://speeduino.com/wiki/index.php/Decoders" - field = "Trigger Pattern", TrigPattern - field = "Primary base teeth", numTeeth, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 11 } - field = "Primary trigger speed", TrigSpeed, { TrigPattern == 0 } - field = "Missing teeth", missingTeeth, { TrigPattern == 0 } - field = "Secondary teeth", missingTeeth, { TrigPattern == 2 } - field = "Trigger angle multiplier", TrigAngMul, { TrigPattern == 11 } - field = "Trigger Angle ", TrigAng - field = "This number represents the angle ATDC when " - field = "tooth #1 passes the primary sensor." - field = "" - field = "Skip Revolutions", SkipCycles - field = "Note: This is the number of revolutions that will be skipped during" - field = "cranking before the injectors and coils are fired" - field = "Trigger edge", TrigEdge - field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905 - field = "Trigger Filter", TrigFilter - 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 - field = "" - field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" - 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 - - dialog = sparkSettings,"Spark Settings",4 - field = "Spark output mode", sparkMode - field = "Cranking advance Angle", CrankAng - field = "Spark Outputs triggers", IgInv - field = "" - field = "Fixed Angle (0 = use map)", FixAng - - dialog = dwellSettings, "Dwell Settings", 4 - topicHelp = "http://speeduino.com/wiki/index.php/Dwell" - field = " Cranking dwell", dwellcrank - field = " Running dwell", dwellrun - field = " Spark duration", sparkDur - field = "" - field = "#Note" - field = "The above times are for 12V. Voltage correction" - field = "is applied. At higher voltages the time is reduced" - field = "and when low it is increased" - field = "" - field = "Overdwell protection" - field = "Use Overdwell protection", useDwellLim - field = "Max dwell time", dwellLim, { useDwellLim } - field = "Note: Set the maximum dwell time at least 3ms above" - field = "your desired dwell time (Including cranking)" - - dialog = rotary_ignition, "Rotary Ignition", 4 - field = "Ignition Configuration", rotaryType - panel = rotaryTrailing_curve - - dialog = boostCut, "Boost Cut" - field = "Boost Cut", boostCutType - field = "Boost Limit", boostLimit, { boostCutType } - - dialog = RevLimiterS, "Rev Limiter", 4 - topicHelp = "http://speeduino.com/wiki/index.php/Rev_Limits" - field = "Rev Limiter" - field = "Soft rev limit", SoftRevLim - field = "Soft limit absolute timing", SoftLimRetard - field = "Soft limit max time", SoftLimMax - field = "Hard Rev limit", HardRevLim - field = "Hard limiter method", hardCutType - panel = boostCut - - dialog = clutchInput, "Clutch input" - field = "Clutch Input Pin", launchPin, { launchEnable || flatSEnable } - field = "Clutch enabled when signal is",launchHiLo, { launchEnable || flatSEnable } - field = "Clutch Pullup Resistor", lnchPullRes, { launchEnable || flatSEnable } - field = "Launch / Flat Shift switch RPM",flatSArm, { launchEnable || flatSEnable } - - dialog = LaunchControl, "Launch Control / Flat shift", 6 - topicHelp = "http://speeduino.com/wiki/index.php/Launch_Flatshift" - panel = clutchInput - ; Launch control - field = "Launch Control" - field = "Enable Launch", launchEnable - field = "Soft rev limit", lnchSoftLim, { launchEnable } - field = "Soft limit absolute timing", lnchRetard, { launchEnable } - field = "Hard rev limit", lnchHardLim, { launchEnable } - field = "Fuel adder during launch", lnchFuelAdd, { launchEnable } - - ; Flat shift - field = "Flat Shift" - field = "Enable flat shift", flatSEnable - field = "Soft rev window", flatSSoftWin, { flatSEnable } - field = "Soft limit absolute timing", flatSRetard, { flatSEnable } - - - dialog = OLED, "OLED Display", 2 - field = "Display Type", display - field = "#Note" - field = "ECU must be rebooted after changing above value" - field = "Field 1", display1, { display } - field = "Field 2", display2, { display } - field = "Field 3", display3, { display } - field = "Field 4", display4, { display } - ;field = "Bar 1", displayB1, { display } - ;field = "Bar 2", displayB2, { display > 2 } - - dialog = mapCal, "Calibrate MAP" - field = "#MAP Sensor" - settingSelector = "Common Pressure Sensors" - settingOption = "MPX4115", mapMin=10, mapMax=118 ; https://www.nxp.com/docs/en/data-sheet/MPX4115.pdf - settingOption = "MPX4250", mapMin=10, mapMax=260 ; https://www.nxp.com/docs/en/data-sheet/MPX4250A.pdf Vout = VCC x (P x 0.004 – 0.04) - settingOption = "GM 1-BAR", mapMin=10, mapMax=105 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif - settingOption = "GM 2-BAR", mapMin=9, mapMax=208 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif - settingOption = "GM 3-BAR", mapMin=1, mapMax=315 ; VOUT = VS*(.00318*P-.00353) - settingOption = "MPXH6300", mapMin=1, mapMax=315 ; https://www.nxp.com/docs/en/data-sheet/MPXH6300A.pdf VOUT = VS*(.00318*P-.00353) - settingOption = "MPX5700", mapMin=-31, mapMax=746 ; https://www.nxp.com/docs/en/data-sheet/MPX5700.pdf Vout = VS*(0.0012858*P+0.04) - settingOption = "MPX6400", mapMin=3, mapMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842) - settingOption = "Denso 079800", mapMin=0, mapMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021 - settingOption = "VW/Audi/Porsche 250kPa", mapMin=26, mapMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502 - - field = "kPa At 0.0 Volts", mapMin - field = "kPa At 5.0 Volts", mapMax - - field = "#Baro Sensor" - field = "Use external Baro sensor", useExtBaro - field = "Analog pin to use for ext. Baro sensor", baroPin, { useExtBaro } - - settingSelector = "Common Pressure Sensors", { useExtBaro } - settingOption = "MPX4115", baroMin=10, baroMax=118 ; https://www.nxp.com/docs/en/data-sheet/MPX4115.pdf - settingOption = "MPX4250", baroMin=10, baroMax=260 ; https://www.nxp.com/docs/en/data-sheet/MPX4250A.pdf Vout = VCC x (P x 0.004 – 0.04) - settingOption = "GM 1-BAR", baroMin=10, baroMax=105 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif - settingOption = "GM 2-BAR", baroMin=9, baroMax=208 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif - settingOption = "GM 3-BAR", baroMin=1, baroMax=315 ; VOUT = VS*(.00318*P-.00353) - settingOption = "MPXH6300", baroMin=1, baroMax=315 ; https://www.nxp.com/docs/en/data-sheet/MPXH6300A.pdf VOUT = VS*(.00318*P-.00353) - settingOption = "MPX5700", baroMin=-31, baroMax=746 ; https://www.nxp.com/docs/en/data-sheet/MPX5700.pdf Vout = VS*(0.0012858*P+0.04) - settingOption = "MPX6400", baroMin=3, baroMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842) - settingOption = "Denso 079800", baroMin=0, baroMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021 - settingOption = "VW/Audi/Porsche 250kPa", baroMin=26, baroMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502 - - field = "kPa At 0.0 Volts", baroMin, { useExtBaro } - field = "kPa At 5.0 Volts", baroMax, { useExtBaro } - - dialog = boostSettings, "Boost Control" - topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control" - field = "Boost Control Enabled", boostEnabled - field = "Boost output pin", boostPin, { boostEnabled } - field = "Boost solenoid freq.", boostFreq, { boostEnabled } - - field = "Valve minimum duty cycle", boostMinDuty, { boostEnabled } - field = "Valve maximum duty cycle", boostMaxDuty, { boostEnabled } - panel = boostCut - field = "Closed Loop settings" - field = "Control mode", boostMode, { boostEnabled } - slider = "Sensitivity", boostSens, horizontal, { boostEnabled } - field = "Control interval", boostIntv, { boostEnabled } - field = "P", boostKP, { boostEnabled && boostMode } - field = "I", boostKI, { boostEnabled && boostMode} - field = "D", boostKD, { boostEnabled && boostMode} - - - dialog = vvtSettings, "VVT Control" - field = "VVT Control Enabled", vvtEnabled - field = "Use VVT map as On / Off only", VVTasOnOff, { vvtEnabled } - field = "VVT output pin", vvtPin, { vvtEnabled } - field = "VVT solenoid freq.", vvtFreq, { vvtEnabled } - - - dialog = warmup, "Warmup Enrichment (WUE) - Percent Multiplier" - panel = warmup_curve - field = "Final enrichment value must be 100%." - field = "" - panel = aseSettings - - ;Fuel trim composite dialog - dialog = inj_trim1TblTitle, "Channel #1" - panel = fuelTrimTable1Tbl, { fuelTrimEnabled } - dialog = inj_trim2TblTitle, "Channel #2" - panel = fuelTrimTable2Tbl, { fuelTrimEnabled } - dialog = inj_trim3TblTitle, "Channel #3" - panel = fuelTrimTable3Tbl, { fuelTrimEnabled } - dialog = inj_trim4TblTitle, "Channel #4" - panel = fuelTrimTable4Tbl, { fuelTrimEnabled } - - dialog = inj_trimadt, "", xAxis - panel = inj_trim1TblTitle - panel = inj_trim2TblTitle - dialog = inj_trimadb, "", xAxis - panel = inj_trim3TblTitle - panel = inj_trim4TblTitle - - dialog = inj_trim_enable, "" - field = "Individual fuel trim enabled", fuelTrimEnabled, { injLayout == 3 } - - dialog = inj_trimad,"Injector Cyl 1-4 Trims", yAxis - panel = inj_trim_enable, North - panel = inj_trimadt, Center - panel = inj_trimadb, South - - ;;Injector staging - dialog = stagingTableDialog_north, "" - field = "Staging enabled", stagingEnabled - field = "Staging mode", stagingMode - field = "Size of primary injectors", stagedInjSizePri, { stagingEnabled } - field = "Size of secondary injectors", stagedInjSizeSec, { stagingEnabled } - - dialog = stagingTableDialog_south, "" - panel = stagingTbl, { stagingMode == 0 } - - dialog = stagingTableDialog, "Staged injection" - topicHelp = "https://speeduino.com/wiki/index.php/Staged_Injection" - panel = stagingTableDialog_north, North - panel = stagingTableDialog_south, South - - dialog = outputtest_warningmessage, "" - field = "WARNING! USE AT YOUR OWN RISK. INCORRECT USE WILL DAMAGE YOUR HARDWARE!" - field = "Do not attempt to use this page whilst your engine is running!" - field = "Forcing the Injector or Spark outputs could cause flooding of your engine or permanent damage to ignition coils!" - - - dialog = enableoutputtestbuttons, "Enable Test Controls", xAxis - ;commandButton = "Label Text", command, { Enabled Condition }, optionalFlags - - ; The rem > 0 expression is just for testing.. It works when the arduino is on the Stim with rpm. - ; a status bit there would be the expected real expression - commandButton = "Enable Test Mode", cmdEnableTestMode,{!testenabled & !testactive } - - ; if clickOnCloseIfEnabled is set, then the command assigned to this button will be run on the - ; dialog close, but only if the enable condition is true - ; valid click flags are: - ; clickOnCloseIfEnabled - the command will be sent on dialog close if active condition is true - ; clickOnCloseIfDisabled - the command will be sent on dialog close if active condition is false - ; clickOnClose - the command will be sent on dialog close always - commandButton = "Stop Test Mode", cmdStopTestMode,{testactive}, clickOnCloseIfEnabled - - dialog = outputtestinj1, "Injector CH1", yAxis - commandButton = "Off", cmdtestinj1off,{testactive} - commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive} - commandButton = "On", cmdtestinj1on,{!testenabled & testactive} - dialog = outputtestinj2, "Injector CH2", yAxis - commandButton = "Off", cmdtestinj2off,{testactive} - commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive} - commandButton = "On", cmdtestinj2on,{!testenabled & testactive} - dialog = outputtestinj3, "Injector CH3", yAxis - commandButton = "Off", cmdtestinj3off,{testactive} - commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive} - commandButton = "On", cmdtestinj3on,{!testenabled & testactive} - dialog = outputtestinj4, "Injector CH4", yAxis - commandButton = "Off", cmdtestinj4off,{testactive} - commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive} - commandButton = "On", cmdtestinj4on ,{!testenabled & testactive} - - dialog = outputtest_injectors, "Injector Driver Output Test", xAxis - panel = outputtestinj1 - panel = outputtestinj2 - panel = outputtestinj3 - panel = outputtestinj4 - - dialog = outputtestspk1, "Spark CH1 ", yAxis - commandButton = "Off", cmdtestspk1off,{testactive} - commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive} - commandButton = "On", cmdtestspk1on,{!testenabled & testactive} - dialog = outputtestspk2, "Spark CH2", yAxis - commandButton = "Off", cmdtestspk2off,{testactive} - commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive} - commandButton = "On", cmdtestspk2on,{!testenabled & testactive} - dialog = outputtestspk3, "Spark CH3", yAxis - commandButton = "Off", cmdtestspk3off,{testactive} - commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive} - commandButton = "On", cmdtestspk3on,{!testenabled & testactive} - dialog = outputtestspk4, "Spark CH4", yAxis - commandButton = "Off", cmdtestspk4off,{testactive} - commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive} - commandButton = "On", cmdtestspk4on,{!testenabled & testactive} - - dialog = outputtest_spark, "Spark Driver Output Test", xAxis - panel = outputtestspk1 - panel = outputtestspk2 - panel = outputtestspk3 - panel = outputtestspk4 - - dialog = outputtest1,"Test Output Hardware" - topicHelp = "http://speeduino.com/wiki/index.php/Hardware_testing_page" - panel = enableoutputtestbuttons - panel = outputtest_injectors - panel = outputtest_spark - ;panel = outputtest_io2 - panel = outputtest_warningmessage - - dialog = caninput_sel, "" - ;CAN inputs - field = " CAN Input Channel on/off" - field = "CAN Input 0", caninput_sel0, { enable_candata_in } - field = "CAN Input 1", caninput_sel1, { enable_candata_in } - field = "CAN Input 2", caninput_sel2, { enable_candata_in } - field = "CAN Input 3", caninput_sel3, { enable_candata_in } - field = "CAN Input 4", caninput_sel4, { enable_candata_in } - field = "CAN Input 5", caninput_sel5, { enable_candata_in } - field = "CAN Input 6", caninput_sel6, { enable_candata_in } - field = "CAN Input 7", caninput_sel7, { enable_candata_in } - field = "CAN Input 8", caninput_sel8, { enable_candata_in } - field = "CAN Input 9", caninput_sel9, { enable_candata_in } - field = "CAN Input 10", caninput_sel10, { enable_candata_in } - field = "CAN Input 11", caninput_sel11, { enable_candata_in } - field = "CAN Input 12", caninput_sel12, { enable_candata_in } - field = "CAN Input 13", caninput_sel13, { enable_candata_in } - field = "CAN Input 14", caninput_sel14, { enable_candata_in } - field = "CAN Input 15", caninput_sel15, { enable_candata_in } - - dialog = caninput_parameter_group, "", yAxis - field = " Source CAN Address" - field = "", caninput_source_can_address0, { caninput_sel0 && enable_candata_in } - field = "", caninput_source_can_address1, { caninput_sel1 && enable_candata_in } - field = "", caninput_source_can_address2, { caninput_sel2 && enable_candata_in } - field = "", caninput_source_can_address3, { caninput_sel3 && enable_candata_in } - field = "", caninput_source_can_address4, { caninput_sel4 && enable_candata_in } - field = "", caninput_source_can_address5, { caninput_sel5 && enable_candata_in } - field = "", caninput_source_can_address6, { caninput_sel6 && enable_candata_in } - field = "", caninput_source_can_address7, { caninput_sel7 && enable_candata_in } - field = "", caninput_source_can_address8, { caninput_sel8 && enable_candata_in } - field = "", caninput_source_can_address9, { caninput_sel9 && enable_candata_in } - field = "", caninput_source_can_address10, { caninput_sel10 && enable_candata_in } - field = "", caninput_source_can_address11, { caninput_sel11 && enable_candata_in } - field = "", caninput_source_can_address12, { caninput_sel12 && enable_candata_in } - field = "", caninput_source_can_address13, { caninput_sel13 && enable_candata_in } - field = "", caninput_source_can_address14, { caninput_sel14 && enable_candata_in } - field = "", caninput_source_can_address15, { caninput_sel15 && enable_candata_in } - - dialog = caninput_parameter_start_byte, "", yAxis - field = " source data start byte" - field = "", caninput_source_start_byte0, { caninput_sel0 && enable_candata_in } - field = "", caninput_source_start_byte1, { caninput_sel1 && enable_candata_in } - field = "", caninput_source_start_byte2, { caninput_sel2 && enable_candata_in } - field = "", caninput_source_start_byte3, { caninput_sel3 && enable_candata_in } - field = "", caninput_source_start_byte4, { caninput_sel4 && enable_candata_in } - field = "", caninput_source_start_byte5, { caninput_sel5 && enable_candata_in } - field = "", caninput_source_start_byte6, { caninput_sel6 && enable_candata_in } - field = "", caninput_source_start_byte7, { caninput_sel7 && enable_candata_in } - field = "", caninput_source_start_byte8, { caninput_sel8 && enable_candata_in } - field = "", caninput_source_start_byte9, { caninput_sel9 && enable_candata_in } - field = "", caninput_source_start_byte10, { caninput_sel10 && enable_candata_in } - field = "", caninput_source_start_byte11, { caninput_sel11 && enable_candata_in } - field = "", caninput_source_start_byte12, { caninput_sel12 && enable_candata_in } - field = "", caninput_source_start_byte13, { caninput_sel13 && enable_candata_in } - field = "", caninput_source_start_byte14, { caninput_sel14 && enable_candata_in } - field = "", caninput_source_start_byte15, { caninput_sel15 && enable_candata_in } - - dialog = caninput_parameter_num_byte, "", yAxis - field = "Input Parameter Number of Bytes" - field = "", caninput_source_num_bytes0, { caninput_sel0 && enable_candata_in } - field = "", caninput_source_num_bytes1, { caninput_sel1 && enable_candata_in } - field = "", caninput_source_num_bytes2, { caninput_sel3 && enable_candata_in } - field = "", caninput_source_num_bytes3, { caninput_sel3 && enable_candata_in } - field = "", caninput_source_num_bytes4, { caninput_sel4 && enable_candata_in } - field = "", caninput_source_num_bytes5, { caninput_sel5 && enable_candata_in } - field = "", caninput_source_num_bytes6, { caninput_sel6 && enable_candata_in } - field = "", caninput_source_num_bytes7, { caninput_sel7 && enable_candata_in } - field = "", caninput_source_num_bytes8, { caninput_sel8 && enable_candata_in } - field = "", caninput_source_num_bytes9, { caninput_sel9 && enable_candata_in } - field = "", caninput_source_num_bytes10, { caninput_sel10 && enable_candata_in } - field = "", caninput_source_num_bytes11, { caninput_sel11 && enable_candata_in } - field = "", caninput_source_num_bytes12, { caninput_sel12 && enable_candata_in } - field = "", caninput_source_num_bytes13, { caninput_sel13 && enable_candata_in } - field = "", caninput_source_num_bytes14, { caninput_sel14 && enable_candata_in } - field = "", caninput_source_num_bytes15, { caninput_sel15 && enable_candata_in } - - dialog = caninconfig_blank1,"" - field = "" - - dialog = Canin_config1, "", xAxis - panel = caninput_sel - panel = caninconfig_blank1 - panel = caninput_parameter_group - panel = caninconfig_blank1 - panel = caninput_parameter_start_byte - panel = caninconfig_blank1 - panel = caninput_parameter_num_byte - - dialog = Canin_config2, "External Data Input" - field = "Enable External data input", enable_candata_in - - dialog = Canin_config, "", border - topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface#Read_external_analog_data" - panel = Canin_config2, North - panel = Canin_config1, South - - dialog = canoutput_sel, "" - ;CAN outputs - field = "CAN Output Channel on/off" - field = "CAN Output 0", canoutput_sel0, { enable_candata_out} - field = "CAN Output 1", canoutput_sel1, { enable_candata_out } - field = "CAN Output 2", canoutput_sel2, { enable_candata_out } - field = "CAN Output 3", canoutput_sel3, { enable_candata_out } - field = "CAN Output 4", canoutput_sel4, { enable_candata_out } - field = "CAN Output 5", canoutput_sel5, { enable_candata_out } - field = "CAN Output 6", canoutput_sel6, { enable_candata_out } - field = "CAN Output 7", canoutput_sel7, { enable_candata_out } - ; field = "CAN Output 8", canoutput_sel8, { enable_candata_out} - ; field = "CAN Output 9", canoutput_sel9, { enable_candata_out } - ; field = "CAN Output 10", canoutput_sel10, { enable_candata_out } - ; field = "CAN Output 11", canoutput_sel11, { enable_candata_out } - ; field = "CAN Output 12", canoutput_sel12, { enable_candata_out } - ; field = "CAN Output 13", canoutput_sel13, { enable_candata_out } - ; field = "CAN Output 14", canoutput_sel14, { enable_candata_out } - ; field = "CAN Output 15", canoutput_sel15, { enable_candata_out } - - dialog = canoutput_parameter_group, "", yAxis - field = "Output Parameter Group" - field = "", canoutput_param_group[0], { canoutput_sel0 && enable_candata_out } - field = "", canoutput_param_group[1], { canoutput_sel1 && enable_candata_out } - field = "", canoutput_param_group[2], { canoutput_sel3 && enable_candata_out } - field = "", canoutput_param_group[3], { canoutput_sel3 && enable_candata_out } - field = "", canoutput_param_group[4], { canoutput_sel4 && enable_candata_out } - field = "", canoutput_param_group[5], { canoutput_sel5 && enable_candata_out } - field = "", canoutput_param_group[6], { canoutput_sel6 && enable_candata_out } - field = "", canoutput_param_group[7], { canoutput_sel7 && enable_candata_out } - ; field = "", canoutput_param_group[8], { canoutput_sel9 && enable_candata_out } - ; field = "", canoutput_param_group[9], { canoutput_sel10 && enable_candata_out } - ; field = "", canoutput_param_group[10], { canoutput_sel1 && enable_candata_out } - ; field = "", canoutput_param_group[11], { canoutput_sel2 && enable_candata_out } - ; field = "", canoutput_param_group[12], { canoutput_sel3 && enable_candata_out } - ; field = "", canoutput_param_group[13], { canoutput_sel4 && enable_candata_out } - ; field = "", canoutput_param_group[14], { canoutput_sel5 && enable_candata_out } - ; field = "", canoutput_param_group[15], { canoutput_sel6 && enable_candata_out } - - dialog = canoutput_parameter_start_byte, "", yAxis - field = "Output Parameter Start Byte" - field = "", canoutput_param_start_byte0, { canoutput_sel0 && enable_candata_out } - field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_candata_out } - field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_candata_out } - field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_candata_out } - field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_candata_out } - field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_candata_out } - field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_candata_out } - field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_candata_out } - ; field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_candata_out } - ; field = "", canoutput_param_start_byte9, { canoutput_sel9 && enable_candata_out } - ; field = "", canoutput_param_start_byte10, { canoutput_sel10 && enable_candata_out } - ; field = "", canoutput_param_start_byte11, { canoutput_sel11 && enable_candata_out } - ; field = "", canoutput_param_start_byte12, { canoutput_sel12 && enable_candata_out } - ; field = "", canoutput_param_start_byte13, { canoutput_sel13 && enable_candata_out } -; field = "", canoutput_param_start_byte14, { canoutput_sel14 && enable_candata_out } - ; field = "", canoutput_param_start_byte15, { canoutput_sel15 && enable_candata_out } - - dialog = canoutput_parameter_num_byte, "", yAxis - field = "Output Parameter Number of Bytes" - field = "", canoutput_param_num_bytes0, { canoutput_sel0 && enable_candata_out } - field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_candata_out } - field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_candata_out } - field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_candata_out } - field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_candata_out } - field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_candata_out } - field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_candata_out } - field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_candata_out } - ; field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_candata_out } - ; field = "", canoutput_param_num_bytes9, { canoutput_sel9 && enable_candata_out } - ; field = "", canoutput_param_num_bytes10, { canoutput_sel10 && enable_candata_out } - ; field = "", canoutput_param_num_bytes11, { canoutput_sel11 && enable_candata_out } - ; field = "", canoutput_param_num_bytes12, { canoutput_sel12 && enable_candata_out } - ; field = "", canoutput_param_num_bytes13, { canoutput_sel13 && enable_candata_out } -; field = "", canoutput_param_num_bytes14, { canoutput_sel14 && enable_candata_out } - ; field = "", canoutput_param_num_bytes15, { canoutput_sel15 && enable_candata_out } - - dialog = canoutconfig_blank1,"" - field = "" - - dialog = Canout_config1, "", xAxis - panel = canoutput_sel - panel = canoutconfig_blank1 - panel = canoutput_parameter_group - panel = canoutconfig_blank1 - panel = canoutput_parameter_start_byte - panel = canoutconfig_blank1 - panel = canoutput_parameter_num_byte - - dialog = Canout_config2, "CAN Data Out" - field = "Enable CanBus data Output", enable_candata_out - - dialog = Canout_config, "", border - topicHelp = "" - panel = Canout_config2, North - panel = Canout_config1, South - - dialog = can_serial3IO, "CanBus/Serial3 IO interface" - topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface" - field = "Enable CanBus/Second Serial", enable_canbus - ; field = "Speeduino TsCanId", speeduino_tsCanId - field = "True Canbus Address", true_address {enable_canbus} - field = "NOTE! Realtime Datat Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion" - field = "Realtime Data Base Can Address", realtime_base_address {enable_canbus} - ; field = "Speeduino OBD address", obd_address - - dialog = serial3IO, "Serial3 IO interface" - topicHelp = "http://speeduino.com/wiki/index.php/Serial3_IO_interface" - field = "Enable Second Serial", enable_canbus - -;------------------------------------------------------------------------------- -; General help text - - help = helpGeneral, "Speeduino General Help" - webHelp = "http://speeduino.com/wiki/index.php/Speeduino" - text = "For current WIKI documentation, click the Web Help button," - text = "or visit http://www.speeduino.com/." - text = "
" - text = "
why not visit our forum http://speeduino.com/forum/" -;------------------------------------------------------------------------------ -[ControllerCommands] -; commandName = command1, command2, commandn... -; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. -; This does not include any resultant protocol envelope data, only the response data itself. - -; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands -; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition -; and may create error messages. -; It is expected that these commands would not typically alter any ram mapped to a Constant. - -cmdStopTestMode = "E\x01\x00" -cmdEnableTestMode = "E\x01\x01" - -cmdtestinj1on = "E\x02\x01" -cmdtestinj1off = "E\x02\x02" -cmdtestinj150dc = "E\x02\x03" -cmdtestinj2on = "E\x02\x04" -cmdtestinj2off = "E\x02\x05" -cmdtestinj250dc = "E\x02\x06" -cmdtestinj3on = "E\x02\x07" -cmdtestinj3off = "E\x02\x08" -cmdtestinj350dc = "E\x02\x09" -cmdtestinj4on = "E\x02\x0A" -cmdtestinj4off = "E\x02\x0B" -cmdtestinj450dc = "E\x02\x0C" - -cmdtestspk1on = "E\x03\x01" -cmdtestspk1off = "E\x03\x02" -cmdtestspk150dc = "E\x03\x03" -cmdtestspk2on = "E\x03\x04" -cmdtestspk2off = "E\x03\x05" -cmdtestspk250dc = "E\x03\x06" -cmdtestspk3on = "E\x03\x07" -cmdtestspk3off = "E\x03\x08" -cmdtestspk350dc = "E\x03\x09" -cmdtestspk4on = "E\x03\x0A" -cmdtestspk4off = "E\x03\x0B" -cmdtestspk450dc = "E\x03\x0C" - -; ------------------------------------------------------------- -; Help down here -[SettingContextHelp] - - -[CurveEditor] - -;time-based accel enrichment - curve = time_accel_tpsdot_curve, "TPS based AE" - columnLabel = "TPSdot", "Added" - xAxis = 0, 1200, 6 - yAxis = 0, 250, 4 - xBins = taeBins, TPSdot - yBins = taeRates - ;gauge = cltGauge - -; Correction curve for dwell vs battery voltage - curve = dwell_correction_curve, "Dwell voltage correction" - columnLabel = "Voltage", "Dwell" - xAxis = 6, 22, 6 - yAxis = 0, 255, 6 - xBins = brvBins, batteryVoltage - yBins = dwellRates - -; Correction curve for injectors vs battery voltage - curve = injector_voltage_curve, "Injector voltage correction" - columnLabel = "Voltage", "Injector" - xAxis = 6, 22, 6 - yAxis = 0, 255, 6 - xBins = brvBins, batteryVoltage - yBins = injBatRates - -; Correction curve for Air Density vs temperature - curve = airdensity_curve, "IAT density correction" - columnLabel = "Air Temperature", "Fuel Amount" - xAxis = -40, 160, 6 - yAxis = 0, 255, 6 - xBins = airDenBins, iat - yBins = airDenRates - -; IAT based ignition timing retard - curve = iat_retard_curve, "IAT timing retard" - columnLabel = "Inlet Air Temp", "Retard" - xAxis = -40, 200, 5 - yAxis = 0, 30, 5 - xBins = iatRetBins, iat - yBins = iatRetRates - -; Curves for idle control - ; Standard duty table for PWM valves - curve = iacPwm_curve, "IAC PWM Duty" - columnLabel = "Coolant Temperature", "Valve" - #if CELSIUS - xAxis = -40, 215, 6 - #else - xAxis = -40, 315, 6 - #endif - yAxis = 0, 100, 4 - xBins = iacBins, coolant - yBins = iacOLPWMVal - - ; Cranking duty table for PWM valves - curve = iacPwmCrank_curve, "IAC PWM Cranking Duty" - columnLabel = "Coolant Temperature", "Valve" - xAxis = -40, 215, 6 - yAxis = 0, 100, 4 - xBins = iacCrankBins, coolant - yBins = iacCrankDuty - - curve = iacStep_curve, "IAC Stepper Motor" - columnLabel = "Coolant Temperature", "Motor" - #if CELSIUS - xAxis = -40, 215, 6 - #else - xAxis = -40, 315, 6 - #endif - yAxis = 0, 850, 4 - xBins = iacBins, coolant - yBins = iacOLStepVal - - curve = iacStepCrank_curve, "IAC Stepper Motor Cranking" - columnLabel = "Coolant Temperature", "Motor" - xAxis = -40, 120, 6 - yAxis = 0, 850, 4 - xBins = iacCrankBins, coolant - yBins = iacCrankSteps - - curve = iacClosedLoop_curve, "IAC Closed Loop Targets" - columnLabel = "Coolant Temperature", "Motor" - xAxis = -40, 120, 6 - yAxis = 0, 2000, 4 - xBins = iacBins, coolant - yBins = iacCLValues - - curve = rotaryTrailing_curve, "Rotary Trailing Split" - columnLabel = "Engine load", "Split" - yAxis = 0, 40, 4 -#if SPEED_DENSITY - xBins = rotarySplitBins, map - xAxis = 0, 250, 5 -#else - xBins = rotarySplitBins, throttle - xAxis = 0, 100, 5 -#endif - yBins = rotarySplitValues - -; Warmup enrichment curve - curve = warmup_curve, "Warmup Enrichment (WUE) Curve" - columnLabel = "Coolant", "WUE %" - xAxis = -40, 210, 9 - yAxis = 0, 240, 6 - xBins = wueBins, coolant - yBins = wueRates - gauge = cltGauge - -; Cranking enrichment curve - curve = cranking_enrich_curve, "Cranking Enrichment Curve" - columnLabel = "Coolant", "Enrich %" - xAxis = -40, 110, 9 - yAxis = 0, 200, 6 - xBins = crankingEnrichBins, coolant - yBins = crankingEnrichValues - ;gauge = cltGau25 - -; Warmup enrichment VEAL AFR adjustment curve (Not currently working) - ;curve = warmup_afr_curve, "AFR Target Temperature Adustment" - ; columnLabel = "Coolant Temp", "AFR Offset %" - ; xAxis = -40, 210, 9 - ; yAxis = 0, 240, 6 - ; xBins = wueAFRBins, coolant - ; yBins = wueAFRRates - - -[TableEditor] - ; table_id, map3d_id, "title", page - table = veTable1Tbl, veTable1Map, "VE Table", 1 - topicHelp = "http://speeduino.com/wiki/index.php/Tuning" - ; constant, variable - xBins = rpmBins, rpm - #if SPEED_DENSITY - yBins = mapBins, map - #else - yBins = tpsBins, throttle - #endif - zBins = veTable - - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" - - table = sparkTbl, sparkMap, "Ignition Advance Table", 3 - xBins = rpmBins2, rpm - #if SPEED_DENSITY - yBins = mapBins2, map - #else ALPHA_N - yBins = tpsBins2, throttle - #endif - zBins = advTable1 - gridHeight = 3.0 - upDownLabel = "ADVANCED", "RETARDED" - - ;table = afrTbl, afrTableMap, "AFR Table", 5 - table = afrTable1Tbl, afrTable1Map, "AFR Table", 5 - xBins = rpmBinsAFR, rpm - #if SPEED_DENSITY - yBins = mapBinsAFR, map - #else ALPHA_N - yBins = tpsBinsAFR, throttle - #endif - zBins = afrTable - gridHeight = 1.0 - upDownLabel = "RICHER", "LEANER" - gridOrient = 250, 0, 340 - - #if BOOSTPSI - table = boostTbl, boostMap, "Boost targets (PSI)", 8 - #else - table = boostTbl, boostMap, "Boost targets (Absolute kPa)", 8 - #endif - xBins = rpmBinsBoost, rpm - yBins = tpsBinsBoost, throttle - zBins = boostTable - gridHeight = 3.0 - upDownLabel = "HIGHER", "LOWER" - - table = vvtTbl, vvtMap, "VVT control Table", 8 - xBins = rpmBinsVVT, rpm - yBins = tpsBinsVVT, throttle - zBins = vvtTable - gridHeight = 3.0 - upDownLabel = "HIGHER", "LOWER" - - table = stagingTbl, stagingMap, "Fuel Staging Table", 10 - xBins = rpmBinsStaging, rpm - #if SPEED_DENSITY - yBins = mapBinsStaging, map - #else ALPHA_N - yBins = tpsBinsStaging, throttle - #endif - zBins = stagingTable - gridHeight = 3.0 - upDownLabel = "HIGHER", "LOWER" - -;--------- Sequential fuel trim maps ----------- - table = fuelTrimTable1Tbl, fuelTrimTable1Map, "Fuel trim Table 1", 9 - topicHelp = "http://speeduino.com/wiki/index.php/Tuning" - xBins = fuelTrim1rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim1loadBins, map - #else - yBins = fuelTrim1loadBins, throttle - #endif - zBins = fuelTrim1Table - - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" - - table = fuelTrimTable2Tbl, fuelTrimTable2Map, "Fuel trim Table 2", 9 - topicHelp = "http://speeduino.com/wiki/index.php/Tuning" - xBins = fuelTrim2rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim2loadBins, map - #else - yBins = fuelTrim2loadBins, throttle - #endif - zBins = fuelTrim2Table - - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" - - table = fuelTrimTable3Tbl, fuelTrimTable3Map, "Fuel trim Table 3", 9 - topicHelp = "http://speeduino.com/wiki/index.php/Tuning" - xBins = fuelTrim3rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim3loadBins, map - #else - yBins = fuelTrim3loadBins, throttle - #endif - zBins = fuelTrim3Table - - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" - - table = fuelTrimTable4Tbl, fuelTrimTable4Map, "Fuel trim Table 4", 9 - topicHelp = "http://speeduino.com/wiki/index.php/Tuning" - xBins = fuelTrim4rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim4loadBins, map - #else - yBins = fuelTrim4loadBins, throttle - #endif - zBins = fuelTrim4Table - - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" - - -;------------------------------------------------------------------------------- - -[GaugeConfigurations] - - ;------------------------------------------------------------------------------- - ; Define a gauge's characteristics here, then go to a specific layout - ; block (Tuning or FrontPage) and use the name you've defined here to - ; display that gauge in a particular position. - ; - ; Name = Case-sensitive, user-defined name for this gauge configuration. - ; Var = Case-sensitive name of variable to be displayed, see the - ; OutputChannels block in this file for possible values. - ; Title = Title displayed at the top of the gauge. - ; Units = Units displayed below value on gauge. - ; Lo = Lower scale limit of gauge. - ; Hi = Upper scale limit of gauge. - ; LoD = Lower limit at which danger color is used for gauge background. - ; LoW = Lower limit at which warning color is used. - ; HiW = Upper limit at which warning color is used. - ; HiD = Upper limit at which danger color is used. - ; vd = Decimal places in displayed value - ; ld = Label decimal places for display of Lo and Hi, above. - - gaugeCategory = "Main" - ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld - accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 - dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1 - egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0 - - gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0 - pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 - tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 300, 600, 3000, 5000, 0, 0 - veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 - warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0 - advanceGauge = advance, "Spark Advance", "deg BTDC", 50, -10, 0, 0, 35, 45, 0, 0 - dwellGauge = dwell, "Ign Dwell", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 - - gaugeCategory = "Sensor inputs" - mapGauge = map, "Engine MAP", "kPa", 0, 255, 0, 20, 200, 245, 0, 0 - mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0 - mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2 - mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1 - batteryVoltage = batteryVoltage,"Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2 - - tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 - throttleGauge = throttle, "Throttle Position", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0 - - afrGauge = afr, "Air:Fuel Ratio", "", 7, 25, 12, 13, 15, 16, 2, 2 - afrGauge2 = afr2, "Air:Fuel Ratio 2", "", 7, 25, 12, 13, 15, 16, 2, 2 - lambdaGauge = lambda, "Lambda", "", 0.5, 1.5, 0.5, 0.7, 2, 1.1, 2, 2 - - #if CELSIUS - cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, -15, 0, 95, 105, 0, 0 - iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, -15, 0, 95, 100, 0, 0 - #else - cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, 0, 30, 200, 220, 0, 0 - iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, 0, 30, 200, 210, 0, 0 - #endif - flexGauge = flex, "Flex sensor", "%", 0, 100, -1, -1, 999, 999, 0, 0 - - #if CAN_COMMANDS - gaugeCategory = "CanBus Inputs" - CanGauge0 = canin_gauge0, "Can In0" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge1 = canin_gauge1, "Can In1" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge2 = canin_gauge2, "Can In2" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge3 = canin_gauge3, "Can In3" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge4 = canin_gauge4, "Can In4" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge5 = canin_gauge5, "Can In5" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge6 = canin_gauge6, "Can In6" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge7 = canin_gauge7, "Can In7" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge8 = canin_gauge8, "Can In8" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge9 = canin_gauge9, "Can In9" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge10 = canin_gauge10, "Can In10" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge11 = canin_gauge11, "Can In11" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge12 = canin_gauge12, "Can In12" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge13 = canin_gauge13, "Can In13" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge14 = canin_gauge14, "Can In14" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - CanGauge15 = canin_gauge15, "Can In15" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 - #endif - - gaugeCategory = "System Data" - clockGauge = secl, "Clock", "Seconds", 0, 255, 10, 10, 245, 245, 0, 0 - loopGauge = loopsPerSecond,"Main loop speed", "Loops/S" , 0, 70000, -1, 500,1800, 4000, 0, 0 - memoryGauge = freeRAM, "Free memory", "bytes" , 0, 8000, -1, 1000,8000, 1000, 0, 0 -;------------------------------------------------------------------------------- - -[FrontPage] - - - ; Gauges are numbered left to right, top to bottom. - ; - ; 1 2 3 4 - ; 5 6 7 8 - - gauge1 = tachometer - gauge2 = throttleGauge - gauge3 = pulseWidthGauge - gauge4 = dutyCycleGauge - gauge5 = mapGauge - gauge6 = iatGauge - gauge7 = cltGauge - gauge8 = gammaEnrichGauge - - ;---------------------------------------------------------------------------- - ; Indicators - ; expr off-label on-label, off-bg, off-fg, on-bg, on-fg - indicator = { running }, "Not Running", "Running" white, black, green, black - indicator = { crank }, "Not Cranking", "Cranking", white, black, green, black - indicator = { ase }, "ASE OFF", "ASE ON", white, black, green, black - indicator = { warmup }, "WUE OFF", "WUE ON", white, black, green, black - indicator = { tpsaccaen }, "Accel", "Accel", white, black, green, black - indicator = { tpsaccden }, "Decel", "Decel", white, black, green, black - indicator = { mapaccaen }, "MAP Accel", "MAP Accel", white, black, green, black - indicator = { mapaccden }, "MAP Decel", "MAP Decel", white, black, green, black - indicator = { error }, "No Errors", "ERROR", white, black, green, black - indicator = { (tps > tpsflood) && (rpm < crankRPM) }, "FLOOD OFF", "FLOOD CLEAR", white, black, red, black - indicator = { DFCOOn }, "DFCO OFF", "DFCO On", white, black, red, black - indicator = { launchHard }, "Launch Hard", "Launch Hard", white, black, green, black - indicator = { launchSoft }, "Launch Soft", "Launch Soft", white, black, green, black - indicator = { softlimitOn }, "Soft Limit OFF","Soft Limiter", white, black, red, black - indicator = { hardLimitOn }, "Hard Limit OFF","Hard Limiter", white, black, red, black - indicator = { boostCutOut }, "Ign Cut OFF", "Ign Cut (Boost)", white, black, red, black - indicator = { sync }, "No Sync", "Sync", white, black, green, black - -;------------------------------------------------------------------------------- - -[OutputChannels] - ; The number of bytes MegaTune or TunerStudio should expect as a result - ; of sending the "A" command to Speeduino is determined - ; by the value of ochBlockSize, so be very careful when - ; you change it. - - ochGetCommand = "r\$tsCanId\x30%2o%2c" - ochBlockSize = 81 - - secl = scalar, U08, 0, "sec", 1.000, 0.000 - status1 = scalar, U08, 1, "bits", 1.000, 0.000 - inj1Status = bits, U08, 1, [0:0] - inj2Status = bits, U08, 1, [1:1] - inj3Status = bits, U08, 1, [2:2] - inj4Status = bits, U08, 1, [3:3] - DFCOOn = bits, U08, 1, [4:4] - boostCutFuel = bits, U08, 1, [5:5] - toothLog1Ready = bits, U08, 1, [6:6] - toothLog2Ready = bits, U08, 1, [7:7] - engine = scalar, U08, 2, "bits", 1.000, 0.000 - running = bits, U08, 2, [0:0] - crank = bits, U08, 2, [1:1] - ase = bits, U08, 2, [2:2] - warmup = bits, U08, 2, [3:3] - tpsaccaen = bits, U08, 2, [4:4] - tpsaccden = bits, U08, 2, [5:5] - mapaccaen = bits, U08, 2, [6:6] - mapaccden = bits, U08, 2, [7:7] - dwell = scalar, U08, 3, "ms", 0.100, 0.000 - map = scalar, U16, 4, "kpa", 1.000, 0.000 - iatRaw = scalar, U08, 6, "°C", 1.000, 0.000 - coolantRaw = scalar, U08, 7, "°C", 1.000, 0.000 - batCorrection = scalar, U08, 8, "%", 1.000, 0.000 - batteryVoltage = scalar, U08, 9, "V", 0.100, 0.000 - afr = scalar, U08, 10, "O2", 0.100, 0.000 - egoCorrection = scalar, U08, 11, "%", 1.000, 0.000 - airCorrection = scalar, U08, 12, "%", 1.000, 0.000 - warmupEnrich = scalar, U08, 13, "%", 1.000, 0.000 - rpm = scalar, U16, 14, "rpm", 1.000, 0.000 - accelEnrich = scalar, U08, 16, "%", 2.000, 0.000 - gammaEnrich = scalar, U08, 17, "%", 1.000, 0.000 - veCurr = scalar, U08, 18, "%", 1.000, 0.000 - afrTarget = scalar, U08, 19, "O2", 0.100, 0.000 - pulseWidth = scalar, U16, 20, "ms", 0.001, 0.000 - TPSdot = scalar, U08, 22, "%/s", 10.00, 0.000 - advance = scalar, S08, 23, "deg", 1.000, 0.000 - tps = scalar, U08, 24, "%", 1.000, 0.000 - loopsPerSecond = scalar, U16, 25, "loops", 1.000, 0.000 - freeRAM = scalar, U16, 27, "bytes", 1.000, 0.000 - boostTarget = scalar, U08, 29, "kPa", 2.000, 0.000 - boostDuty = scalar, U08, 30, "%", 1.000, 0.000 - status2 = scalar, U08, 31, "bits", 1.000, 0.000 - launchHard = bits, U08, 31, [0:0] - launchSoft = bits, U08, 31, [1:1] - hardLimitOn = bits, U08, 31, [2:2] - softlimitOn = bits, U08, 31, [3:3] - boostCutSpark = bits, U08, 31, [4:4] - error = bits, U08, 31, [5:5] - idle = bits, U08, 31, [6:6] - sync = bits, U08, 31, [7:7] - rpmDOT = scalar, S16, 32, "rpm/s", 1.000, 0.000 - flex = scalar, U08, 34, "%", 1.000, 0.000 - flexFuelCor = scalar, U08, 35, "%", 1.000, 0.000 - flexIgnCor = scalar, U08, 36, "deg", 1.000, 0.000 - - 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 - testoutputs = scalar, U08, 38, "bits", 1.000, 0.000 - testenabled = bits, U08, 38, [0:0] - testactive = bits, U08, 38, [1:1] - afr2 = scalar, U08, 39, "O2", 0.100, 0.000 - baro = scalar, U08, 40, "kpa", 1.000, 0.000 - canin_gauge0 = scalar, U16, 41, "", 1.000, 0.000 - canin_gauge1 = scalar, U16, 43, "", 1.000, 0.000 - canin_gauge2 = scalar, U16, 45, "", 1.000, 0.000 - canin_gauge3 = scalar, U16, 47, "", 1.000, 0.000 - canin_gauge4 = scalar, U16, 49, "", 1.000, 0.000 - canin_gauge5 = scalar, U16, 51, "", 1.000, 0.000 - canin_gauge6 = scalar, U16, 53, "", 1.000, 0.000 - canin_gauge7 = scalar, U16, 55, "", 1.000, 0.000 - canin_gauge8 = scalar, U16, 57, "", 1.000, 0.000 - canin_gauge9 = scalar, U16, 59, "", 1.000, 0.000 - canin_gauge10 = scalar, U16, 61, "", 1.000, 0.000 - canin_gauge11 = scalar, U16, 63, "", 1.000, 0.000 - canin_gauge12 = scalar, U16, 65, "", 1.000, 0.000 - canin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 - canin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 - canin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 - tpsADC = scalar, U08, 73, "ADC",1.000, 0.000 - errors = scalar, U08, 74, "bits", 1.000, 0.000 - errorNum = bits, U08, 74, [0:1] - currentError = bits, U08, 74, [2:7] - pulseWidth2 = scalar, U16, 75, "ms", 0.001, 0.000 - pulseWidth3 = scalar, U16, 77, "ms", 0.001, 0.000 - pulseWidth4 = scalar, U16, 79, "ms", 0.001, 0.000 - -#if CELSIUS - coolant = { coolantRaw - 40 } ; Temperature readings are offset by 40 to allow for negatives - iat = { iatRaw - 40 } ; Temperature readings are offset by 40 to allow for negatives -#else - coolant = { (coolantRaw - 40) * 1.8 + 32 } ;Convert C to F (Offset by 40) - iat = { (iatRaw - 40) * 1.8 + 32 } ;Convert C to F (Offset by 40) -#endif - time = { timeNow } - seconds = { secl } - - throttle = { tps }, "%" - - cycleTime = { rpm ? ( 60000.0 / rpm ) : 0 } - cycleMultiplier = { injLayout == 3 ? 2 : 1 } - dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) ) : 0 } - - boostCutOut = { boostCutFuel || boostCutSpark } - lambda = { afr / stoich } - MAPxRPM = { rpm * map } - - ;Manifold pressure in weirdo units - map_bar = { (map - baro) / 101.33 } - map_psi = { (map - baro) * 0.145038 } - map_inhg = { (baro - map) * 0.2953007 } ;in-Hg - map_vacboost = { map < baro ? -map_inhg : map_psi } - -;------------------------------------------------------------------------------- - -[Datalog] - ; Full datalog. - ; - ; Default user-defined log emulates the full datalog. - ; - ; The entries are saved in the datalog file in the order in - ; which they appear in the list below. - ; - ; Channel - Case sensitive name of output channel to be logged. - ; Label - String written to header line of log. Be careful - ; about changing these, as programs like MSLVV and - ; MSTweak key off specific column names. - ; Type - Data type of output, converted before writing. - ; Format - C-style output format of data. - ; - ; Channel Label Type Format - ; -------------- ---------- ----- ------ - entry = time, "Time", float, "%.3f" - entry = secl, "SecL", int, "%d" - entry = rpm, "RPM", int, "%d" - entry = map, "MAP", int, "%d" - entry = MAPxRPM, "MAPxRPM", int, "%d" - entry = tps, "TPS", int, "%d" - entry = afr, "O2", float, "%.3f" - entry = lambda, "Lambda", float, "%.3f" - entry = iat, "IAT", int, "%d" - entry = coolant, "CLT", int, "%d" - entry = engine, "Engine", int, "%d" - entry = DFCOOn, "DFCO", int, "%d" - entry = egoCorrection, "Gego", int, "%d" - entry = airCorrection, "Gair", int, "%d" - entry = batCorrection, "Gbattery", int, "%d" - entry = warmupEnrich, "Gwarm", int, "%d" - ;entry = baroCorrection, "Gbaro", int, "%d" - entry = gammaEnrich, "Gammae", int, "%d" - entry = accelEnrich, "Accel Enrich",int, "%d" - entry = veCurr, "VE", int, "%d" - entry = pulseWidth, "PW", float, "%.1f" - entry = afrTarget, "AFR Target", float, "%.3f" - entry = pulseWidth, "PW2", float, "%.1f" - entry = dutyCycle, "DutyCycle1", float, "%.1f" - entry = dutyCycle, "DutyCycle2", float, "%.1f" - entry = TPSdot, "TPS DOT", int, "%d" - entry = advance, "Advance", int, "%d" - entry = dwell, "Dwell", float, "%.1f" - entry = batteryVoltage, "Battery V", float, "%.1f" - entry = rpmDOT, "rpm/s", int, "%d" - entry = flex, "Eth %", int, "%d", { flexEnabled } - entry = errorNum, "Error #", int, "%d" - entry = currentError, "Error ID", int, "%d" - entry = map_psi, "Boost PSI", float, "%.1f" - entry = boostTarget, "Boost Target",int, "%d", { boostEnabled } - entry = boostDuty, "Boost Duty", int, "%d", { boostEnabled } - entry = boostCutOut , "Boost cut", int, "%d" - entry = launchHard , "Launch Hard", int, "%d" - entry = hardLimitOn , "Hard Limiter",int, "%d" - entry = idleLoad, "IAC value", int, "%d" - entry = baro, "Baro Pressure",int, "%d" - -#if CAN_COMMANDS - entry = canin_gauge0, "CanIn CH0", int, "%d" - entry = canin_gauge1, "CanIn CH1", int, "%d" - entry = canin_gauge2, "CanIn CH2", int, "%d" - entry = canin_gauge3, "CanIn CH3", int, "%d" - entry = canin_gauge4, "CanIn CH4", int, "%d" - entry = canin_gauge5, "CanIn CH5", int, "%d" - entry = canin_gauge6, "CanIn CH6", int, "%d" - entry = canin_gauge7, "CanIn CH7", int, "%d" -#endif - - -[LoggerDefinition] - ; valid logger types: composite, tooth, trigger, csv - - ;loggerDef = uniqueName, Display Name, type - loggerDef = tooth, "Tooth Logger", tooth - ;dataReadCommand = "r\\x00\\xf4\\x00\\x00\\x04\\x00" ; standard TS command format - dataReadCommand = "T" ; Basic TS command format - dataReadTimeout = 15000 ; time in ms - dataReadyCondition = { toothLog1Ready } - dataLength = 256 ; in bytes, including headers, footers and data (not used) - - ;recordDef = headerLen. footerLen, recordLen - recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes - - ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition - recordField = toothGap, "ToothTime", 0, 16, 1.0, "uS" - - -[Tools] - ;addTool = toolName, PanelName - addTool = veTableGenerator, "VE Table Generator", veTable1Tbl - addTool = afrTableGenerator, "AFR Table Generator", afrTable1Tbl - - -[VeAnalyze] - ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition - veAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection - lambdaTargetTables = afrTable1Tbl, afrTSCustom, - filter = std_xAxisMin ; Auto build with appropriate axis channels - ;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true - filter = std_xAxisMax ; Auto build with appropriate axis channels - filter = std_yAxisMin ; Auto build with appropriate axis channels - filter = std_yAxisMax ; Auto build with appropriate axis channels - filter = std_DeadLambda ; Auto build - -#if CELSIUS - filter = minCltFilter, "Minimum CLT", coolant, < , 71, , true -#else - filter = minCltFilter, "Minimum CLT", coolant, < , 160, , true -#endif - filter = accelFilter, "Accel Flag" , engine, & , 16, , false - filter = aseFilter, "ASE Flag" , engine, & , 4, , false - filter = overrunFilter, "Overrun" , pulseWidth, = , 0, , false - filter = std_Custom ; Standard Custom Expression Filter. - -;------------- WUE VEAL not currently working ---------------- -;[WueAnalyze] - ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition - ; wueAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection -; wueAnalyzeMap = afrTable1Tbl, warmup_afr_curve, warmup_curve, afr, coolant, warmupEnrich ;warmup_afr_curve, -; lambdaTargetTables = afrTable1Tbl, afrTSCustom, - ;filter = std_xAxisMin ; Auto build with appropriate axis channels - ;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true - ;filter = std_xAxisMax ; Auto build with appropriate axis channels - ;filter = std_yAxisMin ; Auto build with appropriate axis channels - ;filter = std_yAxisMax ; Auto build with appropriate axis channels - ;filter = std_DeadLambda ; Auto build - -; filter = maxTPSFilter, "High Throttle", tps, < , 15, , true -;------------- WUE VEAL not currently working ---------------- +;------------------------------------------------------------------------------- +#unset CAN_COMMANDS +#unset enablehardware_test + +[MegaTune] + MTversion = 2.25 + + queryCommand = "Q" + signature = "speeduino 201801-dev" + versionInfo = "S" ;This info is what is displayed to user + +[TunerStudio] + iniSpecVersion = 3.46 + +;------------------------------------------------------------------------------- + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + + ;settingGroup = boostUnits, "Boost table units" + ;settingOption = DEFAULT, "kPa" + ;settingOption = BOOSTPSI, "PSI" + settingGroup = enablehardware_test, "Enable Hardware Test Page" + + +[PcVariables] + ; valid types: boolean, double, int, list + ; + ; no offset as they are local variables. + ; entry format the same as Constants, except there is no offset. + ; arrays are not yet supported. + ; name = class, type, shape, units, scale, translate, lo, hi, digits + ; name = type, min, max; + ; + ; type List: value will be index. + tsCanId = bits, U08, [0:3], "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID" + rpmhigh = scalar, U16, "rpm", 1, 0, 0, 30000, 0 + rpmwarn = scalar, U16, "rpm", 1, 0, 0, 30000, 0 + rpmdang = scalar, U16, "rpm", 1, 0, 0, 30000, 0 + + idleUnits = bits, U08, [0:2], "None", "On/Off", "Duty Cycle", "Duty Cycle", "Steps", "Steps" + +[Constants] + + ;---------------------------------------------------------------------------- + ; Constants Definition + ; -------------------- + ; + ; Scalar Values + ; ------------- + ; The scaling and translation values are used as follows: + ; msValue = userValue / scale - translate + ; userValue = (msValue + translate) * scale + ; + ; + ; Temperatures are fine, check out the Fielding IAC example (fastIdleT). + ; + ; Array Values + ; ------------ + ; Arrays are specified just like scalars, except that they have a "shape" + ; entry in the fourth parameter. The shape allows you to define lists or + ; tables, for example [8] defines a list with eight values and [2x4] defines + ; a table with eight values (two rows and four columns). Tables may be + ; stored in either "X-" or "Y-order." X-order means that memory is layed + ; out like. + ; + ; [x1,y1] [x2,y1]...[xn,y1] [x1,y2]... + ; + ; Y-order would be + ; + ; [x1,y1] [x1,y2]...[x1,yn] [x2,y1]... + ; + ; To use the TableEditor, you must define two lists and a table, and + ; the lengths of the lists must correspond to the shape of the table. + ; + ; Bit Fields + ; ---------- + ; Bits are numbered 0-7, the rightmost being bit zero. The basic + ; data word that stores bit fields must be unsigned. + ; + ; You need NOT supply the correct number of labels matching the + ; number of bits you've specified (one bit requires 2 values, two + ; bits requires 4 values and so on). If you neglect to supply enough + ; labels, they will be synthesized using the sequence "1", "2" and so + ; on based upon their position in the sequence (the cltType and matType + ; will end up with identical lists). + ; + ; If you specify a label as "INVALID" (all upper case), then it will + ; not be displayed in the combo box, so you can leave out values that + ; make no sense. + ; + ;---------------------------------------------------------------------------- + + endianness = little + nPages = 10 + pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 128, 192 + + ;burnCommand = "B" + ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" + ;pageReadCommand = "V", "V", "V", "V", "V", "V", "V", "V", "V", "V", "V" + ;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" + + ; New commands + ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 + pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" + burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" + 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" + 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" + 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" + + blockingFactor = 2048 + tableBlockingFactor = 2048 + delayAfterPortOpen=1000 + ;validateArrayBounds = true + blockReadTimeout = 2000 + ;tsWriteBlocks = on + interWriteDelay = 5 ;Ignored when tsWriteBlocks is on + pageActivationDelay = 10 + +;New for TS 3.0.08ish upwards, define lists of standard I/O options + + #define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + #define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + + #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" + #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" + #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" + #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" + #define CAN_ADDRESS_HEX_02XX = "0x200", "0x201", "0x202", "0x203", "0x204", "0x205", "0x206", "0x207", "0x208", "0x209", "0x20A", "0x20B", "0x20C", "0x20D", "0x20E", "0x20F", "0x210", "0x211", "0x212", "0x213", "0x214", "0x215", "0x216", "0x217", "0x218", "0x219", "0x21A", "0x21B", "0x21C", "0x21D", "0x21E", "0x21F", "0x220", "0x221", "0x222", "0x223", "0x224", "0x225", "0x226", "0x227", "0x228", "0x229", "0x22A", "0x22B", "0x22C", "0x22D", "0x22E", "0x22F", "0x230", "0x231", "0x232", "0x233", "0x234", "0x235", "0x236", "0x237", "0x238", "0x239", "0x23A", "0x23B", "0x23C", "0x23D", "0x23E", "0x23F", "0x240", "0x241", "0x242", "0x243", "0x244", "0x245", "0x246", "0x247", "0x248", "0x249", "0x24A", "0x24B", "0x24C", "0x24D", "0x24E", "0x24F", "0x250", "0x251", "0x252", "0x253", "0x254", "0x255", "0x256", "0x257", "0x258", "0x259", "0x25A", "0x25B", "0x25C", "0x25D", "0x25E", "0x25F" ,"0x260", "0x261", "0x262", "0x263", "0x264", "0x265", "0x266", "0x267", "0x268", "0x269", "0x26A", "0x26B", "0x26C", "0x26D", "0x26E", "0x26F", "0x270", "0x271", "0x272", "0x273", "0x274", "0x275", "0x276", "0x277", "0x278", "0x279", "0x27A", "0x27B", "0x27C", "0x27D", "0x27E", "0x27F", "0x280", "0x281", "0x282", "0x283", "0x284", "0x285", "0x286", "0x287", "0x288", "0x289", "0x28A", "0x28B", "0x28C", "0x28D", "0x28E", "0x28F" ,"0x290", "0x291", "0x292", "0x293", "0x294", "0x295", "0x296", "0x297", "0x298", "0x299", "0x29A", "0x29B", "0x29C", "0x29D", "0x29E", "0x29F", "0x2A0", "0x2A1", "0x2A2", "0x2A3", "0x2A4", "0x2A5", "0x2A6", "0x2A7", "0x2A8", "0x2A9", "0x2AA", "0x2AB", "0x2AC", "0x2AD", "0x2AE", "0x2AF", "0x2B0", "0x2B1", "0x2B2", "0x2B3", "0x2B4", "0x2B5", "0x2B6", "0x2B7", "0x2B8", "0x2B9", "0x2BA", "0x2BB", "0x2BC", "0x2BD", "0x2BE", "0x2BF" ,"0x2C0", "0x2C1", "0x2C2", "0x2C3", "0x2C4", "0x2C5", "0x2C6", "0x2C7", "0x2C8", "0x2C9", "0x2CA", "0x2CB", "0x2CC", "0x2CD", "0x2CE", "0x2CF", "0x2D0", "0x2D1", "0x2D2", "0x2D3", "0x2D4", "0x2D5", "0x2D6", "0x2D7", "0x2D8", "0x2D9", "0x2DA", "0x2DB", "0x2DC", "0x2DD", "0x2DE", "0x2DF", "0x2E0", "0x2E1", "0x2E2", "0x2E3", "0x2E4", "0x2E5", "0x2E6", "0x2E7", "0x2E8", "0x2E9", "0x2EA", "0x2EB", "0x2EC", "0x2ED", "0x2EE", "0x2EF" ,"0x2F0", "0x2F1", "0x2F2", "0x2F3", "0x2F4", "0x2F5", "0x2F6", "0x2F7", "0x2F8", "0x2F9", "0x2FA", "0x2FB", "0x2FC", "0x2FD", "0x2FE", "0x2FF" + #define CAN_ADDRESS_HEX_03XX = "0x300", "0x301", "0x302", "0x303", "0x304", "0x305", "0x306", "0x307", "0x308", "0x309", "0x30A", "0x30B", "0x30C", "0x30D", "0x30E", "0x30F", "0x310", "0x311", "0x312", "0x313", "0x314", "0x315", "0x316", "0x317", "0x318", "0x319", "0x31A", "0x31B", "0x31C", "0x31D", "0x31E", "0x31F", "0x320", "0x321", "0x322", "0x323", "0x324", "0x325", "0x326", "0x327", "0x328", "0x329", "0x32A", "0x32B", "0x32C", "0x32D", "0x32E", "0x32F", "0x330", "0x331", "0x332", "0x333", "0x334", "0x335", "0x336", "0x337", "0x338", "0x339", "0x33A", "0x33B", "0x33C", "0x33D", "0x33E", "0x33F", "0x340", "0x341", "0x342", "0x343", "0x344", "0x345", "0x346", "0x347", "0x348", "0x349", "0x34A", "0x34B", "0x34C", "0x34D", "0x34E", "0x34F", "0x350", "0x351", "0x352", "0x353", "0x354", "0x355", "0x356", "0x357", "0x358", "0x359", "0x35A", "0x35B", "0x35C", "0x35D", "0x35E", "0x35F" ,"0x360", "0x361", "0x362", "0x363", "0x364", "0x365", "0x366", "0x367", "0x368", "0x369", "0x36A", "0x36B", "0x36C", "0x36D", "0x36E", "0x36F", "0x370", "0x371", "0x372", "0x373", "0x374", "0x375", "0x376", "0x377", "0x378", "0x379", "0x37A", "0x37B", "0x37C", "0x37D", "0x37E", "0x37F", "0x380", "0x381", "0x382", "0x383", "0x384", "0x385", "0x386", "0x387", "0x388", "0x389", "0x38A", "0x38B", "0x38C", "0x38D", "0x38E", "0x38F" ,"0x390", "0x391", "0x392", "0x393", "0x394", "0x395", "0x396", "0x397", "0x398", "0x399", "0x39A", "0x39B", "0x39C", "0x39D", "0x39E", "0x39F", "0x3A0", "0x3A1", "0x3A2", "0x3A3", "0x3A4", "0x3A5", "0x3A6", "0x3A7", "0x3A8", "0x3A9", "0x3AA", "0x3AB", "0x3AC", "0x3AD", "0x3AE", "0x3AF", "0x3B0", "0x3B1", "0x3B2", "0x3B3", "0x3B4", "0x3B5", "0x3B6", "0x3B7", "0x3B8", "0x3B9", "0x3BA", "0x3BB", "0x3BC", "0x3BD", "0x3BE", "0x3BF" ,"0x3C0", "0x3C1", "0x3C2", "0x3C3", "0x3C4", "0x3C5", "0x3C6", "0x3C7", "0x3C8", "0x3C9", "0x3CA", "0x3CB", "0x3CC", "0x3CD", "0x3CE", "0x3CF", "0x3D0", "0x3D1", "0x3D2", "0x3D3", "0x3D4", "0x3D5", "0x3D6", "0x3D7", "0x3D8", "0x3D9", "0x3DA", "0x3DB", "0x3DC", "0x3DD", "0x3DE", "0x3DF", "0x3E0", "0x3E1", "0x3E2", "0x3E3", "0x3E4", "0x3E5", "0x3E6", "0x3E7", "0x3E8", "0x3E9", "0x3EA", "0x3EB", "0x3EC", "0x3ED", "0x3EE", "0x3EF" ,"0x3F0", "0x3F1", "0x3F2", "0x3F3", "0x3F4", "0x3F5", "0x3F6", "0x3F7", "0x3F8", "0x3F9", "0x3FA", "0x3FB", "0x3FC", "0x3FD", "0x3FE", "0x3FF" + #define CAN_ADDRESS_HEX_04XX = "0x400", "0x401", "0x402", "0x403", "0x404", "0x405", "0x406", "0x407", "0x408", "0x409", "0x40A", "0x40B", "0x40C", "0x40D", "0x40E", "0x40F", "0x410", "0x411", "0x412", "0x413", "0x414", "0x415", "0x416", "0x417", "0x418", "0x419", "0x41A", "0x41B", "0x41C", "0x41D", "0x41E", "0x41F", "0x420", "0x421", "0x422", "0x423", "0x424", "0x425", "0x426", "0x427", "0x428", "0x429", "0x42A", "0x42B", "0x42C", "0x42D", "0x42E", "0x42F", "0x430", "0x431", "0x432", "0x433", "0x434", "0x435", "0x436", "0x437", "0x438", "0x439", "0x43A", "0x43B", "0x43C", "0x43D", "0x43E", "0x43F", "0x440", "0x441", "0x442", "0x443", "0x444", "0x445", "0x446", "0x447", "0x448", "0x449", "0x44A", "0x44B", "0x44C", "0x44D", "0x44E", "0x44F", "0x450", "0x451", "0x452", "0x453", "0x454", "0x455", "0x456", "0x457", "0x458", "0x459", "0x45A", "0x45B", "0x45C", "0x45D", "0x45E", "0x45F" ,"0x460", "0x461", "0x462", "0x463", "0x464", "0x465", "0x466", "0x467", "0x468", "0x469", "0x46A", "0x46B", "0x46C", "0x46D", "0x46E", "0x46F", "0x470", "0x471", "0x472", "0x473", "0x474", "0x475", "0x476", "0x477", "0x478", "0x479", "0x47A", "0x47B", "0x47C", "0x47D", "0x47E", "0x47F", "0x480", "0x481", "0x482", "0x483", "0x484", "0x485", "0x486", "0x487", "0x488", "0x489", "0x48A", "0x48B", "0x48C", "0x48D", "0x48E", "0x48F" ,"0x490", "0x491", "0x492", "0x493", "0x494", "0x495", "0x496", "0x497", "0x498", "0x499", "0x49A", "0x49B", "0x49C", "0x49D", "0x49E", "0x49F", "0x4A0", "0x4A1", "0x4A2", "0x4A3", "0x4A4", "0x4A5", "0x4A6", "0x4A7", "0x4A8", "0x4A9", "0x4AA", "0x4AB", "0x4AC", "0x4AD", "0x4AE", "0x4AF", "0x4B0", "0x4B1", "0x4B2", "0x4B3", "0x4B4", "0x4B5", "0x4B6", "0x4B7", "0x4B8", "0x4B9", "0x4BA", "0x4BB", "0x4BC", "0x4BD", "0x4BE", "0x4BF" ,"0x4C0", "0x4C1", "0x4C2", "0x4C3", "0x4C4", "0x4C5", "0x4C6", "0x4C7", "0x4C8", "0x4C9", "0x4CA", "0x4CB", "0x4CC", "0x4CD", "0x4CE", "0x4CF", "0x4D0", "0x4D1", "0x4D2", "0x4D3", "0x4D4", "0x4D5", "0x4D6", "0x4D7", "0x4D8", "0x4D9", "0x4DA", "0x4DB", "0x4DC", "0x4DD", "0x4DE", "0x4DF", "0x4E0", "0x4E1", "0x4E2", "0x4E3", "0x4E4", "0x4E5", "0x4E6", "0x4E7", "0x4E8", "0x4E9", "0x4EA", "0x4EB", "0x4EC", "0x4ED", "0x4EE", "0x4EF" ,"0x4F0", "0x4F1", "0x4F2", "0x4F3", "0x4F4", "0x4F5", "0x4F6", "0x4F7", "0x4F8", "0x4F9", "0x4FA", "0x4FB", "0x4FC", "0x4FD", "0x4FE", "0x4FF" + #define CAN_ADDRESS_HEX_05XX = "0x500", "0x501", "0x502", "0x503", "0x504", "0x505", "0x506", "0x507", "0x508", "0x509", "0x50A", "0x50B", "0x50C", "0x50D", "0x50E", "0x50F", "0x510", "0x511", "0x512", "0x513", "0x514", "0x515", "0x516", "0x517", "0x518", "0x519", "0x51A", "0x51B", "0x51C", "0x51D", "0x51E", "0x51F", "0x520", "0x521", "0x522", "0x523", "0x524", "0x525", "0x526", "0x527", "0x528", "0x529", "0x52A", "0x52B", "0x52C", "0x52D", "0x52E", "0x52F", "0x530", "0x531", "0x532", "0x533", "0x534", "0x535", "0x536", "0x537", "0x538", "0x539", "0x53A", "0x53B", "0x53C", "0x53D", "0x53E", "0x53F", "0x540", "0x541", "0x542", "0x543", "0x544", "0x545", "0x546", "0x547", "0x548", "0x549", "0x54A", "0x54B", "0x54C", "0x54D", "0x54E", "0x54F", "0x550", "0x551", "0x552", "0x553", "0x554", "0x555", "0x556", "0x557", "0x558", "0x559", "0x55A", "0x55B", "0x55C", "0x55D", "0x55E", "0x55F" ,"0x560", "0x561", "0x562", "0x563", "0x564", "0x565", "0x566", "0x567", "0x568", "0x569", "0x56A", "0x56B", "0x56C", "0x56D", "0x56E", "0x56F", "0x570", "0x571", "0x572", "0x573", "0x574", "0x575", "0x576", "0x577", "0x578", "0x579", "0x57A", "0x57B", "0x57C", "0x57D", "0x57E", "0x57F", "0x580", "0x581", "0x582", "0x583", "0x584", "0x585", "0x586", "0x587", "0x588", "0x589", "0x58A", "0x58B", "0x58C", "0x58D", "0x58E", "0x58F" ,"0x590", "0x591", "0x592", "0x593", "0x594", "0x595", "0x596", "0x597", "0x598", "0x599", "0x59A", "0x59B", "0x59C", "0x59D", "0x59E", "0x59F", "0x5A0", "0x5A1", "0x5A2", "0x5A3", "0x5A4", "0x5A5", "0x5A6", "0x5A7", "0x5A8", "0x5A9", "0x5AA", "0x5AB", "0x5AC", "0x5AD", "0x5AE", "0x5AF", "0x5B0", "0x5B1", "0x5B2", "0x5B3", "0x5B4", "0x5B5", "0x5B6", "0x5B7", "0x5B8", "0x5B9", "0x5BA", "0x5BB", "0x5BC", "0x5BD", "0x5BE", "0x5BF" ,"0x5C0", "0x5C1", "0x5C2", "0x5C3", "0x5C4", "0x5C5", "0x5C6", "0x5C7", "0x5C8", "0x5C9", "0x5CA", "0x5CB", "0x5CC", "0x5CD", "0x5CE", "0x5CF", "0x5D0", "0x5D1", "0x5D2", "0x5D3", "0x5D4", "0x5D5", "0x5D6", "0x5D7", "0x5D8", "0x5D9", "0x5DA", "0x5DB", "0x5DC", "0x5DD", "0x5DE", "0x5DF", "0x5E0", "0x5E1", "0x5E2", "0x5E3", "0x5E4", "0x5E5", "0x5E6", "0x5E7", "0x5E8", "0x5E9", "0x5EA", "0x5EB", "0x5EC", "0x5ED", "0x5EE", "0x5EF" ,"0x5F0", "0x5F1", "0x5F2", "0x5F3", "0x5F4", "0x5F5", "0x5F6", "0x5F7", "0x5F8", "0x5F9", "0x5FA", "0x5FB", "0x5FC", "0x5FD", "0x5FE", "0x5FF" + #define CAN_ADDRESS_HEX_06XX = "0x600", "0x601", "0x602", "0x603", "0x604", "0x605", "0x606", "0x607", "0x608", "0x609", "0x60A", "0x60B", "0x60C", "0x60D", "0x60E", "0x60F", "0x610", "0x611", "0x612", "0x613", "0x614", "0x615", "0x616", "0x617", "0x618", "0x619", "0x61A", "0x61B", "0x61C", "0x61D", "0x61E", "0x61F", "0x620", "0x621", "0x622", "0x623", "0x624", "0x625", "0x626", "0x627", "0x628", "0x629", "0x62A", "0x62B", "0x62C", "0x62D", "0x62E", "0x62F", "0x630", "0x631", "0x632", "0x633", "0x634", "0x635", "0x636", "0x637", "0x638", "0x639", "0x63A", "0x63B", "0x63C", "0x63D", "0x63E", "0x63F", "0x640", "0x641", "0x642", "0x643", "0x644", "0x645", "0x646", "0x647", "0x648", "0x649", "0x64A", "0x64B", "0x64C", "0x64D", "0x64E", "0x64F", "0x650", "0x651", "0x652", "0x653", "0x654", "0x655", "0x656", "0x657", "0x658", "0x659", "0x65A", "0x65B", "0x65C", "0x65D", "0x65E", "0x65F" ,"0x660", "0x661", "0x662", "0x663", "0x664", "0x665", "0x666", "0x667", "0x668", "0x669", "0x66A", "0x66B", "0x66C", "0x66D", "0x66E", "0x66F", "0x670", "0x671", "0x672", "0x673", "0x674", "0x675", "0x676", "0x677", "0x678", "0x679", "0x67A", "0x67B", "0x67C", "0x67D", "0x67E", "0x67F", "0x680", "0x681", "0x682", "0x683", "0x684", "0x685", "0x686", "0x687", "0x688", "0x689", "0x68A", "0x68B", "0x68C", "0x68D", "0x68E", "0x68F" ,"0x690", "0x691", "0x692", "0x693", "0x694", "0x695", "0x696", "0x697", "0x698", "0x699", "0x69A", "0x69B", "0x69C", "0x69D", "0x69E", "0x69F", "0x6A0", "0x6A1", "0x6A2", "0x6A3", "0x6A4", "0x6A5", "0x6A6", "0x6A7", "0x6A8", "0x6A9", "0x6AA", "0x6AB", "0x6AC", "0x6AD", "0x6AE", "0x6AF", "0x6B0", "0x6B1", "0x6B2", "0x6B3", "0x6B4", "0x6B5", "0x6B6", "0x6B7", "0x6B8", "0x6B9", "0x6BA", "0x6BB", "0x6BC", "0x6BD", "0x6BE", "0x6BF" ,"0x6C0", "0x6C1", "0x6C2", "0x6C3", "0x6C4", "0x6C5", "0x6C6", "0x6C7", "0x6C8", "0x6C9", "0x6CA", "0x6CB", "0x6CC", "0x6CD", "0x6CE", "0x6CF", "0x6D0", "0x6D1", "0x6D2", "0x6D3", "0x6D4", "0x6D5", "0x6D6", "0x6D7", "0x6D8", "0x6D9", "0x6DA", "0x6DB", "0x6DC", "0x6DD", "0x6DE", "0x6DF", "0x6E0", "0x6E1", "0x6E2", "0x6E3", "0x6E4", "0x6E5", "0x6E6", "0x6E7", "0x6E8", "0x6E9", "0x6EA", "0x6EB", "0x6EC", "0x6ED", "0x6EE", "0x6EF" ,"0x6F0", "0x6F1", "0x6F2", "0x6F3", "0x6F4", "0x6F5", "0x6F6", "0x6F7", "0x6F8", "0x6F9", "0x6FA", "0x6FB", "0x6FC", "0x6FD", "0x6FE", "0x6FF" + #define CAN_ADDRESS_HEX_07XX = "0x700", "0x701", "0x702", "0x703", "0x704", "0x705", "0x706", "0x707", "0x708", "0x709", "0x70A", "0x70B", "0x70C", "0x70D", "0x70E", "0x70F", "0x710", "0x711", "0x712", "0x713", "0x714", "0x715", "0x716", "0x717", "0x718", "0x719", "0x71A", "0x71B", "0x71C", "0x71D", "0x71E", "0x71F", "0x720", "0x721", "0x722", "0x723", "0x724", "0x725", "0x726", "0x727", "0x728", "0x729", "0x72A", "0x72B", "0x72C", "0x72D", "0x72E", "0x72F", "0x730", "0x731", "0x732", "0x733", "0x734", "0x735", "0x736", "0x737", "0x738", "0x739", "0x73A", "0x73B", "0x73C", "0x73D", "0x73E", "0x73F", "0x740", "0x741", "0x742", "0x743", "0x744", "0x745", "0x746", "0x747", "0x748", "0x749", "0x74A", "0x74B", "0x74C", "0x74D", "0x74E", "0x74F", "0x750", "0x751", "0x752", "0x753", "0x754", "0x755", "0x756", "0x757", "0x758", "0x759", "0x75A", "0x75B", "0x75C", "0x75D", "0x75E", "0x75F" ,"0x760", "0x761", "0x762", "0x763", "0x764", "0x765", "0x766", "0x767", "0x768", "0x769", "0x76A", "0x76B", "0x76C", "0x76D", "0x76E", "0x76F", "0x770", "0x771", "0x772", "0x773", "0x774", "0x775", "0x776", "0x777", "0x778", "0x779", "0x77A", "0x77B", "0x77C", "0x77D", "0x77E", "0x77F", "0x780", "0x781", "0x782", "0x783", "0x784", "0x785", "0x786", "0x787", "0x788", "0x789", "0x78A", "0x78B", "0x78C", "0x78D", "0x78E", "0x78F" ,"0x790", "0x791", "0x792", "0x793", "0x794", "0x795", "0x796", "0x797", "0x798", "0x799", "0x79A", "0x79B", "0x79C", "0x79D", "0x79E", "0x79F", "0x7A0", "0x7A1", "0x7A2", "0x7A3", "0x7A4", "0x7A5", "0x7A6", "0x7A7", "0x7A8", "0x7A9", "0x7AA", "0x7AB", "0x7AC", "0x7AD", "0x7AE", "0x7AF", "0x7B0", "0x7B1", "0x7B2", "0x7B3", "0x7B4", "0x7B5", "0x7B6", "0x7B7", "0x7B8", "0x7B9", "0x7BA", "0x7BB", "0x7BC", "0x7BD", "0x7BE", "0x7BF" ,"0x7C0", "0x7C1", "0x7C2", "0x7C3", "0x7C4", "0x7C5", "0x7C6", "0x7C7", "0x7C8", "0x7C9", "0x7CA", "0x7CB", "0x7CC", "0x7CD", "0x7CE", "0x7CF", "0x7D0", "0x7D1", "0x7D2", "0x7D3", "0x7D4", "0x7D5", "0x7D6", "0x7D7", "0x7D8", "0x7D9", "0x7DA", "0x7DB", "0x7DC", "0x7DD", "0x7DE", "0x7DF", "0x7E0", "0x7E1", "0x7E2", "0x7E3", "0x7E4", "0x7E5", "0x7E6", "0x7E7", "0x7E8", "0x7E9", "0x7EA", "0x7EB", "0x7EC", "0x7ED", "0x7EE", "0x7EF" ,"0x7F0", "0x7F1", "0x7F2", "0x7F3", "0x7F4", "0x7F5", "0x7F6", "0x7F7", "0x7F8", "0x7F9", "0x7FA", "0x7FB", "0x7FC", "0x7FD", "0x7FE", "0x7FF" + #define CAN_ADDRESS_HEX = $CAN_ADDRESS_HEX_01XX, $CAN_ADDRESS_HEX_02XX, $CAN_ADDRESS_HEX_03XX, $CAN_ADDRESS_HEX_04XX, $CAN_ADDRESS_HEX_05XX, $CAN_ADDRESS_HEX_06XX, $CAN_ADDRESS_HEX_07XX, $CAN_ADDRESS_HEX_inv255 + +;Page 1 is the fuel map and axis bins only +page = 1 + ; name = bits, type, offset, bits + ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits + ; name = scalar, type, offset, units, scale, translate, lo, hi, digits + veTable = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 + rpmBins = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 + #if SPEED_DENSITY + ;mapBins = array, U08, 272, [ 16], "kPa", 1.0, 0.0, 0.0, 255.0, 0 + mapBins = array, U08, 272, [ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 + #elif ALPHA_N + tpsBins = array, U08, 272, [ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 + #endif + + +;-------------------------------------------------- +;Start Page 2 +;Page 2 is all general settings (Previously part of page 1) +;-------------------------------------------------- +page = 2 + flexBoostLow = scalar, S08, 0, "kPa", 1.0, 0.0, -127, 127, 0 + flexBoostHigh = scalar, U08, 1, "kPa", 1.0, 0.0, 0.0, 255, 0 + asePct = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 95.0, 0 + aseCount = scalar, U08, 3, "s", 1.0, 0.0, 0.0, 255, 0 + wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0 + crankingPct = scalar, U08, 14, "%", 1.0, 0.0, 0.0, 255, 0 + 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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + 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" + tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID" + unused2-17 = scalar, U08, 17, "ms", 0.1, 0.0, 0.0, 25.5, 1 + unused2-18 = scalar, U08, 18, "ms", 0.1, 0.0, 0.0, 25.5, 1 + tpsThresh = scalar, U08, 19, "%/s", 1.0, 0.0, 0.0, 255, 0 + taeTime = scalar, U08, 20, "ms", 10, 0.0, 0.0, 2550, 0 + + ; Display (Options for what the display is showing) + display = bits, U08, 21, [0:2], "Unused", "Adafruit 128x32", "Generic 128x32", "Adafruit 128x64", "Generic 128x64", "INVALID", "INVALID", "INVALID" + display1 = bits U08, 21, [3:5], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" + display2 = bits U08, 21, [6:7], "O2", "Voltage", "CPU", "Mem" + + display3 = bits U08, 22, [0:2], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" + display4 = bits U08, 22, [3:4], "O2", "Voltage", "CPU", "Mem" + display5 = bits U08, 22, [5:7], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" + + displayB1 = bits U08, 23, [0:3], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" + displayB2 = bits U08, 23, [4:7], "RPM", "PW", "Advance", "VE", "GammaE", "TPS", "IAT", "CLT" + + reqFuel = scalar, U08, 24, "ms", 0.1, 0.0, 0.0, 25.5, 1 + divider = scalar, U08, 25, "", 1.0, 0.0 + alternate = bits, U08, 26, [0:0], "Simultaneous", "Alternating" + multiplyMAP = bits, U08, 26, [1:1], "No", "Yes" + includeAFR = bits, U08, 26, [2:2], "No", "Yes" + hardCutType = bits, U08, 26, [3:3], "Full", "Rolling" + unused2-26e = bits, U08, 26, [4:4], "No", "Yes" + unused2-26f = bits, U08, 26, [5:5], "No", "Yes" + unused2-26g = bits, U08, 26, [6:6], "No", "Yes" + indInjAng = bits, U08, 26, [7:7], "Disabled", "Enabled" + injOpen = scalar, U08, 27, "ms", 0.1, 0.0, 0.1, 25.5, 1 + inj1Ang = scalar, U16, 28, "deg", 1.0, 0.0, 0.0, 360, 0 + inj2Ang = scalar, U16, 30, "deg", 1.0, 0.0, 0.0, 360, 0 + inj3Ang = scalar, U16, 32, "deg", 1.0, 0.0, 0.0, 360, 0 + inj4Ang = scalar, U16, 34, "deg", 1.0, 0.0, 0.0, 360, 0 + + ; Config1 + mapSample = bits, U08, 36, [0:1], "Instantaneous", "Cycle Average", "Cycle Minimum", "INVALID" + twoStroke = bits, U08, 36, [2:2], "Four-stroke", "Two-stroke" + injType = bits, U08, 36, [3:3], "Port", "Throttle Body" + nCylinders = bits, U08, 36, [4:7], "INVALID","1","2","3","4","5","6","INVALID","8","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + + ; Config2 + unused2-37a = bits, U08, 37, [0:1], "INVALID", "None", "None", "None" + unused2-37b = bits, U08, 37, [2:3], "INVALID", "None", "None", "None" + nInjectors = bits, U08, 37, [4:7], "INVALID","1","2","3","4","5","6","INVALID","8","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + + ; Config3 + engineType = bits, U08, 38, [0:0], "Even fire", "Odd fire" + flexEnabled = bits, U08, 38, [1:1], "Off", "On" + algorithm = bits, U08, 38, [2:2], "Speed Density", "Alpha-N" + baroCorr = bits, U08, 38, [3:3], "Off", "On" + injLayout = bits, U08, 38, [4:5], "Paired", "Semi-Sequential", "INVALID", "Sequential" + perToothIgn = bits, U08, 38, [6:6], "No", "Yes" + dfcoEnabled = bits, U08, 38, [7:7], "Off", "On" + + primePulse = scalar, U08, 39, "ms", 0.1, 0.0, 0.0, 25.5, 1 + dutyLim = scalar, U08, 40, "%", 1.0, 0.0, 0.0, 100.0, 0 + flexFreqLow = scalar, U08, 41, "Hz", 1.0, 0.0, 0.0, 250.0, 0 + flexFreqHigh = scalar, U08, 42, "Hz", 1.0, 0.0, 0.0, 250.0, 0 + + boostMaxDuty = scalar, U08, 43, "%", 1.0, 0.0, 0.0, 100.0, 0 + tpsMin = scalar, U08, 44, "ADC", 1.0, 0.0, 0.0, 255.0, 0 + tpsMax = scalar, U08, 45, "ADC", 1.0, 0.0, 0.0, 255.0, 0 + mapMin = scalar, S08, 46, "kpa", 1.0, 0.0, -100, 127.0, 0 + mapMax = scalar, U16, 47, "kpa", 1.0, 0.0, 0.0, 25500, 0 + fpPrime = scalar, U08, 49, "s", 1.0, 0.0, 0.0, 255.0, 0 + stoich = scalar, U08, 50, ":1", 0.1, 0.0, 0.0, 25.5, 1 + oddfire2 = scalar, U16, 51, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte) + oddfire3 = scalar, U16, 53, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte) + oddfire4 = scalar, U16, 55, "deg", 1.0, 0.0, 0.0, 720, 0 ; * ( 2 byte) + + flexFuelLow = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 250.0, 0 + flexFuelHigh = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 250.0, 0 + flexAdvLow = scalar, U08, 59, "Deg", 1.0, 0.0, 0.0, 250.0, 0 + flexAdvHigh = scalar, U08, 60, "Deg", 1.0, 0.0, 0.0, 250.0, 0 + + iacCLminDuty = scalar, U08, 61, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles when using closed loop idle + iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0 + boostMinDuty = scalar, U08, 63, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles for boost control + + baroMin = scalar, S08, 64, "kpa", 1.0, 0.0, -100, 127.0, 0 + baroMax = scalar, U16, 65, "kpa", 1.0, 0.0, 0.0, 25500, 0 + unused2-67 = array, U08, 67, [60], "%", 1.0, 0.0, 0.0, 255, 0 + + +;-------------------------------------------------- +;Start Ignition table (Page 3) +;-------------------------------------------------- +page = 3 + advTable1 = array, U08, 0,[16x16], "deg", 1.0, -40, -40, 215.0, 0 + rpmBins2 = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 + + #if SPEED_DENSITY + mapBins2 = array, U08, 272, [ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 + #elif ALPHA_N + tpsBins2 = array, U08, 272, [ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 + #endif + +;-------------------------------------------------- +;Start Page 4 +;These are primarily ignition related settings (Previously part of page 2) +;-------------------------------------------------- +page = 4 + TrigAng = scalar, S16, 0, "Deg", 1, 0, -360, 360, 0 + FixAng = scalar, U08, 2, "Deg", 1, 0, 0, 80, 0 + CrankAng = scalar, U08, 3, "Deg", 1, 0, -10, 80, 0 + TrigAngMul = scalar, U08, 4, "", 1, 0, 0, 88, 0 ; Multiplier for tooth counts that don't evenly divide into 360 + TrigEdge = bits, U08, 5,[0:0], "Leading", "Trailing" + TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed" + IgInv = bits, U08, 5,[2:2], "Going Low", "Going High" + TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + TrigEdgeSec= bits, U08, 6,[0:0], "Leading", "Trailing" + fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" + useResync = bits, U08, 6,[7:7], "No", "Yes" + sparkDur = scalar, U08, 7, "ms", 0.1, 0, 0, 25.5, 1 ; Spark duration + trigPatternSec = bits, U08, 8,[0:7], "Single tooth cam", "4-1 cam", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + unused4-9 = scalar, U08, 9, "ms", 0.1, 0.0, 0.0, 25.5, 1 + unused4-10 = scalar, U08, 10, "ms", 0.1, 0.0, 0.0, 25.5, 1 + SkipCycles = scalar, U08, 11, "cycles", 1, 0, 0, 255, 0 + + ; name = array, type, offset, shape, units, scale, translate, lo, hi, digits + ; name = scalar, type, offset, units, scale, translate, lo, hi, digits +;Dwell control + unused4-12a = bits, U08, 12, [0:0], "INVALID", "NOTHING" + useDwellLim = bits, U08, 12, [1:1], "Off", "On" + sparkMode = bits, U08, 12, [2:4], "Wasted Spark", "Single Channel", "Wasted COP", "Sequential", "Rotary", "INVALID", "INVALID", "INVALID" + TrigFilter = bits, U08, 12, [5:6], "Off", "Weak", "Medium", "Aggressive" + ignCranklock = bits, U08, 12, [7:7], "Off", "On" + dwellcrank = scalar, U08, 13, "ms", 0.1, 0, 0, 25, 1 + dwellrun = scalar, U08, 14, "ms", 0.1, 0, 0, 8, 1 ;running dwell variable railed to 8 - who needs more than 8ms? + numTeeth = scalar, U08, 15, "teeth", 1.0, 0.0, 0.0, 255, 0 + missingTeeth = scalar, U08, 16, "teeth", 1.0, 0.0, 0.0, 255, 0 + + crankRPM = scalar, U08, 17, "rpm", 100, 0.0, 100, 1000, 0 + tpsflood = scalar, U08, 18, "%", 1.0, 0.0, 0.0, 255.0, 0 + +;Rev Limits + SoftRevLim = scalar, U08, 19, "rpm", 100, 0.0, 100, 25500, 0 + SoftLimRetard = scalar, U08, 20, "deg", 1.0, 0.0, 0.0, 80, 0 + SoftLimMax = scalar, U08, 21, "s", 0.1, 0.0, 0.0, 25.5, 1 + HardRevLim = scalar, U08, 22, "rpm", 100, 0.0, 100, 25500, 0 + +;TPS based acceleration enrichment + taeBins = array, U08, 23, [ 4], "%/s", 10.0, 0.0, 0.00, 2550.0, 0 + taeRates = array, U08, 27, [ 4], "%", 1.0, 0.0, 0.00, 255.0, 0 ; 4 bytes +;WUE Bins (Needed somewhere to put these + #if CELSIUS + wueBins = array, U08, 31, [10], "C", 1.0, -40, -40, 102.0, 0 + #else + wueBins = array, U08, 31, [10], "F", 1.8, -22.23, -40, 215.0, 0 + #endif +;Dwell config options + dwellLim = scalar, U08, 41, "ms", 1, 0, 0, 32, 0 + dwellRates = array, U08, 42, [6], "%", 1.0, 0.0, 0.00, 255.0, 0 + +;IAT (Inlet air temp) timing retard + #if CELSIUS + iatRetBins = array, U08, 48, [ 6], "C", 1.0, 0.0, 0.00, 255.0, 0 + #else + iatRetBins = array, U08, 48, [ 6], "F", 1.8, 17.77, 0.00, 255.0, 0 ; No -40 degree offset here + #endif + iatRetRates = array, U08, 54, [ 6], "deg", 1.0, 0.0, 0.00, 255.0, 0 +;Decelleration Fuel Cut Off (DFCO) + dfcoRPM = scalar, U08, 60, "RPM", 10.0, 0.0, 100, 2550, 0 + dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0 + dfcoTPSThresh= scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0 +;Cranking ignition bypass + ignBypassEnable = bits, U08, 63, [0:0], "Off", "On" + ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH" + + unused4-64 = array, U08, 64, [63], "%", 1.0, 0.0, 0.0, 255, 0 +;-------------------------------------------------- +;Start AFR page +;-------------------------------------------------- +page = 5 +#if LAMBDA + afrTable = array, U08, 0,[16x16], "Lambda", { 0.1 / stoich }, 0.0000, 0.00, 2.00, 3 +#else + afrTable = array, U08, 0,[16x16], "AFR", 0.1, 0.0, 7, 25.5, 1 +#endif + + rpmBinsAFR = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 + #if SPEED_DENSITY + mapBinsAFR = array, U08, 272,[ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 + #elif ALPHA_N + tpsBinsAFR = array, U08, 272,[ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 + #endif + +;-------------------------------------------------- +;Start page 6 +; Page 6 is all settings associated with O2/AFR +;-------------------------------------------------- +page = 6 + egoAlgorithm= bits , U08, 0, [0:1], "Simple", "INVALID", "PID", "No correction" ; * ( 1 byte) + egoType = bits , U08, 0, [2:3], "Disabled", "Narrow Band", "Wide Band", "INVALID" ; egoOption + boostEnabled= bits, U08, 0, [4:4], "Off", "On" + vvtEnabled = bits, U08, 0, [5:5], "Off", "On" + boostCutType= bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both" + + egoKP = scalar, U08, 1, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + egoKD = scalar, U08, 3, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + #if CELSIUS + egoTemp = scalar, U08, 4, "C", 1.0, -40, -40, 102.0, 0 + #else + egoTemp = scalar, U08, 4, "F", 1.8, -22.23, -40, 215.0, 0 + #endif + egoCount = scalar, U08, 5, "", 4.0, 0.0, 4.0, 255.0, 0 ; * ( 1 byte) + unused6-6 = scalar, U08, 6, "%", 1.0, 0.0, 0.0, 255.0, 0 + egoLimit = scalar, U08, 7, "", 1, 0, 0, 16, 0 + ego_min = scalar, U08, 8, "AFR", 0.1, 0.0, 7, 25, 1 + ego_max = scalar, U08, 9, "AFR", 0.1, 0.0, 7, 25, 1 + ego_sdelay = scalar, U08, 10, "sec", 1, 0, 0, 120, 0 + egoRPM = scalar, U08, 11, "rpm", 100, 0.0, 100, 25500, 0 + egoTPSMax = scalar, U08, 12, "%", 1, 0, 0, 120, 0 + vvtPin = bits , U08, 13, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + useExtBaro = bits, U08, 13, [6:6], "No", "Yes" + boostMode = bits, U08, 13, [7:7], "Simple", "Full" + boostPin = bits, U08, 14, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + VVTasOnOff = bits, U08, 14, [6:6], "No", "Yes" + unused6-14f = bits, U08, 14, [7:7], "ONE", "INVALID" + brvBins = array, U08, 15, [6], "V", 0.1, 0, 6, 24, 1 ; Bins for the battery reference voltage + injBatRates = array, U08, 21, [6], "%", 1, 0, 0, 255, 0 ;Values for injector pulsewidth vs voltage + #if CELSIUS + airDenBins = array, U08, 27, [9], "C", 1.0, -40, -40, 215, 0 ; Bins for the air density correction curve + #else + airDenBins = array, U08, 27, [9], "F", 1.8, -22.23, -40, 215, 0 ; Bins for the air density correction curve + #endif + airDenRates = array, U08, 36, [9], "%", 1.0, 0.0, 0, 255, 0 ; Values for the air density correction curve + +; PWM Frequencies + boostFreq = scalar, U08, 45, "Hz", 2.0, 0.0, 10, 511, 0 + vvtFreq = scalar, U08, 46, "Hz", 2.0, 0.0, 10, 511, 0 + idleFreq = scalar, U08, 47, "Hz", 2.0, 0.0, 10, 511, 0 + +; Launch Control + launchPin = bits , U08, 48, [0:5], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + launchEnable= bits, U08, 48, [6:6], "No", "Yes" + launchHiLo = bits, U08, 48, [7:7], "LOW", "HIGH" + + lnchSoftLim = scalar, U08, 49, "rpm", 100, 0.0, 100, 25500, 0 + lnchRetard = scalar, S08, 50, "deg", 1.0, 0.0, -30, 40, 0 + lnchHardLim = scalar, U08, 51, "rpm", 100, 0.0, 100, 25500, 0 + lnchFuelAdd = scalar, U08, 52, "%", 1.0, 0.0, 0.0, 80, 0 + + idleKP = scalar, U08, 53, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + idleKI = scalar, U08, 54, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + idleKD = scalar, U08, 55, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + boostLimit = scalar, U08, 56, "kPa", 2.0, 0.0, 0.0, 511.0, 0 + boostKP = scalar, U08, 57, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + boostKI = scalar, U08, 58, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + boostKD = scalar, U08, 59, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + + lnchPullRes = bits, U08, 60, [0:1], "Float" , "Pullup", "INVALID", "INVALID" + fuelTrimEnabled= bits, U08, 60, [2:2], "No", "Yes" + flatSEnable = bits, U08, 60, [3:3], "No", "Yes" +; Baro Sensor pin + baroPin = bits, U08, 60, [4:7], "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A8", "A10", "A11", "A12", "A13", "A14", "A15" + +; Flat shift + flatSSoftWin = scalar, U08, 61, "rpm", 100, 0.0, 100, 25500, 0 + flatSRetard = scalar, U08, 62, "deg", 1.0, 0.0, 0.0, 80, 0 + flatSArm = scalar, U08, 63, "rpm", 100, 0.0, 100, 25500, 0 + + iacCLValues = array, U08, 64, [10], "RPM", 10.0, 0.0, 0, 2550, 0 + iacOLStepVal = array, U08, 74, [10], "Steps", 3, 0, 0, 765, 0 + iacOLPWMVal = array, U08, 84, [10], "Duty %", 1.0, 0, 0, 100, 0 + #if CELSIUS + iacBins = array, U08, 94, [10], "C", 1.0, -40, -40, 215, 0 + #else + iacBins = array, U08, 94, [10], "F", 1.8, -22.23, -40, 215, 0 + #endif + iacCrankSteps= array, U08, 104, [4], "Steps", 3, 0, 0, 765, 0 + iacCrankDuty = array, U08, 108, [4], "Duty %", 1.0, 0, 0, 100, 0 + #if CELSIUS + iacCrankBins = array, U08, 112, [4], "C", 1.0, -40, -40, 215, 0 + #else + iacCrankBins = array, U08, 112, [4], "F", 1.8, -22.23, -40, 215, 0 + #endif + + iacAlgorithm = bits , U08, 116, [0:2], "None", "On/Off", "PWM Open loop", "PWM Closed loop", "Stepper Open Loop", "Stepper Closed Loop", "INVALID", "INVALID" + iacStepTime = bits , U08, 116, [3:5], "INVALID","1", "2", "3", "4", "5", "6","INVALID" + iacChannels = bits, U08, 116, [6:6], "1", "2" + iacPWMdir = bits , U08, 116, [7:7], "Normal", "Reverse" + + #if CELSIUS + iacFastTemp = scalar, U08, 117, "C", 1.0, -40, -40, 215, 0 + #else + iacFastTemp = scalar, U08, 117, "F", 1.8, -22.23, -40, 215, 0 + #endif + + iacStepHome = scalar, U08, 118, "Steps", 3, 0, 0, 765, 0 + iacStepHyster= scalar, U08, 119, "Steps", 1, 0.0, 0.0, 10, 0 + + ; Begin fan control vairables + fanInv = bits, U08, 120, [0:0], "No", "Yes" + fanEnable = bits, U08, 120, [1:1], "Off", "On/Off" + fanPin = bits, U08, 120, [2:7], "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + #if CELSIUS + fanSP = scalar, U08, 121, "C", 1.0, -40, -40, 215.0, 0 + fanHyster = scalar, U08, 122, "C", 1.0, 0.0, 0.0, 40, 0 + #else + fanSP = scalar, U08, 121, "F", 1.8, -22.23, -40, 215.0, 0 + fanHyster = scalar, U08, 122, "F", 1.0, 0.0, 0.0, 40, 0 + #endif + fanFreq = scalar, U08 , 123, "Hz", 2.0, 0.0, 10, 511, 0 + #if CELSIUS + fanPWMBins = array, U08, 124, [4], "C", 1.0, -40, -40, 215, 0 + #else + fanPWMBins = array, U08, 124, [4], "F", 1.8, -22.23, -40, 215, 0 + #endif + +;-------------------------------------------------- +;Boost and vvt maps (Page 7) +;-------------------------------------------------- +page = 7 +;notes for boostTable in PSI~~~There are 6.895 psis to a kPa then x 2 like the kPa ver~~~div atmos. pressure in kPa by 2 and make neg so to subtract instead of add +; #if BOOSTPSI +; boostTable = array, U08, 0,[8x8], "PSI", 0.29007547546041846, -50.6625, 0, 74, 0 +; #else + boostTable = array, U08, 0,[8x8], "kPa", 2.0, 0.0, 0, 511, 0 +; #endif + rpmBinsBoost = array, U08, 64,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0 + tpsBinsBoost = array, U08, 72,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 + vvtTable = array, U08, 80,[8x8], "%", 1.0, 0.0, 0, 100, 0 + rpmBinsVVT = array, U08, 144,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0 + tpsBinsVVT = array, U08, 152,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 +;Fuel staging Table + stagingTable = array, U08, 160, [8x8], "%", 1.0, 0.0, 0.0, 100.0, 0 + rpmBinsStaging= array, U08, 224, [ 8], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 + #if SPEED_DENSITY + mapBinsStaging= array, U08, 232, [ 8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 + #elif ALPHA_N + tpsBinsStaging= array, U08, 232, [ 8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 + #endif + +;-------------------------------------------------- +;Sequential fuel trim tables (Page 8) +;-------------------------------------------------- +page = 8 + fuelTrim1Table = array, U08, 0,[6x6], "%", 1.0, -128, -50, 50, 0 + fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 +#if SPEED_DENSITY + fuelTrim1loadBins = array, U08, 42,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 +#elif ALPHA_N + fuelTrim1loadBins = array, U08, 42,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 +#endif + + fuelTrim2Table = array, U08, 48,[6x6], "%", 1.0, -128, -50, 50, 0 + fuelTrim2rpmBins = array, U08, 84,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 +#if SPEED_DENSITY + fuelTrim2loadBins = array, U08, 90,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 +#elif ALPHA_N + fuelTrim2loadBins = array, U08, 90,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 +#endif + + fuelTrim3Table = array, U08, 96,[6x6], "%", 1.0, -128, -50, 50, 0 + fuelTrim3rpmBins = array, U08, 132,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 +#if SPEED_DENSITY + fuelTrim3loadBins = array, U08, 138,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 +#elif ALPHA_N + fuelTrim3loadBins = array, U08, 138,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 +#endif + + fuelTrim4Table = array, U08, 144,[6x6], "%", 1.0, -128, -50, 50, 0 + fuelTrim4rpmBins = array, U08, 180,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 +#if SPEED_DENSITY + fuelTrim4loadBins = array, U08, 186,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 +#elif ALPHA_N + fuelTrim4loadBins = array, U08, 186,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 +#endif + +;-------------------------------------------------- +;CANBUS control (Page 9) +;-------------------------------------------------- +page = 9 + #if CAN_COMMANDS + enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "ON via Internal CAN ", "INVALID" + #else + enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID" + #endif + enable_candata_in = bits, U08, 0, [2:2], "Off", "On" + + caninput_sel0 = bits, U16, 1, [0:0], "Off", "On" + caninput_sel1 = bits, U16, 1, [1:1], "Off", "On" + caninput_sel2 = bits, U16, 1, [2:2], "Off", "On" + caninput_sel3 = bits, U16, 1, [3:3], "Off", "On" + caninput_sel4 = bits, U16, 1, [4:4], "Off", "On" + caninput_sel5 = bits, U16, 1, [5:5], "Off", "On" + caninput_sel6 = bits, U16, 1, [6:6], "Off", "On" + caninput_sel7 = bits, U16, 1, [7:7], "Off", "On" + caninput_sel8 = bits, U16, 1, [8:8], "Off", "On" + caninput_sel9 = bits, U16, 1, [9:9], "Off", "On" + caninput_sel10 = bits, U16, 1, [10:10], "Off", "On" + caninput_sel11 = bits, U16, 1, [11:11], "Off", "On" + caninput_sel12 = bits, U16, 1, [12:12], "Off", "On" + caninput_sel13 = bits, U16, 1, [13:13], "Off", "On" + caninput_sel14 = bits, U16, 1, [14:14], "Off", "On" + caninput_sel15 = bits, U16, 1, [15:15], "Off", "On" + + ;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0 + caninput_source_can_address0 = bits, U16, 3, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address1 = bits, U16, 5, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address2 = bits, U16, 7, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address3 = bits, U16, 9, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address4 = bits, U16, 11, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address5 = bits, U16, 13, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address6 = bits, U16, 15, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address7 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address8 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address9 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address10 = bits, U16, 23, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address11 = bits, U16, 25, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address12 = bits, U16, 27, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address13 = bits, U16, 29, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address14 = bits, U16, 31, [0:10], $CAN_ADDRESS_HEX + caninput_source_can_address15 = bits, U16, 33, [0:10], $CAN_ADDRESS_HEX + + + + caninput_source_start_byte0 = bits, U08, 35, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte1 = bits, U08, 36, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte2 = bits, U08, 37, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte3 = bits, U08, 38, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte4 = bits, U08, 39, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte5 = bits, U08, 40, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte6 = bits, U08, 41, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte7 = bits, U08, 42, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte8 = bits, U08, 43, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte9 = bits, U08, 44, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte10 = bits, U08, 45, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte11 = bits, U08, 46, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte12 = bits, U08, 47, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte13 = bits, U08, 48, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte14 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + caninput_source_start_byte15 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + + caninput_source_num_bytes0 = bits, U16, 51, [0:0], "1", "2" + caninput_source_num_bytes1 = bits, U16, 51, [1:1], "1", "2" + caninput_source_num_bytes2 = bits, U16, 51, [2:2], "1", "2" + caninput_source_num_bytes3 = bits, U16, 51, [3:3], "1", "2" + caninput_source_num_bytes4 = bits, U16, 51, [4:4], "1", "2" + caninput_source_num_bytes5 = bits, U16, 51, [5:5], "1", "2" + caninput_source_num_bytes6 = bits, U16, 51, [6:6], "1", "2" + caninput_source_num_bytes7 = bits, U16, 51, [7:7], "1", "2" + caninput_source_num_bytes8 = bits, U16, 51, [8:8], "1", "2" + caninput_source_num_bytes9 = bits, U16, 51, [9:9], "1", "2" + caninput_source_num_bytes10 = bits, U16, 51, [10:10], "1", "2" + caninput_source_num_bytes11 = bits, U16, 51, [11:11], "1", "2" + caninput_source_num_bytes12 = bits, U16, 51, [12:12], "1", "2" + caninput_source_num_bytes13 = bits, U16, 51, [13:13], "1", "2" + caninput_source_num_bytes14 = bits, U16, 51, [14:14], "1", "2" + caninput_source_num_bytes15 = bits, U16, 51, [15:15], "1", "2" + + unused10_53 = scalar, U08, 53, "", 1, 0, 0, 255, 0 + unused10_54 = scalar, U08, 54, "", 1, 0, 0, 255, 0 + enable_candata_out = bits, U08, 55, [0:0], "Off", "On" + canoutput_sel0 = bits, U08, 56, [0:0], "Off", "On" + canoutput_sel1 = bits, U08, 57, [0:0], "Off", "On" + canoutput_sel2 = bits, U08, 58, [0:0], "Off", "On" + canoutput_sel3 = bits, U08, 59, [0:0], "Off", "On" + canoutput_sel4 = bits, U08, 60, [0:0], "Off", "On" + canoutput_sel5 = bits, U08, 61, [0:0], "Off", "On" + canoutput_sel6 = bits, U08, 62, [0:0], "Off", "On" + canoutput_sel7 = bits, U08, 63, [0:0], "Off", "On" + canoutput_param_group = array , U16, 64, [ 8], "", 1, 0, 0, 65535, 0 + canoutput_param_start_byte0 = bits, U08, 80, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte1 = bits, U08, 81, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte2 = bits, U08, 82, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte3 = bits, U08, 83, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte4 = bits, U08, 84, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte5 = bits, U08, 85, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte6 = bits, U08, 86, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_start_byte7 = bits, U08, 87, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" + canoutput_param_num_bytes0 = bits, U08, 88, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes1 = bits, U08, 89, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes2 = bits, U08, 90, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes3 = bits, U08, 91, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes4 = bits, U08, 92, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes5 = bits, U08, 93, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes6 = bits, U08, 94, [0:1], "INVALID", "1", "2", "INVALID" + canoutput_param_num_bytes7 = bits, U08, 95, [0:1], "INVALID", "1", "2", "INVALID" + + unused10_96 = scalar, U08, 96, "", 1, 0, 0, 255, 0 + unused10_97 = scalar, U08, 97, "", 1, 0, 0, 255, 0 + unused10_98 = scalar, U08, 98, "", 1, 0, 0, 255, 0 + unused10_99 = scalar, U08, 99, "", 1, 0, 0, 255, 0 + + speeduino_tsCanId = bits, U08, 100, [0:3], $tsCanId_list + true_address = bits, U16, 101, [0:10], $CAN_ADDRESS_HEX + realtime_base_address = bits, U16, 103, [0:10], $CAN_ADDRESS_HEX + obd_address = bits, U16, 105, [0:10], $CAN_ADDRESS_HEX + + + ;unused10_101 = scalar, U16, 101, "", 1, 0, 0, 255, 0 + ;unused10_103 = scalar, U16, 103, "", 1, 0, 0, 255, 0 + ;unused10_105 = scalar, U16, 105, "", 1, 0, 0, 255, 0 + + ;AFR offset for WUE VeAnalyze + ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0 + ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0 + + unused10_107 = scalar, U08, 107, "", 1, 0, 0, 255, 0 + unused10_108 = scalar, U08, 108, "", 1, 0, 0, 255, 0 + unused10_109 = scalar, U08, 109, "", 1, 0, 0, 255, 0 + unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0 + unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0 + unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0 + unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0 + unused10_114 = scalar, U08, 114, "", 1, 0, 0, 255, 0 + unused10_115 = scalar, U08, 115, "", 1, 0, 0, 255, 0 + unused10_116 = scalar, U08, 116, "", 1, 0, 0, 255, 0 + unused10_117 = scalar, U08, 117, "", 1, 0, 0, 255, 0 + unused10_118 = scalar, U08, 118, "", 1, 0, 0, 255, 0 + unused10_119 = scalar, U08, 119, "", 1, 0, 0, 255, 0 + unused10_120 = scalar, U08, 120, "", 1, 0, 0, 255, 0 + unused10_121 = scalar, U08, 121, "", 1, 0, 0, 255, 0 + unused10_122 = scalar, U08, 122, "", 1, 0, 0, 255, 0 + unused10_123 = scalar, U08, 123, "", 1, 0, 0, 255, 0 + unused10_124 = scalar, U08, 124, "", 1, 0, 0, 255, 0 + unused10_125 = scalar, U08, 125, "", 1, 0, 0, 255, 0 + unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0 + unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0 + +page = 10 +#if CELSIUS + crankingEnrichBins = array, U08, 0, [4], "C", 1.0, -40, -40, 215, 0 +#else + crankingEnrichBins = array, U08, 0, [4], "F", 1.8, -22.23, -40, 215, 0 +#endif + crankingEnrichValues= array, U08, 4, [4], "%", 1.0, 0.0, 0, 255, 0 ; Values for the cranking enrichment curve + + rotaryType = bits , U08, 8, [0:1], "FC", "FD", "RX8", "INVALID" + stagingEnabled = bits , U08, 8, [2:2], "Off","On" + stagingMode = bits , U08, 8, [3:3], "Table","Automatic" + unused11-8e = bits , U08, 8, [4:4], "Off","On" + unused11-8f = bits , U08, 8, [5:5], "Off","On" + unused11-8g = bits , U08, 8, [6:6], "Off","On" + unused11-8h = bits , U08, 8, [7:7], "Off","On" + + rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0 +#if SPEED_DENSITY + rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 +#elif ALPHA_N + rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 +#endif + boostSens = scalar, U16, 25, "", 1, 0, 0, 5000, 0 + boostIntv = scalar, U08, 27, "ms", 1, 0, 0, 250, 0 + stagedInjSizePri = scalar, U16, 28, "cc/min", 1, 0, 0, 1500, 0 + stagedInjSizeSec = scalar, U16, 30, "cc/min", 1, 0, 0, 1500, 0 + + unused11_32_192 = array, U08, 32, [159], "RPM", 100.0, 0.0, 100, 25500, 0 + +;------------------------------------------------------------------------------- + +[ConstantsExtensions] + requiresPowerCycle = nCylinders + requiresPowerCycle = pinLayout + requiresPowerCycle = fanPin + requiresPowerCycle = reqFuel + requiresPowerCycle = numTeeth + requiresPowerCycle = missingTeeth + requiresPowerCycle = trigPatternSec + requiresPowerCycle = injOpen + requiresPowerCycle = IgInv + requiresPowerCycle = fanInv + requiresPowerCycle = boostEnabled + requiresPowerCycle = vvtEnabled +; requiresPowerCycle = vvtChannels + requiresPowerCycle = boostFreq + requiresPowerCycle = vvtFreq + requiresPowerCycle = idleFreq + requiresPowerCycle = sparkMode + requiresPowerCycle = launchPin + requiresPowerCycle = launchEnable + requiresPowerCycle = launchHiLo + requiresPowerCycle = flexEnabled + requiresPowerCycle = oddfire2 + requiresPowerCycle = oddfire3 + requiresPowerCycle = oddfire4 + requiresPowerCycle = iacCLminDuty + requiresPowerCycle = iacCLmaxDuty + requiresPowerCycle = useExtBaro + requiresPowerCycle = baroPin + requiresPowerCycle = rotaryType + requiresPowerCycle = stagedInjSizePri + requiresPowerCycle = stagedInjSizeSec + requiresPowerCycle = stagingEnabled + + defaultValue = pinLayout, 1 + defaultValue = TrigPattern, 0 + defaultValue = useResync, 1 + defaultValue = trigPatternSec, 0 + defaultValue = sparkMode, 0 + defaultValue = indInjAng, 0 + defaultValue = inj1Ang, 355 + defaultValue = inj2Ang, 355 + defaultValue = inj3Ang, 355 + defaultValue = inj4Ang, 355 + defaultValue = nInjectors, 4 + defaultValue = dutyLim, 100 + defaultValue = mapMin, 10 + defaultValue = mapMax, 260 + defaultValue = baroMin, 10 + defaultValue = baroMax, 260 + defaultValue = fpPrime, 3 + defaultValue = TrigFilter, 0 + defaultValue = ignCranklock,0 + defaultValue = multiplyMAP, 0 + defaultValue = includeAFR, 0 + defaultValue = stoich, 14.7 + defaultValue = flexEnabled, 0 + defaultValue = oddfire2, 0 + defaultValue = oddfire3, 0 + defaultValue = oddfire4, 0 + defaultValue = flexFreqLow, 50 + defaultValue = flexFreqHigh,150 + defaultValue = flexFuelLow, 100 + defaultValue = flexFuelHigh,163 + defaultValue = flexAdvLow, 0 + defaultValue = flexAdvHigh, 13 + defaultValue = flexBoostLow,0 + defaultValue = flexBoostHigh,0 + defaultValue = fuelPumpPin, 0 + defaultValue = fanPin, 0 + defaultValue = iacCLminDuty,0 + defaultValue = iacCLmaxDuty,100 + defaultValue = boostMinDuty,0 + defaultValue = boostMaxDuty,100 + defaultValue = boostSens, 2000 + defaultValue = boostIntv, 30 + defaultValue = sparkDur, 1.0 + defaultValue = speeduino_tsCanId, 0 + defaultValue = true_address, 256 + defaultValue = realtime_base_address, 336 + defaultValue = VVTasOnOff, 0 + defaultValue = stagingEnabled, 0 + ; defaultValue = obd_address, 0 + + ;Default pins + defaultValue = fanPin, 0 + defaultValue = vvtPin, 0 + defaultValue = launchPin, 0 + defaultValue = boostPin, 0 + defaultValue = fuelPumpPin, 0 + defaultValue = tachoPin, 0 + defaultValue = perToothIgn, 0 +[Menu] + + ;---------------------------------------------------------------------------- + ; There are five pre-defined values that may be used to define your menus. + ; The first four allow access to the "standard" dialog boxes, the last one + ; merely draws a separator (horizontal line) in the menu. + ; + ; std_constants + ; std_enrichments + ; std_realtime + ; std_warmup + ; + ; std_separator + ; + ; If you use any of the std_constants, std_enrichments or std_warmup + ; editors, they may be optionally suffixed with a page number (only + ; useful for multi-page code variants), which causes them to edit the + ; specified page. If you leave off the page specifier, they edit logical + ; page one as specified in the Constants section. + ; + ; There are four special menu names, which when used append to the standard + ; menus of the same name instead of creating a new one. The menu names + ; are "File", "Communications", "Tools" and "Help". + ; + ;---------------------------------------------------------------------------- + +menuDialog = main + + menu = "Settings" + subMenu = engine_constants, "Engine Constants" + subMenu = injChars, "Injector Characteristics" + subMenu = triggerSettings, "Trigger Setup" + ;subMenu = OLED, "OLED Setup" + subMenu = airdensity_curve, "IAT Density" + + + menu = "&Tuning" + subMenu = std_realtime, "Realtime Display" + subMenu = accelEnrichments, "Acceleration Enrichment" + subMenu = egoControl, "AFR/O2", 3 + subMenu = RevLimiterS, "Limiters", 2 + subMenu = flexFueling, "Flex Fuel", 2 + subMenu = veTableDialog, "VE Table", 0 + subMenu = sparkTbl, "Spark Table", 2 + subMenu = afrTable1Tbl, "AFR Table", 5 + subMenu = std_separator + subMenu = inj_trimad, "Sequential fuel trim", 9 + subMenu = stagingTableDialog, "Staged Injection", 10 + + menu = "&Spark" + subMenu = sparkSettings, "Spark Settings" + subMenu = sparkTbl, "Spark Table", 2 + subMenu = dwellSettings, "Dwell settings" + subMenu = dwell_correction_curve, "Dwell Compensation" + subMenu = iat_retard_curve, "&IAT Retard" + subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 } + + menu = "&Starting/Idle" + subMenu = crankPW, "Cranking Settings" + subMenu = warmup, "Warmup Enrichment" + subMenu = std_separator + subMenu = idleSettings, "Idle Control" + subMenu = iacClosedLoop_curve, "Idle - Closed loop targets", 7, { iacAlgorithm == 3 || iacAlgorithm == 5 } + subMenu = iacPwm_curve, "Idle - PWM Duty Cycle", 7, { iacAlgorithm == 2 } + subMenu = iacPwmCrank_curve, "Idle - PWM Cranking Duty Cycle", 7, { iacAlgorithm == 2 } + subMenu = iacStep_curve, "Idle - Stepper Motor", 7, { iacAlgorithm == 4 } + subMenu = iacStepCrank_curve, "Idle - Stepper Motor Cranking", 7, { iacAlgorithm == 4 } + + menu = "&Accessories" + subMenu = fanSettings, "Thermo Fan" + subMenu = LaunchControl, "Launch Control / Flat Shift" + subMenu = fuelpump, "Fuel Pump" + subMenu = std_separator + subMenu = boostSettings, "Boost Control" + subMenu = boostTbl, "Boost target", 8, { boostEnabled } + subMenu = std_separator + subMenu = vvtSettings, "VVT Control" + subMenu = vvtTbl, "VVT duty cycle", 8, { vvtEnabled } + subMenu = std_separator + subMenu = tacho, "Tacho Output" + + subMenu = std_separator + + #if CAN_COMMANDS + subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface" + subMenu = std_separator + subMenu = Canin_config, "External Data Input Configuration", {enable_canbus} + ;subMenu = std_separator + ;subMenu = Canout_config, "Canbus Output Configuration" + #else + subMenu = serial3IO, "Secondary Serial IO Interface" + #endif + + menuDialog = main + menu = "T&ools" + subMenu = mapCal, "Calibrate MAP" + subMenu = std_ms2gentherm, "Calibrate Temperature Sensors", 0 + subMenu = std_ms2geno2, "Calibrate AFR Sensor", 0 + + menuDialog = main + menu = "3D &Tuning Maps" + subMenu = veTable1Map, "Fuel Table" + subMenu = sparkMap, "Spark Table", 3 + subMenu = afrTable1Map, "AFR Target Table" + +#if enablehardware_test + menuDialog = main + menu = "Hardware Testing" + subMenu = outputtest1, "Test Output Hardware" +#endif + + menu = "Help" + subMenu = helpGeneral, "Speeduino Help" +;------------------------------------------------------------------------------- + +[SettingContextHelp] +; constantName = "Help Text" +; These provide the context help in the dialog when these variables are used + nCylinders = "Cylinder count" + alternate = "Whether or not the injectors should be fired at the same time. This setting is ignored when Sequential is selected below, however it will still affect the req_fuel value." + engineType = "Engines with an equal number of degrees between all firings (This is most engines) should select Even fire. Some 2 and 6 cylinder engines are Odd fire however." + twoStroke = "Four-Stroke (most engines), Two-stroke." + nInjectors = "Number of primary injectors." + mapSample = "The method used for calculating the MAP reading\nFor 1-2 Cylinder engines, Cycle Minimum is recommended.\nFor more than 2 cylinders Cycle Average is recommended" + stoich = "The stoichiometric ration of the fuel being used. For flex fuel, choose the primary fuel" + injLayout = "The injector layout and timing to be used. Options are: \n 1. Paired - 2 injectors per output. Outputs active is equal to half the number of cylinders. Outputs are timed over 1 crank revolution. \n 2. Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less. \n 3. Banked: 2 outputs only used. \n 4. Sequential: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. " + + TrigPattern = "The type of input trigger decoder to be used." + useResync = "If enabled, sync will be rechecked once every full cycle from the cam input. This is good for accuracy, however if your cam input is noisy then this can cause issues." + trigPatternSec = "Cam mode/type also known as Secondary Trigger Pattern." + numTeeth = "Number of teeth on Primary Wheel." + TrigSpeed = "Primary trigger speed." + missingTeeth= "Number of Missing teeth on Primary Wheel." + TrigAng = "The Angle ATDC when tooth No:1 on the primary wheel passes the primary sensor." + TrigAngMul = "A multiplier used by non-360 degree tooth wheels (i.e. Wheels where the tooth count doesn't divide evenly into 360. Usage: (360 * ) / tooth_count = Whole number" + SkipCycles = "The number of revolutions that will be skipped during cranking before the injectors and coils are fired." + TrigEdge = "The Trigger edge of the primary sensor.\nLeading.\nTrailing." + TrigEdgeSec = "The Trigger edge of the secondary (Cam) sensor.\nLeading.\nTrailing." + TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working" + + 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" + 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!)" + sparkDur = "The duration of the spark at full dwell. Typically around 1ms" + + fanInv = "" + fanHyster = "The number of degrees of hysteresis to be used in controlling the fan. Recommended values are between 2 and 5" + + taeTime = "The duration of the acceleration enrichment" + + iacChannels = "The number of output channels used for PWM valves. Select 1 for 2-wire valves or 2 for 3-wire valves." + iacStepTime = "Pause time between each step. Values that are too low can cause the motor to behave erratically or not at all" + iacStepHome = "Homing steps to perform on startup. Must be greater than the fully open steps value" + iacStepHyster = "The minimum number of steps to move in any one go." + iacAlgorithm = "Selects method of idle control.\nNone = no idle control valve.\nOn/Off valve.\nPWM valve (2,3 wire).\nStepper Valve (4,6,8 wire)." + iacPWMdir = "Normal PWM valves increase RPM with higher duty. If RPM decreases with higher duty then select Reverse" + iacCLminDuty= "When using closed loop idle control, this is the minimum duty cycle that the PID loop will allow. Combined with the maximum value, this specifies the working range of your idle valve" + iacCLmaxDuty= "When using closed loop idle control, this is the maximum duty cycle that the PID loop will allow. Combined with the minimum value, this specifies the working range of your idle valve" + iacFastTemp = "Below this temperature, the idle output will be high (On). Above this temperature, it will turn off." + + oddfire2 = "The ATDC angle of channel 2 for oddfire engines. This is relative to the TDC angle of channel 1" + oddfire3 = "The ATDC angle of channel 3 for oddfire engines. This is relative to the TDC angle of channel 1 (NOT channel 2)" + oddfire4 = "The ATDC angle of channel 4 for oddfire engines. This is relative to the TDC angle of channel 1 (NOT channel 3)" + + dfcoRPM = "The RPM above which DFCO will be active. Typically set a few hundred RPM above maximum idle speed" + dfcoHyster = "Hysteresis for DFCO RPM. 200-300 RPM is typical for this, however a higher value may be needed if the RPM is fluctuating around the cutout speed" + dfcoTPSThresh= "The TPS value below which DFCO will be active. Typical value is 5%-10%, but higher may be needed if TPS signal is noisy" + + launchPin = "The ARDUINO pin that the clutch switch is connected to. This is NOT the pin on the connector, but the pin it relates to on the arduino" + ignBypassPin = "The ARDUINO pin that the ignition bypass is connected to. This is NOT the pin on the connector, but the pin it relates to on the arduino" + ignBypassEnable = "If turned on, a ground signal will be output during cranking on the specified pin. This is used to bypass the Speeduino ignition control during cranking." + ignCranklock = "On certain low resolution ignition patterns, the cranking timing can be locked to occur when a pulse is recieved." + + multiplyMAP = "If enabled, the MAP reading is included directly into the pulsewidth calculation by multiplying the VE lookup value by the MAP:Baro ratio. This results in a flatter VE table that can be easier to tune in some instances. VE table must be retuned when this value is changed." + includeAFR = "When enabled, the current AFR reading is incorporated directly in the pulsewidth calculation as a percentage of the current target ratio. VE table must be retuned when this value is changed. " + useExtBaro = "By Default, Speeduino will measure barometric pressure upon startup. Optionally however, a 2nd pressure sensor can be used to perform live barometric readings whilst the system is on." + + flexEnabled = "Turns on readings from the Flex sensor and enables the below adjustments" + flexFreqLow = "The frequency of the sensor at 0% ethanol (50Hz for standard GM/Continental sensor)" + flexFreqHigh = "The frequency of the sensor at 100% ethanol (150Hz for standard GM/Continental sensor)" + flexFuelLow = "Fuel % to be used for the lowest ethanol reading (Typically 100%. ie No adjustment)" + flexFuelHigh = "Fuel % to be used for the highest ethanol reading (Typically 163% for 100% ethanol)" + flexAdvLow = "Additional advance (in degrees) at lowest ethanol reading (Typically 0)" + flexAdvHigh = "Additional advance (in degrees) at highest ethanol reading (Typically 10-20 degrees)" + flexBoostHigh = "This amount that will be added to the boost target at E100. Between E0 and E100, the amount added to the boost target will be scaled from 0 to this value" + flexBoostLow = "Typically should be set to 0, but can be used to lower boost at E0 if the bast tune is setup with some ethanol" + + flatSArm = "The RPM switch point that determines whether an eganged clutch is for launch control or flat shift. Below this figure, an engaged clutch is considered to be for launch, above this figure an active clutch input will be considered a flat shift. This should be set at least several hundred RPM above idle" + flatSSoftWin= "The number of RPM below the flat shift point where the softlimit will be applied (aka Soft limit window). Recommended values are 200-1000" + flatSRetard = "The absolute timing (BTDC) that will be used when within the soft limit window" + hardCutType = "How hard cuts should be performed for rev/launch limits. Full cut will stop all ignition events, Rolling cut will step through all ignition outputs, only cutting 1 per revolution" + + #if CAN_COMMANDS + enable_canbus = "This Enables either the secondary serial port or output via internal Can module. Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor " + #else + enable_canbus = "This Enables the IO on the secondary serial port. This is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor " + #endif + ;speeduino_tsCanId = "This is the TsCanId that the Speeduino ECU will respond to. This should match the main controller CAN ID in project properties if it is connected directy to TunerStudio, Otherwise the device ID if connected via CAN passthrough" + true_address = "This is the 11bit Can address of the Speeduino ECU " + 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" + ;obd_address = "The 11bit Can address that the Speeduino ECU responds to for OBD2 diagnostic requests" + caninput_sel0 = "This Enables CAN data input channel 0 " + caninput_sel1 = "This Enables CAN data input channel 1 " + caninput_sel2 = "This Enables CAN data input channel 2 " + caninput_sel3 = "This Enables CAN data input channel 3 " + caninput_sel4 = "This Enables CAN data input channel 4 " + caninput_sel5 = "This Enables CAN data input channel 5 " + caninput_sel6 = "This Enables CAN data input channel 6 " + caninput_sel7 = "This Enables CAN data input channel 7 " + caninput_sel8 = "This Enables CAN data input channel 8 " + caninput_sel9 = "This Enables CAN data input channel 9 " + caninput_sel10 = "This Enables CAN data input channel 10 " + caninput_sel11 = "This Enables CAN data input channel 11 " + caninput_sel12 = "This Enables CAN data input channel 12 " + caninput_sel13 = "This Enables CAN data input channel 13 " + caninput_sel14 = "This Enables CAN data input channel 14 " + caninput_sel15 = "This Enables CAN data input channel 15 " + caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0" + caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1" + caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2" + caninput_source_can_address3 = "The source 11bit CAN address of the data for channel 3" + caninput_source_can_address4 = "The source 11bit CAN address of the data for channel 4" + caninput_source_can_address5 = "The source 11bit CAN address of the data for channel 5" + caninput_source_can_address6 = "The source 11bit CAN address of the data for channel 6" + caninput_source_can_address7 = "The source 11bit CAN address of the data for channel 7" + caninput_source_can_address8 = "The source 11bit CAN address of the data for channel 8 " + caninput_source_can_address9 = "The source 11bit CAN address of the data for channel 9" + caninput_source_can_address10 = "The source 11bit CAN address of the data for channel 10" + caninput_source_can_address11 = "The source 11bit CAN address of the data for channel 11" + caninput_source_can_address12 = "The source 11bit CAN address of the data for channel 12" + caninput_source_can_address13 = "The source 11bit CAN address of the data for channel 13" + caninput_source_can_address14 = "The source 11bit CAN address of the data for channel 14" + caninput_source_can_address15 = "The source 11bit CAN address of the data for channel 15" + caninput_source_start_byte0 = "The Starting byte the data begins at for channel 0" + caninput_source_start_byte1 = "The Starting byte the data begins at for channel 1" + caninput_source_start_byte2 = "The Starting byte the data begins at for channel 2" + caninput_source_start_byte3 = "The Starting byte the data begins at for channel 3" + caninput_source_start_byte4 = "The Starting byte the data begins at for channel 4" + caninput_source_start_byte5 = "The Starting byte the data begins at for channel 5" + caninput_source_start_byte6 = "The Starting byte the data begins at for channel 6" + caninput_source_start_byte7 = "The Starting byte the data begins at for channel 7" + caninput_source_start_byte8 = "The Starting byte the data begins at for channel 8" + caninput_source_start_byte9 = "The Starting byte the data begins at for channel 9" + caninput_source_start_byte10 = "The Starting byte the data begins at for channel 10" + caninput_source_start_byte11 = "The Starting byte the data begins at for channel 11" + caninput_source_start_byte12 = "The Starting byte the data begins at for channel 12" + caninput_source_start_byte13 = "The Starting byte the data begins at for channel 13" + caninput_source_start_byte14 = "The Starting byte the data begins at for channel 14" + caninput_source_start_byte15 = "The Starting byte the data begins at for channel 15" + caninput_source_num_bytes0 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes1 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes2 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes3 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes4 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes5 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes6 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes7 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes8 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes9 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes10 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes11 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes12 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes13 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes14 = "The number of bytes the data is made from starting at selected start byte number" + caninput_source_num_bytes15 = "The number of bytes the data is made from starting at selected start byte number" + + cmdEnableTestMode = "Click this to enable test mode. This will not be available if the engine is running" + cmdStopTestMode = "Click this to disable test mode" + cmdtestinj150dc = "this will cycle the output at 50% Duty cycle" + cmdtestinj250dc = "this will cycle the output at 50% Duty cycle" + cmdtestinj350dc = "this will cycle the output at 50% Duty cycle" + cmdtestinj450dc = "this will cycle the output at 50% Duty cycle" + cmdtestspk150dc = "this will cycle the output at 50% Duty cycle" + cmdtestspk250dc = "this will cycle the output at 50% Duty cycle" + cmdtestspk350dc = "this will cycle the output at 50% Duty cycle" + cmdtestspk450dc = "this will cycle the output at 50% Duty cycle" + + boostIntv = "The closed loop control interval will run every this many ms. Generally values between 50% and 100% of the valve frequency work best" + VVTasOnOff = "Whether or not the VVT table should be treated as on and off control only. If you are using the VVT map to control a switch, this should be Yes. If you are using the VVT control to drive a PWM signal, this should be No" + + stagedInjSizePri= "Size of the primary injectors. The sum of the Pri and Sec injectors values MUST match the value used in the req_fuel calculation" + stagedInjSizeSec= "Size of the secondary injectors. The sum of the Pri and Sec injectors values MUST match the value used in the req_fuel calculation" + +[UserDefined] + +; Enhanced TunerStudio dialogs can be defined here +; MegaTune will over look this section +; These dialogs will over-ride those in the UserDefined Section +; User defined ar loaded first, then if one by the same name is defiend here, +; it will replace the MegaTune definition + +; dialog = name, Title, Layout +; +; valid options for layout are xAxis, yAxis, border +; for an xAxis, each field added will be added from right to left +; A yAxis layout will add fields from top to bottom +; A border layout will expect an additional constraint to determine placement +; valid border constraints are north, South, East, West, Center +; all 5 do not need to be filled. + +; The field name can be either a constant reference, or a reference to another +; dialog which will be added. +; dialogs can be nested and can be mixed with fields + + dialog = engine_constants_southwest, "Speeduino Board" + field = "Stoichiometric ratio", stoich + field = "Injector Layout", injLayout, { nCylinders <= 4 } + field = "Board Layout", pinLayout + field = "MAP Sample method", mapSample + + dialog = engine_constants_west, "" + panel = std_injection, North + panel = engine_constants_southwest + + dialog = engine_constants_northeast, "Oddfire Angles" + field = "Channel 2 angle", oddfire2, { engineType == 1 } + field = "Channel 3 angle", oddfire3, { engineType == 1 && nCylinders >= 3 } + field = "Channel 4 angle", oddfire4, { engineType == 1 && nCylinders >= 4 } + + dialog = engine_constants_east, "" + panel = engine_constants_northeast, North + field = "" + + dialog = engine_constants, "", border + panel = engine_constants_west, West + panel = engine_constants_east, East + +# Flex fuel stuff + dialog = flexFueling, "Flex Fuel" + field = "Flex sensor", flexEnabled + + dialog = flexLeft, "" + field = "Component" + field = "Sensor Frequency" + field = "Fuel Adjustment" + field = "Additional advance" + field = "Additional boost", { boostEnabled } + + dialog = flexMiddle, "" + field = "Low (E0)" + field = "", flexFreqLow, { flexEnabled } + field = "", flexFuelLow, { flexEnabled } + field = "", flexAdvLow, { flexEnabled } + field = "", flexBoostLow, { boostEnabled } + + dialog = flexRight, "" + field = "High (E100)" + field = "", flexFreqHigh, { flexEnabled } + field = "", flexFuelHigh, { flexEnabled } + field = "", flexAdvHigh, { flexEnabled } + field = "", flexBoostHigh, { flexEnabled && boostEnabled } + + dialog = flexMain, "Flex Fuel Calibration", xAxis + panel = flexLeft + panel = flexMiddle + panel = flexRight + + dialog = flexFuelTop, "" + field = "Flex Fuel Sensor", flexEnabled + + dialog = flexFueling, "Fuel Sensor Settings", yAxis + topicHelp = "http://speeduino.com/wiki/index.php/Flex_Fuel" + panel = flexFuelTop + panel = flexMain + + dialog = tacho, "Tacho" + field = "Output pin", tachoPin + field = "Output speed", tachoDiv + + dialog = accelEnrichments_center, "" + field = "TPSdot Threshold", tpsThresh + field = "Accel Time", taeTime + + dialog = accelEnrichments_south, "Decelleration Fuel Cutoff (DFCO)" + field = "Enabled", dfcoEnabled + field = "TPS Threshold", dfcoTPSThresh, { dfcoEnabled } + field = "Cutoff RPM", dfcoRPM, { dfcoEnabled } + field = "RPM Hysteresis", dfcoHyster, { dfcoEnabled } + + dialog = accelEnrichments_north_south, "" + liveGraph = pump_ae_Graph, "AE Graph" + graphLine = afr + graphLine = TPSdot, "%", -2000, 2000, auto, auto + + dialog = accelEnrichments_north, "", xAxis + panel = time_accel_tpsdot_curve + + dialog = accelEnrichments, "Acceleration Enrichment" + topicHelp = "http://speeduino.com/wiki/index.php/Acceleration_Wizard" + panel = accelEnrichments_north, North + panel = accelEnrichments_north_south, Center + panel = accelEnrichments_center, Center + panel = accelEnrichments_south, South + + dialog = veTableDialog_north, "" + panel = veTable1Tbl + + dialog = veTableDialog_south, "" + field = "Multiply VE value by MAP:Baro ratio", multiplyMAP + field = "Multiply by ratio of AFR to Target AFR", includeAFR, { egoType == 2 } + + dialog = veTableDialog, "VE Table" + panel = veTableDialog_north, North + panel = veTableDialog_south, South + + dialog = injChars, "Injector Characteristics" + field = "Injector Open Time", injOpen + field = "Injector close angle" + field = "", inj1Ang, { indInjAng == 0 } + field = "Individual channel setting", indInjAng + field = "Channel 1", inj1Ang, { indInjAng } + field = "Channel 2", inj2Ang, { nCylinders > 1 && indInjAng } + field = "Channel 3", inj3Ang, { indInjAng && (nCylinders > 4 || nCylinders == 3 || ((nCylinders == 4) && (injLayout == 3))) } + field = "Channel 4", inj4Ang, { indInjAng && (nCylinders > 6 || ((nCylinders == 4) && (injLayout == 3))) } + field = "Injector Duty Limit", dutyLim + panel = injector_voltage_curve + + dialog = egoControl, "" + topicHelp = "http://speeduino.com/wiki/index.php/AFR/O2" + field = "Sensor Type", egoType + field = "Algorithm", egoAlgorithm, { egoType } + field = "Ignition Events per Step", egoCount, { egoType && (egoAlgorithm < 3) } + field = "Controller Auth +/-", egoLimit, { egoType && (egoAlgorithm < 3) } + field = "Only correct above:", ego_min, { egoType && (egoAlgorithm < 3) } + field = "and correct below:", ego_max, { egoType && (egoAlgorithm < 3) } + + field = "Active Above Coolant", egoTemp, { egoType && (egoAlgorithm < 3) } + field = "Active Above RPM", egoRPM, { egoType && (egoAlgorithm < 3) } + field = "Active Below TPS", egoTPSMax, { egoType && (egoAlgorithm < 3) } + field = "EGO delay after start", ego_sdelay, { (egoAlgorithm < 3) } + field = "PID Proportional Gain", egoKP, { egoType && (egoAlgorithm == 2) } + field = "PID Integral", egoKI, { egoType && (egoAlgorithm == 2) } + field = "PID Derivative", egoKD, { egoType && (egoAlgorithm == 2) } + + dialog = fanSettings,"Fan Settings",7 + field = "Fan Mode", fanEnable + field = "Fan output pin", fanPin, { fanEnable } + field = "Fan Output Inverted", fanInv , { fanEnable } + field = "Fan temperature SP", fanSP, { fanEnable } + field = "Fan hysteresis", fanHyster, { fanEnable } + + dialog = stepper_idle, "Stepper Idle" + field = "Step time (ms)", iacStepTime, { iacAlgorithm == 4 || iacAlgorithm == 5 } + field = "Home steps", iacStepHome, { iacAlgorithm == 4 || iacAlgorithm == 5 } + field = "Minimum Steps", iacStepHyster, { iacAlgorithm == 4 || iacAlgorithm == 5 } + + dialog = pwm_idle, "PWM Idle" + field = "Number of outputs", iacChannels, { iacAlgorithm == 2 || iacAlgorithm == 3 } + field = "Idle valve frequency", idleFreq, { iacAlgorithm == 2 || iacAlgorithm == 3 } + field = "Idle valve direction", iacPWMdir, { iacAlgorithm == 2 || iacAlgorithm == 3 } + + dialog = closedloop_idle, "Closed loop Idle" + field = "P", idleKP, { iacAlgorithm == 3 || iacAlgorithm == 5 } + field = "I", idleKI, { iacAlgorithm == 3 || iacAlgorithm == 5 } + field = "D", idleKD, { iacAlgorithm == 3 || iacAlgorithm == 5 } + field = "Minimum valve duty", iacCLminDuty, { iacAlgorithm == 3 } + field = "Maximum valve duty", iacCLmaxDuty, { iacAlgorithm == 3 } + + dialog = idleSettings, "Idle Settings" + topicHelp = "http://speeduino.com/wiki/index.php/Idle" + field = "Idle control type", iacAlgorithm + field = "#Fast Idle" + field = "Fast idle temp", iacFastTemp, { iacAlgorithm == 1 } + panel = pwm_idle + panel = stepper_idle + panel = closedloop_idle + + dialog = fuelpump, "Fuel pump" + field = "Fuel pump pin", fuelPumpPin + field = "Fuel pump prime duration", fpPrime + + dialog = crankingEnrichDialog, "Cranking Enrichment", yAxis + panel = cranking_enrich_curve + + dialog = crankingIgnOptions, "Cranking Timing", yAxis + field = "Cranking advance Angle", CrankAng + field = "Cranking bypass", ignBypassEnable + field = "Bypass output pin", ignBypassPin { ignBypassEnable } + field = "Fix cranking timing with trigger", ignCranklock, { TrigPattern == 1 || TrigPattern == 4 || TrigPattern == 10 || TrigPattern == 9 } + + dialog = crankingOptions, "", yAxis + field = "Cranking RPM (Max)", crankRPM + field = "Flood Clear level", tpsflood + field = "" + field = "Fuel pump prime duration", fpPrime + field = "Priming Pulsewidth", primePulse + + dialog = crankPW, "Cranking Settings", yAxis + topicHelp = "http://speeduino.com/wiki/index.php/Cranking" + panel = crankingOptions, North + panel = crankingEnrichDialog, Center + panel = crankingIgnOptions, South + + + dialog = aseSettings, "Afterstart Enrichment" + field = "Enrichment %", asePct + field = "Number of Sec to run", aseCount + + + dialog = triggerSettings,"Trigger Settings",4 + topicHelp = "http://speeduino.com/wiki/index.php/Decoders" + field = "Trigger Pattern", TrigPattern + field = "Primary base teeth", numTeeth, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 11 } + field = "Primary trigger speed", TrigSpeed, { TrigPattern == 0 } + field = "Missing teeth", missingTeeth, { TrigPattern == 0 } + field = "Secondary teeth", missingTeeth, { TrigPattern == 2 } + field = "Trigger angle multiplier", TrigAngMul, { TrigPattern == 11 } + field = "Trigger Angle ", TrigAng + field = "This number represents the angle ATDC when " + field = "tooth #1 passes the primary sensor." + field = "" + field = "Skip Revolutions", SkipCycles + field = "Note: This is the number of revolutions that will be skipped during" + field = "cranking before the injectors and coils are fired" + field = "Trigger edge", TrigEdge + field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905 + field = "Missing Tooth Secondary type" trigPatternSec, { TrigPattern == 0 } + field = "Trigger Filter", TrigFilter + 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 + field = "" + field = "#The below option is EXPERIMENTAL! If unsure what this is, please set to No" + 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 + + dialog = sparkSettings,"Spark Settings",4 + field = "Spark output mode", sparkMode + field = "Cranking advance Angle", CrankAng + field = "Spark Outputs triggers", IgInv + field = "" + field = "Fixed Angle (0 = use map)", FixAng + + dialog = dwellSettings, "Dwell Settings", 4 + topicHelp = "http://speeduino.com/wiki/index.php/Dwell" + field = " Cranking dwell", dwellcrank + field = " Running dwell", dwellrun + field = " Spark duration", sparkDur + field = "" + field = "#Note" + field = "The above times are for 12V. Voltage correction" + field = "is applied. At higher voltages the time is reduced" + field = "and when low it is increased" + field = "" + field = "Overdwell protection" + field = "Use Overdwell protection", useDwellLim + field = "Max dwell time", dwellLim, { useDwellLim } + field = "Note: Set the maximum dwell time at least 3ms above" + field = "your desired dwell time (Including cranking)" + + dialog = rotary_ignition, "Rotary Ignition", 4 + field = "Ignition Configuration", rotaryType + panel = rotaryTrailing_curve + + dialog = boostCut, "Boost Cut" + field = "Boost Cut", boostCutType + field = "Boost Limit", boostLimit, { boostCutType } + + dialog = RevLimiterS, "Rev Limiter", 4 + topicHelp = "http://speeduino.com/wiki/index.php/Rev_Limits" + field = "Rev Limiter" + field = "Soft rev limit", SoftRevLim + field = "Soft limit absolute timing", SoftLimRetard + field = "Soft limit max time", SoftLimMax + field = "Hard Rev limit", HardRevLim + field = "Hard limiter method", hardCutType + panel = boostCut + + dialog = clutchInput, "Clutch input" + field = "Clutch Input Pin", launchPin, { launchEnable || flatSEnable } + field = "Clutch enabled when signal is",launchHiLo, { launchEnable || flatSEnable } + field = "Clutch Pullup Resistor", lnchPullRes, { launchEnable || flatSEnable } + field = "Launch / Flat Shift switch RPM",flatSArm, { launchEnable || flatSEnable } + + dialog = LaunchControl, "Launch Control / Flat shift", 6 + topicHelp = "http://speeduino.com/wiki/index.php/Launch_Flatshift" + panel = clutchInput + ; Launch control + field = "Launch Control" + field = "Enable Launch", launchEnable + field = "Soft rev limit", lnchSoftLim, { launchEnable } + field = "Soft limit absolute timing", lnchRetard, { launchEnable } + field = "Hard rev limit", lnchHardLim, { launchEnable } + field = "Fuel adder during launch", lnchFuelAdd, { launchEnable } + + ; Flat shift + field = "Flat Shift" + field = "Enable flat shift", flatSEnable + field = "Soft rev window", flatSSoftWin, { flatSEnable } + field = "Soft limit absolute timing", flatSRetard, { flatSEnable } + + + dialog = OLED, "OLED Display", 2 + field = "Display Type", display + field = "#Note" + field = "ECU must be rebooted after changing above value" + field = "Field 1", display1, { display } + field = "Field 2", display2, { display } + field = "Field 3", display3, { display } + field = "Field 4", display4, { display } + ;field = "Bar 1", displayB1, { display } + ;field = "Bar 2", displayB2, { display > 2 } + + dialog = mapCal, "Calibrate MAP" + field = "#MAP Sensor" + settingSelector = "Common Pressure Sensors" + settingOption = "MPX4115", mapMin=10, mapMax=118 ; https://www.nxp.com/docs/en/data-sheet/MPX4115.pdf + settingOption = "MPX4250", mapMin=10, mapMax=260 ; https://www.nxp.com/docs/en/data-sheet/MPX4250A.pdf Vout = VCC x (P x 0.004 – 0.04) + settingOption = "GM 1-BAR", mapMin=10, mapMax=105 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif + settingOption = "GM 2-BAR", mapMin=9, mapMax=208 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif + settingOption = "GM 3-BAR", mapMin=1, mapMax=315 ; VOUT = VS*(.00318*P-.00353) + settingOption = "MPXH6300", mapMin=1, mapMax=315 ; https://www.nxp.com/docs/en/data-sheet/MPXH6300A.pdf VOUT = VS*(.00318*P-.00353) + settingOption = "MPX5700", mapMin=-31, mapMax=746 ; https://www.nxp.com/docs/en/data-sheet/MPX5700.pdf Vout = VS*(0.0012858*P+0.04) + settingOption = "MPX6400", mapMin=3, mapMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842) + settingOption = "Denso 079800", mapMin=0, mapMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021 + settingOption = "VW/Audi/Porsche 250kPa", mapMin=26, mapMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502 + + field = "kPa At 0.0 Volts", mapMin + field = "kPa At 5.0 Volts", mapMax + + field = "#Baro Sensor" + field = "Use external Baro sensor", useExtBaro + field = "Analog pin to use for ext. Baro sensor", baroPin, { useExtBaro } + + settingSelector = "Common Pressure Sensors", { useExtBaro } + settingOption = "MPX4115", baroMin=10, baroMax=118 ; https://www.nxp.com/docs/en/data-sheet/MPX4115.pdf + settingOption = "MPX4250", baroMin=10, baroMax=260 ; https://www.nxp.com/docs/en/data-sheet/MPX4250A.pdf Vout = VCC x (P x 0.004 – 0.04) + settingOption = "GM 1-BAR", baroMin=10, baroMax=105 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif + settingOption = "GM 2-BAR", baroMin=9, baroMax=208 ; https://speeduino.com/wiki/index.php/File:GM_Table.gif + settingOption = "GM 3-BAR", baroMin=1, baroMax=315 ; VOUT = VS*(.00318*P-.00353) + settingOption = "MPXH6300", baroMin=1, baroMax=315 ; https://www.nxp.com/docs/en/data-sheet/MPXH6300A.pdf VOUT = VS*(.00318*P-.00353) + settingOption = "MPX5700", baroMin=-31, baroMax=746 ; https://www.nxp.com/docs/en/data-sheet/MPX5700.pdf Vout = VS*(0.0012858*P+0.04) + settingOption = "MPX6400", baroMin=3, baroMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842) + settingOption = "Denso 079800", baroMin=0, baroMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021 + settingOption = "VW/Audi/Porsche 250kPa", baroMin=26, baroMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502 + + field = "kPa At 0.0 Volts", baroMin, { useExtBaro } + field = "kPa At 5.0 Volts", baroMax, { useExtBaro } + + dialog = boostSettings, "Boost Control" + topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control" + field = "Boost Control Enabled", boostEnabled + field = "Boost output pin", boostPin, { boostEnabled } + field = "Boost solenoid freq.", boostFreq, { boostEnabled } + + field = "Valve minimum duty cycle", boostMinDuty, { boostEnabled } + field = "Valve maximum duty cycle", boostMaxDuty, { boostEnabled } + panel = boostCut + field = "Closed Loop settings" + field = "Control mode", boostMode, { boostEnabled } + slider = "Sensitivity", boostSens, horizontal, { boostEnabled } + field = "Control interval", boostIntv, { boostEnabled } + field = "P", boostKP, { boostEnabled && boostMode } + field = "I", boostKI, { boostEnabled && boostMode} + field = "D", boostKD, { boostEnabled && boostMode} + + + dialog = vvtSettings, "VVT Control" + field = "VVT Control Enabled", vvtEnabled + field = "Use VVT map as On / Off only", VVTasOnOff, { vvtEnabled } + field = "VVT output pin", vvtPin, { vvtEnabled } + field = "VVT solenoid freq.", vvtFreq, { vvtEnabled } + + + dialog = warmup, "Warmup Enrichment (WUE) - Percent Multiplier" + panel = warmup_curve + field = "Final enrichment value must be 100%." + field = "" + panel = aseSettings + + ;Fuel trim composite dialog + dialog = inj_trim1TblTitle, "Channel #1" + panel = fuelTrimTable1Tbl, { fuelTrimEnabled } + dialog = inj_trim2TblTitle, "Channel #2" + panel = fuelTrimTable2Tbl, { fuelTrimEnabled } + dialog = inj_trim3TblTitle, "Channel #3" + panel = fuelTrimTable3Tbl, { fuelTrimEnabled } + dialog = inj_trim4TblTitle, "Channel #4" + panel = fuelTrimTable4Tbl, { fuelTrimEnabled } + + dialog = inj_trimadt, "", xAxis + panel = inj_trim1TblTitle + panel = inj_trim2TblTitle + dialog = inj_trimadb, "", xAxis + panel = inj_trim3TblTitle + panel = inj_trim4TblTitle + + dialog = inj_trim_enable, "" + field = "Individual fuel trim enabled", fuelTrimEnabled, { injLayout == 3 } + + dialog = inj_trimad,"Injector Cyl 1-4 Trims", yAxis + panel = inj_trim_enable, North + panel = inj_trimadt, Center + panel = inj_trimadb, South + + ;;Injector staging + dialog = stagingTableDialog_north, "" + field = "Staging enabled", stagingEnabled + field = "Staging mode", stagingMode + field = "Size of primary injectors", stagedInjSizePri, { stagingEnabled } + field = "Size of secondary injectors", stagedInjSizeSec, { stagingEnabled } + + dialog = stagingTableDialog_south, "" + panel = stagingTbl, { stagingMode == 0 } + + dialog = stagingTableDialog, "Staged injection" + topicHelp = "https://speeduino.com/wiki/index.php/Staged_Injection" + panel = stagingTableDialog_north, North + panel = stagingTableDialog_south, South + + dialog = outputtest_warningmessage, "" + field = "WARNING! USE AT YOUR OWN RISK. INCORRECT USE WILL DAMAGE YOUR HARDWARE!" + field = "Do not attempt to use this page whilst your engine is running!" + field = "Forcing the Injector or Spark outputs could cause flooding of your engine or permanent damage to ignition coils!" + + + dialog = enableoutputtestbuttons, "Enable Test Controls", xAxis + ;commandButton = "Label Text", command, { Enabled Condition }, optionalFlags + + ; The rem > 0 expression is just for testing.. It works when the arduino is on the Stim with rpm. + ; a status bit there would be the expected real expression + commandButton = "Enable Test Mode", cmdEnableTestMode,{!testenabled & !testactive } + + ; if clickOnCloseIfEnabled is set, then the command assigned to this button will be run on the + ; dialog close, but only if the enable condition is true + ; valid click flags are: + ; clickOnCloseIfEnabled - the command will be sent on dialog close if active condition is true + ; clickOnCloseIfDisabled - the command will be sent on dialog close if active condition is false + ; clickOnClose - the command will be sent on dialog close always + commandButton = "Stop Test Mode", cmdStopTestMode,{testactive}, clickOnCloseIfEnabled + + dialog = outputtestinj1, "Injector CH1", yAxis + commandButton = "Off", cmdtestinj1off,{testactive} + commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive} + commandButton = "On", cmdtestinj1on,{!testenabled & testactive} + dialog = outputtestinj2, "Injector CH2", yAxis + commandButton = "Off", cmdtestinj2off,{testactive} + commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive} + commandButton = "On", cmdtestinj2on,{!testenabled & testactive} + dialog = outputtestinj3, "Injector CH3", yAxis + commandButton = "Off", cmdtestinj3off,{testactive} + commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive} + commandButton = "On", cmdtestinj3on,{!testenabled & testactive} + dialog = outputtestinj4, "Injector CH4", yAxis + commandButton = "Off", cmdtestinj4off,{testactive} + commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive} + commandButton = "On", cmdtestinj4on ,{!testenabled & testactive} + + dialog = outputtest_injectors, "Injector Driver Output Test", xAxis + panel = outputtestinj1 + panel = outputtestinj2 + panel = outputtestinj3 + panel = outputtestinj4 + + dialog = outputtestspk1, "Spark CH1 ", yAxis + commandButton = "Off", cmdtestspk1off,{testactive} + commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive} + commandButton = "On", cmdtestspk1on,{!testenabled & testactive} + dialog = outputtestspk2, "Spark CH2", yAxis + commandButton = "Off", cmdtestspk2off,{testactive} + commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive} + commandButton = "On", cmdtestspk2on,{!testenabled & testactive} + dialog = outputtestspk3, "Spark CH3", yAxis + commandButton = "Off", cmdtestspk3off,{testactive} + commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive} + commandButton = "On", cmdtestspk3on,{!testenabled & testactive} + dialog = outputtestspk4, "Spark CH4", yAxis + commandButton = "Off", cmdtestspk4off,{testactive} + commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive} + commandButton = "On", cmdtestspk4on,{!testenabled & testactive} + + dialog = outputtest_spark, "Spark Driver Output Test", xAxis + panel = outputtestspk1 + panel = outputtestspk2 + panel = outputtestspk3 + panel = outputtestspk4 + + dialog = outputtest1,"Test Output Hardware" + topicHelp = "http://speeduino.com/wiki/index.php/Hardware_testing_page" + panel = enableoutputtestbuttons + panel = outputtest_injectors + panel = outputtest_spark + ;panel = outputtest_io2 + panel = outputtest_warningmessage + + dialog = caninput_sel, "" + ;CAN inputs + field = " CAN Input Channel on/off" + field = "CAN Input 0", caninput_sel0, { enable_candata_in } + field = "CAN Input 1", caninput_sel1, { enable_candata_in } + field = "CAN Input 2", caninput_sel2, { enable_candata_in } + field = "CAN Input 3", caninput_sel3, { enable_candata_in } + field = "CAN Input 4", caninput_sel4, { enable_candata_in } + field = "CAN Input 5", caninput_sel5, { enable_candata_in } + field = "CAN Input 6", caninput_sel6, { enable_candata_in } + field = "CAN Input 7", caninput_sel7, { enable_candata_in } + field = "CAN Input 8", caninput_sel8, { enable_candata_in } + field = "CAN Input 9", caninput_sel9, { enable_candata_in } + field = "CAN Input 10", caninput_sel10, { enable_candata_in } + field = "CAN Input 11", caninput_sel11, { enable_candata_in } + field = "CAN Input 12", caninput_sel12, { enable_candata_in } + field = "CAN Input 13", caninput_sel13, { enable_candata_in } + field = "CAN Input 14", caninput_sel14, { enable_candata_in } + field = "CAN Input 15", caninput_sel15, { enable_candata_in } + + dialog = caninput_parameter_group, "", yAxis + field = " Source CAN Address" + field = "", caninput_source_can_address0, { caninput_sel0 && enable_candata_in } + field = "", caninput_source_can_address1, { caninput_sel1 && enable_candata_in } + field = "", caninput_source_can_address2, { caninput_sel2 && enable_candata_in } + field = "", caninput_source_can_address3, { caninput_sel3 && enable_candata_in } + field = "", caninput_source_can_address4, { caninput_sel4 && enable_candata_in } + field = "", caninput_source_can_address5, { caninput_sel5 && enable_candata_in } + field = "", caninput_source_can_address6, { caninput_sel6 && enable_candata_in } + field = "", caninput_source_can_address7, { caninput_sel7 && enable_candata_in } + field = "", caninput_source_can_address8, { caninput_sel8 && enable_candata_in } + field = "", caninput_source_can_address9, { caninput_sel9 && enable_candata_in } + field = "", caninput_source_can_address10, { caninput_sel10 && enable_candata_in } + field = "", caninput_source_can_address11, { caninput_sel11 && enable_candata_in } + field = "", caninput_source_can_address12, { caninput_sel12 && enable_candata_in } + field = "", caninput_source_can_address13, { caninput_sel13 && enable_candata_in } + field = "", caninput_source_can_address14, { caninput_sel14 && enable_candata_in } + field = "", caninput_source_can_address15, { caninput_sel15 && enable_candata_in } + + dialog = caninput_parameter_start_byte, "", yAxis + field = " source data start byte" + field = "", caninput_source_start_byte0, { caninput_sel0 && enable_candata_in } + field = "", caninput_source_start_byte1, { caninput_sel1 && enable_candata_in } + field = "", caninput_source_start_byte2, { caninput_sel2 && enable_candata_in } + field = "", caninput_source_start_byte3, { caninput_sel3 && enable_candata_in } + field = "", caninput_source_start_byte4, { caninput_sel4 && enable_candata_in } + field = "", caninput_source_start_byte5, { caninput_sel5 && enable_candata_in } + field = "", caninput_source_start_byte6, { caninput_sel6 && enable_candata_in } + field = "", caninput_source_start_byte7, { caninput_sel7 && enable_candata_in } + field = "", caninput_source_start_byte8, { caninput_sel8 && enable_candata_in } + field = "", caninput_source_start_byte9, { caninput_sel9 && enable_candata_in } + field = "", caninput_source_start_byte10, { caninput_sel10 && enable_candata_in } + field = "", caninput_source_start_byte11, { caninput_sel11 && enable_candata_in } + field = "", caninput_source_start_byte12, { caninput_sel12 && enable_candata_in } + field = "", caninput_source_start_byte13, { caninput_sel13 && enable_candata_in } + field = "", caninput_source_start_byte14, { caninput_sel14 && enable_candata_in } + field = "", caninput_source_start_byte15, { caninput_sel15 && enable_candata_in } + + dialog = caninput_parameter_num_byte, "", yAxis + field = "Input Parameter Number of Bytes" + field = "", caninput_source_num_bytes0, { caninput_sel0 && enable_candata_in } + field = "", caninput_source_num_bytes1, { caninput_sel1 && enable_candata_in } + field = "", caninput_source_num_bytes2, { caninput_sel3 && enable_candata_in } + field = "", caninput_source_num_bytes3, { caninput_sel3 && enable_candata_in } + field = "", caninput_source_num_bytes4, { caninput_sel4 && enable_candata_in } + field = "", caninput_source_num_bytes5, { caninput_sel5 && enable_candata_in } + field = "", caninput_source_num_bytes6, { caninput_sel6 && enable_candata_in } + field = "", caninput_source_num_bytes7, { caninput_sel7 && enable_candata_in } + field = "", caninput_source_num_bytes8, { caninput_sel8 && enable_candata_in } + field = "", caninput_source_num_bytes9, { caninput_sel9 && enable_candata_in } + field = "", caninput_source_num_bytes10, { caninput_sel10 && enable_candata_in } + field = "", caninput_source_num_bytes11, { caninput_sel11 && enable_candata_in } + field = "", caninput_source_num_bytes12, { caninput_sel12 && enable_candata_in } + field = "", caninput_source_num_bytes13, { caninput_sel13 && enable_candata_in } + field = "", caninput_source_num_bytes14, { caninput_sel14 && enable_candata_in } + field = "", caninput_source_num_bytes15, { caninput_sel15 && enable_candata_in } + + dialog = caninconfig_blank1,"" + field = "" + + dialog = Canin_config1, "", xAxis + panel = caninput_sel + panel = caninconfig_blank1 + panel = caninput_parameter_group + panel = caninconfig_blank1 + panel = caninput_parameter_start_byte + panel = caninconfig_blank1 + panel = caninput_parameter_num_byte + + dialog = Canin_config2, "External Data Input" + field = "Enable External data input", enable_candata_in + + dialog = Canin_config, "", border + topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface#Read_external_analog_data" + panel = Canin_config2, North + panel = Canin_config1, South + + dialog = canoutput_sel, "" + ;CAN outputs + field = "CAN Output Channel on/off" + field = "CAN Output 0", canoutput_sel0, { enable_candata_out} + field = "CAN Output 1", canoutput_sel1, { enable_candata_out } + field = "CAN Output 2", canoutput_sel2, { enable_candata_out } + field = "CAN Output 3", canoutput_sel3, { enable_candata_out } + field = "CAN Output 4", canoutput_sel4, { enable_candata_out } + field = "CAN Output 5", canoutput_sel5, { enable_candata_out } + field = "CAN Output 6", canoutput_sel6, { enable_candata_out } + field = "CAN Output 7", canoutput_sel7, { enable_candata_out } + ; field = "CAN Output 8", canoutput_sel8, { enable_candata_out} + ; field = "CAN Output 9", canoutput_sel9, { enable_candata_out } + ; field = "CAN Output 10", canoutput_sel10, { enable_candata_out } + ; field = "CAN Output 11", canoutput_sel11, { enable_candata_out } + ; field = "CAN Output 12", canoutput_sel12, { enable_candata_out } + ; field = "CAN Output 13", canoutput_sel13, { enable_candata_out } + ; field = "CAN Output 14", canoutput_sel14, { enable_candata_out } + ; field = "CAN Output 15", canoutput_sel15, { enable_candata_out } + + dialog = canoutput_parameter_group, "", yAxis + field = "Output Parameter Group" + field = "", canoutput_param_group[0], { canoutput_sel0 && enable_candata_out } + field = "", canoutput_param_group[1], { canoutput_sel1 && enable_candata_out } + field = "", canoutput_param_group[2], { canoutput_sel3 && enable_candata_out } + field = "", canoutput_param_group[3], { canoutput_sel3 && enable_candata_out } + field = "", canoutput_param_group[4], { canoutput_sel4 && enable_candata_out } + field = "", canoutput_param_group[5], { canoutput_sel5 && enable_candata_out } + field = "", canoutput_param_group[6], { canoutput_sel6 && enable_candata_out } + field = "", canoutput_param_group[7], { canoutput_sel7 && enable_candata_out } + ; field = "", canoutput_param_group[8], { canoutput_sel9 && enable_candata_out } + ; field = "", canoutput_param_group[9], { canoutput_sel10 && enable_candata_out } + ; field = "", canoutput_param_group[10], { canoutput_sel1 && enable_candata_out } + ; field = "", canoutput_param_group[11], { canoutput_sel2 && enable_candata_out } + ; field = "", canoutput_param_group[12], { canoutput_sel3 && enable_candata_out } + ; field = "", canoutput_param_group[13], { canoutput_sel4 && enable_candata_out } + ; field = "", canoutput_param_group[14], { canoutput_sel5 && enable_candata_out } + ; field = "", canoutput_param_group[15], { canoutput_sel6 && enable_candata_out } + + dialog = canoutput_parameter_start_byte, "", yAxis + field = "Output Parameter Start Byte" + field = "", canoutput_param_start_byte0, { canoutput_sel0 && enable_candata_out } + field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_candata_out } + field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_candata_out } + field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_candata_out } + field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_candata_out } + field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_candata_out } + field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_candata_out } + field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_candata_out } + ; field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_candata_out } + ; field = "", canoutput_param_start_byte9, { canoutput_sel9 && enable_candata_out } + ; field = "", canoutput_param_start_byte10, { canoutput_sel10 && enable_candata_out } + ; field = "", canoutput_param_start_byte11, { canoutput_sel11 && enable_candata_out } + ; field = "", canoutput_param_start_byte12, { canoutput_sel12 && enable_candata_out } + ; field = "", canoutput_param_start_byte13, { canoutput_sel13 && enable_candata_out } +; field = "", canoutput_param_start_byte14, { canoutput_sel14 && enable_candata_out } + ; field = "", canoutput_param_start_byte15, { canoutput_sel15 && enable_candata_out } + + dialog = canoutput_parameter_num_byte, "", yAxis + field = "Output Parameter Number of Bytes" + field = "", canoutput_param_num_bytes0, { canoutput_sel0 && enable_candata_out } + field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_candata_out } + field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_candata_out } + field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_candata_out } + field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_candata_out } + field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_candata_out } + field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_candata_out } + field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_candata_out } + ; field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_candata_out } + ; field = "", canoutput_param_num_bytes9, { canoutput_sel9 && enable_candata_out } + ; field = "", canoutput_param_num_bytes10, { canoutput_sel10 && enable_candata_out } + ; field = "", canoutput_param_num_bytes11, { canoutput_sel11 && enable_candata_out } + ; field = "", canoutput_param_num_bytes12, { canoutput_sel12 && enable_candata_out } + ; field = "", canoutput_param_num_bytes13, { canoutput_sel13 && enable_candata_out } +; field = "", canoutput_param_num_bytes14, { canoutput_sel14 && enable_candata_out } + ; field = "", canoutput_param_num_bytes15, { canoutput_sel15 && enable_candata_out } + + dialog = canoutconfig_blank1,"" + field = "" + + dialog = Canout_config1, "", xAxis + panel = canoutput_sel + panel = canoutconfig_blank1 + panel = canoutput_parameter_group + panel = canoutconfig_blank1 + panel = canoutput_parameter_start_byte + panel = canoutconfig_blank1 + panel = canoutput_parameter_num_byte + + dialog = Canout_config2, "CAN Data Out" + field = "Enable CanBus data Output", enable_candata_out + + dialog = Canout_config, "", border + topicHelp = "" + panel = Canout_config2, North + panel = Canout_config1, South + + dialog = can_serial3IO, "CanBus/Serial3 IO interface" + topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface" + field = "Enable CanBus/Second Serial", enable_canbus + ; field = "Speeduino TsCanId", speeduino_tsCanId + field = "True Canbus Address", true_address {enable_canbus} + field = "NOTE! Realtime Datat Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion" + field = "Realtime Data Base Can Address", realtime_base_address {enable_canbus} + ; field = "Speeduino OBD address", obd_address + + dialog = serial3IO, "Serial3 IO interface" + topicHelp = "http://speeduino.com/wiki/index.php/Serial3_IO_interface" + field = "Enable Second Serial", enable_canbus + +;------------------------------------------------------------------------------- +; General help text + + help = helpGeneral, "Speeduino General Help" + webHelp = "http://speeduino.com/wiki/index.php/Speeduino" + text = "For current WIKI documentation, click the Web Help button," + text = "or visit http://www.speeduino.com/." + text = "
" + text = "
why not visit our forum http://speeduino.com/forum/" +;------------------------------------------------------------------------------ +[ControllerCommands] +; commandName = command1, command2, commandn... +; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. +; This does not include any resultant protocol envelope data, only the response data itself. + +; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands +; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition +; and may create error messages. +; It is expected that these commands would not typically alter any ram mapped to a Constant. + +cmdStopTestMode = "E\x01\x00" +cmdEnableTestMode = "E\x01\x01" + +cmdtestinj1on = "E\x02\x01" +cmdtestinj1off = "E\x02\x02" +cmdtestinj150dc = "E\x02\x03" +cmdtestinj2on = "E\x02\x04" +cmdtestinj2off = "E\x02\x05" +cmdtestinj250dc = "E\x02\x06" +cmdtestinj3on = "E\x02\x07" +cmdtestinj3off = "E\x02\x08" +cmdtestinj350dc = "E\x02\x09" +cmdtestinj4on = "E\x02\x0A" +cmdtestinj4off = "E\x02\x0B" +cmdtestinj450dc = "E\x02\x0C" + +cmdtestspk1on = "E\x03\x01" +cmdtestspk1off = "E\x03\x02" +cmdtestspk150dc = "E\x03\x03" +cmdtestspk2on = "E\x03\x04" +cmdtestspk2off = "E\x03\x05" +cmdtestspk250dc = "E\x03\x06" +cmdtestspk3on = "E\x03\x07" +cmdtestspk3off = "E\x03\x08" +cmdtestspk350dc = "E\x03\x09" +cmdtestspk4on = "E\x03\x0A" +cmdtestspk4off = "E\x03\x0B" +cmdtestspk450dc = "E\x03\x0C" + +; ------------------------------------------------------------- +; Help down here +[SettingContextHelp] + + +[CurveEditor] + +;time-based accel enrichment + curve = time_accel_tpsdot_curve, "TPS based AE" + columnLabel = "TPSdot", "Added" + xAxis = 0, 1200, 6 + yAxis = 0, 250, 4 + xBins = taeBins, TPSdot + yBins = taeRates + ;gauge = cltGauge + +; Correction curve for dwell vs battery voltage + curve = dwell_correction_curve, "Dwell voltage correction" + columnLabel = "Voltage", "Dwell" + xAxis = 6, 22, 6 + yAxis = 0, 255, 6 + xBins = brvBins, batteryVoltage + yBins = dwellRates + +; Correction curve for injectors vs battery voltage + curve = injector_voltage_curve, "Injector voltage correction" + columnLabel = "Voltage", "Injector" + xAxis = 6, 22, 6 + yAxis = 0, 255, 6 + xBins = brvBins, batteryVoltage + yBins = injBatRates + +; Correction curve for Air Density vs temperature + curve = airdensity_curve, "IAT density correction" + columnLabel = "Air Temperature", "Fuel Amount" + xAxis = -40, 160, 6 + yAxis = 0, 255, 6 + xBins = airDenBins, iat + yBins = airDenRates + +; IAT based ignition timing retard + curve = iat_retard_curve, "IAT timing retard" + columnLabel = "Inlet Air Temp", "Retard" + xAxis = -40, 200, 5 + yAxis = 0, 30, 5 + xBins = iatRetBins, iat + yBins = iatRetRates + +; Curves for idle control + ; Standard duty table for PWM valves + curve = iacPwm_curve, "IAC PWM Duty" + columnLabel = "Coolant Temperature", "Valve" + #if CELSIUS + xAxis = -40, 215, 6 + #else + xAxis = -40, 315, 6 + #endif + yAxis = 0, 100, 4 + xBins = iacBins, coolant + yBins = iacOLPWMVal + + ; Cranking duty table for PWM valves + curve = iacPwmCrank_curve, "IAC PWM Cranking Duty" + columnLabel = "Coolant Temperature", "Valve" + xAxis = -40, 215, 6 + yAxis = 0, 100, 4 + xBins = iacCrankBins, coolant + yBins = iacCrankDuty + + curve = iacStep_curve, "IAC Stepper Motor" + columnLabel = "Coolant Temperature", "Motor" + #if CELSIUS + xAxis = -40, 215, 6 + #else + xAxis = -40, 315, 6 + #endif + yAxis = 0, 850, 4 + xBins = iacBins, coolant + yBins = iacOLStepVal + + curve = iacStepCrank_curve, "IAC Stepper Motor Cranking" + columnLabel = "Coolant Temperature", "Motor" + xAxis = -40, 120, 6 + yAxis = 0, 850, 4 + xBins = iacCrankBins, coolant + yBins = iacCrankSteps + + curve = iacClosedLoop_curve, "IAC Closed Loop Targets" + columnLabel = "Coolant Temperature", "Motor" + xAxis = -40, 120, 6 + yAxis = 0, 2000, 4 + xBins = iacBins, coolant + yBins = iacCLValues + + curve = rotaryTrailing_curve, "Rotary Trailing Split" + columnLabel = "Engine load", "Split" + yAxis = 0, 40, 4 +#if SPEED_DENSITY + xBins = rotarySplitBins, map + xAxis = 0, 250, 5 +#else + xBins = rotarySplitBins, throttle + xAxis = 0, 100, 5 +#endif + yBins = rotarySplitValues + +; Warmup enrichment curve + curve = warmup_curve, "Warmup Enrichment (WUE) Curve" + columnLabel = "Coolant", "WUE %" + xAxis = -40, 210, 9 + yAxis = 0, 240, 6 + xBins = wueBins, coolant + yBins = wueRates + gauge = cltGauge + +; Cranking enrichment curve + curve = cranking_enrich_curve, "Cranking Enrichment Curve" + columnLabel = "Coolant", "Enrich %" + xAxis = -40, 110, 9 + yAxis = 0, 200, 6 + xBins = crankingEnrichBins, coolant + yBins = crankingEnrichValues + ;gauge = cltGau25 + +; Warmup enrichment VEAL AFR adjustment curve (Not currently working) + ;curve = warmup_afr_curve, "AFR Target Temperature Adustment" + ; columnLabel = "Coolant Temp", "AFR Offset %" + ; xAxis = -40, 210, 9 + ; yAxis = 0, 240, 6 + ; xBins = wueAFRBins, coolant + ; yBins = wueAFRRates + + +[TableEditor] + ; table_id, map3d_id, "title", page + table = veTable1Tbl, veTable1Map, "VE Table", 1 + topicHelp = "http://speeduino.com/wiki/index.php/Tuning" + ; constant, variable + xBins = rpmBins, rpm + #if SPEED_DENSITY + yBins = mapBins, map + #else + yBins = tpsBins, throttle + #endif + zBins = veTable + + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" + + table = sparkTbl, sparkMap, "Ignition Advance Table", 3 + xBins = rpmBins2, rpm + #if SPEED_DENSITY + yBins = mapBins2, map + #else ALPHA_N + yBins = tpsBins2, throttle + #endif + zBins = advTable1 + gridHeight = 3.0 + upDownLabel = "ADVANCED", "RETARDED" + + ;table = afrTbl, afrTableMap, "AFR Table", 5 + table = afrTable1Tbl, afrTable1Map, "AFR Table", 5 + xBins = rpmBinsAFR, rpm + #if SPEED_DENSITY + yBins = mapBinsAFR, map + #else ALPHA_N + yBins = tpsBinsAFR, throttle + #endif + zBins = afrTable + gridHeight = 1.0 + upDownLabel = "RICHER", "LEANER" + gridOrient = 250, 0, 340 + + #if BOOSTPSI + table = boostTbl, boostMap, "Boost targets (PSI)", 8 + #else + table = boostTbl, boostMap, "Boost targets (Absolute kPa)", 8 + #endif + xBins = rpmBinsBoost, rpm + yBins = tpsBinsBoost, throttle + zBins = boostTable + gridHeight = 3.0 + upDownLabel = "HIGHER", "LOWER" + + table = vvtTbl, vvtMap, "VVT control Table", 8 + xBins = rpmBinsVVT, rpm + yBins = tpsBinsVVT, throttle + zBins = vvtTable + gridHeight = 3.0 + upDownLabel = "HIGHER", "LOWER" + + table = stagingTbl, stagingMap, "Fuel Staging Table", 10 + xBins = rpmBinsStaging, rpm + #if SPEED_DENSITY + yBins = mapBinsStaging, map + #else ALPHA_N + yBins = tpsBinsStaging, throttle + #endif + zBins = stagingTable + gridHeight = 3.0 + upDownLabel = "HIGHER", "LOWER" + +;--------- Sequential fuel trim maps ----------- + table = fuelTrimTable1Tbl, fuelTrimTable1Map, "Fuel trim Table 1", 9 + topicHelp = "http://speeduino.com/wiki/index.php/Tuning" + xBins = fuelTrim1rpmBins, rpm + #if SPEED_DENSITY + yBins = fuelTrim1loadBins, map + #else + yBins = fuelTrim1loadBins, throttle + #endif + zBins = fuelTrim1Table + + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTable2Tbl, fuelTrimTable2Map, "Fuel trim Table 2", 9 + topicHelp = "http://speeduino.com/wiki/index.php/Tuning" + xBins = fuelTrim2rpmBins, rpm + #if SPEED_DENSITY + yBins = fuelTrim2loadBins, map + #else + yBins = fuelTrim2loadBins, throttle + #endif + zBins = fuelTrim2Table + + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTable3Tbl, fuelTrimTable3Map, "Fuel trim Table 3", 9 + topicHelp = "http://speeduino.com/wiki/index.php/Tuning" + xBins = fuelTrim3rpmBins, rpm + #if SPEED_DENSITY + yBins = fuelTrim3loadBins, map + #else + yBins = fuelTrim3loadBins, throttle + #endif + zBins = fuelTrim3Table + + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTable4Tbl, fuelTrimTable4Map, "Fuel trim Table 4", 9 + topicHelp = "http://speeduino.com/wiki/index.php/Tuning" + xBins = fuelTrim4rpmBins, rpm + #if SPEED_DENSITY + yBins = fuelTrim4loadBins, map + #else + yBins = fuelTrim4loadBins, throttle + #endif + zBins = fuelTrim4Table + + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" + + +;------------------------------------------------------------------------------- + +[GaugeConfigurations] + + ;------------------------------------------------------------------------------- + ; Define a gauge's characteristics here, then go to a specific layout + ; block (Tuning or FrontPage) and use the name you've defined here to + ; display that gauge in a particular position. + ; + ; Name = Case-sensitive, user-defined name for this gauge configuration. + ; Var = Case-sensitive name of variable to be displayed, see the + ; OutputChannels block in this file for possible values. + ; Title = Title displayed at the top of the gauge. + ; Units = Units displayed below value on gauge. + ; Lo = Lower scale limit of gauge. + ; Hi = Upper scale limit of gauge. + ; LoD = Lower limit at which danger color is used for gauge background. + ; LoW = Lower limit at which warning color is used. + ; HiW = Upper limit at which warning color is used. + ; HiD = Upper limit at which danger color is used. + ; vd = Decimal places in displayed value + ; ld = Label decimal places for display of Lo and Hi, above. + + gaugeCategory = "Main" + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 + dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1 + egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0 + + gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0 + pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 + tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 300, 600, 3000, 5000, 0, 0 + veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 + warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0 + advanceGauge = advance, "Spark Advance", "deg BTDC", 50, -10, 0, 0, 35, 45, 0, 0 + dwellGauge = dwell, "Ign Dwell", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 + + gaugeCategory = "Sensor inputs" + mapGauge = map, "Engine MAP", "kPa", 0, 255, 0, 20, 200, 245, 0, 0 + mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0 + mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2 + mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1 + batteryVoltage = batteryVoltage,"Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2 + + tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 + throttleGauge = throttle, "Throttle Position", "%TPS", 0, 100, -1, 1, 90, 100, 0, 0 + + afrGauge = afr, "Air:Fuel Ratio", "", 7, 25, 12, 13, 15, 16, 2, 2 + afrGauge2 = afr2, "Air:Fuel Ratio 2", "", 7, 25, 12, 13, 15, 16, 2, 2 + lambdaGauge = lambda, "Lambda", "", 0.5, 1.5, 0.5, 0.7, 2, 1.1, 2, 2 + + #if CELSIUS + cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, -15, 0, 95, 105, 0, 0 + iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, -15, 0, 95, 100, 0, 0 + #else + cltGauge = coolant, "Coolant Temp", "TEMP", -40, 215, 0, 30, 200, 220, 0, 0 + iatGauge = iat, "Inlet Air Temp", "TEMP", -40, 215, 0, 30, 200, 210, 0, 0 + #endif + flexGauge = flex, "Flex sensor", "%", 0, 100, -1, -1, 999, 999, 0, 0 + + #if CAN_COMMANDS + gaugeCategory = "CanBus Inputs" + CanGauge0 = canin_gauge0, "Can In0" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge1 = canin_gauge1, "Can In1" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge2 = canin_gauge2, "Can In2" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge3 = canin_gauge3, "Can In3" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge4 = canin_gauge4, "Can In4" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge5 = canin_gauge5, "Can In5" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge6 = canin_gauge6, "Can In6" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge7 = canin_gauge7, "Can In7" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge8 = canin_gauge8, "Can In8" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge9 = canin_gauge9, "Can In9" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge10 = canin_gauge10, "Can In10" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge11 = canin_gauge11, "Can In11" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge12 = canin_gauge12, "Can In12" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge13 = canin_gauge13, "Can In13" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge14 = canin_gauge14, "Can In14" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + CanGauge15 = canin_gauge15, "Can In15" "", 0, 1024, -1, -1, 1025, 1025, 0, 0 + #endif + + gaugeCategory = "System Data" + clockGauge = secl, "Clock", "Seconds", 0, 255, 10, 10, 245, 245, 0, 0 + loopGauge = loopsPerSecond,"Main loop speed", "Loops/S" , 0, 70000, -1, 500,1800, 4000, 0, 0 + memoryGauge = freeRAM, "Free memory", "bytes" , 0, 8000, -1, 1000,8000, 1000, 0, 0 +;------------------------------------------------------------------------------- + +[FrontPage] + + + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = tachometer + gauge2 = throttleGauge + gauge3 = pulseWidthGauge + gauge4 = dutyCycleGauge + gauge5 = mapGauge + gauge6 = iatGauge + gauge7 = cltGauge + gauge8 = gammaEnrichGauge + + ;---------------------------------------------------------------------------- + ; Indicators + ; expr off-label on-label, off-bg, off-fg, on-bg, on-fg + indicator = { running }, "Not Running", "Running" white, black, green, black + indicator = { crank }, "Not Cranking", "Cranking", white, black, green, black + indicator = { ase }, "ASE OFF", "ASE ON", white, black, green, black + indicator = { warmup }, "WUE OFF", "WUE ON", white, black, green, black + indicator = { tpsaccaen }, "Accel", "Accel", white, black, green, black + indicator = { tpsaccden }, "Decel", "Decel", white, black, green, black + indicator = { mapaccaen }, "MAP Accel", "MAP Accel", white, black, green, black + indicator = { mapaccden }, "MAP Decel", "MAP Decel", white, black, green, black + indicator = { error }, "No Errors", "ERROR", white, black, green, black + indicator = { (tps > tpsflood) && (rpm < crankRPM) }, "FLOOD OFF", "FLOOD CLEAR", white, black, red, black + indicator = { DFCOOn }, "DFCO OFF", "DFCO On", white, black, red, black + indicator = { launchHard }, "Launch Hard", "Launch Hard", white, black, green, black + indicator = { launchSoft }, "Launch Soft", "Launch Soft", white, black, green, black + indicator = { softlimitOn }, "Soft Limit OFF","Soft Limiter", white, black, red, black + indicator = { hardLimitOn }, "Hard Limit OFF","Hard Limiter", white, black, red, black + indicator = { boostCutOut }, "Ign Cut OFF", "Ign Cut (Boost)", white, black, red, black + indicator = { sync }, "No Sync", "Sync", white, black, green, black + +;------------------------------------------------------------------------------- + +[OutputChannels] + ; The number of bytes MegaTune or TunerStudio should expect as a result + ; of sending the "A" command to Speeduino is determined + ; by the value of ochBlockSize, so be very careful when + ; you change it. + + ochGetCommand = "r\$tsCanId\x30%2o%2c" + ochBlockSize = 81 + + secl = scalar, U08, 0, "sec", 1.000, 0.000 + status1 = scalar, U08, 1, "bits", 1.000, 0.000 + inj1Status = bits, U08, 1, [0:0] + inj2Status = bits, U08, 1, [1:1] + inj3Status = bits, U08, 1, [2:2] + inj4Status = bits, U08, 1, [3:3] + DFCOOn = bits, U08, 1, [4:4] + boostCutFuel = bits, U08, 1, [5:5] + toothLog1Ready = bits, U08, 1, [6:6] + toothLog2Ready = bits, U08, 1, [7:7] + engine = scalar, U08, 2, "bits", 1.000, 0.000 + running = bits, U08, 2, [0:0] + crank = bits, U08, 2, [1:1] + ase = bits, U08, 2, [2:2] + warmup = bits, U08, 2, [3:3] + tpsaccaen = bits, U08, 2, [4:4] + tpsaccden = bits, U08, 2, [5:5] + mapaccaen = bits, U08, 2, [6:6] + mapaccden = bits, U08, 2, [7:7] + dwell = scalar, U08, 3, "ms", 0.100, 0.000 + map = scalar, U16, 4, "kpa", 1.000, 0.000 + iatRaw = scalar, U08, 6, "°C", 1.000, 0.000 + coolantRaw = scalar, U08, 7, "°C", 1.000, 0.000 + batCorrection = scalar, U08, 8, "%", 1.000, 0.000 + batteryVoltage = scalar, U08, 9, "V", 0.100, 0.000 + afr = scalar, U08, 10, "O2", 0.100, 0.000 + egoCorrection = scalar, U08, 11, "%", 1.000, 0.000 + airCorrection = scalar, U08, 12, "%", 1.000, 0.000 + warmupEnrich = scalar, U08, 13, "%", 1.000, 0.000 + rpm = scalar, U16, 14, "rpm", 1.000, 0.000 + accelEnrich = scalar, U08, 16, "%", 2.000, 0.000 + gammaEnrich = scalar, U08, 17, "%", 1.000, 0.000 + veCurr = scalar, U08, 18, "%", 1.000, 0.000 + afrTarget = scalar, U08, 19, "O2", 0.100, 0.000 + pulseWidth = scalar, U16, 20, "ms", 0.001, 0.000 + TPSdot = scalar, U08, 22, "%/s", 10.00, 0.000 + advance = scalar, S08, 23, "deg", 1.000, 0.000 + tps = scalar, U08, 24, "%", 1.000, 0.000 + loopsPerSecond = scalar, U16, 25, "loops", 1.000, 0.000 + freeRAM = scalar, U16, 27, "bytes", 1.000, 0.000 + boostTarget = scalar, U08, 29, "kPa", 2.000, 0.000 + boostDuty = scalar, U08, 30, "%", 1.000, 0.000 + status2 = scalar, U08, 31, "bits", 1.000, 0.000 + launchHard = bits, U08, 31, [0:0] + launchSoft = bits, U08, 31, [1:1] + hardLimitOn = bits, U08, 31, [2:2] + softlimitOn = bits, U08, 31, [3:3] + boostCutSpark = bits, U08, 31, [4:4] + error = bits, U08, 31, [5:5] + idle = bits, U08, 31, [6:6] + sync = bits, U08, 31, [7:7] + rpmDOT = scalar, S16, 32, "rpm/s", 1.000, 0.000 + flex = scalar, U08, 34, "%", 1.000, 0.000 + flexFuelCor = scalar, U08, 35, "%", 1.000, 0.000 + flexIgnCor = scalar, U08, 36, "deg", 1.000, 0.000 + + 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 + testoutputs = scalar, U08, 38, "bits", 1.000, 0.000 + testenabled = bits, U08, 38, [0:0] + testactive = bits, U08, 38, [1:1] + afr2 = scalar, U08, 39, "O2", 0.100, 0.000 + baro = scalar, U08, 40, "kpa", 1.000, 0.000 + canin_gauge0 = scalar, U16, 41, "", 1.000, 0.000 + canin_gauge1 = scalar, U16, 43, "", 1.000, 0.000 + canin_gauge2 = scalar, U16, 45, "", 1.000, 0.000 + canin_gauge3 = scalar, U16, 47, "", 1.000, 0.000 + canin_gauge4 = scalar, U16, 49, "", 1.000, 0.000 + canin_gauge5 = scalar, U16, 51, "", 1.000, 0.000 + canin_gauge6 = scalar, U16, 53, "", 1.000, 0.000 + canin_gauge7 = scalar, U16, 55, "", 1.000, 0.000 + canin_gauge8 = scalar, U16, 57, "", 1.000, 0.000 + canin_gauge9 = scalar, U16, 59, "", 1.000, 0.000 + canin_gauge10 = scalar, U16, 61, "", 1.000, 0.000 + canin_gauge11 = scalar, U16, 63, "", 1.000, 0.000 + canin_gauge12 = scalar, U16, 65, "", 1.000, 0.000 + canin_gauge13 = scalar, U16, 67, "", 1.000, 0.000 + canin_gauge14 = scalar, U16, 69, "", 1.000, 0.000 + canin_gauge15 = scalar, U16, 71, "", 1.000, 0.000 + tpsADC = scalar, U08, 73, "ADC",1.000, 0.000 + errors = scalar, U08, 74, "bits", 1.000, 0.000 + errorNum = bits, U08, 74, [0:1] + currentError = bits, U08, 74, [2:7] + pulseWidth2 = scalar, U16, 75, "ms", 0.001, 0.000 + pulseWidth3 = scalar, U16, 77, "ms", 0.001, 0.000 + pulseWidth4 = scalar, U16, 79, "ms", 0.001, 0.000 + +#if CELSIUS + coolant = { coolantRaw - 40 } ; Temperature readings are offset by 40 to allow for negatives + iat = { iatRaw - 40 } ; Temperature readings are offset by 40 to allow for negatives +#else + coolant = { (coolantRaw - 40) * 1.8 + 32 } ;Convert C to F (Offset by 40) + iat = { (iatRaw - 40) * 1.8 + 32 } ;Convert C to F (Offset by 40) +#endif + time = { timeNow } + seconds = { secl } + + throttle = { tps }, "%" + + cycleTime = { rpm ? ( 60000.0 / rpm ) : 0 } + cycleMultiplier = { injLayout == 3 ? 2 : 1 } + dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) ) : 0 } + + boostCutOut = { boostCutFuel || boostCutSpark } + lambda = { afr / stoich } + MAPxRPM = { rpm * map } + + ;Manifold pressure in weirdo units + map_bar = { (map - baro) / 101.33 } + map_psi = { (map - baro) * 0.145038 } + map_inhg = { (baro - map) * 0.2953007 } ;in-Hg + map_vacboost = { map < baro ? -map_inhg : map_psi } + +;------------------------------------------------------------------------------- + +[Datalog] + ; Full datalog. + ; + ; Default user-defined log emulates the full datalog. + ; + ; The entries are saved in the datalog file in the order in + ; which they appear in the list below. + ; + ; Channel - Case sensitive name of output channel to be logged. + ; Label - String written to header line of log. Be careful + ; about changing these, as programs like MSLVV and + ; MSTweak key off specific column names. + ; Type - Data type of output, converted before writing. + ; Format - C-style output format of data. + ; + ; Channel Label Type Format + ; -------------- ---------- ----- ------ + entry = time, "Time", float, "%.3f" + entry = secl, "SecL", int, "%d" + entry = rpm, "RPM", int, "%d" + entry = map, "MAP", int, "%d" + entry = MAPxRPM, "MAPxRPM", int, "%d" + entry = tps, "TPS", int, "%d" + entry = afr, "O2", float, "%.3f" + entry = lambda, "Lambda", float, "%.3f" + entry = iat, "IAT", int, "%d" + entry = coolant, "CLT", int, "%d" + entry = engine, "Engine", int, "%d" + entry = DFCOOn, "DFCO", int, "%d" + entry = egoCorrection, "Gego", int, "%d" + entry = airCorrection, "Gair", int, "%d" + entry = batCorrection, "Gbattery", int, "%d" + entry = warmupEnrich, "Gwarm", int, "%d" + ;entry = baroCorrection, "Gbaro", int, "%d" + entry = gammaEnrich, "Gammae", int, "%d" + entry = accelEnrich, "Accel Enrich",int, "%d" + entry = veCurr, "VE", int, "%d" + entry = pulseWidth, "PW", float, "%.1f" + entry = afrTarget, "AFR Target", float, "%.3f" + entry = pulseWidth, "PW2", float, "%.1f" + entry = dutyCycle, "DutyCycle1", float, "%.1f" + entry = dutyCycle, "DutyCycle2", float, "%.1f" + entry = TPSdot, "TPS DOT", int, "%d" + entry = advance, "Advance", int, "%d" + entry = dwell, "Dwell", float, "%.1f" + entry = batteryVoltage, "Battery V", float, "%.1f" + entry = rpmDOT, "rpm/s", int, "%d" + entry = flex, "Eth %", int, "%d", { flexEnabled } + entry = errorNum, "Error #", int, "%d" + entry = currentError, "Error ID", int, "%d" + entry = map_psi, "Boost PSI", float, "%.1f" + entry = boostTarget, "Boost Target",int, "%d", { boostEnabled } + entry = boostDuty, "Boost Duty", int, "%d", { boostEnabled } + entry = boostCutOut , "Boost cut", int, "%d" + entry = launchHard , "Launch Hard", int, "%d" + entry = hardLimitOn , "Hard Limiter",int, "%d" + entry = idleLoad, "IAC value", int, "%d" + entry = baro, "Baro Pressure",int, "%d" + +#if CAN_COMMANDS + entry = canin_gauge0, "CanIn CH0", int, "%d" + entry = canin_gauge1, "CanIn CH1", int, "%d" + entry = canin_gauge2, "CanIn CH2", int, "%d" + entry = canin_gauge3, "CanIn CH3", int, "%d" + entry = canin_gauge4, "CanIn CH4", int, "%d" + entry = canin_gauge5, "CanIn CH5", int, "%d" + entry = canin_gauge6, "CanIn CH6", int, "%d" + entry = canin_gauge7, "CanIn CH7", int, "%d" +#endif + + +[LoggerDefinition] + ; valid logger types: composite, tooth, trigger, csv + + ;loggerDef = uniqueName, Display Name, type + loggerDef = tooth, "Tooth Logger", tooth + ;dataReadCommand = "r\\x00\\xf4\\x00\\x00\\x04\\x00" ; standard TS command format + dataReadCommand = "T" ; Basic TS command format + dataReadTimeout = 15000 ; time in ms + dataReadyCondition = { toothLog1Ready } + dataLength = 256 ; in bytes, including headers, footers and data (not used) + + ;recordDef = headerLen. footerLen, recordLen + recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes + + ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition + recordField = toothGap, "ToothTime", 0, 16, 1.0, "uS" + + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTable1Tbl + addTool = afrTableGenerator, "AFR Table Generator", afrTable1Tbl + + +[VeAnalyze] + ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition + veAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection + lambdaTargetTables = afrTable1Tbl, afrTSCustom, + filter = std_xAxisMin ; Auto build with appropriate axis channels + ;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true + filter = std_xAxisMax ; Auto build with appropriate axis channels + filter = std_yAxisMin ; Auto build with appropriate axis channels + filter = std_yAxisMax ; Auto build with appropriate axis channels + filter = std_DeadLambda ; Auto build + +#if CELSIUS + filter = minCltFilter, "Minimum CLT", coolant, < , 71, , true +#else + filter = minCltFilter, "Minimum CLT", coolant, < , 160, , true +#endif + filter = accelFilter, "Accel Flag" , engine, & , 16, , false + filter = aseFilter, "ASE Flag" , engine, & , 4, , false + filter = overrunFilter, "Overrun" , pulseWidth, = , 0, , false + filter = std_Custom ; Standard Custom Expression Filter. + +;------------- WUE VEAL not currently working ---------------- +;[WueAnalyze] + ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition + ; wueAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection +; wueAnalyzeMap = afrTable1Tbl, warmup_afr_curve, warmup_curve, afr, coolant, warmupEnrich ;warmup_afr_curve, +; lambdaTargetTables = afrTable1Tbl, afrTSCustom, + ;filter = std_xAxisMin ; Auto build with appropriate axis channels + ;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true + ;filter = std_xAxisMax ; Auto build with appropriate axis channels + ;filter = std_yAxisMin ; Auto build with appropriate axis channels + ;filter = std_yAxisMax ; Auto build with appropriate axis channels + ;filter = std_DeadLambda ; Auto build + +; filter = maxTPSFilter, "High Throttle", tps, < , 15, , true +;------------- WUE VEAL not currently working ---------------- diff --git a/reference/wiki/accessories/boost_settings.png b/reference/wiki/accessories/boost_settings.PNG similarity index 100% rename from reference/wiki/accessories/boost_settings.png rename to reference/wiki/accessories/boost_settings.PNG diff --git a/reference/wiki/decoders/36-2-2-2.png b/reference/wiki/decoders/36-2-2-2.png new file mode 100644 index 00000000..30a4e796 Binary files /dev/null and b/reference/wiki/decoders/36-2-2-2.png differ diff --git a/reference/wiki/decoders/miata9905.png b/reference/wiki/decoders/miata9905.png new file mode 100644 index 00000000..018ebcff Binary files /dev/null and b/reference/wiki/decoders/miata9905.png differ diff --git a/speeduino/cancomms.h b/speeduino/cancomms.h index 3f2ec561..23e1fd41 100644 --- a/speeduino/cancomms.h +++ b/speeduino/cancomms.h @@ -30,4 +30,4 @@ void canCommand();//This is the heart of the Command Line Interpeter. All that void sendcanValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum); void sendCancommand(uint8_t cmdtype , uint16_t canadddress, uint8_t candata1, uint8_t candata2, uint16_t sourcecanAddress); -#endif // CANCOMMS_H +#endif // CANCOMMS_H diff --git a/speeduino/comms.ino b/speeduino/comms.ino index c63706fe..f92d58f9 100644 --- a/speeduino/comms.ino +++ b/speeduino/comms.ino @@ -132,7 +132,7 @@ void command() break; case 'Q': // send code version - Serial.print("speeduino 201712"); + Serial.print("speeduino 201801-dev"); break; case 'r': //New format for the optimised OutputChannels @@ -162,7 +162,7 @@ void command() break; case 'S': // send code version - Serial.print("Speeduino 2017.12"); + Serial.print("Speeduino 2018.1-dev"); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; diff --git a/speeduino/decoders.h b/speeduino/decoders.h index 5ece0970..9e571645 100644 --- a/speeduino/decoders.h +++ b/speeduino/decoders.h @@ -43,6 +43,10 @@ volatile unsigned long toothSystemLastToothTime = 0; //As below, but used for de volatile unsigned long toothLastToothTime = 0; //The time (micros()) that the last tooth was registered volatile unsigned long toothLastSecToothTime = 0; //The time (micros()) that the last tooth was registered on the secondary input volatile unsigned long toothLastMinusOneToothTime = 0; //The time (micros()) that the tooth before the last tooth was registered +#ifndef SMALL_FLASH_MODE +volatile unsigned long toothLastMinusOneSecToothTime = 0; //The time (micros()) that the tooth before the last tooth was registered on secondary input +volatile unsigned long targetGap2; +#endif volatile unsigned long toothOneTime = 0; //The time (micros()) that tooth 1 last triggered volatile unsigned long toothOneMinusOneTime = 0; //The 2nd to last time (micros()) that tooth 1 last triggered volatile bool revolutionOne = 0; // For sequential operation, this tracks whether the current revolution is 1 or 2 (not 1) diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index abe970d1..b5ef7637 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -128,6 +128,7 @@ void triggerSetup_missingTooth() if(configPage2.TrigSpeed == 1) { triggerToothAngle = 720 / configPage2.triggerTeeth; } //Account for cam speed missing tooth triggerActualTeeth = configPage2.triggerTeeth - configPage2.triggerMissingTeeth; //The number of physical teeth on the wheel. Doing this here saves us a calculation each time in the interrupt triggerFilterTime = (int)(1000000 / (MAX_RPM / 60 * configPage2.triggerTeeth)); //Trigger filter time is the shortest possible time (in uS) that there can be between crank teeth (ie at max RPM). Any pulses that occur faster than this time will be disgarded as noise + triggerSecFilterTime = (int)((trigPatternSec == true) ? 1000000 * 60 / MAX_RPM / 4 / 2 : 1000000 * 60 / MAX_RPM / 2 / 2); //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) secondDerivEnabled = false; decoderIsSequential = false; checkSyncToothCount = (configPage2.triggerTeeth) >> 1; //50% of the total teeth. @@ -197,8 +198,39 @@ void triggerPri_missingTooth() void triggerSec_missingTooth() { - //TODO: This should really have filtering enabled on the secondary input. - revolutionOne = 1; + curTime2 = micros(); + curGap2 = curTime2 - toothLastSecToothTime; + if( (toothLastSecToothTime == 0) +#ifndef SMALL_FLASH_MODE + || (toothLastMinusOneSecToothTime == 0 ) +#endif + ) { curGap2 = 0; } + if ( curGap2 >= triggerSecFilterTime ) + { +#ifndef SMALL_FLASH_MODE + if ( trigPatternSec == true ) + { + targetGap2 = (3 * (toothLastSecToothTime - toothLastMinusOneSecToothTime)) >> 1; //If the time between the current tooth and the last is greater than 1.5x the time between the last tooth and the tooth before that, we make the assertion that we must be at the first tooth after the gap + toothLastMinusOneSecToothTime = toothLastSecToothTime; + if ( ( curGap2 >= targetGap2 ) || ( secondaryToothCount > 3 ) ) + { + secondaryToothCount = 1; + revolutionOne = 1; //Sequential revolution reset + triggerSecFilterTime = 0; //This is used to prevent a condition where serious intermitent signals (Eg someone furiously plugging the sensor wire in and out) can leave the filter in an unrecoverable state + } + else + { + triggerSecFilterTime = curGap2 >> 2; //Set filter at 25% of the current speed. Filter can only be recalc'd for the regular teeth, not the missing one. + secondaryToothCount++; + } + } + else +#endif + { + revolutionOne = 1; //Sequential revolution reset + } + toothLastSecToothTime = curTime2; + } //Trigger filter } uint16_t getRPM_missingTooth() diff --git a/speeduino/globals.h b/speeduino/globals.h index adef70ff..7f4e52eb 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -430,7 +430,7 @@ struct config2 { byte useResync : 1; byte sparkDur; //Spark duration in ms * 10 - byte unused4_8; + bool trigPatternSec; //Mode for Missing tooth secondary trigger. Either single tooth cam wheel or 4-1 byte unused4_9; byte unused4_10; byte StgCycles; //The number of initial cycles before the ignition should fire when first cranking @@ -729,5 +729,7 @@ extern byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; extern byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; extern byte o2CalibrationTable[CALIBRATION_TABLE_SIZE]; +// alias(es) for ease of code reading!! +bool& trigPatternSec = configPage2.trigPatternSec; #endif // GLOBALS_H diff --git a/speeduino/timers.ino b/speeduino/timers.ino index b966396c..6118aaa6 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -219,4 +219,4 @@ void oneMSInterval() //Most ARM chips can simply call a function TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow. TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag #endif -} +} diff --git a/speeduino/utils.ino b/speeduino/utils.ino index 1c101d76..23a22f35 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -146,7 +146,7 @@ void setPinMapping(byte boardID) pinStepperStep = 17; //Step pin for DRV8825 driver pinStepperEnable = 26; //Enable pin for DRV8825 pinFan = A13; //Pin for the fan output - pinLaunch = 12; //Can be overwritten below + pinLaunch = 51; //Can be overwritten below pinFlex = 2; // Flex sensor (Must be external interrupt enabled) #if defined(CORE_TEENSY) @@ -194,7 +194,7 @@ void setPinMapping(byte boardID) pinStepperStep = 17; //Step pin for DRV8825 driver pinStepperEnable = 24; //Enable pin for DRV8825 pinFan = 47; //Pin for the fan output (Goes to ULN2803) - pinLaunch = 12; //Can be overwritten below + pinLaunch = 51; //Can be overwritten below pinFlex = 2; // Flex sensor (Must be external interrupt enabled) #if defined(CORE_TEENSY)