From 08a542109034314d14774c30260450090c57b00c Mon Sep 17 00:00:00 2001 From: Andrey G Date: Sat, 6 Feb 2021 21:50:34 +0300 Subject: [PATCH] Add subaru eg33 (#2294) * engine: Subaru SVX EG33 engine configuration Not tested yet. Just basic settings and placeholder * board: add Dron_Gus's Subaru EG33 p'n'p board * board: subaru eg33: linker script: stack, bss and heap to ram0 * board: subaru eg33: add mapping.yaml * board: subaru eg33: scripts for autogenerated * board: subaru eg33: fix DMA conflict (ADC1 vs SPI5) * board: subaru eg33: enable ADC3 * board: subaru eg33: Autogenerated * board: subaru eg33: disable fsio control of Main Relay Default MAIN_RELAY_LOGIC cause error during parsing * board: subaru eg33: configuration hack to fix usbconsole.c * gen_config: generate config for Subaru SVX board too --- .../config/boards/subaru_eg33/STM32F76xxI.ld | 136 + firmware/config/boards/subaru_eg33/board.c | 298 + firmware/config/boards/subaru_eg33/board.h | 49 + firmware/config/boards/subaru_eg33/board.mk | 37 + .../subaru_eg33/board_configuration.cpp | 246 + firmware/config/boards/subaru_eg33/board_io.h | 991 ++++ firmware/config/boards/subaru_eg33/config.mk | 2 + .../controllers/algo/auto_generated_enums.cpp | 1531 +++++ .../controllers/algo/auto_generated_enums.h | 59 + ...ngine_configuration_generated_structures.h | 3806 +++++++++++++ .../controllers/algo/rusefi_generated.h | 1786 ++++++ .../boards/subaru_eg33/config/gen_config.sh | 49 + .../subaru_eg33/config/gen_enum_to_string.sh | 15 + .../config/tunerstudio/subaru_eg33_prefix.txt | 4 + .../config/boards/subaru_eg33/efifeatures.h | 145 + firmware/config/boards/subaru_eg33/halconf.h | 41 + firmware/config/boards/subaru_eg33/make.sh | 15 + .../config/boards/subaru_eg33/mapping.yaml | 92 + firmware/config/boards/subaru_eg33/mcuconf.h | 94 + .../config/boards/subaru_eg33/prepend.txt | 18 + firmware/config/boards/subaru_eg33/readme.txt | 4 + .../boards/subaru_eg33/rusefi_hw_enums.h | 294 + firmware/config/engines/subaru.cpp | 57 + firmware/config/engines/subaru.h | 1 + .../controllers/algo/engine_configuration.cpp | 5 + firmware/controllers/algo/rusefi_enums.h | 1 + .../generated/signature_subaru_eg33_f7.h | 8 + firmware/gen_config.sh | 2 +- firmware/tunerstudio/generated/cache.zip | Bin 1070748 -> 1144340 bytes .../generated/rusefi_subaru_eg33_f7.ini | 4942 +++++++++++++++++ .../generated/subaru_eg33_prefix.txt | 4 + 31 files changed, 14731 insertions(+), 1 deletion(-) create mode 100644 firmware/config/boards/subaru_eg33/STM32F76xxI.ld create mode 100644 firmware/config/boards/subaru_eg33/board.c create mode 100644 firmware/config/boards/subaru_eg33/board.h create mode 100644 firmware/config/boards/subaru_eg33/board.mk create mode 100644 firmware/config/boards/subaru_eg33/board_configuration.cpp create mode 100644 firmware/config/boards/subaru_eg33/board_io.h create mode 100644 firmware/config/boards/subaru_eg33/config.mk create mode 100644 firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp create mode 100644 firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h create mode 100644 firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h create mode 100644 firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h create mode 100755 firmware/config/boards/subaru_eg33/config/gen_config.sh create mode 100755 firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh create mode 100644 firmware/config/boards/subaru_eg33/config/tunerstudio/subaru_eg33_prefix.txt create mode 100644 firmware/config/boards/subaru_eg33/efifeatures.h create mode 100644 firmware/config/boards/subaru_eg33/halconf.h create mode 100755 firmware/config/boards/subaru_eg33/make.sh create mode 100644 firmware/config/boards/subaru_eg33/mapping.yaml create mode 100644 firmware/config/boards/subaru_eg33/mcuconf.h create mode 100644 firmware/config/boards/subaru_eg33/prepend.txt create mode 100644 firmware/config/boards/subaru_eg33/readme.txt create mode 100644 firmware/config/boards/subaru_eg33/rusefi_hw_enums.h create mode 100644 firmware/controllers/generated/signature_subaru_eg33_f7.h create mode 100644 firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini create mode 100644 firmware/tunerstudio/generated/subaru_eg33_prefix.txt diff --git a/firmware/config/boards/subaru_eg33/STM32F76xxI.ld b/firmware/config/boards/subaru_eg33/STM32F76xxI.ld new file mode 100644 index 0000000000..a239c4fe4a --- /dev/null +++ b/firmware/config/boards/subaru_eg33/STM32F76xxI.ld @@ -0,0 +1,136 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +/* + * STM32F76xxI generic setup. + * + * RAM0 - Data, Heap. + * RAM3 - Main Stack, Process Stack, BSS, NOCACHE, ETH. + * + * Notes: + * BSS is placed in DTCM RAM in order to simplify DMA buffers management. + */ +MEMORY +{ + flash0 (rx) : org = 0x08000000, len = 2M /* Flash as AXIM (writable) */ + flash1 (rx) : org = 0x00200000, len = 2M /* Flash as ITCM */ + flash2 (rx) : org = 0x00000000, len = 0 + flash3 (rx) : org = 0x00000000, len = 0 + flash4 (rx) : org = 0x00000000, len = 0 + flash5 (rx) : org = 0x00000000, len = 0 + flash6 (rx) : org = 0x00000000, len = 0 + flash7 (rx) : org = 0x00000000, len = 0 + ram0 (wx) : org = 0x20020000, len = 384k /* SRAM1 + SRAM2 */ + ram1 (wx) : org = 0x20020000, len = 368k /* SRAM1 */ + ram2 (wx) : org = 0x2007C000, len = 16k /* SRAM2 */ + ram3 (wx) : org = 0x20000000, len = 128k /* DTCM-RAM */ + ram4 (wx) : org = 0x00000000, len = 16k /* ITCM-RAM */ + ram5 (wx) : org = 0x40024000, len = 4k /* BCKP SRAM */ + ram6 (wx) : org = 0x00000000, len = 0 + ram7 (wx) : org = 0x00000000, len = 0 +} + +/* For each data/text section two region are defined, a virtual region + and a load region (_LMA suffix).*/ + +/* Flash region to be used for exception vectors.*/ +REGION_ALIAS("VECTORS_FLASH", flash1); +REGION_ALIAS("VECTORS_FLASH_LMA", flash0); + +/* Flash region to be used for constructors and destructors.*/ +REGION_ALIAS("XTORS_FLASH", flash1); +REGION_ALIAS("XTORS_FLASH_LMA", flash0); + +/* Flash region to be used for code text.*/ +REGION_ALIAS("TEXT_FLASH", flash1); +REGION_ALIAS("TEXT_FLASH_LMA", flash0); + +/* Flash region to be used for read only data.*/ +REGION_ALIAS("RODATA_FLASH", flash0); +REGION_ALIAS("RODATA_FLASH_LMA", flash0); + +/* Flash region to be used for various.*/ +REGION_ALIAS("VARIOUS_FLASH", flash1); +REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); + +/* Flash region to be used for RAM(n) initialization data.*/ +REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); + +/* RAM region to be used for Main stack. This stack accommodates the processing + of all exceptions and interrupts.*/ +REGION_ALIAS("MAIN_STACK_RAM", ram0); + +/* RAM region to be used for the process stack. This is the stack used by + the main() function.*/ +REGION_ALIAS("PROCESS_STACK_RAM", ram0); + +/* RAM region to be used for data segment.*/ +REGION_ALIAS("DATA_RAM", ram0); +REGION_ALIAS("DATA_RAM_LMA", flash0); + +/* RAM region to be used for BSS segment.*/ +REGION_ALIAS("BSS_RAM", ram0); + +/* RAM region to be used for the default heap.*/ +REGION_ALIAS("HEAP_RAM", ram0); + +/* Stack rules inclusion.*/ +INCLUDE rules_stacks.ld + +/*===========================================================================*/ +/* Custom sections for STM32F7xx. */ +/*===========================================================================*/ + +/* RAM region to be used for nocache segment.*/ +REGION_ALIAS("NOCACHE_RAM", ram3); + +/* RAM region to be used for eth segment.*/ +REGION_ALIAS("ETH_RAM", ram3); + +SECTIONS +{ + /* Special section for non cache-able areas.*/ + .nocache (NOLOAD) : ALIGN(4) + { + __nocache_base__ = .; + *(.nocache) + *(.nocache.*) + *(.bss.__nocache_*) + . = ALIGN(4); + __nocache_end__ = .; + } > NOCACHE_RAM + + /* Special section for Ethernet DMA non cache-able areas.*/ + .eth (NOLOAD) : ALIGN(4) + { + __eth_base__ = .; + *(.eth) + *(.eth.*) + *(.bss.__eth_*) + . = ALIGN(4); + __eth_end__ = .; + } > ETH_RAM +} + +/* Code rules inclusion.*/ +INCLUDE rules_code.ld + +/* Data rules inclusion.*/ +INCLUDE rules_data.ld + +/* Memory rules inclusion.*/ +INCLUDE rules_memory.ld + diff --git a/firmware/config/boards/subaru_eg33/board.c b/firmware/config/boards/subaru_eg33/board.c new file mode 100644 index 0000000000..4a648bdd94 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/board.c @@ -0,0 +1,298 @@ +/** + * @file boards/subaru_eg33/board.c + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#include "hal.h" +#include "stm32_gpio.h" +#include "efilib.h" +#include "rusefi_hw_enums.h" + +#include "board_io.h" + +#include "drivers/gpio/mc33810.h" + +/* drivers */ + +/*==========================================================================*/ +/* Driver local definitions. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver exported variables. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver local variables and types. */ +/*==========================================================================*/ + +/** + * @brief Type of STM32 GPIO port setup. + */ +typedef struct { + uint32_t moder; + uint32_t otyper; + uint32_t ospeedr; + uint32_t pupdr; + uint32_t odr; + uint32_t afrl; + uint32_t afrh; +} gpio_setup_t; + +/** + * @brief Type of STM32 GPIO initialization data. + */ +typedef struct { + gpio_setup_t PAData; + gpio_setup_t PBData; + gpio_setup_t PCData; + gpio_setup_t PDData; + gpio_setup_t PEData; + gpio_setup_t PFData; + gpio_setup_t PGData; + gpio_setup_t PHData; + gpio_setup_t PIData; +} gpio_config_t; + +/** + * @brief STM32 GPIO static initialization data. + */ +static const gpio_config_t gpio_default_config = { + {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, + VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, + {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, + VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, + {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, + VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, + {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, + VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, + {VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR, + VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH}, + {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, + VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH}, + {VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR, + VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH}, + {VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR, + VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH}, + {VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR, + VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}, +}; + +/*==========================================================================*/ +/* Driver local functions. */ +/*==========================================================================*/ + +static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) { + + gpiop->OTYPER = config->otyper; + gpiop->OSPEEDR = config->ospeedr; + gpiop->PUPDR = config->pupdr; + gpiop->ODR = config->odr; + gpiop->AFRL = config->afrl; + gpiop->AFRH = config->afrh; + gpiop->MODER = config->moder; +} + +static void stm32_gpio_init(void) { + + /* Enabling GPIO-related clocks, the mask comes from the + * registry header file.*/ + rccResetAHB1(STM32_GPIO_EN_MASK); + rccEnableAHB1(STM32_GPIO_EN_MASK, true); + + /* Initializing all the defined GPIO ports.*/ + gpio_init(GPIOA, &gpio_default_config.PAData); + gpio_init(GPIOB, &gpio_default_config.PBData); + gpio_init(GPIOC, &gpio_default_config.PCData); + gpio_init(GPIOD, &gpio_default_config.PDData); + gpio_init(GPIOE, &gpio_default_config.PEData); + gpio_init(GPIOF, &gpio_default_config.PFData); + gpio_init(GPIOG, &gpio_default_config.PGData); + gpio_init(GPIOH, &gpio_default_config.PHData); + gpio_init(GPIOI, &gpio_default_config.PIData); +} + +/*==========================================================================*/ +/* Driver interrupt handlers. */ +/*==========================================================================*/ + +/*==========================================================================*/ +/* Driver exported functions. */ +/*==========================================================================*/ + +/** + * @brief Early initialization code. + * @details GPIO ports and system clocks are initialized before everything + * else. + */ +void __early_init(void) +{ + /* allow debug in all low-power modes */ + DBGMCU->CR |= DBGMCU_CR_DBG_SLEEP | DBGMCU_CR_DBG_STOP | DBGMCU_CR_DBG_STANDBY; + + stm32_gpio_init(); + stm32_clock_init(); +} + +#if HAL_USE_SDC || defined(__DOXYGEN__) +/** + * @brief SDC card detection. + */ +bool sdc_lld_is_card_inserted(SDCDriver *sdcp) +{ + UNUSED(sdcp); + /* TODO: Fill the implementation.*/ + return true; +} + +/** + * @brief SDC card write protection detection. + */ +bool sdc_lld_is_write_protected(SDCDriver *sdcp) +{ + UNUSED(sdcp); + /* TODO: Fill the implementation.*/ + return false; +} +#endif /* HAL_USE_SDC */ + +#if HAL_USE_MMC_SPI || defined(__DOXYGEN__) +/** + * @brief MMC_SPI card detection. + */ +bool mmc_lld_is_card_inserted(MMCDriver *mmcp) +{ + UNUSED(mmcp); + /* TODO: Fill the implementation.*/ + return true; +} + +/** + * @brief MMC_SPI card write protection detection. + */ +bool mmc_lld_is_write_protected(MMCDriver *mmcp) +{ + UNUSED(mmcp); + /* TODO: Fill the implementation.*/ + return false; +} +#endif + +/** + * @brief Board-specific ADC channel configuration code overrides. + * @todo Add your board-specific code, if any. + */ +void setAdcChannelOverrides(void) { +} + +#define STATUS_LED_PIN 8 +#define STATUS_LED_PORT GPIOG + +void BLIIINK(int t) { + int i, j; + palSetPadMode(STATUS_LED_PORT, STATUS_LED_PIN, PAL_MODE_OUTPUT_PUSHPULL); + //while (true) { + for (j = 0; j < 2; j++) { + palClearPad(STATUS_LED_PORT, STATUS_LED_PIN); + for (i = 0; i < 2 * t; i++) { + palTogglePad(STATUS_LED_PORT, STATUS_LED_PIN); + chThdSleepMilliseconds(250); + } + chThdSleepMilliseconds(1000); + } +} + +static const struct mc33810_config mc33810_odd = { + .spi_bus = &SPID5, + .spi_config = { + .circular = false, + .end_cb = NULL, + .ssport = GPIOF, + .sspad = 1, + .cr1 = + //SPI_CR1_16BIT_MODE | + SPI_CR1_SSM | + SPI_CR1_SSI | + ((3 << SPI_CR1_BR_Pos) & SPI_CR1_BR) | /* div = 16 */ + SPI_CR1_MSTR | + /* SPI_CR1_CPOL | */ // = 0 + SPI_CR1_CPHA | // = 1 + 0, + .cr2 = //SPI_CR2_16BIT_MODE | + SPI_CR2_DS_3 | SPI_CR2_DS_2 | SPI_CR2_DS_1 | SPI_CR2_DS_0 + }, + .direct_io = { + /* injector drivers */ + [0] = {.port = GPIOI, .pad = 6}, /* INJ 1 */ + [1] = {.port = GPIOI, .pad = 5}, /* INJ 3 */ + [2] = {.port = GPIOI, .pad = 4}, /* INJ 5 */ + [3] = {.port = GPIOB, .pad = 9}, /* INJ 7 */ + /* ignition pre-dirvers */ + [4] = {.port = GPIOB, .pad = 3}, /* IGN 1 */ + [5] = {.port = GPIOB, .pad = 4}, /* IGN 3 */ + [6] = {.port = GPIOB, .pad = 5}, /* IGN 7 */ + [7] = {.port = GPIOB, .pad = 8}, /* IGN 5 */ + }, + /* en shared between two chips */ + .en = {.port = GPIOI, .pad = 7} +}; + +static const struct mc33810_config mc33810_even = { + .spi_bus = &SPID5, + .spi_config = { + .circular = false, + .end_cb = NULL, + .ssport = GPIOF, + .sspad = 2, + .cr1 = + //SPI_CR1_16BIT_MODE | + SPI_CR1_SSM | + SPI_CR1_SSI | + ((3 << SPI_CR1_BR_Pos) & SPI_CR1_BR) | /* div = 16 */ + SPI_CR1_MSTR | + /* SPI_CR1_CPOL | */ // = 0 + SPI_CR1_CPHA | // = 1 + 0, + .cr2 = //SPI_CR2_16BIT_MODE | + SPI_CR2_DS_3 | SPI_CR2_DS_2 | SPI_CR2_DS_1 | SPI_CR2_DS_0 + }, + .direct_io = { + /* injector drivers */ + [0] = {.port = GPIOE, .pad = 3}, /* INJ 2 */ + [1] = {.port = GPIOE, .pad = 4}, /* INJ 4 */ + [2] = {.port = GPIOE, .pad = 5}, /* INJ 6 */ + [3] = {.port = GPIOE, .pad = 6}, /* INJ 8 */ + /* ignition pre-dirvers */ + [4] = {.port = GPIOC, .pad = 14}, /* IGN 2 */ + [5] = {.port = GPIOC, .pad = 13}, /* IGN 4 */ + [6] = {.port = GPIOC, .pad = 15}, /* IGN 6 */ + [7] = {.port = GPIOI, .pad = 9}, /* IGN 8 */ + }, + /* en shared between two chips */ + //.en = {.port = GPIOI, .pad = 7} +}; + +static void board_init_ext_gpios(void) +{ + int ret; + + ret = mc33810_add(MC33810_0_OUT_0, 0, &mc33810_odd); + if (ret < 0) { + /* error */ + } + ret = mc33810_add(MC33810_1_OUT_0, 1, &mc33810_even); + if (ret < 0) { + /* error */ + } +} + +/** + * @brief Board-specific initialization code. + * @todo Add your board-specific code, if any. + */ +void boardInit(void) +{ + board_init_ext_gpios(); +} diff --git a/firmware/config/boards/subaru_eg33/board.h b/firmware/config/boards/subaru_eg33/board.h new file mode 100644 index 0000000000..005fa73fee --- /dev/null +++ b/firmware/config/boards/subaru_eg33/board.h @@ -0,0 +1,49 @@ +/** + * @file boards/subaru_eg33/board.c + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#ifndef BOARD_H +#define BOARD_H + +/* + * Board identifier. + */ +#define BOARD_NAME "Subaru EG33/STM32F765 for RusEFI" + +#define EFI_USB_AF 10U +//#define EFI_USB_SERIAL_ID GPIOA_10 +#define EFI_USB_SERIAL_DM GPIOA_11 +#define EFI_USB_SERIAL_DP GPIOA_12 + +/* + * Board oscillators-related settings. + * NOTE: LSE not fitted. + */ +#if !defined(STM32_LSECLK) +#define STM32_LSECLK 32768U +#endif + +#define STM32_LSEDRV (3U << 3U) + +#if !defined(STM32_HSECLK) +#define STM32_HSECLK 25000000U +#endif + +/* + * Board voltages. + * Required for performance limits calculation. + */ +#define STM32_VDD 330U + +/* + * MCU type as defined in the ST header. + * this declaration for stm32_registry.h + */ +#ifndef STM32F765xx +#define STM32F765xx +#endif + +#endif /* BOARD_H */ diff --git a/firmware/config/boards/subaru_eg33/board.mk b/firmware/config/boards/subaru_eg33/board.mk new file mode 100644 index 0000000000..6e66e53210 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/board.mk @@ -0,0 +1,37 @@ +BOARD_DIR = $(PROJECT_DIR)/config/boards/$(PROJECT_BOARD) + +# List of all the board related files. +BOARDSRC = $(BOARD_DIR)/board.c +BOARDCPPSRC = $(BOARD_DIR)/board_configuration.cpp + +# Required include directories +BOARDINC = $(BOARD_DIR) +BOARDINC += $(BOARD_DIR)/config/controllers/algo + +# Override LD script +ifeq ($(USE_BOOTLOADER),yes) + # include Prometheus bootloader code + BOOTLOADERINC = $(PROJECT_DIR)/bootloader/subaru_eg33 +endif + +LDSCRIPT = $(BOARD_DIR)/STM32F76xxI.ld + +#FIX THIS +CONFIGPATH = $(PROJECT_DIR)/config/stm32f7ems + +CONFDIR = config/stm32f7ems + +#LED +LED_CRITICAL_ERROR_BRAIN_PIN = -DLED_CRITICAL_ERROR_BRAIN_PIN=GPIOG_7 + +# We are running on Subaru EG33 hardware! +DDEFS += -DHW_SUBARU_EG33=1 + +# Override DEFAULT_ENGINE_TYPE +# Fix +DDEFS += -DDEFAULT_ENGINE_TYPE=SUBARUEG33_DEFAULTS -DSTM32F765xx $(LED_CRITICAL_ERROR_BRAIN_PIN) + +# Shared variables +ALLCSRC += $(BOARDSRC) +ALLCPPSRC += $(BOARDCPPSRC) +ALLINC += $(BOARDINC) diff --git a/firmware/config/boards/subaru_eg33/board_configuration.cpp b/firmware/config/boards/subaru_eg33/board_configuration.cpp new file mode 100644 index 0000000000..92b2e3a522 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/board_configuration.cpp @@ -0,0 +1,246 @@ +/** + * @file boards/subaru_eg33/board_configuration.h + * + * @brief In this file we can override engine_configuration.cpp. + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#include "global.h" +#include "engine.h" +#include "engine_math.h" +#include "allsensors.h" +#include "fsio_impl.h" +#include "engine_configuration.h" +#include "smart_gpio.h" + +EXTERN_ENGINE; + +void setPinConfigurationOverrides(void) { + +} + +void setSerialConfigurationOverrides(void) { + engineConfiguration->useSerialPort = false; + engineConfiguration->binarySerialTxPin = GPIOE_1; + engineConfiguration->binarySerialRxPin = GPIOE_0; + /* actually Bluetooth/WiFi interface */ + //engineConfiguration->consoleSerialTxPin = GPIOC_10; + //engineConfiguration->consoleSerialRxPin = GPIOC_11; + engineConfiguration->tunerStudioSerialSpeed = SERIAL_SPEED; + engineConfiguration->uartConsoleSerialSpeed = SERIAL_SPEED; +} + +void setSdCardConfigurationOverrides(void) { + engineConfiguration->is_enabled_spi_1 = false; + engineConfiguration->sdCardSpiDevice = SPI_DEVICE_1; + engineConfiguration->sdCardCsPin = GPIOA_2; + engineConfiguration->isSdCardEnabled = false; +} + +/** + * @brief Board-specific configuration code overrides. + * @todo Add your board-specific code, if any. + */ +void setBoardConfigurationOverrides(void) { + setSerialConfigurationOverrides(); + + /* Battery voltage */ + engineConfiguration->vbattAdcChannel = EFI_ADC_6; + /* Throttle position */ + engineConfiguration->tps1_1AdcChannel = EFI_ADC_12; + /* MAP */ + engineConfiguration->map.sensor.hwChannel = EFI_ADC_10; + /* MAF */ + engineConfiguration->mafAdcChannel = EFI_ADC_3; + /* coolant t */ + engineConfiguration->clt.adcChannel = EFI_ADC_14; + /* not yet */ + engineConfiguration->iat.adcChannel = EFI_ADC_NONE; + /* narrow */ + engineConfiguration->afr.hwChannel = EFI_ADC_NONE; + + engineConfiguration->adcVcc = ADC_VCC; + + engineConfiguration->baroSensor.hwChannel = EFI_ADC_NONE; + engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_NONE; + + /* Injectors */ + engineConfiguration->injectionPins[1 - 1] = MC33810_0_OUT_0; + engineConfiguration->injectionPins[2 - 1] = MC33810_1_OUT_0; + engineConfiguration->injectionPins[3 - 1] = MC33810_0_OUT_1; + engineConfiguration->injectionPins[4 - 1] = MC33810_1_OUT_1; + engineConfiguration->injectionPins[5 - 1] = MC33810_0_OUT_2; + engineConfiguration->injectionPins[6 - 1] = MC33810_1_OUT_2; + engineConfiguration->injectionPins[7 - 1] = MC33810_0_OUT_3; + engineConfiguration->injectionPins[8 - 1] = MC33810_1_OUT_3; + + /* Ignition */ + engineConfiguration->ignitionPins[1 - 1] = MC33810_0_GD_0; + engineConfiguration->ignitionPins[2 - 1] = MC33810_1_GD_1; + engineConfiguration->ignitionPins[3 - 1] = MC33810_0_GD_1; + engineConfiguration->ignitionPins[4 - 1] = MC33810_1_GD_0; + engineConfiguration->ignitionPins[5 - 1] = MC33810_0_GD_3; + engineConfiguration->ignitionPins[6 - 1] = MC33810_1_GD_2; + engineConfiguration->ignitionPins[7 - 1] = MC33810_0_GD_2; + engineConfiguration->ignitionPins[8 - 1] = MC33810_1_GD_3; + //engineConfiguration->ignitionPinMode = OM_INVERTED; + + // Vbat divider: 10K + 1K + engineConfiguration->vbattDividerCoeff = (1.0 + 10.0) / 1.0; + //engineConfiguration->clt.config.bias_resistor = 2700; + //sengineConfiguration->iat.config.bias_resistor = 2700; + + // Idle configuration + engineConfiguration->useStepperIdle = false; + engineConfiguration->isDoubleSolenoidIdle = true; + engineConfiguration->idle.solenoidPin = TLE6240_PIN_11; + engineConfiguration->secondSolenoidPin = TLE6240_PIN_12; + + engineConfiguration->communicationLedPin = GPIOG_6; /* LD1 - green */ + engineConfiguration->runningLedPin = GPIOG_8; /* LD3 - yellow */ + engineConfiguration->warningLedPin = GPIO_UNASSIGNED; /* LD3 - yellow*/ + //engineConfiguration->unusedErrorPin = LED_ERROR_BRAIN_PIN; /* LD2 - red */ + + /* IF you have BOTH camshaft position sensor and crankshaft position sensor + * camshaft is always trigger#1 input and then crankshaft is trigger#2. */ + engineConfiguration->triggerInputPins[0] = GPIOH_12; /* cam */ + engineConfiguration->triggerInputPins[1] = GPIOH_10; /* crank pos #1 */ + engineConfiguration->triggerInputPins[2] = GPIOE_9; /* crank pos #2 */ + engineConfiguration->camInputs[0] = GPIO_UNASSIGNED; + + /* SPI devices: mess of board and engine configurations */ + /* TLE6240 */ + engineConfiguration->tle6240spiDevice = SPI_DEVICE_4; + engineConfiguration->tle6240_cs = GPIOE_15; /* SPI4_NSS0 */ + engineConfiguration->tle6240_csPinMode = OM_OPENDRAIN; + /* MC33972 */ + engineConfiguration->mc33972spiDevice = SPI_DEVICE_4; + engineConfiguration->mc33972_cs = GPIOE_10; /* SPI4_NSS2 */ + engineConfiguration->mc33972_csPinMode = OM_OPENDRAIN; + + /* TLE6240 - OUT3, also PG2 */ + engineConfiguration->tachOutputPin = TLE6240_PIN_2; + engineConfiguration->tachOutputPinMode = OM_DEFAULT; + /* spi driven - TLE6240 - OUT5 */ +#if 0 + engineConfiguration->fuelPumpPin = TLE6240_PIN_5; + engineConfiguration->fuelPumpPinMode = OM_DEFAULT; + /* self shutdown? */ + engineConfiguration->mainRelayPin = GPIOH_7; + engineConfiguration->mainRelayPinMode = OM_DEFAULT; +#else + engineConfiguration->fuelPumpPin = GPIO_UNASSIGNED; + engineConfiguration->fuelPumpPinMode = OM_DEFAULT; + /* self shutdown? */ + engineConfiguration->mainRelayPin = TLE6240_PIN_5; + engineConfiguration->mainRelayPinMode = OM_DEFAULT; +#endif + /* spi driven - TLE6240 - OUT1, OUT2 */ + engineConfiguration->fanPin = TLE6240_PIN_1; + engineConfiguration->fanPinMode = OM_DEFAULT; + /* TODO: second fan */ + //engineConfiguration->fanPin[1] = TLE6240_PIN_2; + //engineConfiguration->fanPinMode[1] = OM_DEFAULT; + /* spi driven - TLE6240 - OUT8 */ + engineConfiguration->malfunctionIndicatorPin = TLE6240_PIN_7; + engineConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + + // starter block + /* Starter signal connected through MC33972 - SG11 */ + //setFsio(0, (GPIOB_1), STARTER_RELAY_LOGIC PASS_CONFIG_PARAMETER_SUFFIX); + + // not used + engineConfiguration->externalKnockSenseAdc = EFI_ADC_NONE; + engineConfiguration->displayMode = DM_NONE; + engineConfiguration->HD44780_rs = GPIO_UNASSIGNED; + engineConfiguration->HD44780_e = GPIO_UNASSIGNED; + engineConfiguration->HD44780_db4 = GPIO_UNASSIGNED; + engineConfiguration->HD44780_db5 = GPIO_UNASSIGNED; + engineConfiguration->HD44780_db6 = GPIO_UNASSIGNED; + engineConfiguration->HD44780_db7 = GPIO_UNASSIGNED; + engineConfiguration->digitalPotentiometerChipSelect[0] = GPIO_UNASSIGNED; + engineConfiguration->digitalPotentiometerChipSelect[1] = GPIO_UNASSIGNED; + engineConfiguration->digitalPotentiometerChipSelect[2] = GPIO_UNASSIGNED; + engineConfiguration->digitalPotentiometerChipSelect[3] = GPIO_UNASSIGNED; + engineConfiguration->vehicleSpeedSensorInputPin = GPIO_UNASSIGNED; + + engineConfiguration->digitalPotentiometerSpiDevice = SPI_NONE; + engineConfiguration->max31855spiDevice = SPI_NONE; + + ///////////////////////////////////////////////////////// + + engineConfiguration->is_enabled_spi_1 = true; + engineConfiguration->is_enabled_spi_2 = false; + engineConfiguration->is_enabled_spi_3 = true; + engineConfiguration->is_enabled_spi_4 = true; + + engineConfiguration->spi1mosiPin = GPIO_UNASSIGNED; + engineConfiguration->spi1MosiMode = PO_DEFAULT; + engineConfiguration->spi1misoPin = GPIO_UNASSIGNED; + engineConfiguration->spi1MisoMode = PO_DEFAULT; + engineConfiguration->spi1sckPin = GPIO_UNASSIGNED; + engineConfiguration->spi1SckMode = PO_DEFAULT; + + engineConfiguration->spi3mosiPin = GPIOC_12; + engineConfiguration->spi3MosiMode = PO_DEFAULT; + engineConfiguration->spi3misoPin = GPIOC_11; + engineConfiguration->spi3MisoMode = PO_DEFAULT; + engineConfiguration->spi3sckPin = GPIOC_10; + engineConfiguration->spi3SckMode = PO_DEFAULT; + + /* Knock sensor */ + engineConfiguration->hip9011SpiDevice = SPI_DEVICE_4; + engineConfiguration->hip9011CsPin = GPIOE_11; /* SPI4_NSS1 */ + engineConfiguration->hip9011CsPinMode = OM_OPENDRAIN; + engineConfiguration->hip9011IntHoldPin = GPIOH_8; + engineConfiguration->hip9011IntHoldPinMode = OM_OPENDRAIN; + engineConfiguration->hipOutputChannel = EFI_ADC_7; /* PA7 */ + engineConfiguration->isHip9011Enabled = true; + + + engineConfiguration->hip9011PrescalerAndSDO = (0x6 << 1); //HIP_16MHZ_PRESCALER; + engineConfiguration->hip9011Gain = 1.0; + engineConfiguration->knockBandCustom = 0.0; + engineConfiguration->knockVThreshold = 4.0; + engineConfiguration->cylinderBore = 96.9; + engineConfiguration->maxKnockSubDeg = 20.0; + +#if 0 + engineConfiguration->cj125SpiDevice = SPI_DEVICE_3; + engineConfiguration->cj125ua = EFI_ADC_9; + engineConfiguration->cj125ur = EFI_ADC_12; + engineConfiguration->cj125CsPin = GPIOA_15; + engineConfiguration->cj125CsPinMode = OM_OPENDRAIN; + engineConfiguration->wboHeaterPin = GPIOC_13; + engineConfiguration->o2heaterPin = GPIOC_13; +#endif + engineConfiguration->isCJ125Enabled = false; + + engineConfiguration->canTxPin = GPIOD_1; + engineConfiguration->canRxPin = GPIOD_0; + + /* not used pins with testpads */ + engineConfiguration->triggerSimulatorPins[0] = GPIOH_2; + engineConfiguration->triggerSimulatorPins[1] = GPIOH_3; + engineConfiguration->triggerSimulatorPins[2] = GPIOH_4; + engineConfiguration->triggerSimulatorPinModes[0] = OM_DEFAULT; + engineConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT; + engineConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT; + + engineConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED; + engineConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED; + engineConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED; + engineConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED; + //!!!!!!!!!!!!!!!!!!! + //engineConfiguration->silentTriggerError = true; + + //!!!!!!!!!!!!! + //engineConfiguration->isEngineChartEnabled = false; + + if (engineConfiguration->fuelAlgorithm == LM_REAL_MAF) + setAlgorithm(LM_SPEED_DENSITY PASS_CONFIG_PARAMETER_SUFFIX); + if (engineConfiguration->fuelAlgorithm == LM_ALPHA_N) + setAlgorithm(LM_ALPHA_N PASS_CONFIG_PARAMETER_SUFFIX); +} diff --git a/firmware/config/boards/subaru_eg33/board_io.h b/firmware/config/boards/subaru_eg33/board_io.h new file mode 100644 index 0000000000..54b75b0a75 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/board_io.h @@ -0,0 +1,991 @@ +/** + * @file boards/subaru_eg33/board_io.c + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#ifndef BOARD_IO_H +#define BOARD_IO_H + +/* + * I/O ports initial setup, this configuration is established soon after reset + * in the initialization code. + * Please refer to the STM32 Reference Manual for details. + */ +#define PIN_MODE_INPUT(n) (0U << ((n) * 2U)) +#define PIN_MODE_OUTPUT(n) (1U << ((n) * 2U)) +#define PIN_MODE_ALTERNATE(n) (2U << ((n) * 2U)) +#define PIN_MODE_ANALOG(n) (3U << ((n) * 2U)) + +#define PIN_ODR_LOW(n) (0U << (n)) +#define PIN_ODR_HIGH(n) (1U << (n)) + +#define PIN_OTYPE_PUSHPULL(n) (0U << (n)) +#define PIN_OTYPE_OPENDRAIN(n) (1U << (n)) + +#define PIN_OSPEED_VERYLOW(n) (0U << ((n) * 2U)) +#define PIN_OSPEED_LOW(n) (1U << ((n) * 2U)) +#define PIN_OSPEED_MEDIUM(n) (2U << ((n) * 2U)) +#define PIN_OSPEED_HIGH(n) (3U << ((n) * 2U)) + +#define PIN_PUPDR_FLOATING(n) (0U << ((n) * 2U)) +#define PIN_PUPDR_PULLUP(n) (1U << ((n) * 2U)) +#define PIN_PUPDR_PULLDOWN(n) (2U << ((n) * 2U)) + +#define PIN_AFIO_AF(n, v) ((v) << (((n) % 8U) * 4U)) + +// See https://github.com/rusefi/rusefi/issues/397 +#define DEFAULT_GPIO_SPEED PIN_OSPEED_HIGH + +/* + * GPIOA setup: + * + * PA0 - n.u. + * PA1 - ignition current sensor for cyl 1, 3, 5, 7 + * PA2 - ignition current sensor for cyl 2, 4, 6, 8 + * PA3 - MAF sensor input + * PA4 - n.u. + * PA5 - n.u. + * PA6 - battery voltage input + * PA7 - knock sensor input + * PA8 - knock IC clock out + * PA9 - USART1_TX - boot/console - TTL level on XP4.2 + * PA10 - USART1_RX - boot/console - TTL level on XP4.3 + * PA11 - USB_FS_D- - boot/console/TS - XS3 + * PA12 - USB_FS_D+ - boot/console/TS - XS3 + * PA13 - SWDIO + * PA14 - SWCLK + * PA15 - bluetooth/wifi module reset gpio + */ +#define VAL_GPIOA_MODER (PIN_OTYPE_PUSHPULL(1) | \ + PIN_MODE_ANALOG(2) | \ + PIN_MODE_ANALOG(2) | \ + PIN_MODE_ANALOG(3) | \ + PIN_OTYPE_PUSHPULL(4) | \ + PIN_OTYPE_PUSHPULL(5) | \ + PIN_MODE_ANALOG(6) | \ + PIN_MODE_ANALOG(7) | \ + PIN_MODE_ALTERNATE(8) | \ + PIN_MODE_ALTERNATE(9) | \ + PIN_MODE_ALTERNATE(10) | \ + PIN_MODE_ALTERNATE(11) | \ + PIN_MODE_ALTERNATE(12) | \ + PIN_MODE_ALTERNATE(13) | \ + PIN_MODE_ALTERNATE(14) | \ + PIN_MODE_OUTPUT(15)) +#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14) | \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOA_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOA_PUPDR (PIN_PUPDR_FLOATING( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_PULLUP( 9) | \ + PIN_PUPDR_PULLUP(10) | \ + PIN_PUPDR_FLOATING(11) | \ + PIN_PUPDR_FLOATING(12) | \ + PIN_PUPDR_PULLUP(13) | \ + PIN_PUPDR_PULLDOWN(14) | \ + PIN_PUPDR_PULLUP(15)) +#define VAL_GPIOA_ODR (PIN_ODR_LOW(0) | \ + PIN_ODR_LOW(4) | \ + PIN_ODR_LOW(5) | \ + PIN_ODR_LOW(15)) +#define VAL_GPIOA_AFRL (PIN_AFIO_AF( 0, 1U) | \ + PIN_AFIO_AF( 1, 1U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOA_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 7U) | \ + PIN_AFIO_AF(10, 7U) | \ + PIN_AFIO_AF(11, 10U) | \ + PIN_AFIO_AF(12, 10U) | \ + PIN_AFIO_AF(13, 0U) | \ + PIN_AFIO_AF(14, 0U) | \ + PIN_AFIO_AF(15, 0U)) + +/* + * GPIOB setup: + * + * PB0 - oxygen sensor #2 + * PB1 - EGR t sensor + * PB2 - boot mode - pulled low + * PB3 - ignition #1 + * PB4 - ignition #3 + * PB5 - ignition #7 + * PB6 - QSPI CS + * PB7 - ignition (1, 3, 5, 7) spark duration input + * PB8 - ignition #5 + * PB9 - injector #7 + * PB10 - VR diagnostic (crank #2 and cam) + * PB11 - n.u. + * PB12 - USB HS ID + * PB13 - USB HS VBus + * PB14 - USB HS DM + * PB15 - USB HS DP + */ +#define VAL_GPIOB_MODER (PIN_MODE_ANALOG(0) | \ + PIN_MODE_ANALOG(1) | \ + PIN_MODE_INPUT(2) | \ + PIN_MODE_OUTPUT(3) | \ + PIN_MODE_OUTPUT(4) | \ + PIN_MODE_OUTPUT(5) | \ + PIN_MODE_ALTERNATE(6) | \ + PIN_MODE_INPUT(7) | \ + PIN_MODE_OUTPUT(8) | \ + PIN_MODE_OUTPUT(9) | \ + PIN_MODE_OUTPUT(10) | \ + PIN_MODE_OUTPUT(11) | \ + PIN_MODE_ALTERNATE(12) | \ + PIN_MODE_INPUT(13) | \ + PIN_MODE_ALTERNATE(14) | \ + PIN_MODE_ALTERNATE(15)) +#define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14) | \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOB_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOB_PUPDR (PIN_PUPDR_FLOATING( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_PULLDOWN( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_PULLUP( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_FLOATING( 9) | \ + PIN_PUPDR_FLOATING(10) | \ + PIN_PUPDR_FLOATING(11) | \ + PIN_PUPDR_FLOATING(12) | \ + PIN_PUPDR_FLOATING(13) | \ + PIN_PUPDR_PULLDOWN(14) | \ + PIN_PUPDR_FLOATING(15)) +#define VAL_GPIOB_ODR (PIN_ODR_LOW(3) | \ + PIN_ODR_LOW(4) | \ + PIN_ODR_LOW(5) | \ + PIN_ODR_LOW(8) | \ + PIN_ODR_LOW(9) | \ + PIN_ODR_LOW(10) | \ + PIN_ODR_LOW(11) | \ + PIN_ODR_LOW(13)) +#define VAL_GPIOB_AFRL (PIN_AFIO_AF( 0, 0U) | \ + PIN_AFIO_AF( 1, 0U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOB_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 0U) | \ + PIN_AFIO_AF(10, 0U) | \ + PIN_AFIO_AF(11, 0U) | \ + PIN_AFIO_AF(12, 12U) | \ + PIN_AFIO_AF(13, 0U) | \ + PIN_AFIO_AF(14, 12U) | \ + PIN_AFIO_AF(15, 12U)) + +/* + * GPIOC setup: + * + * PC0 - Atm P input + * PC1 - Aux0 input + * PC2 - Throtle input + * PC3 - mc33972 analog input + * PC4 - coolant T input + * PC5 - oxygen #1 input + * PC6 - idle open + * PC7 - USB HS power enable + * PC8 - idle close + * PC9 - USB HS overcurrent input + * PC10 - UART4 TX + * PC11 - UART4 Rx + * PC12 - bluetooth/wifi mode + * PC13 - ignition #4 + * PC14 - ignition #2 + * PC15 - ignition #6 + */ +#define VAL_GPIOC_MODER (PIN_MODE_ANALOG(0) | \ + PIN_MODE_ANALOG(1) | \ + PIN_MODE_ANALOG(2) | \ + PIN_MODE_ANALOG(3) | \ + PIN_MODE_ANALOG(4) | \ + PIN_MODE_ANALOG(5) | \ + PIN_MODE_OUTPUT(6) | \ + PIN_MODE_OUTPUT(7) | \ + PIN_MODE_OUTPUT(8) | \ + PIN_MODE_INPUT(9) | \ + PIN_MODE_ALTERNATE(10) | \ + PIN_MODE_ALTERNATE(11) | \ + PIN_MODE_OUTPUT(12) | \ + PIN_MODE_OUTPUT(13) | \ + PIN_MODE_OUTPUT(14) | \ + PIN_MODE_OUTPUT(15)) +#define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14) | \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOC_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOC_PUPDR (PIN_PUPDR_FLOATING( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_PULLUP( 9) | \ + PIN_PUPDR_FLOATING(10) | \ + PIN_PUPDR_PULLUP(11) | \ + PIN_PUPDR_FLOATING(12) | \ + PIN_PUPDR_FLOATING(13) | \ + PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_FLOATING(15)) +#define VAL_GPIOC_ODR (PIN_ODR_LOW(6) | \ + PIN_ODR_LOW(7) | \ + PIN_ODR_LOW(8) | \ + PIN_ODR_LOW(12) | \ + PIN_ODR_LOW(13) | \ + PIN_ODR_LOW(14) | \ + PIN_ODR_LOW(15)) +#define VAL_GPIOC_AFRL (PIN_AFIO_AF( 0, 0U) | \ + PIN_AFIO_AF( 1, 0U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOC_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 0U) | \ + PIN_AFIO_AF(10, 8U) | \ + PIN_AFIO_AF(11, 8U) | \ + PIN_AFIO_AF(12, 0U) | \ + PIN_AFIO_AF(13, 0U) | \ + PIN_AFIO_AF(14, 0U) | \ + PIN_AFIO_AF(15, 0U)) + +/* + * GPIOD setup: + * + * PD0 - CAN1 Rx + * PD1 - CAN1 Tx + * PD2 - E-Thtot #2 direction + * PD3 - E-Thtot #2 PWM + * PD4 - E-Thtot #1 direction + * PD5 - E-Thtot #1 PWM + * PD6 - MMC clk + * PD7 - MMC cmd + * PD8 - UART3 Tx + * PD9 - UART3 Rx + * PD10 - Power hold to PMIC + * PD11 - QSPI IO0 + * PD12 - QSPI IO1 + * PD13 - QSPI IO2 + * PD14 - Speed sensor input + * PD15 - LIN RTS + */ +#define VAL_GPIOD_MODER (PIN_MODE_ALTERNATE(0) | \ + PIN_MODE_ALTERNATE(1) | \ + PIN_MODE_OUTPUT(2) | \ + PIN_MODE_OUTPUT(3) | \ + PIN_MODE_OUTPUT(4) | \ + PIN_MODE_OUTPUT(5) | \ + PIN_MODE_ALTERNATE(6) | \ + PIN_MODE_ALTERNATE(7) | \ + PIN_MODE_ALTERNATE(8) | \ + PIN_MODE_ALTERNATE(9) | \ + PIN_MODE_OUTPUT(10) | \ + PIN_MODE_ALTERNATE(11) | \ + PIN_MODE_ALTERNATE(12) | \ + PIN_MODE_ALTERNATE(13) | \ + PIN_MODE_INPUT(14) | \ + PIN_MODE_ALTERNATE(15)) +#define VAL_GPIOD_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14) | \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOD_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + PIN_OSPEED_HIGH( 6) | \ + PIN_OSPEED_HIGH( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + PIN_OSPEED_HIGH(11) | \ + PIN_OSPEED_HIGH(12) | \ + PIN_OSPEED_HIGH(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOD_PUPDR (PIN_PUPDR_PULLUP( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_PULLUP( 9) | \ + PIN_PUPDR_FLOATING(10) | \ + PIN_PUPDR_PULLUP(11) | \ + PIN_PUPDR_PULLUP(12) | \ + PIN_PUPDR_PULLUP(13) | \ + PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_FLOATING(15)) +#define VAL_GPIOD_ODR (PIN_ODR_LOW(2) | \ + PIN_ODR_LOW(3) | \ + PIN_ODR_LOW(4) | \ + PIN_ODR_LOW(5) | \ + PIN_ODR_HIGH(10)) +#define VAL_GPIOD_AFRL (PIN_AFIO_AF( 0, 9U) | \ + PIN_AFIO_AF( 1, 9U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 11U) | \ + PIN_AFIO_AF( 7, 11U)) +#define VAL_GPIOD_AFRH (PIN_AFIO_AF( 8, 7U) | \ + PIN_AFIO_AF( 9, 7U) | \ + PIN_AFIO_AF(10, 0U) | \ + PIN_AFIO_AF(11, 9U) | \ + PIN_AFIO_AF(12, 9U) | \ + PIN_AFIO_AF(13, 9U) | \ + PIN_AFIO_AF(14, 0U) | \ + PIN_AFIO_AF(15, 8U)) + +/* + * GPIOE setup: + * + * PE0 - LIN Rx + * PE1 - LIN Tx + * PE2 - QSPI IO2 + * PE3 - injector #2 + * PE4 - injector #4 + * PE5 - injector #6 + * PE6 - injector %8 + * PE7 - n.u. + * PE8 - n.u. + * PE9 - Crank position sensor #2 + * PE10 - SPI4 CS2 (5V pulled) + * PE11 - SPI4 CS1 (5V pulled) + * PE12 - SPI4 SCK (5V pulled) + * PE13 - SPI4 MISO (5V pulled) + * PE14 - SPI4 MOSI (5V pulled) + * PE15 - SPI4 CS0 (5V pulled) + */ +#define VAL_GPIOE_MODER (PIN_MODE_ALTERNATE(0) | \ + PIN_MODE_ALTERNATE(1) | \ + PIN_MODE_OUTPUT(2) /* PIN_MODE_ALTERNATE(2) */ | \ + PIN_MODE_OUTPUT(3) | \ + PIN_MODE_OUTPUT(4) | \ + PIN_MODE_OUTPUT(5) | \ + PIN_MODE_OUTPUT(6) | \ + PIN_MODE_OUTPUT(7) | \ + PIN_MODE_OUTPUT(8) | \ + PIN_MODE_INPUT(9) | \ + PIN_MODE_OUTPUT(10) | \ + PIN_MODE_OUTPUT(11) | \ + PIN_MODE_ALTERNATE(12) | \ + PIN_MODE_ALTERNATE(13) | \ + PIN_MODE_ALTERNATE(14) | \ + PIN_MODE_OUTPUT(15)) +#define VAL_GPIOE_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_OPENDRAIN(10)| \ + PIN_OTYPE_OPENDRAIN(11)| \ + PIN_OTYPE_OPENDRAIN(12)| \ + PIN_OTYPE_PUSHPULL(13) /* PIN_OTYPE_OPENDRAIN(13) */| \ + PIN_OTYPE_OPENDRAIN(14)| \ + PIN_OTYPE_OPENDRAIN(15)) +#define VAL_GPIOE_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOE_PUPDR (PIN_PUPDR_PULLUP( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_PULLUP( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_PULLUP( 9) | \ + PIN_PUPDR_FLOATING(10) | \ + PIN_PUPDR_FLOATING(11) | \ + PIN_PUPDR_FLOATING(12) | \ + PIN_PUPDR_FLOATING(13) | \ + PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_FLOATING(15)) +#define VAL_GPIOE_ODR (PIN_ODR_LOW(3) | \ + PIN_ODR_LOW(4) | \ + PIN_ODR_LOW(5) | \ + PIN_ODR_LOW(6) | \ + PIN_ODR_LOW(7) | \ + PIN_ODR_LOW(8) | \ + PIN_ODR_HIGH(10) | \ + PIN_ODR_HIGH(11) | \ + PIN_ODR_HIGH(15)) +#define VAL_GPIOE_AFRL (PIN_AFIO_AF( 0, 8U) | \ + PIN_AFIO_AF( 1, 8U) | \ + PIN_AFIO_AF( 2, 9U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOE_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 0U) | \ + PIN_AFIO_AF(10, 0U) | \ + PIN_AFIO_AF(11, 0U) | \ + PIN_AFIO_AF(12, 5U) | \ + PIN_AFIO_AF(13, 5U) | \ + PIN_AFIO_AF(14, 5U) | \ + PIN_AFIO_AF(15, 0U)) + +/* + * GPIOF setup: + * + * PF0 - Ignition (2, 4, 6, 8) MAXI input + * PF1 - SPI5 CS0 + * PF2 - SPI5 CS1 + * PF3 - optional analog input 3 + * PF4 - optional analog input 2 + * PF5 - optional analog input 1 + * PF6 - optional analog input 0 + * PF7 - SPI5 SCK + * PF8 - SPI5 MISO + * PF9 - SPI5 MOSI + * PF10 - QSPI CLK + * PF11 - SPI5 CS4 + * PF12 - SPI5 CS5 + * PF13 - n.u. + * PF14 - SPI5 CS2 + * PF15 - SPI5 CS3 + */ +#define VAL_GPIOF_MODER (PIN_MODE_INPUT(0) | \ + PIN_MODE_OUTPUT(1) | \ + PIN_MODE_OUTPUT(2) | \ + PIN_MODE_ANALOG(3) | \ + PIN_MODE_ANALOG(4) | \ + PIN_MODE_ANALOG(5) | \ + PIN_MODE_ANALOG(6) | \ + PIN_MODE_ALTERNATE(7) | \ + PIN_MODE_ALTERNATE(8) | \ + PIN_MODE_ALTERNATE(9) | \ + PIN_MODE_ALTERNATE(10) | \ + PIN_MODE_OUTPUT(11) | \ + PIN_MODE_OUTPUT(12) | \ + PIN_MODE_OUTPUT(13) | \ + PIN_MODE_OUTPUT(14) | \ + PIN_MODE_OUTPUT(15)) +#define VAL_GPIOF_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14) | \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOF_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOF_PUPDR (PIN_PUPDR_PULLUP( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_PULLUP( 8) | \ + PIN_PUPDR_FLOATING( 9) | \ + PIN_PUPDR_FLOATING(10) | \ + PIN_PUPDR_FLOATING(11) | \ + PIN_PUPDR_FLOATING(12) | \ + PIN_PUPDR_FLOATING(13) | \ + PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_FLOATING(15)) +#define VAL_GPIOF_ODR (PIN_ODR_HIGH(1) | \ + PIN_ODR_HIGH(2) | \ + PIN_ODR_HIGH(11) | \ + PIN_ODR_HIGH(12) | \ + PIN_ODR_HIGH(14) | \ + PIN_ODR_HIGH(15)) +#define VAL_GPIOF_AFRL (PIN_AFIO_AF( 0, 0U) | \ + PIN_AFIO_AF( 1, 0U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 5U)) +#define VAL_GPIOF_AFRH (PIN_AFIO_AF( 8, 5U) | \ + PIN_AFIO_AF( 9, 5U) | \ + PIN_AFIO_AF(10, 9U) | \ + PIN_AFIO_AF(11, 0U) | \ + PIN_AFIO_AF(12, 0U) | \ + PIN_AFIO_AF(13, 0U) | \ + PIN_AFIO_AF(14, 0U) | \ + PIN_AFIO_AF(15, 0U)) + +/* + * GPIOG setup: + * + * PG0 - CAN1 EN + * PG1 - SW2 irq + * PG2 - taho out + * PG3 - 1 wire interface + * PG4 - mc33972 irq + * PG5 - mc33972 wake up input + * PG6 - LD2 - active low + * PG7 - LD1 - active low + * PG8 - LD0 - active low + * PG9 - MMC D0 + * PG10 - MMC D1 + * PG11 - MMC D2 + * PG12 - MMC D3 + * PG13 - ignition (1, 3, 5, 7) MAXI input + * PG14 - E-Throttle disable + * PG15 - ignition (1, 3, 5, 7) NOMI input + */ +#define VAL_GPIOG_MODER (PIN_MODE_OUTPUT(0) | \ + PIN_MODE_INPUT(1) | \ + PIN_MODE_OUTPUT(2) | \ + PIN_MODE_OUTPUT(3) | \ + PIN_MODE_INPUT(4) | \ + PIN_MODE_INPUT(5) | \ + PIN_MODE_OUTPUT(6) | \ + PIN_MODE_OUTPUT(7) | \ + PIN_MODE_OUTPUT(8) | \ + PIN_MODE_ALTERNATE(9) | \ + PIN_MODE_ALTERNATE(10) | \ + PIN_MODE_ALTERNATE(11) | \ + PIN_MODE_ALTERNATE(12) | \ + PIN_MODE_INPUT(13) | \ + PIN_MODE_OUTPUT(14) | \ + PIN_MODE_INPUT(15)) +#define VAL_GPIOG_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_OPENDRAIN( 6)| \ + PIN_OTYPE_OPENDRAIN( 7)| \ + PIN_OTYPE_OPENDRAIN( 8)| \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14)| \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOG_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOG_PUPDR (PIN_PUPDR_FLOATING( 0) | \ + PIN_PUPDR_PULLUP( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_PULLUP( 4) | \ + PIN_PUPDR_PULLUP( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_PULLUP( 9) | \ + PIN_PUPDR_PULLUP(10) | \ + PIN_PUPDR_PULLUP(11) | \ + PIN_PUPDR_PULLUP(12) | \ + PIN_PUPDR_PULLUP(13) | \ + PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_PULLUP(15)) +#define VAL_GPIOG_ODR (PIN_ODR_LOW(0) | \ + PIN_ODR_LOW(2) | \ + PIN_ODR_HIGH(3) | \ + PIN_ODR_HIGH(6) | \ + PIN_ODR_HIGH(7) | \ + PIN_ODR_HIGH(8) | \ + PIN_ODR_HIGH(14)) +#define VAL_GPIOG_AFRL (PIN_AFIO_AF( 0, 0U) | \ + PIN_AFIO_AF( 1, 0U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOG_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 11U) | \ + PIN_AFIO_AF(10, 11U) | \ + PIN_AFIO_AF(11, 10U) | \ + PIN_AFIO_AF(12, 11U) | \ + PIN_AFIO_AF(13, 0U) | \ + PIN_AFIO_AF(14, 0U) | \ + PIN_AFIO_AF(15, 0U)) + +/* + * GPIOH setup: + * + * PH0 - OSC_IN (input floating). + * PH1 - OSC_OUT (input floating). + * PH2 - n.u. + * PH3 - n.u. + * PH4 - n.u. + * PH5 - n.u. + * PH6 - SW reset + * PH7 - self shutdown output + * PH8 - knock sensor IC hold output (5V pulled) + * PH9 - knock sensor IC tst output (5V pulled) + * PH10 - Crank position #1 + * PH11 - watchdog + * PH12 - Cam positio #1 + * PH13 - USB FS overcurrent input + * PH14 - USB FS power enable + * PH15 - OLED DC output + */ +#define VAL_GPIOH_MODER (PIN_MODE_INPUT(0) | \ + PIN_MODE_INPUT(1) | \ + PIN_MODE_OUTPUT(2) | \ + PIN_MODE_OUTPUT(3) | \ + PIN_MODE_OUTPUT(4) | \ + PIN_MODE_OUTPUT(5) | \ + PIN_MODE_OUTPUT(6) | \ + PIN_MODE_OUTPUT(7) | \ + PIN_MODE_OUTPUT(8) | \ + PIN_MODE_OUTPUT(9) | \ + PIN_MODE_INPUT(10) | \ + PIN_MODE_OUTPUT(11) | \ + PIN_MODE_INPUT(12) | \ + PIN_MODE_INPUT(13) | \ + PIN_MODE_OUTPUT(14) | \ + PIN_MODE_OUTPUT(15)) +#define VAL_GPIOH_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_OPENDRAIN( 8)| \ + PIN_OTYPE_OPENDRAIN( 9)| \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11) | \ + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(14) | \ + PIN_OTYPE_PUSHPULL(15)) +#define VAL_GPIOH_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11) | \ + DEFAULT_GPIO_SPEED(12) | \ + DEFAULT_GPIO_SPEED(13) | \ + DEFAULT_GPIO_SPEED(14) | \ + DEFAULT_GPIO_SPEED(15)) +#define VAL_GPIOH_PUPDR (PIN_PUPDR_FLOATING( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_FLOATING( 8) | \ + PIN_PUPDR_FLOATING( 9) | \ + PIN_PUPDR_PULLUP(10) | \ + PIN_PUPDR_FLOATING(11) | \ + PIN_PUPDR_PULLUP(12) | \ + PIN_PUPDR_PULLUP(13) | \ + PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_FLOATING(15)) +#define VAL_GPIOH_ODR (PIN_ODR_HIGH( 0) | \ + PIN_ODR_HIGH( 1) | \ + PIN_ODR_LOW( 2) | \ + PIN_ODR_LOW( 3) | \ + PIN_ODR_LOW( 4) | \ + PIN_ODR_LOW( 5) | \ + PIN_ODR_LOW( 6) | \ + PIN_ODR_LOW( 7) | \ + PIN_ODR_HIGH( 8) | \ + PIN_ODR_HIGH( 9) | \ + PIN_ODR_LOW(11) | \ + PIN_ODR_LOW(14) | \ + PIN_ODR_LOW(15)) +#define VAL_GPIOH_AFRL (PIN_AFIO_AF( 0, 0U) | \ + PIN_AFIO_AF( 1, 0U) | \ + PIN_AFIO_AF( 2, 0U) | \ + PIN_AFIO_AF( 3, 0U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOH_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 0U) | \ + PIN_AFIO_AF(10, 0U) | \ + PIN_AFIO_AF(11, 0U) | \ + PIN_AFIO_AF(12, 0U) | \ + PIN_AFIO_AF(13, 0U) | \ + PIN_AFIO_AF(14, 0U) | \ + PIN_AFIO_AF(15, 0U)) + +/* + * GPIOI setup: + * + * PI0 - SPI2 CS0 + * PI1 - SPI2 SCK + * PI2 - SPI2 MISO + * PI3 - SPI2 MOSI + * PI4 - injector #5 + * PI5 - injector #3 + * PI6 - injector #1 + * PI7 - SW enable + * PI8 - ignition (2, 4, 6, 8) spark duration input + * PI9 - ignition #8 + * PI10 - n.u. + * PI11 - ignition (2, 4, 6, 8) NOMI input + */ +#define VAL_GPIOI_MODER (PIN_MODE_OUTPUT(0) | \ + PIN_MODE_ALTERNATE(1) | \ + PIN_MODE_ALTERNATE(2) | \ + PIN_MODE_ALTERNATE(3) | \ + PIN_MODE_OUTPUT(4) | \ + PIN_MODE_OUTPUT(5) | \ + PIN_MODE_OUTPUT(6) | \ + PIN_MODE_OUTPUT(7) | \ + PIN_MODE_INPUT(8) | \ + PIN_MODE_OUTPUT(9) | \ + PIN_MODE_OUTPUT(10) | \ + PIN_MODE_INPUT(11)) +#define VAL_GPIOI_OTYPER (PIN_OTYPE_PUSHPULL( 0) | \ + PIN_OTYPE_PUSHPULL( 1) | \ + PIN_OTYPE_PUSHPULL( 2) | \ + PIN_OTYPE_PUSHPULL( 3) | \ + PIN_OTYPE_PUSHPULL( 4) | \ + PIN_OTYPE_PUSHPULL( 5) | \ + PIN_OTYPE_PUSHPULL( 6) | \ + PIN_OTYPE_PUSHPULL( 7) | \ + PIN_OTYPE_PUSHPULL( 8) | \ + PIN_OTYPE_PUSHPULL( 9) | \ + PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(11)) +#define VAL_GPIOI_OSPEEDR (DEFAULT_GPIO_SPEED( 0) | \ + DEFAULT_GPIO_SPEED( 1) | \ + DEFAULT_GPIO_SPEED( 2) | \ + DEFAULT_GPIO_SPEED( 3) | \ + DEFAULT_GPIO_SPEED( 4) | \ + DEFAULT_GPIO_SPEED( 5) | \ + DEFAULT_GPIO_SPEED( 6) | \ + DEFAULT_GPIO_SPEED( 7) | \ + DEFAULT_GPIO_SPEED( 8) | \ + DEFAULT_GPIO_SPEED( 9) | \ + DEFAULT_GPIO_SPEED(10) | \ + DEFAULT_GPIO_SPEED(11)) +#define VAL_GPIOI_PUPDR (PIN_PUPDR_FLOATING( 0) | \ + PIN_PUPDR_FLOATING( 1) | \ + PIN_PUPDR_FLOATING( 2) | \ + PIN_PUPDR_FLOATING( 3) | \ + PIN_PUPDR_FLOATING( 4) | \ + PIN_PUPDR_FLOATING( 5) | \ + PIN_PUPDR_FLOATING( 6) | \ + PIN_PUPDR_FLOATING( 7) | \ + PIN_PUPDR_PULLUP( 8) | \ + PIN_PUPDR_FLOATING( 9) | \ + PIN_PUPDR_FLOATING(10) | \ + PIN_PUPDR_PULLUP(11)) +#define VAL_GPIOI_ODR (PIN_ODR_HIGH( 0) | \ + PIN_ODR_LOW( 4) | \ + PIN_ODR_LOW( 5) | \ + PIN_ODR_LOW( 6) | \ + PIN_ODR_LOW( 7) | \ + PIN_ODR_LOW( 9)) +#define VAL_GPIOI_AFRL (PIN_AFIO_AF( 0, 0U) | \ + PIN_AFIO_AF( 1, 5U) | \ + PIN_AFIO_AF( 2, 5U) | \ + PIN_AFIO_AF( 3, 5U) | \ + PIN_AFIO_AF( 4, 0U) | \ + PIN_AFIO_AF( 5, 0U) | \ + PIN_AFIO_AF( 6, 0U) | \ + PIN_AFIO_AF( 7, 0U)) +#define VAL_GPIOI_AFRH (PIN_AFIO_AF( 8, 0U) | \ + PIN_AFIO_AF( 9, 0U) | \ + PIN_AFIO_AF(10, 0U) | \ + PIN_AFIO_AF(11, 0U)) + +#endif /* BOARD_IO_H */ diff --git a/firmware/config/boards/subaru_eg33/config.mk b/firmware/config/boards/subaru_eg33/config.mk new file mode 100644 index 0000000000..8f03483943 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config.mk @@ -0,0 +1,2 @@ +#We have our own enums +GENERATED_ENUMS_DIR = $(PROJECT_DIR)/config/boards/$(PROJECT_BOARD)/config/controllers/algo diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp new file mode 100644 index 0000000000..fee4e3481c --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp @@ -0,0 +1,1531 @@ +#include "global.h" +#include "rusefi_enums.h" +#include "rusefi_hw_enums.h" +// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sat Feb 06 13:39:37 MSK 2021 +// see also gen_config_and_enums.bat + + + +const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value){ +switch(value) { +case AUTOTUNER_OFF: + return "AUTOTUNER_OFF"; +case CONVERGED: + return "CONVERGED"; +case FAILED: + return "FAILED"; +case RELAY_STEP_DOWN: + return "RELAY_STEP_DOWN"; +case RELAY_STEP_UP: + return "RELAY_STEP_UP"; +case STEADY_STATE_AFTER_STEP_UP: + return "STEADY_STATE_AFTER_STEP_UP"; +case STEADY_STATE_AT_BASELINE: + return "STEADY_STATE_AT_BASELINE"; + } + return NULL; +} +const char *getPidAutoTune_Peak(PidAutoTune_Peak value){ +switch(value) { +case MAXIMUM: + return "MAXIMUM"; +case MINIMUM: + return "MINIMUM"; +case NOT_A_PEAK: + return "NOT_A_PEAK"; + } + return NULL; +} +const char *getAdc_channel_e(adc_channel_e value){ +switch(value) { +case EFI_ADC3_14: + return "EFI_ADC3_14"; +case EFI_ADC3_15: + return "EFI_ADC3_15"; +case EFI_ADC3_4: + return "EFI_ADC3_4"; +case EFI_ADC3_5: + return "EFI_ADC3_5"; +case EFI_ADC3_6: + return "EFI_ADC3_6"; +case EFI_ADC3_7: + return "EFI_ADC3_7"; +case EFI_ADC3_8: + return "EFI_ADC3_8"; +case EFI_ADC3_9: + return "EFI_ADC3_9"; +case EFI_ADC_0: + return "EFI_ADC_0"; +case EFI_ADC_1: + return "EFI_ADC_1"; +case EFI_ADC_10: + return "EFI_ADC_10"; +case EFI_ADC_11: + return "EFI_ADC_11"; +case EFI_ADC_12: + return "EFI_ADC_12"; +case EFI_ADC_13: + return "EFI_ADC_13"; +case EFI_ADC_14: + return "EFI_ADC_14"; +case EFI_ADC_15: + return "EFI_ADC_15"; +case EFI_ADC_2: + return "EFI_ADC_2"; +case EFI_ADC_3: + return "EFI_ADC_3"; +case EFI_ADC_4: + return "EFI_ADC_4"; +case EFI_ADC_5: + return "EFI_ADC_5"; +case EFI_ADC_6: + return "EFI_ADC_6"; +case EFI_ADC_7: + return "EFI_ADC_7"; +case EFI_ADC_8: + return "EFI_ADC_8"; +case EFI_ADC_9: + return "EFI_ADC_9"; +case EFI_ADC_ERROR: + return "EFI_ADC_ERROR"; +case EFI_ADC_LAST_CHANNEL: + return "EFI_ADC_LAST_CHANNEL"; +case EFI_ADC_NONE: + return "EFI_ADC_NONE"; +case EFI_ADC_TEMP_SENSOR: + return "EFI_ADC_TEMP_SENSOR"; + } + return NULL; +} +const char *getAdc_channel_mode_e(adc_channel_mode_e value){ +switch(value) { +case ADC_FAST: + return "ADC_FAST"; +case ADC_OFF: + return "ADC_OFF"; +case ADC_SLOW: + return "ADC_SLOW"; +case Force_4_bytes_size_adc_channel_mode: + return "Force_4_bytes_size_adc_channel_mode"; + } + return NULL; +} +const char *getAfr_override_e(afr_override_e value){ +switch(value) { +case AFR_AccPedal: + return "AFR_AccPedal"; +case AFR_CylFilling: + return "AFR_CylFilling"; +case AFR_MAP: + return "AFR_MAP"; +case AFR_None: + return "AFR_None"; +case AFR_Tps: + return "AFR_Tps"; + } + return NULL; +} +const char *getAir_pressure_sensor_type_e(air_pressure_sensor_type_e value){ +switch(value) { +case Force_4_bytes_size_cranking_map_type: + return "Force_4_bytes_size_cranking_map_type"; +case MT_BOSCH_2_5: + return "MT_BOSCH_2_5"; +case MT_CUSTOM: + return "MT_CUSTOM"; +case MT_DENSO183: + return "MT_DENSO183"; +case MT_DODGE_NEON_2003: + return "MT_DODGE_NEON_2003"; +case MT_GM_1_BAR: + return "MT_GM_1_BAR"; +case MT_GM_2_BAR: + return "MT_GM_2_BAR"; +case MT_GM_3_BAR: + return "MT_GM_3_BAR"; +case MT_HONDA3BAR: + return "MT_HONDA3BAR"; +case MT_MAZDA_1_BAR: + return "MT_MAZDA_1_BAR"; +case MT_MPX4100: + return "MT_MPX4100"; +case MT_MPX4250: + return "MT_MPX4250"; +case MT_MPX4250A: + return "MT_MPX4250A"; +case MT_SUBY_DENSO: + return "MT_SUBY_DENSO"; +case MT_TOYOTA_89420_02010: + return "MT_TOYOTA_89420_02010"; + } + return NULL; +} +const char *getAntiLagActivationMode_e(antiLagActivationMode_e value){ +switch(value) { +case ALWAYS_ON_ANTILAG: + return "ALWAYS_ON_ANTILAG"; +case Force_4bytes_size_antiLagActivationMode_e: + return "Force_4bytes_size_antiLagActivationMode_e"; +case SWITCH_INPUT_ANTILAG: + return "SWITCH_INPUT_ANTILAG"; + } + return NULL; +} +const char *getBoostType_e(boostType_e value){ +switch(value) { +case CLOSED_LOOP: + return "CLOSED_LOOP"; +case Force_4bytes_size_boostType_e: + return "Force_4bytes_size_boostType_e"; +case OPEN_LOOP: + return "OPEN_LOOP"; + } + return NULL; +} +const char *getBrain_pin_diag_e(brain_pin_diag_e value){ +switch(value) { +case PIN_DRIVER_OVERTEMP: + return "PIN_DRIVER_OVERTEMP"; +case PIN_INVALID: + return "PIN_INVALID"; +case PIN_OK: + return "PIN_OK"; +case PIN_OPEN: + return "PIN_OPEN"; +case PIN_OVERLOAD: + return "PIN_OVERLOAD"; +case PIN_SHORT_TO_BAT: + return "PIN_SHORT_TO_BAT"; +case PIN_SHORT_TO_GND: + return "PIN_SHORT_TO_GND"; + } + return NULL; +} +const char *getBrain_pin_e(brain_pin_e value){ +switch(value) { +case GPIOA_0: + return "GPIOA_0"; +case GPIOA_1: + return "GPIOA_1"; +case GPIOA_10: + return "GPIOA_10"; +case GPIOA_11: + return "GPIOA_11"; +case GPIOA_12: + return "GPIOA_12"; +case GPIOA_13: + return "GPIOA_13"; +case GPIOA_14: + return "GPIOA_14"; +case GPIOA_15: + return "GPIOA_15"; +case GPIOA_2: + return "GPIOA_2"; +case GPIOA_3: + return "GPIOA_3"; +case GPIOA_4: + return "GPIOA_4"; +case GPIOA_5: + return "GPIOA_5"; +case GPIOA_6: + return "GPIOA_6"; +case GPIOA_7: + return "GPIOA_7"; +case GPIOA_8: + return "GPIOA_8"; +case GPIOA_9: + return "GPIOA_9"; +case GPIOB_0: + return "GPIOB_0"; +case GPIOB_1: + return "GPIOB_1"; +case GPIOB_10: + return "GPIOB_10"; +case GPIOB_11: + return "GPIOB_11"; +case GPIOB_12: + return "GPIOB_12"; +case GPIOB_13: + return "GPIOB_13"; +case GPIOB_14: + return "GPIOB_14"; +case GPIOB_15: + return "GPIOB_15"; +case GPIOB_2: + return "GPIOB_2"; +case GPIOB_3: + return "GPIOB_3"; +case GPIOB_4: + return "GPIOB_4"; +case GPIOB_5: + return "GPIOB_5"; +case GPIOB_6: + return "GPIOB_6"; +case GPIOB_7: + return "GPIOB_7"; +case GPIOB_8: + return "GPIOB_8"; +case GPIOB_9: + return "GPIOB_9"; +case GPIOC_0: + return "GPIOC_0"; +case GPIOC_1: + return "GPIOC_1"; +case GPIOC_10: + return "GPIOC_10"; +case GPIOC_11: + return "GPIOC_11"; +case GPIOC_12: + return "GPIOC_12"; +case GPIOC_13: + return "GPIOC_13"; +case GPIOC_14: + return "GPIOC_14"; +case GPIOC_15: + return "GPIOC_15"; +case GPIOC_2: + return "GPIOC_2"; +case GPIOC_3: + return "GPIOC_3"; +case GPIOC_4: + return "GPIOC_4"; +case GPIOC_5: + return "GPIOC_5"; +case GPIOC_6: + return "GPIOC_6"; +case GPIOC_7: + return "GPIOC_7"; +case GPIOC_8: + return "GPIOC_8"; +case GPIOC_9: + return "GPIOC_9"; +case GPIOD_0: + return "GPIOD_0"; +case GPIOD_1: + return "GPIOD_1"; +case GPIOD_10: + return "GPIOD_10"; +case GPIOD_11: + return "GPIOD_11"; +case GPIOD_12: + return "GPIOD_12"; +case GPIOD_13: + return "GPIOD_13"; +case GPIOD_14: + return "GPIOD_14"; +case GPIOD_15: + return "GPIOD_15"; +case GPIOD_2: + return "GPIOD_2"; +case GPIOD_3: + return "GPIOD_3"; +case GPIOD_4: + return "GPIOD_4"; +case GPIOD_5: + return "GPIOD_5"; +case GPIOD_6: + return "GPIOD_6"; +case GPIOD_7: + return "GPIOD_7"; +case GPIOD_8: + return "GPIOD_8"; +case GPIOD_9: + return "GPIOD_9"; +case GPIOE_0: + return "GPIOE_0"; +case GPIOE_1: + return "GPIOE_1"; +case GPIOE_10: + return "GPIOE_10"; +case GPIOE_11: + return "GPIOE_11"; +case GPIOE_12: + return "GPIOE_12"; +case GPIOE_13: + return "GPIOE_13"; +case GPIOE_14: + return "GPIOE_14"; +case GPIOE_15: + return "GPIOE_15"; +case GPIOE_2: + return "GPIOE_2"; +case GPIOE_3: + return "GPIOE_3"; +case GPIOE_4: + return "GPIOE_4"; +case GPIOE_5: + return "GPIOE_5"; +case GPIOE_6: + return "GPIOE_6"; +case GPIOE_7: + return "GPIOE_7"; +case GPIOE_8: + return "GPIOE_8"; +case GPIOE_9: + return "GPIOE_9"; +case GPIOF_0: + return "GPIOF_0"; +case GPIOF_1: + return "GPIOF_1"; +case GPIOF_10: + return "GPIOF_10"; +case GPIOF_11: + return "GPIOF_11"; +case GPIOF_12: + return "GPIOF_12"; +case GPIOF_13: + return "GPIOF_13"; +case GPIOF_14: + return "GPIOF_14"; +case GPIOF_15: + return "GPIOF_15"; +case GPIOF_2: + return "GPIOF_2"; +case GPIOF_3: + return "GPIOF_3"; +case GPIOF_4: + return "GPIOF_4"; +case GPIOF_5: + return "GPIOF_5"; +case GPIOF_6: + return "GPIOF_6"; +case GPIOF_7: + return "GPIOF_7"; +case GPIOF_8: + return "GPIOF_8"; +case GPIOF_9: + return "GPIOF_9"; +case GPIOG_0: + return "GPIOG_0"; +case GPIOG_1: + return "GPIOG_1"; +case GPIOG_10: + return "GPIOG_10"; +case GPIOG_11: + return "GPIOG_11"; +case GPIOG_12: + return "GPIOG_12"; +case GPIOG_13: + return "GPIOG_13"; +case GPIOG_14: + return "GPIOG_14"; +case GPIOG_15: + return "GPIOG_15"; +case GPIOG_2: + return "GPIOG_2"; +case GPIOG_3: + return "GPIOG_3"; +case GPIOG_4: + return "GPIOG_4"; +case GPIOG_5: + return "GPIOG_5"; +case GPIOG_6: + return "GPIOG_6"; +case GPIOG_7: + return "GPIOG_7"; +case GPIOG_8: + return "GPIOG_8"; +case GPIOG_9: + return "GPIOG_9"; +case GPIOH_0: + return "GPIOH_0"; +case GPIOH_1: + return "GPIOH_1"; +case GPIOH_10: + return "GPIOH_10"; +case GPIOH_11: + return "GPIOH_11"; +case GPIOH_12: + return "GPIOH_12"; +case GPIOH_13: + return "GPIOH_13"; +case GPIOH_14: + return "GPIOH_14"; +case GPIOH_15: + return "GPIOH_15"; +case GPIOH_2: + return "GPIOH_2"; +case GPIOH_3: + return "GPIOH_3"; +case GPIOH_4: + return "GPIOH_4"; +case GPIOH_5: + return "GPIOH_5"; +case GPIOH_6: + return "GPIOH_6"; +case GPIOH_7: + return "GPIOH_7"; +case GPIOH_8: + return "GPIOH_8"; +case GPIOH_9: + return "GPIOH_9"; +case GPIOI_0: + return "GPIOI_0"; +case GPIOI_1: + return "GPIOI_1"; +case GPIOI_10: + return "GPIOI_10"; +case GPIOI_11: + return "GPIOI_11"; +case GPIOI_12: + return "GPIOI_12"; +case GPIOI_13: + return "GPIOI_13"; +case GPIOI_14: + return "GPIOI_14"; +case GPIOI_15: + return "GPIOI_15"; +case GPIOI_2: + return "GPIOI_2"; +case GPIOI_3: + return "GPIOI_3"; +case GPIOI_4: + return "GPIOI_4"; +case GPIOI_5: + return "GPIOI_5"; +case GPIOI_6: + return "GPIOI_6"; +case GPIOI_7: + return "GPIOI_7"; +case GPIOI_8: + return "GPIOI_8"; +case GPIOI_9: + return "GPIOI_9"; +case GPIO_INVALID: + return "GPIO_INVALID"; +case GPIO_UNASSIGNED: + return "GPIO_UNASSIGNED"; +case MC33810_0_GD_0: + return "MC33810_0_GD_0"; +case MC33810_0_GD_1: + return "MC33810_0_GD_1"; +case MC33810_0_GD_2: + return "MC33810_0_GD_2"; +case MC33810_0_GD_3: + return "MC33810_0_GD_3"; +case MC33810_0_OUT_0: + return "MC33810_0_OUT_0"; +case MC33810_0_OUT_1: + return "MC33810_0_OUT_1"; +case MC33810_0_OUT_2: + return "MC33810_0_OUT_2"; +case MC33810_0_OUT_3: + return "MC33810_0_OUT_3"; +case MC33810_1_GD_0: + return "MC33810_1_GD_0"; +case MC33810_1_GD_1: + return "MC33810_1_GD_1"; +case MC33810_1_GD_2: + return "MC33810_1_GD_2"; +case MC33810_1_GD_3: + return "MC33810_1_GD_3"; +case MC33810_1_OUT_0: + return "MC33810_1_OUT_0"; +case MC33810_1_OUT_1: + return "MC33810_1_OUT_1"; +case MC33810_1_OUT_2: + return "MC33810_1_OUT_2"; +case MC33810_1_OUT_3: + return "MC33810_1_OUT_3"; +case MC33972_PIN_1: + return "MC33972_PIN_1"; +case MC33972_PIN_10: + return "MC33972_PIN_10"; +case MC33972_PIN_11: + return "MC33972_PIN_11"; +case MC33972_PIN_12: + return "MC33972_PIN_12"; +case MC33972_PIN_13: + return "MC33972_PIN_13"; +case MC33972_PIN_14: + return "MC33972_PIN_14"; +case MC33972_PIN_15: + return "MC33972_PIN_15"; +case MC33972_PIN_16: + return "MC33972_PIN_16"; +case MC33972_PIN_17: + return "MC33972_PIN_17"; +case MC33972_PIN_18: + return "MC33972_PIN_18"; +case MC33972_PIN_19: + return "MC33972_PIN_19"; +case MC33972_PIN_2: + return "MC33972_PIN_2"; +case MC33972_PIN_20: + return "MC33972_PIN_20"; +case MC33972_PIN_21: + return "MC33972_PIN_21"; +case MC33972_PIN_22: + return "MC33972_PIN_22"; +case MC33972_PIN_3: + return "MC33972_PIN_3"; +case MC33972_PIN_4: + return "MC33972_PIN_4"; +case MC33972_PIN_5: + return "MC33972_PIN_5"; +case MC33972_PIN_6: + return "MC33972_PIN_6"; +case MC33972_PIN_7: + return "MC33972_PIN_7"; +case MC33972_PIN_8: + return "MC33972_PIN_8"; +case MC33972_PIN_9: + return "MC33972_PIN_9"; +case TLE6240_PIN_1: + return "TLE6240_PIN_1"; +case TLE6240_PIN_10: + return "TLE6240_PIN_10"; +case TLE6240_PIN_11: + return "TLE6240_PIN_11"; +case TLE6240_PIN_12: + return "TLE6240_PIN_12"; +case TLE6240_PIN_13: + return "TLE6240_PIN_13"; +case TLE6240_PIN_14: + return "TLE6240_PIN_14"; +case TLE6240_PIN_15: + return "TLE6240_PIN_15"; +case TLE6240_PIN_16: + return "TLE6240_PIN_16"; +case TLE6240_PIN_2: + return "TLE6240_PIN_2"; +case TLE6240_PIN_3: + return "TLE6240_PIN_3"; +case TLE6240_PIN_4: + return "TLE6240_PIN_4"; +case TLE6240_PIN_5: + return "TLE6240_PIN_5"; +case TLE6240_PIN_6: + return "TLE6240_PIN_6"; +case TLE6240_PIN_7: + return "TLE6240_PIN_7"; +case TLE6240_PIN_8: + return "TLE6240_PIN_8"; +case TLE6240_PIN_9: + return "TLE6240_PIN_9"; + } + return NULL; +} +const char *getCan_baudrate_e(can_baudrate_e value){ +switch(value) { +case B100KBPS: + return "B100KBPS"; +case B1MBPS: + return "B1MBPS"; +case B250KBPS: + return "B250KBPS"; +case B500KBPS: + return "B500KBPS"; + } + return NULL; +} +const char *getCan_nbc_e(can_nbc_e value){ +switch(value) { +case CAN_BUS_BMW_E90: + return "CAN_BUS_BMW_E90"; +case CAN_BUS_Haltech: + return "CAN_BUS_Haltech"; +case CAN_BUS_MAZDA_RX8: + return "CAN_BUS_MAZDA_RX8"; +case CAN_BUS_NBC_BMW: + return "CAN_BUS_NBC_BMW"; +case CAN_BUS_NBC_FIAT: + return "CAN_BUS_NBC_FIAT"; +case CAN_BUS_NBC_NONE: + return "CAN_BUS_NBC_NONE"; +case CAN_BUS_NBC_VAG: + return "CAN_BUS_NBC_VAG"; +case CAN_BUS_W202_C180: + return "CAN_BUS_W202_C180"; +case Internal_ForceMyEnumIntSize_can_nbc: + return "Internal_ForceMyEnumIntSize_can_nbc"; + } + return NULL; +} +const char *getCan_vss_nbc_e(can_vss_nbc_e value){ +switch(value) { +case BMW_e46: + return "BMW_e46"; +case Force_4_bytes_size_can_vss_nbc_e: + return "Force_4_bytes_size_can_vss_nbc_e"; +case W202: + return "W202"; + } + return NULL; +} +const char *getChamber_style_e(chamber_style_e value){ +switch(value) { +case CS_CLOSED: + return "CS_CLOSED"; +case CS_OPEN: + return "CS_OPEN"; +case CS_SWIRL_TUMBLE: + return "CS_SWIRL_TUMBLE"; +case Internal_ForceMyEnumIntSize_chamber_stype: + return "Internal_ForceMyEnumIntSize_chamber_stype"; + } + return NULL; +} +const char *getCranking_ignition_mode_e(cranking_ignition_mode_e value){ +switch(value) { +case CIM_DEFAULT: + return "CIM_DEFAULT"; +case CIM_FIXED_ANGLE: + return "CIM_FIXED_ANGLE"; +case Force_4_bytes_size_cranking_ignition_mode: + return "Force_4_bytes_size_cranking_ignition_mode"; + } + return NULL; +} +const char *getDebug_mode_e(debug_mode_e value){ +switch(value) { +case DBG_16: + return "DBG_16"; +case DBG_34: + return "DBG_34"; +case DBG_48: + return "DBG_48"; +case DBG_ALTERNATOR_PID: + return "DBG_ALTERNATOR_PID"; +case DBG_ANALOG_INPUTS: + return "DBG_ANALOG_INPUTS"; +case DBG_ANALOG_INPUTS2: + return "DBG_ANALOG_INPUTS2"; +case DBG_AUX_PID_1: + return "DBG_AUX_PID_1"; +case DBG_AUX_VALVES: + return "DBG_AUX_VALVES"; +case DBG_BENCH_TEST: + return "DBG_BENCH_TEST"; +case DBG_BOOST: + return "DBG_BOOST"; +case DBG_CAN: + return "DBG_CAN"; +case DBG_CJ125: + return "DBG_CJ125"; +case DBG_COMPOSITE_LOG: + return "DBG_COMPOSITE_LOG"; +case DBG_CRANKING_DETAILS: + return "DBG_CRANKING_DETAILS"; +case DBG_DWELL_METRIC: + return "DBG_DWELL_METRIC"; +case DBG_DYNO_VIEW: + return "DBG_DYNO_VIEW"; +case DBG_ELECTRONIC_THROTTLE_EXTRA: + return "DBG_ELECTRONIC_THROTTLE_EXTRA"; +case DBG_ELECTRONIC_THROTTLE_PID: + return "DBG_ELECTRONIC_THROTTLE_PID"; +case DBG_EL_ACCEL: + return "DBG_EL_ACCEL"; +case DBG_ETB_AUTOTUNE: + return "DBG_ETB_AUTOTUNE"; +case DBG_ETB_LOGIC: + return "DBG_ETB_LOGIC"; +case DBG_EXECUTOR: + return "DBG_EXECUTOR"; +case DBG_FSIO_ADC: + return "DBG_FSIO_ADC"; +case DBG_FSIO_EXPRESSION_1_7: + return "DBG_FSIO_EXPRESSION_1_7"; +case DBG_FSIO_EXPRESSION_8_14: + return "DBG_FSIO_EXPRESSION_8_14"; +case DBG_FSIO_SPECIAL: + return "DBG_FSIO_SPECIAL"; +case DBG_FUEL_PID_CORRECTION: + return "DBG_FUEL_PID_CORRECTION"; +case DBG_GPPWM: + return "DBG_GPPWM"; +case DBG_IDLE_CONTROL: + return "DBG_IDLE_CONTROL"; +case DBG_IGNITION_TIMING: + return "DBG_IGNITION_TIMING"; +case DBG_INJECTOR_COMPENSATION: + return "DBG_INJECTOR_COMPENSATION"; +case DBG_INSTANT_RPM: + return "DBG_INSTANT_RPM"; +case DBG_ION: + return "DBG_ION"; +case DBG_KNOCK: + return "DBG_KNOCK"; +case DBG_LAUNCH: + return "DBG_LAUNCH"; +case DBG_LOGIC_ANALYZER: + return "DBG_LOGIC_ANALYZER"; +case DBG_MAP: + return "DBG_MAP"; +case DBG_METRICS: + return "DBG_METRICS"; +case DBG_RUSEFI_WIDEBAND: + return "DBG_RUSEFI_WIDEBAND"; +case DBG_SD_CARD: + return "DBG_SD_CARD"; +case DBG_SR5_PROTOCOL: + return "DBG_SR5_PROTOCOL"; +case DBG_START_STOP: + return "DBG_START_STOP"; +case DBG_STATUS: + return "DBG_STATUS"; +case DBG_TCU: + return "DBG_TCU"; +case DBG_TLE8888: + return "DBG_TLE8888"; +case DBG_TPS_ACCEL: + return "DBG_TPS_ACCEL"; +case DBG_TRIGGER_COUNTERS: + return "DBG_TRIGGER_COUNTERS"; +case DBG_VEHICLE_SPEED_SENSOR: + return "DBG_VEHICLE_SPEED_SENSOR"; +case DBG_VVT: + return "DBG_VVT"; +case Force_4_bytes_size_debug_mode_e: + return "Force_4_bytes_size_debug_mode_e"; + } + return NULL; +} +const char *getDisplay_mode_e(display_mode_e value){ +switch(value) { +case DM_HD44780: + return "DM_HD44780"; +case DM_HD44780_OVER_PCF8574: + return "DM_HD44780_OVER_PCF8574"; +case DM_NONE: + return "DM_NONE"; +case Force_4_bytes_size_display_mode: + return "Force_4_bytes_size_display_mode"; + } + return NULL; +} +const char *getEgo_sensor_e(ego_sensor_e value){ +switch(value) { +case ES_14Point7_Free: + return "ES_14Point7_Free"; +case ES_AEM: + return "ES_AEM"; +case ES_BPSX_D1: + return "ES_BPSX_D1"; +case ES_Custom: + return "ES_Custom"; +case ES_Innovate_MTX_L: + return "ES_Innovate_MTX_L"; +case ES_NarrowBand: + return "ES_NarrowBand"; +case ES_PLX: + return "ES_PLX"; +case Force_4_bytes_size_ego_sensor: + return "Force_4_bytes_size_ego_sensor"; + } + return NULL; +} +const char *getEngine_load_mode_e(engine_load_mode_e value){ +switch(value) { +case Force_4_bytes_size_engine_load_mode: + return "Force_4_bytes_size_engine_load_mode"; +case LM_ALPHA_N: + return "LM_ALPHA_N"; +case LM_MOCK: + return "LM_MOCK"; +case LM_REAL_MAF: + return "LM_REAL_MAF"; +case LM_SPEED_DENSITY: + return "LM_SPEED_DENSITY"; + } + return NULL; +} +const char *getEngine_type_e(engine_type_e value){ +switch(value) { +case BMW_M73_F: + return "BMW_M73_F"; +case BMW_M73_M: + return "BMW_M73_M"; +case BMW_M73_MRE: + return "BMW_M73_MRE"; +case BMW_M73_MRE_SLAVE: + return "BMW_M73_MRE_SLAVE"; +case BMW_M73_PROTEUS: + return "BMW_M73_PROTEUS"; +case CAMARO_4: + return "CAMARO_4"; +case CITROEN_TU3JP: + return "CITROEN_TU3JP"; +case DEFAULT_FRANKENSO: + return "DEFAULT_FRANKENSO"; +case DODGE_NEON_1995: + return "DODGE_NEON_1995"; +case DODGE_NEON_2003_CRANK: + return "DODGE_NEON_2003_CRANK"; +case DODGE_RAM: + return "DODGE_RAM"; +case ETB_BENCH_ENGINE: + return "ETB_BENCH_ENGINE"; +case FORD_ASPIRE_1996: + return "FORD_ASPIRE_1996"; +case FORD_ESCORT_GT: + return "FORD_ESCORT_GT"; +case FORD_INLINE_6_1995: + return "FORD_INLINE_6_1995"; +case FRANKENSO_QA_ENGINE: + return "FRANKENSO_QA_ENGINE"; +case Force_4_bytes_size_engine_type: + return "Force_4_bytes_size_engine_type"; +case GY6_139QMB: + return "GY6_139QMB"; +case HELLEN_NB2: + return "HELLEN_NB2"; +case HONDA_600: + return "HONDA_600"; +case HONDA_ACCORD_1_24_SHIFTED: + return "HONDA_ACCORD_1_24_SHIFTED"; +case HONDA_ACCORD_CD: + return "HONDA_ACCORD_CD"; +case HONDA_ACCORD_CD_DIP: + return "HONDA_ACCORD_CD_DIP"; +case HONDA_ACCORD_CD_TWO_WIRES: + return "HONDA_ACCORD_CD_TWO_WIRES"; +case LADA_KALINA: + return "LADA_KALINA"; +case MAZDA_626: + return "MAZDA_626"; +case MAZDA_MIATA_2003: + return "MAZDA_MIATA_2003"; +case MAZDA_MIATA_2003_BOARD_TEST: + return "MAZDA_MIATA_2003_BOARD_TEST"; +case MAZDA_MIATA_2003_NA_RAIL: + return "MAZDA_MIATA_2003_NA_RAIL"; +case MAZDA_MIATA_NA8: + return "MAZDA_MIATA_NA8"; +case MAZDA_MIATA_NB1: + return "MAZDA_MIATA_NB1"; +case MIATA_1990: + return "MIATA_1990"; +case MIATA_1996: + return "MIATA_1996"; +case MIATA_NA6_MAP: + return "MIATA_NA6_MAP"; +case MIATA_NA6_VAF: + return "MIATA_NA6_VAF"; +case MIATA_PROTEUS_TCU: + return "MIATA_PROTEUS_TCU"; +case MICRO_RUS_EFI: + return "MICRO_RUS_EFI"; +case MINIMAL_PINS: + return "MINIMAL_PINS"; +case MITSU_4G93: + return "MITSU_4G93"; +case MRE_BOARD_NEW_TEST: + return "MRE_BOARD_NEW_TEST"; +case MRE_BOARD_OLD_TEST: + return "MRE_BOARD_OLD_TEST"; +case MRE_BODY_CONTROL: + return "MRE_BODY_CONTROL"; +case MRE_M111: + return "MRE_M111"; +case MRE_MIATA_94_MAP: + return "MRE_MIATA_94_MAP"; +case MRE_MIATA_NA6_MAP: + return "MRE_MIATA_NA6_MAP"; +case MRE_MIATA_NA6_VAF: + return "MRE_MIATA_NA6_VAF"; +case MRE_MIATA_NB2_ETB: + return "MRE_MIATA_NB2_ETB"; +case MRE_MIATA_NB2_MAF: + return "MRE_MIATA_NB2_MAF"; +case MRE_MIATA_NB2_MAP: + return "MRE_MIATA_NB2_MAP"; +case MRE_SUBARU_EJ18: + return "MRE_SUBARU_EJ18"; +case NISSAN_PRIMERA: + return "NISSAN_PRIMERA"; +case PROMETHEUS_DEFAULTS: + return "PROMETHEUS_DEFAULTS"; +case PROTEUS_ANALOG_PWM_TEST: + return "PROTEUS_ANALOG_PWM_TEST"; +case PROTEUS_DEFAULTS: + return "PROTEUS_DEFAULTS"; +case PROTEUS_MIATA_NB2: + return "PROTEUS_MIATA_NB2"; +case PROTEUS_QC_TEST_BOARD: + return "PROTEUS_QC_TEST_BOARD"; +case SACHS: + return "SACHS"; +case SUBARUEG33_DEFAULTS: + return "SUBARUEG33_DEFAULTS"; +case SUBARUEJ20G_DEFAULTS: + return "SUBARUEJ20G_DEFAULTS"; +case SUBARU_2003_WRX: + return "SUBARU_2003_WRX"; +case TEST_33816: + return "TEST_33816"; +case TEST_CIVIC_4_0_BOTH: + return "TEST_CIVIC_4_0_BOTH"; +case TEST_CIVIC_4_0_RISE: + return "TEST_CIVIC_4_0_RISE"; +case TEST_ENGINE: + return "TEST_ENGINE"; +case TEST_ENGINE_VVT: + return "TEST_ENGINE_VVT"; +case TEST_ISSUE_366_BOTH: + return "TEST_ISSUE_366_BOTH"; +case TEST_ISSUE_366_RISE: + return "TEST_ISSUE_366_RISE"; +case TEST_ISSUE_898: + return "TEST_ISSUE_898"; +case TLE8888_BENCH_ENGINE: + return "TLE8888_BENCH_ENGINE"; +case TOYOTA_2JZ_GTE_VVTi: + return "TOYOTA_2JZ_GTE_VVTi"; +case TOYOTA_JZS147: + return "TOYOTA_JZS147"; +case UNUSED_33: + return "UNUSED_33"; +case UNUSED_34: + return "UNUSED_34"; +case UNUSED_36: + return "UNUSED_36"; +case VAG_18_TURBO: + return "VAG_18_TURBO"; +case VW_ABA: + return "VW_ABA"; +case VW_B6: + return "VW_B6"; + } + return NULL; +} +const char *getEtb_function_e(etb_function_e value){ +switch(value) { +case ETB_IdleValve: + return "ETB_IdleValve"; +case ETB_None: + return "ETB_None"; +case ETB_Throttle1: + return "ETB_Throttle1"; +case ETB_Throttle2: + return "ETB_Throttle2"; +case ETB_Wastegate: + return "ETB_Wastegate"; + } + return NULL; +} +const char *getGear_e(gear_e value){ +switch(value) { +case GEAR_1: + return "GEAR_1"; +case GEAR_2: + return "GEAR_2"; +case GEAR_3: + return "GEAR_3"; +case GEAR_4: + return "GEAR_4"; +case NEUTRAL: + return "NEUTRAL"; +case REVERSE: + return "REVERSE"; + } + return NULL; +} +const char *getGppwm_channel_e(gppwm_channel_e value){ +switch(value) { +case GPPWM_Clt: + return "GPPWM_Clt"; +case GPPWM_FuelLoad: + return "GPPWM_FuelLoad"; +case GPPWM_Iat: + return "GPPWM_Iat"; +case GPPWM_IgnLoad: + return "GPPWM_IgnLoad"; +case GPPWM_Map: + return "GPPWM_Map"; +case GPPWM_Tps: + return "GPPWM_Tps"; + } + return NULL; +} +const char *getGppwm_compare_mode_e(gppwm_compare_mode_e value){ +switch(value) { +case GPPWM_GreaterThan: + return "GPPWM_GreaterThan"; +case GPPWM_LessThan: + return "GPPWM_LessThan"; + } + return NULL; +} +const char *getHip_state_e(hip_state_e value){ +switch(value) { +case IS_INTEGRATING: + return "IS_INTEGRATING"; +case IS_SENDING_SPI_COMMAND: + return "IS_SENDING_SPI_COMMAND"; +case NOT_READY: + return "NOT_READY"; +case READY_TO_INTEGRATE: + return "READY_TO_INTEGRATE"; +case WAITING_FOR_ADC_TO_SKIP: + return "WAITING_FOR_ADC_TO_SKIP"; +case WAITING_FOR_RESULT_ADC: + return "WAITING_FOR_RESULT_ADC"; + } + return NULL; +} +const char *getIdle_mode_e(idle_mode_e value){ +switch(value) { +case Force_4_bytes_size_idle_mode: + return "Force_4_bytes_size_idle_mode"; +case IM_AUTO: + return "IM_AUTO"; +case IM_MANUAL: + return "IM_MANUAL"; + } + return NULL; +} +const char *getIdle_state_e(idle_state_e value){ +switch(value) { +case BLIP: + return "BLIP"; +case Force_4bytes_size_idle_state_e: + return "Force_4bytes_size_idle_state_e"; +case INIT: + return "INIT"; +case PID_UPPER: + return "PID_UPPER"; +case PID_VALUE: + return "PID_VALUE"; +case RPM_DEAD_ZONE: + return "RPM_DEAD_ZONE"; +case TPS_THRESHOLD: + return "TPS_THRESHOLD"; + } + return NULL; +} +const char *getIgnition_mode_e(ignition_mode_e value){ +switch(value) { +case Force_4_bytes_size_ignition_mode: + return "Force_4_bytes_size_ignition_mode"; +case IM_INDIVIDUAL_COILS: + return "IM_INDIVIDUAL_COILS"; +case IM_ONE_COIL: + return "IM_ONE_COIL"; +case IM_TWO_COILS: + return "IM_TWO_COILS"; +case IM_WASTED_SPARK: + return "IM_WASTED_SPARK"; + } + return NULL; +} +const char *getInjection_mode_e(injection_mode_e value){ +switch(value) { +case Force_4_bytes_size_injection_mode: + return "Force_4_bytes_size_injection_mode"; +case IM_BATCH: + return "IM_BATCH"; +case IM_SEQUENTIAL: + return "IM_SEQUENTIAL"; +case IM_SIMULTANEOUS: + return "IM_SIMULTANEOUS"; +case IM_SINGLE_POINT: + return "IM_SINGLE_POINT"; + } + return NULL; +} +const char *getInjector_compensation_mode_e(injector_compensation_mode_e value){ +switch(value) { +case ICM_FixedRailPressure: + return "ICM_FixedRailPressure"; +case ICM_None: + return "ICM_None"; +case ICM_SensedRailPressure: + return "ICM_SensedRailPressure"; + } + return NULL; +} +const char *getInjector_pressure_type_e(injector_pressure_type_e value){ +switch(value) { +case IPT_High: + return "IPT_High"; +case IPT_Low: + return "IPT_Low"; + } + return NULL; +} +const char *getLaunchActivationMode_e(launchActivationMode_e value){ +switch(value) { +case ALWAYS_ACTIVE_LAUNCH: + return "ALWAYS_ACTIVE_LAUNCH"; +case CLUTCH_INPUT_LAUNCH: + return "CLUTCH_INPUT_LAUNCH"; +case Force_4bytes_size_launchActivationMode_e: + return "Force_4bytes_size_launchActivationMode_e"; +case SWITCH_INPUT_LAUNCH: + return "SWITCH_INPUT_LAUNCH"; + } + return NULL; +} +const char *getLog_format_e(log_format_e value){ +switch(value) { +case Force_4_bytes_size_log_format: + return "Force_4_bytes_size_log_format"; +case LF_NATIVE: + return "LF_NATIVE"; +case LM_MLV: + return "LM_MLV"; + } + return NULL; +} +const char *getMaf_sensor_type_e(maf_sensor_type_e value){ +switch(value) { +case Bosch0280218004: + return "Bosch0280218004"; +case Bosch0280218037: + return "Bosch0280218037"; +case CUSTOM: + return "CUSTOM"; +case DensoTODO: + return "DensoTODO"; +case Internal_ForceMyEnumIntSize_maf_sensor: + return "Internal_ForceMyEnumIntSize_maf_sensor"; + } + return NULL; +} +const char *getOperation_mode_e(operation_mode_e value){ +switch(value) { +case FOUR_STROKE_CAM_SENSOR: + return "FOUR_STROKE_CAM_SENSOR"; +case FOUR_STROKE_CRANK_SENSOR: + return "FOUR_STROKE_CRANK_SENSOR"; +case FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR: + return "FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR"; +case FOUR_STROKE_THREE_TIMES_CRANK_SENSOR: + return "FOUR_STROKE_THREE_TIMES_CRANK_SENSOR"; +case Force_4_bytes_size_operation_mode_e: + return "Force_4_bytes_size_operation_mode_e"; +case OM_NONE: + return "OM_NONE"; +case TWO_STROKE: + return "TWO_STROKE"; + } + return NULL; +} +const char *getPin_input_mode_e(pin_input_mode_e value){ +switch(value) { +case PI_DEFAULT: + return "PI_DEFAULT"; +case PI_PULLDOWN: + return "PI_PULLDOWN"; +case PI_PULLUP: + return "PI_PULLUP"; + } + return NULL; +} +const char *getPin_mode_e(pin_mode_e value){ +switch(value) { +case PO_DEFAULT: + return "PO_DEFAULT"; +case PO_OPENDRAIN: + return "PO_OPENDRAIN"; +case PO_PULLDOWN: + return "PO_PULLDOWN"; +case PO_PULLUP: + return "PO_PULLUP"; + } + return NULL; +} +const char *getPin_output_mode_e(pin_output_mode_e value){ +switch(value) { +case OM_DEFAULT: + return "OM_DEFAULT"; +case OM_INVERTED: + return "OM_INVERTED"; +case OM_OPENDRAIN: + return "OM_OPENDRAIN"; +case OM_OPENDRAIN_INVERTED: + return "OM_OPENDRAIN_INVERTED"; + } + return NULL; +} +const char *getSensor_chart_e(sensor_chart_e value){ +switch(value) { +case Internal_ForceMyEnumIntSize_sensor_chart: + return "Internal_ForceMyEnumIntSize_sensor_chart"; +case SC_AUX_FAST1: + return "SC_AUX_FAST1"; +case SC_DETAILED_RPM: + return "SC_DETAILED_RPM"; +case SC_MAP: + return "SC_MAP"; +case SC_OFF: + return "SC_OFF"; +case SC_RPM_ACCEL: + return "SC_RPM_ACCEL"; +case SC_TRIGGER: + return "SC_TRIGGER"; + } + return NULL; +} +const char *getSpi_device_e(spi_device_e value){ +switch(value) { +case SPI_DEVICE_1: + return "SPI_DEVICE_1"; +case SPI_DEVICE_2: + return "SPI_DEVICE_2"; +case SPI_DEVICE_3: + return "SPI_DEVICE_3"; +case SPI_DEVICE_4: + return "SPI_DEVICE_4"; +case SPI_NONE: + return "SPI_NONE"; + } + return NULL; +} +const char *getSpi_speed_e(spi_speed_e value){ +switch(value) { +case _150KHz: + return "_150KHz"; +case _1_25MHz: + return "_1_25MHz"; +case _2_5MHz: + return "_2_5MHz"; +case _5MHz: + return "_5MHz"; + } + return NULL; +} +const char *getTChargeMode_e(tChargeMode_e value){ +switch(value) { +case Force_4bytes_size_tChargeMode_e: + return "Force_4bytes_size_tChargeMode_e"; +case TCHARGE_MODE_AIR_INTERP: + return "TCHARGE_MODE_AIR_INTERP"; +case TCHARGE_MODE_RPM_TPS: + return "TCHARGE_MODE_RPM_TPS"; + } + return NULL; +} +const char *getTiming_mode_e(timing_mode_e value){ +switch(value) { +case Internal_ForceMyEnumIntSize_timing_mode: + return "Internal_ForceMyEnumIntSize_timing_mode"; +case TM_DYNAMIC: + return "TM_DYNAMIC"; +case TM_FIXED: + return "TM_FIXED"; + } + return NULL; +} +const char *getTle8888_mode_e(tle8888_mode_e value){ +switch(value) { +case TL_AUTO: + return "TL_AUTO"; +case TL_HALL: + return "TL_HALL"; +case TL_MANUAL: + return "TL_MANUAL"; +case TL_SEMI_AUTO: + return "TL_SEMI_AUTO"; + } + return NULL; +} +const char *getTrigger_event_e(trigger_event_e value){ +switch(value) { +case SHAFT_3RD_FALLING: + return "SHAFT_3RD_FALLING"; +case SHAFT_3RD_RISING: + return "SHAFT_3RD_RISING"; +case SHAFT_PRIMARY_FALLING: + return "SHAFT_PRIMARY_FALLING"; +case SHAFT_PRIMARY_RISING: + return "SHAFT_PRIMARY_RISING"; +case SHAFT_SECONDARY_FALLING: + return "SHAFT_SECONDARY_FALLING"; +case SHAFT_SECONDARY_RISING: + return "SHAFT_SECONDARY_RISING"; + } + return NULL; +} +const char *getTrigger_type_e(trigger_type_e value){ +switch(value) { +case Force_4_bytes_size_trigger_type: + return "Force_4_bytes_size_trigger_type"; +case TT_1_16: + return "TT_1_16"; +case TT_2JZ_1_12: + return "TT_2JZ_1_12"; +case TT_2JZ_3_34: + return "TT_2JZ_3_34"; +case TT_36_2_2_2: + return "TT_36_2_2_2"; +case TT_3_1_CAM: + return "TT_3_1_CAM"; +case TT_52: + return "TT_52"; +case TT_60_2_VW: + return "TT_60_2_VW"; +case TT_CHRYSLER_NGC_36_2_2: + return "TT_CHRYSLER_NGC_36_2_2"; +case TT_DAIHATSU: + return "TT_DAIHATSU"; +case TT_DODGE_NEON_1995: + return "TT_DODGE_NEON_1995"; +case TT_DODGE_NEON_1995_ONLY_CRANK: + return "TT_DODGE_NEON_1995_ONLY_CRANK"; +case TT_DODGE_NEON_2003_CAM: + return "TT_DODGE_NEON_2003_CAM"; +case TT_DODGE_NEON_2003_CRANK: + return "TT_DODGE_NEON_2003_CRANK"; +case TT_DODGE_RAM: + return "TT_DODGE_RAM"; +case TT_DODGE_STRATUS: + return "TT_DODGE_STRATUS"; +case TT_FIAT_IAW_P8: + return "TT_FIAT_IAW_P8"; +case TT_FORD_ASPIRE: + return "TT_FORD_ASPIRE"; +case TT_FORD_ST170: + return "TT_FORD_ST170"; +case TT_GM_60_2_2_2: + return "TT_GM_60_2_2_2"; +case TT_GM_7X: + return "TT_GM_7X"; +case TT_GM_LS_24: + return "TT_GM_LS_24"; +case TT_HONDA_1_24: + return "TT_HONDA_1_24"; +case TT_HONDA_1_4_24: + return "TT_HONDA_1_4_24"; +case TT_HONDA_4_24: + return "TT_HONDA_4_24"; +case TT_HONDA_4_24_1: + return "TT_HONDA_4_24_1"; +case TT_HONDA_ACCORD_1_24_SHIFTED: + return "TT_HONDA_ACCORD_1_24_SHIFTED"; +case TT_HONDA_CBR_600: + return "TT_HONDA_CBR_600"; +case TT_HONDA_K_12_1: + return "TT_HONDA_K_12_1"; +case TT_JEEP_18_2_2_2: + return "TT_JEEP_18_2_2_2"; +case TT_JEEP_4_CYL: + return "TT_JEEP_4_CYL"; +case TT_MAZDA_DOHC_1_4: + return "TT_MAZDA_DOHC_1_4"; +case TT_MAZDA_MIATA_NA: + return "TT_MAZDA_MIATA_NA"; +case TT_MAZDA_MIATA_NB1: + return "TT_MAZDA_MIATA_NB1"; +case TT_MAZDA_MIATA_VVT_TEST: + return "TT_MAZDA_MIATA_VVT_TEST"; +case TT_MAZDA_SOHC_4: + return "TT_MAZDA_SOHC_4"; +case TT_MIATA_VVT: + return "TT_MIATA_VVT"; +case TT_MITSUBISHI: + return "TT_MITSUBISHI"; +case TT_NISSAN_SR20VE: + return "TT_NISSAN_SR20VE"; +case TT_NISSAN_SR20VE_360: + return "TT_NISSAN_SR20VE_360"; +case TT_ONE: + return "TT_ONE"; +case TT_ONE_PLUS_ONE: + return "TT_ONE_PLUS_ONE"; +case TT_RENIX_44_2_2: + return "TT_RENIX_44_2_2"; +case TT_RENIX_66_2_2_2: + return "TT_RENIX_66_2_2_2"; +case TT_ROVER_K: + return "TT_ROVER_K"; +case TT_SUBARU_7_6: + return "TT_SUBARU_7_6"; +case TT_SUBARU_7_WITHOUT_6: + return "TT_SUBARU_7_WITHOUT_6"; +case TT_SUBARU_SVX: + return "TT_SUBARU_SVX"; +case TT_TOOTHED_WHEEL: + return "TT_TOOTHED_WHEEL"; +case TT_TOOTHED_WHEEL_36_1: + return "TT_TOOTHED_WHEEL_36_1"; +case TT_TOOTHED_WHEEL_36_2: + return "TT_TOOTHED_WHEEL_36_2"; +case TT_TOOTHED_WHEEL_60_2: + return "TT_TOOTHED_WHEEL_60_2"; +case TT_TRI_TACH: + return "TT_TRI_TACH"; +case TT_UNUSED: + return "TT_UNUSED"; +case TT_VVT_BOSCH_QUICK_START: + return "TT_VVT_BOSCH_QUICK_START"; +case TT_VVT_JZ: + return "TT_VVT_JZ"; +case TT_VVT_MIATA_NB2: + return "TT_VVT_MIATA_NB2"; + } + return NULL; +} +const char *getTrigger_value_e(trigger_value_e value){ +switch(value) { +case TV_FALL: + return "TV_FALL"; +case TV_RISE: + return "TV_RISE"; + } + return NULL; +} +const char *getTrigger_wheel_e(trigger_wheel_e value){ +switch(value) { +case T_CHANNEL_3: + return "T_CHANNEL_3"; +case T_NONE: + return "T_NONE"; +case T_PRIMARY: + return "T_PRIMARY"; +case T_SECONDARY: + return "T_SECONDARY"; + } + return NULL; +} +const char *getUart_device_e(uart_device_e value){ +switch(value) { +case UART_DEVICE_1: + return "UART_DEVICE_1"; +case UART_DEVICE_2: + return "UART_DEVICE_2"; +case UART_DEVICE_3: + return "UART_DEVICE_3"; +case UART_DEVICE_4: + return "UART_DEVICE_4"; +case UART_NONE: + return "UART_NONE"; + } + return NULL; +} +const char *getVe_override_e(ve_override_e value){ +switch(value) { +case VE_MAP: + return "VE_MAP"; +case VE_None: + return "VE_None"; +case VE_TPS: + return "VE_TPS"; + } + return NULL; +} +const char *getVvt_mode_e(vvt_mode_e value){ +switch(value) { +case Force_4_bytes_size_vvt_mode: + return "Force_4_bytes_size_vvt_mode"; +case MIATA_NB2: + return "MIATA_NB2"; +case VVT_2JZ: + return "VVT_2JZ"; +case VVT_4_1: + return "VVT_4_1"; +case VVT_BOSCH_QUICK_START: + return "VVT_BOSCH_QUICK_START"; +case VVT_FIRST_HALF: + return "VVT_FIRST_HALF"; +case VVT_FORD_ST170: + return "VVT_FORD_ST170"; +case VVT_INACTIVE: + return "VVT_INACTIVE"; +case VVT_SECOND_HALF: + return "VVT_SECOND_HALF"; + } + return NULL; +} diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h new file mode 100644 index 0000000000..e72938f327 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.h @@ -0,0 +1,59 @@ +// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 22 13:52:01 MSK 2020 +// see also gen_config_and_enums.bat + + + +#include "rusefi_enums.h" +#include "rusefi_hw_enums.h" +#pragma once +const char *getPidAutoTune_AutoTunerState(PidAutoTune_AutoTunerState value); +const char *getPidAutoTune_Peak(PidAutoTune_Peak value); +const char *getAdc_channel_e(adc_channel_e value); +const char *getAdc_channel_mode_e(adc_channel_mode_e value); +const char *getAfr_override_e(afr_override_e value); +const char *getAir_pressure_sensor_type_e(air_pressure_sensor_type_e value); +const char *getAntiLagActivationMode_e(antiLagActivationMode_e value); +const char *getBoostType_e(boostType_e value); +const char *getBrain_pin_diag_e(brain_pin_diag_e value); +const char *getBrain_pin_e(brain_pin_e value); +const char *getCan_baudrate_e(can_baudrate_e value); +const char *getCan_nbc_e(can_nbc_e value); +const char *getCan_vss_nbc_e(can_vss_nbc_e value); +const char *getChamber_style_e(chamber_style_e value); +const char *getCranking_ignition_mode_e(cranking_ignition_mode_e value); +const char *getDebug_mode_e(debug_mode_e value); +const char *getDisplay_mode_e(display_mode_e value); +const char *getEgo_sensor_e(ego_sensor_e value); +const char *getEngine_load_mode_e(engine_load_mode_e value); +const char *getEngine_type_e(engine_type_e value); +const char *getEtb_function_e(etb_function_e value); +const char *getGear_e(gear_e value); +const char *getGppwm_channel_e(gppwm_channel_e value); +const char *getGppwm_compare_mode_e(gppwm_compare_mode_e value); +const char *getHip_state_e(hip_state_e value); +const char *getIdle_mode_e(idle_mode_e value); +const char *getIdle_state_e(idle_state_e value); +const char *getIgnition_mode_e(ignition_mode_e value); +const char *getInjection_mode_e(injection_mode_e value); +const char *getInjector_compensation_mode_e(injector_compensation_mode_e value); +const char *getInjector_pressure_type_e(injector_pressure_type_e value); +const char *getLaunchActivationMode_e(launchActivationMode_e value); +const char *getLog_format_e(log_format_e value); +const char *getMaf_sensor_type_e(maf_sensor_type_e value); +const char *getOperation_mode_e(operation_mode_e value); +const char *getPin_input_mode_e(pin_input_mode_e value); +const char *getPin_mode_e(pin_mode_e value); +const char *getPin_output_mode_e(pin_output_mode_e value); +const char *getSensor_chart_e(sensor_chart_e value); +const char *getSpi_device_e(spi_device_e value); +const char *getSpi_speed_e(spi_speed_e value); +const char *getTChargeMode_e(tChargeMode_e value); +const char *getTiming_mode_e(timing_mode_e value); +const char *getTle8888_mode_e(tle8888_mode_e value); +const char *getTrigger_event_e(trigger_event_e value); +const char *getTrigger_type_e(trigger_type_e value); +const char *getTrigger_value_e(trigger_value_e value); +const char *getTrigger_wheel_e(trigger_wheel_e value); +const char *getUart_device_e(uart_device_e value); +const char *getVe_override_e(ve_override_e value); +const char *getVvt_mode_e(vvt_mode_e value); diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h new file mode 100644 index 0000000000..0c71d0db00 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h @@ -0,0 +1,3806 @@ +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sat Feb 06 13:53:35 MSK 2021 +// by class com.rusefi.output.CHeaderConsumer +// begin +#pragma once +#include "rusefi_types.h" +// start of stft_cell_cfg_s +struct stft_cell_cfg_s { + /** + * offset 0 + */ + int8_t maxAdd; + /** + * offset 1 + */ + int8_t maxRemove; + /** + * offset 2 + */ + uint16_t timeConstant; + /** total size 4*/ +}; + +typedef struct stft_cell_cfg_s stft_cell_cfg_s; + +// start of stft_s +struct stft_s { + /** + * Below this RPM, the idle region is active + * offset 0 + */ + uint8_t maxIdleRegionRpm; + /** + * Below this engine load, the overrun region is active + * offset 1 + */ + uint8_t maxOverrunLoad; + /** + * Above this engine load, the power region is active + * offset 2 + */ + uint8_t minPowerLoad; + /** + * When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required. + * offset 3 + */ + uint8_t deadband; + /** + * Below this temperature, correction is disabled. + * offset 4 + */ + int8_t minClt; + /** + * Below this AFR, correction is paused + * offset 5 + */ + uint8_t minAfr; + /** + * Above this AFR, correction is paused + * offset 6 + */ + uint8_t maxAfr; + /** + * Delay after starting the engine before beginning closed loop correction. + * offset 7 + */ + uint8_t startupDelay; + /** + * offset 8 + */ + stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT]; + /** total size 24*/ +}; + +typedef struct stft_s stft_s; + +// start of pid_s +struct pid_s { + /** + * offset 0 + */ + float pFactor; + /** + * offset 4 + */ + float iFactor; + /** + * offset 8 + */ + float dFactor; + /** + * Linear addition to PID logic + * offset 12 + */ + int16_t offset; + /** + * PID dTime + * offset 14 + */ + int16_t periodMs; + /** + * Output min value + * offset 16 + */ + int16_t minValue; + /** + * Output max value + * offset 18 + */ + int16_t maxValue; + /** total size 20*/ +}; + +typedef struct pid_s pid_s; + +// start of cranking_parameters_s +struct cranking_parameters_s { + /** + * Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width. + * A reasonable starting point is 60mg per liter per cylinder. + * ex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel. + * offset 0 + */ + float baseFuel; + /** + * This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. + * set cranking_rpm X + * offset 4 + */ + int16_t rpm; + /** + * need 4 byte alignment + * offset 6 + */ + uint8_t alignmentFill_at_6[2]; + /** total size 8*/ +}; + +typedef struct cranking_parameters_s cranking_parameters_s; + +// start of spi_pins +struct spi_pins { + /** + * offset 0 + */ + brain_pin_e mosiPin; + /** + * offset 1 + */ + brain_pin_e misoPin; + /** + * offset 2 + */ + brain_pin_e sckPin; + /** + * need 4 byte alignment + * offset 3 + */ + uint8_t alignmentFill_at_3; + /** total size 4*/ +}; + +typedef struct spi_pins spi_pins; + +// start of gppwm_channel +struct gppwm_channel { + /** + * Select a pin to use for PWM or on-off output. + * offset 0 + */ + output_pin_e pin; + /** + * If an error (with a sensor, etc) is detected, this value is used instead of reading from the table. + * This should be a safe value for whatever hardware is connected to prevent damage. + * offset 1 + */ + uint8_t dutyIfError; + /** + * Select a frequency to run PWM at. + * Set this to 0hz to enable on-off mode. + * offset 2 + */ + uint16_t pwmFrequency; + /** + * In on-off mode, turn the output on when the table value is above this duty. + * offset 4 + */ + uint8_t onAboveDuty; + /** + * In on-off mode, turn the output off when the table value is below this duty. + * offset 5 + */ + uint8_t offBelowDuty; + /** + * Selects the load axis to use for the table. + * offset 6 + */ + gppwm_channel_e loadAxis; + /** + * offset 7 + */ + uint8_t alignmentFill_map; + /** + * offset 8 + */ + uint8_t loadBins[GPPWM_LOAD_COUNT]; + /** + * offset 16 + */ + uint8_t rpmBins[GPPWM_RPM_COUNT]; + /** + * offset 24 + */ + gppwm_table_t table; + /** total size 88*/ +}; + +typedef struct gppwm_channel gppwm_channel; + +// start of air_pressure_sensor_config_s +struct air_pressure_sensor_config_s { + /** + * kPa value at low volts + * offset 0 + */ + float lowValue; + /** + * kPa value at high volts + * offset 4 + */ + float highValue; + /** + * offset 8 + */ + air_pressure_sensor_type_e type; + /** + * offset 12 + */ + adc_channel_e hwChannel; + /** + * offset 13 + */ + uint8_t alignmentFill[3]; + /** total size 16*/ +}; + +typedef struct air_pressure_sensor_config_s air_pressure_sensor_config_s; + +/** + * @brief MAP averaging configuration + +*/ +// start of MAP_sensor_config_s +struct MAP_sensor_config_s { + /** + * offset 0 + */ + float samplingAngleBins[MAP_ANGLE_SIZE]; + /** + * @brief MAP averaging sampling start angle, by RPM + * offset 32 + */ + float samplingAngle[MAP_ANGLE_SIZE]; + /** + * offset 64 + */ + float samplingWindowBins[MAP_WINDOW_SIZE]; + /** + * @brief MAP averaging angle duration, by RPM + * offset 96 + */ + float samplingWindow[MAP_WINDOW_SIZE]; + /** + * offset 128 + */ + air_pressure_sensor_config_s sensor; + /** total size 144*/ +}; + +typedef struct MAP_sensor_config_s MAP_sensor_config_s; + +/** + * @brief Thermistor known values + +*/ +// start of thermistor_conf_s +struct thermistor_conf_s { + /** + * these values are in Celcius + * offset 0 + */ + float tempC_1; + /** + * offset 4 + */ + float tempC_2; + /** + * offset 8 + */ + float tempC_3; + /** + * offset 12 + */ + float resistance_1; + /** + * offset 16 + */ + float resistance_2; + /** + * offset 20 + */ + float resistance_3; + /** + * Pull-up resistor value on your board + * offset 24 + */ + float bias_resistor; + /** total size 28*/ +}; + +typedef struct thermistor_conf_s thermistor_conf_s; + +/** + * @brief Linear sensor interpolation + +*/ +// start of linear_sensor_s +struct linear_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * offset 1 + */ + uint8_t alignmentFill[3]; + /** + * offset 4 + */ + float v1; + /** + * offset 8 + */ + float value1; + /** + * offset 12 + */ + float v2; + /** + * offset 16 + */ + float value2; + /** total size 20*/ +}; + +typedef struct linear_sensor_s linear_sensor_s; + +/** + * @brief Thermistor curve parameters + +*/ +// start of ThermistorConf +struct ThermistorConf { + /** + * offset 0 + */ + thermistor_conf_s config; + /** + * offset 28 + */ + adc_channel_e adcChannel; + /** + * need 4 byte alignment + * offset 29 + */ + uint8_t alignmentFill_at_29[3]; + /** total size 32*/ +}; + +typedef struct ThermistorConf ThermistorConf; + +// start of injector_s +struct injector_s { + /** + * This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute + * By the way, g/s = 0.125997881 * (lb/hr) + * g/s = 0.125997881 * (cc/min)/10.5 + * g/s = 0.0119997981 * cc/min + * offset 0 + */ + float flow; + /** + * set_flat_injector_lag LAG + * set_injector_lag VOLTAGE LAG + * offset 4 + */ + float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; + /** + * ms delay between injector open and close dead times + * offset 36 + */ + float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; + /** total size 68*/ +}; + +typedef struct injector_s injector_s; + +// start of specs_s +struct specs_s { + /** + * Engine displacement, in litres + * see also cylindersCount + * offset 0 + */ + float displacement; + /** + * offset 4 + */ + cylinders_count_t cylindersCount; + /** + * offset 8 + */ + firing_order_e firingOrder; + /** total size 12*/ +}; + +typedef struct specs_s specs_s; + +/** + * @brief Trigger wheel(s) configuration + +*/ +// start of trigger_config_s +struct trigger_config_s { + /** + * set trigger_type X + * offset 0 + */ + trigger_type_e type; + /** + offset 4 bit 0 */ + bool todoRemoveMeOneDay0 : 1; + /** + offset 4 bit 1 */ + bool todoRemoveMeOneDay1 : 1; + /** + * This option could be used if your second trigger channel is broken + offset 4 bit 2 */ + bool useOnlyFirstChannel : 1; + /** + offset 4 bit 3 */ + bool unusedBit_4_3 : 1; + /** + offset 4 bit 4 */ + bool unusedBit_4_4 : 1; + /** + offset 4 bit 5 */ + bool unusedBit_4_5 : 1; + /** + offset 4 bit 6 */ + bool unusedBit_4_6 : 1; + /** + offset 4 bit 7 */ + bool unusedBit_4_7 : 1; + /** + offset 4 bit 8 */ + bool unusedBit_4_8 : 1; + /** + offset 4 bit 9 */ + bool unusedBit_4_9 : 1; + /** + offset 4 bit 10 */ + bool unusedBit_4_10 : 1; + /** + offset 4 bit 11 */ + bool unusedBit_4_11 : 1; + /** + offset 4 bit 12 */ + bool unusedBit_4_12 : 1; + /** + offset 4 bit 13 */ + bool unusedBit_4_13 : 1; + /** + offset 4 bit 14 */ + bool unusedBit_4_14 : 1; + /** + offset 4 bit 15 */ + bool unusedBit_4_15 : 1; + /** + offset 4 bit 16 */ + bool unusedBit_4_16 : 1; + /** + offset 4 bit 17 */ + bool unusedBit_4_17 : 1; + /** + offset 4 bit 18 */ + bool unusedBit_4_18 : 1; + /** + offset 4 bit 19 */ + bool unusedBit_4_19 : 1; + /** + offset 4 bit 20 */ + bool unusedBit_4_20 : 1; + /** + offset 4 bit 21 */ + bool unusedBit_4_21 : 1; + /** + offset 4 bit 22 */ + bool unusedBit_4_22 : 1; + /** + offset 4 bit 23 */ + bool unusedBit_4_23 : 1; + /** + offset 4 bit 24 */ + bool unusedBit_4_24 : 1; + /** + offset 4 bit 25 */ + bool unusedBit_4_25 : 1; + /** + offset 4 bit 26 */ + bool unusedBit_4_26 : 1; + /** + offset 4 bit 27 */ + bool unusedBit_4_27 : 1; + /** + offset 4 bit 28 */ + bool unusedBit_4_28 : 1; + /** + offset 4 bit 29 */ + bool unusedBit_4_29 : 1; + /** + offset 4 bit 30 */ + bool unusedBit_4_30 : 1; + /** + offset 4 bit 31 */ + bool unusedBit_4_31 : 1; + /** + * offset 8 + */ + int customTotalToothCount; + /** + * offset 12 + */ + int customSkippedToothCount; + /** total size 16*/ +}; + +typedef struct trigger_config_s trigger_config_s; + +// start of afr_sensor_s +struct afr_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * offset 1 + */ + uint8_t alignmentFill_afr[3]; + /** + * offset 4 + */ + float v1; + /** + * offset 8 + */ + float value1; + /** + * offset 12 + */ + float v2; + /** + * offset 16 + */ + float value2; + /** total size 20*/ +}; + +typedef struct afr_sensor_s afr_sensor_s; + +// start of idle_hardware_s +struct idle_hardware_s { + /** + * offset 0 + */ + int solenoidFrequency; + /** + * offset 4 + */ + output_pin_e solenoidPin; + /** + * offset 5 + */ + output_pin_e stepperDirectionPin; + /** + * offset 6 + */ + output_pin_e stepperStepPin; + /** + * offset 7 + */ + pin_output_mode_e solenoidPinMode; + /** total size 8*/ +}; + +typedef struct idle_hardware_s idle_hardware_s; + +// start of dc_io +struct dc_io { + /** + * offset 0 + */ + brain_pin_e directionPin1; + /** + * offset 1 + */ + brain_pin_e directionPin2; + /** + * offset 2 + */ + brain_pin_e controlPin1; + /** + * offset 3 + */ + brain_pin_e disablePin; + /** total size 4*/ +}; + +typedef struct dc_io dc_io; + +// start of engine_configuration_s +struct engine_configuration_s { + /** + * http://rusefi.com/wiki/index.php?title=Manual:Engine_Type + * set engine_type X + * offset 0 + */ + engine_type_e engineType; + /** + * Engine sniffer would be disabled above this rpm + * set engineSnifferRpmThreshold X + * offset 4 + */ + int engineSnifferRpmThreshold; + /** + * offset 8 + */ + injector_s injector; + /** + offset 76 bit 0 */ + bool isForcedInduction : 1; + /** + offset 76 bit 1 */ + bool activateAuxPid1 : 1; + /** + offset 76 bit 2 */ + bool isVerboseAuxPid1 : 1; + /** + offset 76 bit 3 */ + bool activateAuxPid2 : 1; + /** + offset 76 bit 4 */ + bool isVerboseAuxPid2 : 1; + /** + offset 76 bit 5 */ + bool activateAuxPid3 : 1; + /** + offset 76 bit 6 */ + bool isVerboseAuxPid3 : 1; + /** + offset 76 bit 7 */ + bool activateAuxPid4 : 1; + /** + offset 76 bit 8 */ + bool isVerboseAuxPid4 : 1; + /** + * enable cj125verbose/disable cj125verbose + offset 76 bit 9 */ + bool isCJ125Verbose : 1; + /** + * Is your UA CJ125 output wired to MCU via resistor divider? Ua can go over 3.3v but only at lambda >3, i.e very lean AFR above 44.1 + * When exposed to free air and 17x gain, Ua will be 4.17 volt + offset 76 bit 10 */ + bool cj125isUaDivided : 1; + /** + offset 76 bit 11 */ + bool cj125isLsu49 : 1; + /** + * TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. + offset 76 bit 12 */ + bool etb_use_two_wires : 1; + /** + * Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position. + offset 76 bit 13 */ + bool isDoubleSolenoidIdle : 1; + /** + offset 76 bit 14 */ + bool showSdCardWarning : 1; + /** + * Is your UR CJ125 output wired to MCU via resistor divider? + * Looks like 3v range should be enough, divider generally not needed. + offset 76 bit 15 */ + bool cj125isUrDivided : 1; + /** + * Switch between Industrial and Cic PID implementation + offset 76 bit 16 */ + bool useCicPidForIdle : 1; + /** + offset 76 bit 17 */ + bool useTLE8888_cranking_hack : 1; + /** + offset 76 bit 18 */ + bool useInstantRpmForIdle : 1; + /** + * If your fuel regulator does not have vacuum line + offset 76 bit 19 */ + bool absoluteFuelPressure : 1; + /** + offset 76 bit 20 */ + bool launchControlEnabled : 1; + /** + offset 76 bit 21 */ + bool rollingLaunchEnabled : 1; + /** + offset 76 bit 22 */ + bool antiLagEnabled : 1; + /** + offset 76 bit 23 */ + bool useRunningMathForCranking : 1; + /** + offset 76 bit 24 */ + bool displayLogicLevelsInEngineSniffer : 1; + /** + offset 76 bit 25 */ + bool useTLE8888_stepper : 1; + /** + * If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS. + offset 76 bit 26 */ + bool enableMapEstimationTableFallback : 1; + /** + offset 76 bit 27 */ + bool useFSIOTableForCanSniffingFiltering : 1; + /** + offset 76 bit 28 */ + bool issue_294_29 : 1; + /** + offset 76 bit 29 */ + bool issue_294_30 : 1; + /** + offset 76 bit 30 */ + bool issue_294_31 : 1; + /** + offset 76 bit 31 */ + bool unusedBit_34_31 : 1; + /** + * Closed throttle, 1 volt = 200 units. + * See also tps1_1AdcChannel + * set tps_min X + * offset 80 + */ + int16_t tpsMin; + /** + * Full throttle. + * See also tps1_1AdcChannel + * set tps_max X + * offset 82 + */ + int16_t tpsMax; + /** + * TPS error detection: what throttle % is unrealistically low? + * Also used for accelerator pedal error detection if so equiped. + * offset 84 + */ + int16_t tpsErrorDetectionTooLow; + /** + * TPS error detection: what throttle % is unrealistically high? + * Also used for accelerator pedal error detection if so equiped. + * offset 86 + */ + int16_t tpsErrorDetectionTooHigh; + /** + * offset 88 + */ + cranking_parameters_s cranking; + /** + * offset 96 + */ + float primingSquirtDurationMs; + /** + * Used if useConstantDwellDuringCranking is TRUE + * offset 100 + */ + float ignitionDwellForCrankingMs; + /** + * While cranking (which causes battery voltage to drop) we can calculate dwell time in shaft + * degrees, not in absolute time as in running mode. + * set cranking_charge_angle X + * offset 104 + */ + float crankingChargeAngle; + /** + * @see hasMapSensor + * @see isMapAveragingEnabled + * offset 108 + */ + MAP_sensor_config_s map; + /** + * todo: merge with channel settings, use full-scale Thermistor here! + * offset 252 + */ + ThermistorConf clt; + /** + * offset 284 + */ + ThermistorConf iat; + /** + * A secondary Rev limit engaged by the driver to help launch the vehicle faster + * offset 316 + */ + int launchRpm; + /** + * offset 320 + */ + int launchTimingRetard; + /** + * value '6' for 8MHz hw osc + * read hip9011 datasheet for details + * todo split into two bit fields + * offset 324 + */ + int hip9011PrescalerAndSDO; + /** + * We calculate knock band based of cylinderBore + * Use this to override - kHz knock band override + * offset 328 + */ + float knockBandCustom; + /** + * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM + * offset 332 + */ + float sparkDwellRpmBins[DWELL_CURVE_SIZE]; + /** + * offset 364 + */ + float sparkDwellValues[DWELL_CURVE_SIZE]; + /** + * offset 396 + */ + specs_s specs; + /** + * Cylinder diameter, in mm. + * offset 408 + */ + float cylinderBore; + /** + * Disable sensor sniffer above this rpm + * offset 412 + */ + int sensorSnifferRpmThreshold; + /** + * set rpm_hard_limit X + * offset 416 + */ + int rpmHardLimit; + /** + * This setting controls which fuel quantity control algorithm is used. + * offset 420 + */ + engine_load_mode_e fuelAlgorithm; + /** + * This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous". + * offset 424 + */ + injection_mode_e crankingInjectionMode; + /** + * This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". + * set injection_mode X + * See also twoWireBatchInjection + * offset 428 + */ + injection_mode_e injectionMode; + /** + * this is about deciding when the injector starts it's squirt + * See also injectionPhase map + * todo: do we need even need this since we have the map anyway? + * offset 432 + */ + angle_t extraInjectionOffset; + /** + * Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines. + * set cranking_timing_angle X + * offset 436 + */ + angle_t crankingTimingAngle; + /** + * "Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle + * set ignition_mode X + * offset 440 + */ + ignition_mode_e ignitionMode; + /** + * this value could be used to offset the whole ignition timing table by a constant + * offset 444 + */ + angle_t ignitionOffset; + /** + * Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light). + * offset 448 + */ + timing_mode_e timingMode; + /** + * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing + * This mode is useful when adjusting distributor location. + * offset 452 + */ + angle_t fixedModeTiming; + /** + * Angle between Top Dead Center (TDC) and the first trigger event. + * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC + * .Knowing this angle allows us to control timing and other angles in reference to TDC. + * set global_trigger_offset_angle X + * offset 456 + */ + angle_t globalTriggerAngleOffset; + /** + * Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v. + * offset 460 + */ + float analogInputDividerCoefficient; + /** + * This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading. + * offset 464 + */ + float vbattDividerCoeff; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * offset 468 + */ + float fanOnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * offset 472 + */ + float fanOffTemperature; + /** + * This coefficient translates vehicle speed input frequency (in Hz) into vehicle speed, km/h + * offset 476 + */ + float vehicleSpeedCoef; + /** + * set can_mode X + * offset 480 + */ + can_nbc_e canNbcType; + /** + * CANbus thread period, ms + * offset 484 + */ + int canSleepPeriodMs; + /** + * 'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2 + * See engineCycle + * set operation_mode X + * offset 488 + */ + operation_mode_e ambiguousOperationMode; + /** + * offset 492 + */ + display_mode_e displayMode; + /** + * offset 496 + */ + log_format_e logFormat; + /** + * offset 500 + */ + int byFirmwareVersion; + /** + * offset 504 + */ + int HD44780width; + /** + * offset 508 + */ + int HD44780height; + /** + * First throttle body, first sensor. See also pedalPositionAdcChannel + * offset 512 + */ + adc_channel_e tps1_1AdcChannel; + /** + * This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB. + * offset 513 + */ + adc_channel_e vbattAdcChannel; + /** + * This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined. + * offset 514 + */ + adc_channel_e fuelLevelSensor; + /** + * Second throttle body position sensor, single channel so far + * set_analog_input_pin tps2 X + * offset 515 + */ + adc_channel_e tps2_1AdcChannel; + /** + * 0.1 is a good default value + * offset 516 + */ + float idle_derivativeFilterLoss; + /** + * offset 520 + */ + int sensorChartFrequency; + /** + * offset 524 + */ + trigger_config_s trigger; + /** + * offset 540 + */ + spi_device_e hip9011SpiDevice; + /** + * This value is only used for speed density fueling calculations. + * offset 541 + */ + uint8_t failedMapFallback; + /** + * offset 542 + */ + uint8_t unused542; + /** + * See hasMafSensor + * offset 543 + */ + adc_channel_e mafAdcChannel; + /** + * set global_fuel_correction X + * offset 544 + */ + float globalFuelCorrection; + /** + * offset 548 + */ + float adcVcc; + /** + * maximum total number of degrees to subtract from ignition advance + * when knocking + * offset 552 + */ + float maxKnockSubDeg; + /** + * Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. + * TODO #660 + * offset 556 + */ + brain_input_pin_e camInputs[CAM_INPUTS_COUNT]; + /** + * offset 560 + */ + afr_sensor_s afr; + /** + * Electronic throttle pedal position first channel + * See throttlePedalPositionSecondAdcChannel for second channel + * See also tps1_1AdcChannel + * set_analog_input_pin pps X + * See throttlePedalUpVoltage and throttlePedalWOTVoltage + * offset 580 + */ + adc_channel_e throttlePedalPositionAdcChannel; + /** + * offset 581 + */ + brain_pin_e tle6240_cs; + /** + * offset 582 + */ + pin_output_mode_e tle6240_csPinMode; + /** + * Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata + * offset 583 + */ + switch_input_pin_e throttlePedalUpPin; + /** + * @see hasBaroSensor + * offset 584 + */ + air_pressure_sensor_config_s baroSensor; + /** + * offset 600 + */ + idle_hardware_s idle; + /** + * value between 0 and 100 used in Manual mode + * offset 608 + */ + float manIdlePosition; + /** + * offset 612 + */ + float mapFrequency0Kpa; + /** + * offset 616 + */ + float mapFrequency100Kpa; + /** + * Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires) + * See also directSelfStimulation (no wires, bypassing input hardware) + * rpm X + * TODO: rename to triggerSimulatorRpm + * offset 620 + */ + int triggerSimulatorFrequency; + /** + * offset 624 + */ + output_pin_e injectionPins[INJECTION_PIN_COUNT]; + /** + * offset 636 + */ + output_pin_e ignitionPins[IGNITION_PIN_COUNT]; + /** + * offset 648 + */ + pin_output_mode_e injectionPinMode; + /** + * offset 649 + */ + pin_output_mode_e ignitionPinMode; + /** + * offset 650 + */ + brain_pin_e HD44780_rs; + /** + * offset 651 + */ + brain_pin_e HD44780_e; + /** + * offset 652 + */ + brain_pin_e HD44780_db4; + /** + * offset 653 + */ + brain_pin_e HD44780_db5; + /** + * offset 654 + */ + brain_pin_e HD44780_db6; + /** + * offset 655 + */ + brain_pin_e HD44780_db7; + /** + * offset 656 + */ + brain_pin_e gps_rx_pin; + /** + * offset 657 + */ + brain_pin_e gps_tx_pin; + /** + * offset 658 + */ + output_pin_e fuelPumpPin; + /** + * offset 659 + */ + pin_output_mode_e fuelPumpPinMode; + /** + * Check engine light, also malfunction indicator light. Always blinks once on boot. + * offset 660 + */ + output_pin_e malfunctionIndicatorPin; + /** + * offset 661 + */ + pin_output_mode_e malfunctionIndicatorPinMode; + /** + * offset 662 + */ + pin_output_mode_e fanPinMode; + /** + * offset 663 + */ + output_pin_e fanPin; + /** + * some cars have a switch to indicate that clutch pedal is all the way down + * offset 664 + */ + switch_input_pin_e clutchDownPin; + /** + * offset 665 + */ + output_pin_e alternatorControlPin; + /** + * offset 666 + */ + pin_output_mode_e alternatorControlPinMode; + /** + * offset 667 + */ + pin_input_mode_e clutchDownPinMode; + /** + * offset 668 + */ + brain_pin_e digitalPotentiometerChipSelect[DIGIPOT_COUNT]; + /** + * offset 672 + */ + pin_output_mode_e electronicThrottlePin1Mode; + /** + * set_cj125_heater_pin XXX + * offset 673 + */ + brain_pin_e wboHeaterPin; + /** + * set_cj125_cs_pin XXX + * offset 674 + */ + brain_pin_e cj125CsPin; + /** + * offset 675 + */ + spi_device_e max31855spiDevice; + /** + * offset 676 + */ + brain_pin_e debugTriggerSync; + /** + * Digital Potentiometer is used by stock ECU stimulation code + * offset 677 + */ + spi_device_e digitalPotentiometerSpiDevice; + /** + * offset 678 + */ + brain_pin_e mc33972_cs; + /** + * offset 679 + */ + pin_output_mode_e mc33972_csPinMode; + /** + * Useful in Research&Development phase + * offset 680 + */ + adc_channel_e auxFastSensor1_adcChannel; + /** + * First throttle body, second sensor. + * offset 681 + */ + adc_channel_e tps1_2AdcChannel; + /** + * Second throttle body, second sensor. + * offset 682 + */ + adc_channel_e tps2_2AdcChannel; + /** + * Electronic throttle pedal position input + * Second channel + * See also tps1_1AdcChannel + * See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage + * offset 683 + */ + adc_channel_e throttlePedalPositionSecondAdcChannel; + /** + * offset 684 + */ + float fuelLevelEmptyTankVoltage; + /** + * offset 688 + */ + float fuelLevelFullTankVoltage; + /** + * AFR, WBO, EGO - whatever you like to call it + * offset 692 + */ + ego_sensor_e afr_type; + /** + * 0.1 is a good default value + * offset 696 + */ + float idle_antiwindupFreq; + /** + * offset 700 + */ + brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT]; + /** + * offset 703 + */ + pin_output_mode_e hip9011CsPinMode; + /** + * offset 704 + */ + output_pin_e tachOutputPin; + /** + * offset 705 + */ + pin_output_mode_e tachOutputPinMode; + /** + * offset 706 + */ + output_pin_e mainRelayPin; + /** + * offset 707 + */ + brain_pin_e sdCardCsPin; + /** + * set_can_tx_pin X + * offset 708 + */ + brain_pin_e canTxPin; + /** + * set_can_rx_pin X + * offset 709 + */ + brain_pin_e canRxPin; + /** + * offset 710 + */ + pin_input_mode_e throttlePedalUpPinMode; + /** + * Additional idle PID offset while A/C is active + * offset 711 + */ + uint8_t acIdleExtraOffset; + /** + * CANbus thread period, ms + * offset 712 + */ + int can2SleepPeriodMs; + /** + * Voltage when the wastegate is closed. + * You probably don't have one of these! + * offset 716 + */ + uint16_t wastegatePositionMin; + /** + * Voltage when the wastegate is fully open. + * You probably don't have one of these! + * 1 volt = 1000 units + * offset 718 + */ + uint16_t wastegatePositionMax; + /** + * Voltage when the idle valve is closed. + * You probably don't have one of these! + * offset 720 + */ + uint16_t idlePositionMin; + /** + * Voltage when the idle valve is open. + * You probably don't have one of these! + * 1 volt = 1000 units + * offset 722 + */ + uint16_t idlePositionMax; + /** + * offset 724 + */ + uint16_t tempHpfpStart; + /** + * offset 726 + */ + uint16_t tempHpfpDuration; + /** + * Secondary TTL channel baud rate + * offset 728 + */ + uint32_t tunerStudioSerialSpeed; + /** + * Just for reference really, not taken into account by any logic at this point + * offset 732 + */ + float compressionRatio; + /** + * Each rusEfi piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEfi board. + * See also directSelfStimulation which is different. + * offset 736 + */ + brain_pin_e triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * offset 739 + */ + pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * Narrow band o2 heater, not used for CJ125. See wboHeaterPin + * offset 742 + */ + output_pin_e o2heaterPin; + /** + * offset 743 + */ + pin_output_mode_e o2heaterPinModeTodO; + /** + offset 744 bit 0 */ + bool is_enabled_spi_1 : 1; + /** + offset 744 bit 1 */ + bool is_enabled_spi_2 : 1; + /** + offset 744 bit 2 */ + bool is_enabled_spi_3 : 1; + /** + * enable sd/disable sd + offset 744 bit 3 */ + bool isSdCardEnabled : 1; + /** + offset 744 bit 4 */ + bool unused744b4 : 1; + /** + offset 744 bit 5 */ + bool isEngineControlEnabled : 1; + /** + offset 744 bit 6 */ + bool isHip9011Enabled : 1; + /** + offset 744 bit 7 */ + bool isVerboseAlternator : 1; + /** + offset 744 bit 8 */ + bool useSerialPort : 1; + /** + * This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed. + offset 744 bit 9 */ + bool useStepperIdle : 1; + /** + offset 744 bit 10 */ + bool enabledStep1Limiter : 1; + /** + offset 744 bit 11 */ + bool useTpicAdvancedMode : 1; + /** + offset 744 bit 12 */ + bool useLcdScreen : 1; + /** + offset 744 bit 13 */ + bool verboseTLE8888 : 1; + /** + * CAN broadcast using custom rusEFI protocol + * enable can_broadcast/disable can_broadcast + offset 744 bit 14 */ + bool enableVerboseCanTx : 1; + /** + * This will cause the alternator to be operated in a basic on or off mode, this is the simplest alternator control. + offset 744 bit 15 */ + bool onOffAlternatorLogic : 1; + /** + * enable cj125/disable cj125 + offset 744 bit 16 */ + bool isCJ125Enabled : 1; + /** + * Use rise or fall signal front + * get vvtCamSensorUseRise + offset 744 bit 17 */ + bool vvtCamSensorUseRise : 1; + /** + * Useful for individual intakes + offset 744 bit 18 */ + bool measureMapOnlyInOneCylinder : 1; + /** + offset 744 bit 19 */ + bool stepperForceParkingEveryRestart : 1; + /** + * Smarter cranking logic. + * See also startOfCrankingPrimingPulse + offset 744 bit 20 */ + bool isFasterEngineSpinUpEnabled : 1; + /** + * This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing. + offset 744 bit 21 */ + bool coastingFuelCutEnabled : 1; + /** + * This setting allows the ECU to open the IAC during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars. Used in Auto-PID Idle mode. + offset 744 bit 22 */ + bool useIacTableForCoasting : 1; + /** + offset 744 bit 23 */ + bool useNoiselessTriggerDecoder : 1; + /** + offset 744 bit 24 */ + bool useIdleTimingPidControl : 1; + /** + * Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary. + offset 744 bit 25 */ + bool disableEtbWhenEngineStopped : 1; + /** + offset 744 bit 26 */ + bool is_enabled_spi_4 : 1; + /** + * Disable the electronic throttle motor and DC idle motor for testing. + * This mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle. + offset 744 bit 27 */ + bool pauseEtbControl : 1; + /** + offset 744 bit 28 */ + bool alignEngineSnifferAtTDC : 1; + /** + * This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle. + offset 744 bit 29 */ + bool useETBforIdleControl : 1; + /** + offset 744 bit 30 */ + bool idleIncrementalPidCic : 1; + /** + offset 744 bit 31 */ + bool enableAemXSeries : 1; + /** + * offset 748 + */ + brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]; + /** + * offset 752 + */ + pin_output_mode_e mainRelayPinMode; + /** + * offset 753 + */ + brain_pin_e hip9011CsPin; + /** + * offset 754 + */ + brain_pin_e hip9011IntHoldPin; + /** + * offset 755 + */ + pin_output_mode_e hip9011IntHoldPinMode; + /** + * offset 756 + */ + uint32_t verboseCanBaseAddress; + /** + * offset 760 + */ + uint8_t mc33_hvolt; + /** + * Additional idle PID minValue while A/C is active + * offset 761 + */ + uint8_t acIdleExtraMin; + /** + * Optional Radiator Fan used with A/C + * offset 762 + */ + output_pin_e acFanPin; + /** + * offset 763 + */ + pin_output_mode_e acFanPinMode; + /** + * offset 764 + */ + pin_output_mode_e gpioPinModes[FSIO_COMMAND_COUNT]; + /** + * todo: more comments + * offset 780 + */ + output_pin_e fsioOutputPins[FSIO_COMMAND_COUNT]; + /** + * offset 796 + */ + brain_pin_e max31855_cs[EGT_CHANNEL_COUNT]; + /** + * SD card logging period, in milliseconds + * offset 804 + */ + int16_t sdCardPeriodMs; + /** + * offset 806 + */ + adc_channel_e idlePositionSensor; + /** + * offset 807 + */ + brain_pin_e debugMapAveraging; + /** + * offset 808 + */ + output_pin_e starterRelayDisablePin; + /** + * On some vehicles we can disable starter once engine is already running + * offset 809 + */ + pin_output_mode_e starterRelayDisablePinMode; + /** + * Some Subaru and some Mazda use double-solenoid idle air valve + * offset 810 + */ + output_pin_e secondSolenoidPin; + /** + * See also starterControlPin + * offset 811 + */ + switch_input_pin_e startStopButtonPin; + /** + * offset 812 + */ + int mapMinBufferLength; + /** + * Below this throttle position, the engine is considered idling. + * offset 816 + */ + int16_t idlePidDeactivationTpsThreshold; + /** + * offset 818 + */ + int16_t stepperParkingExtraSteps; + /** + * offset 820 + */ + uint16_t tps1SecondaryMin; + /** + * offset 822 + */ + uint16_t tps1SecondaryMax; + /** + * offset 824 + */ + int16_t antiLagRpmTreshold; + /** + * Maximum time to crank starter + * offset 826 + */ + uint16_t startCrankingDuration; + /** + * This pin is used for debugging - snap a logic analyzer on it and see if it's ever high + * offset 828 + */ + brain_pin_e triggerErrorPin; + /** + * offset 829 + */ + pin_output_mode_e triggerErrorPinMode; + /** + * offset 830 + */ + output_pin_e acRelayPin; + /** + * offset 831 + */ + pin_output_mode_e acRelayPinMode; + /** + * offset 832 + */ + fsio_pwm_freq_t fsioFrequency[FSIO_COMMAND_COUNT]; + /** + * offset 864 + */ + fsio_setting_t fsio_setting[FSIO_COMMAND_COUNT]; + /** + * offset 928 + */ + brain_pin_e spi1mosiPin; + /** + * offset 929 + */ + brain_pin_e spi1misoPin; + /** + * offset 930 + */ + brain_pin_e spi1sckPin; + /** + * offset 931 + */ + brain_pin_e spi2mosiPin; + /** + * offset 932 + */ + brain_pin_e spi2misoPin; + /** + * offset 933 + */ + brain_pin_e spi2sckPin; + /** + * offset 934 + */ + brain_pin_e spi3mosiPin; + /** + * offset 935 + */ + brain_pin_e spi3misoPin; + /** + * offset 936 + */ + brain_pin_e spi3sckPin; + /** + * Saab Combustion Detection Module knock signal input pin + * also known as Saab Ion Sensing Module + * offset 937 + */ + brain_pin_e cdmInputPin; + /** + * offset 938 + */ + brain_pin_e joystickCenterPin; + /** + * offset 939 + */ + brain_pin_e joystickAPin; + /** + * offset 940 + */ + brain_pin_e joystickBPin; + /** + * offset 941 + */ + brain_pin_e joystickCPin; + /** + * offset 942 + */ + brain_pin_e joystickDPin; + /** + * offset 943 + */ + uart_device_e consoleUartDevice; + /** + * rusEfi console Sensor Sniffer mode + * offset 944 + */ + sensor_chart_e sensorChartMode; + /** + * offset 948 + */ + maf_sensor_type_e mafSensorType; + /** + * todo:not finished + * These input pins allow us to pull toggle buttons state + * offset 952 + */ + brain_pin_e fsioDigitalInputs[FSIO_COMMAND_COUNT]; + /** + * offset 968 + */ + brain_input_pin_e vehicleSpeedSensorInputPin; + /** + * Some vehicles have a switch to indicate that clutch pedal is all the way up + * offset 969 + */ + switch_input_pin_e clutchUpPin; + /** + * offset 970 + */ + brain_input_pin_e frequencyReportingMapInputPin; + /** + * offset 971 + */ + pin_input_mode_e clutchUpPinMode; + /** + * offset 972 + */ + uint16_t multisparkMaxRpm; + /** + * offset 974 + */ + uint8_t multisparkMaxSparkingAngle; + /** + * offset 975 + */ + uint8_t multisparkMaxExtraSparkCount; + /** + offset 976 bit 0 */ + bool todoClutchUpPinInverted : 1; + /** + offset 976 bit 1 */ + bool todoClutchDownPinInverted : 1; + /** + * If enabled we use two H-bridges to drive stepper idle air valve + offset 976 bit 2 */ + bool useHbridges : 1; + /** + offset 976 bit 3 */ + bool multisparkEnable : 1; + /** + offset 976 bit 4 */ + bool enableLaunchRetard : 1; + /** + offset 976 bit 5 */ + bool enableLaunchBoost : 1; + /** + offset 976 bit 6 */ + bool launchDisableBySpeed : 1; + /** + offset 976 bit 7 */ + bool enableCanVss : 1; + /** + offset 976 bit 8 */ + bool enableInnovateLC2 : 1; + /** + offset 976 bit 9 */ + bool showHumanReadableWarning : 1; + /** + * If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor. + offset 976 bit 10 */ + bool stftIgnoreErrorMagnitude : 1; + /** + offset 976 bit 11 */ + bool unused976b11 : 1; + /** + offset 976 bit 12 */ + bool enableSoftwareKnock : 1; + /** + * enable vvt_details + offset 976 bit 13 */ + bool verboseVVTDecoding : 1; + /** + * get invertCamVVTSignal + offset 976 bit 14 */ + bool invertCamVVTSignal : 1; + /** + * This property is useful if using rusEFI as TCM or BCM only + * enable consumeObdSensors + offset 976 bit 15 */ + bool consumeObdSensors : 1; + /** + offset 976 bit 16 */ + bool knockBankCyl1 : 1; + /** + offset 976 bit 17 */ + bool knockBankCyl2 : 1; + /** + offset 976 bit 18 */ + bool knockBankCyl3 : 1; + /** + offset 976 bit 19 */ + bool knockBankCyl4 : 1; + /** + offset 976 bit 20 */ + bool knockBankCyl5 : 1; + /** + offset 976 bit 21 */ + bool knockBankCyl6 : 1; + /** + offset 976 bit 22 */ + bool knockBankCyl7 : 1; + /** + offset 976 bit 23 */ + bool knockBankCyl8 : 1; + /** + offset 976 bit 24 */ + bool knockBankCyl9 : 1; + /** + offset 976 bit 25 */ + bool knockBankCyl10 : 1; + /** + offset 976 bit 26 */ + bool knockBankCyl11 : 1; + /** + offset 976 bit 27 */ + bool knockBankCyl12 : 1; + /** + offset 976 bit 28 */ + bool tcuEnabled : 1; + /** + offset 976 bit 29 */ + bool unusedBit_251_29 : 1; + /** + offset 976 bit 30 */ + bool unusedBit_288_30 : 1; + /** + offset 976 bit 31 */ + bool unusedBit_288_31 : 1; + /** + * offset 980 + */ + dc_io etbIo[ETB_COUNT]; + /** + * Wastegate control Solenoid + * offset 988 + */ + output_pin_e boostControlPin; + /** + * offset 989 + */ + pin_output_mode_e boostControlPinMode; + /** + * offset 990 + */ + switch_input_pin_e antiLagActivatePin; + /** + * offset 991 + */ + switch_input_pin_e launchActivatePin; + /** + * offset 992 + */ + pid_s boostPid; + /** + * offset 1012 + */ + boostType_e boostType; + /** + * offset 1016 + */ + int boostPwmFrequency; + /** + * offset 1020 + */ + launchActivationMode_e launchActivationMode; + /** + * offset 1024 + */ + antiLagActivationMode_e antiLagActivationMode; + /** + * Disabled above this speed + * offset 1028 + */ + int launchSpeedTreshold; + /** + * Disabled below this rpm + * offset 1032 + */ + int launchRpmTreshold; + /** + * Range from Launch Rpm for Timing Retard to activate + * offset 1036 + */ + int launchTimingRpmRange; + /** + * Extra Fuel Added + * offset 1040 + */ + int launchFuelAdded; + /** + * Duty Cycle for the Boost Solenoid + * offset 1044 + */ + int launchBoostDuty; + /** + * RPM Range for Hard Cut + * offset 1048 + */ + int hardCutRpmRange; + /** + * offset 1052 + */ + int launchAdvanceRpmRange; + /** + * offset 1056 + */ + int launchTpsTreshold; + /** + * offset 1060 + */ + float launchActivateDelay; + /** + * offset 1064 + */ + stft_s stft; + /** + * offset 1088 + */ + dc_io stepperDcIo[DC_PER_STEPPER]; + /** + * For example, BMW, GM or Chevrolet + * REQUIRED for rusEFI Online + * offset 1096 + */ + vehicle_info_t engineMake; + /** + * For example, LS1 or NB2 + * REQUIRED for rusEFI Online + * offset 1128 + */ + vehicle_info_t engineCode; + /** + * For example, Hunchback or Orange Miata + * Vehicle name has to be unique between your vehicles. + * REQUIRED for rusEFI Online + * offset 1160 + */ + vehicle_info_t vehicleName; + /** + * offset 1192 + */ + output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT]; + /** + * offset 1198 + */ + etb_function_e etbFunctions[ETB_COUNT]; + /** + * offset 1200 + */ + spi_device_e drv8860spiDevice; + /** + * offset 1201 + */ + brain_pin_e drv8860_cs; + /** + * offset 1202 + */ + pin_output_mode_e drv8860_csPinMode; + /** + * offset 1203 + */ + brain_pin_e drv8860_miso; + /** + * offset 1204 + */ + int unusedAtOldBoardConfigurationEnd[63]; + /** + * offset 1456 + */ + uint16_t vehicleWeight; + /** + * offset 1458 + */ + uint16_t unusedHereHereHere; + /** + * offset 1460 + */ + uint16_t tps2SecondaryMin; + /** + * offset 1462 + */ + uint16_t tps2SecondaryMax; + /** + offset 1464 bit 0 */ + bool unusedHereWeHave : 1; + /** + * Enables lambda sensor closed loop feedback for fuelling. + offset 1464 bit 1 */ + bool fuelClosedLoopCorrectionEnabled : 1; + /** + * Print details into rusEfi console + * enable verbose_idle + offset 1464 bit 2 */ + bool isVerboseIAC : 1; + /** + * Prints ETB details to rusEFI console + offset 1464 bit 3 */ + bool isVerboseETB : 1; + /** + * If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode. + offset 1464 bit 4 */ + bool useConstantDwellDuringCranking : 1; + /** + * This options enables data for 'engine sniffer' tab in console, which comes at some CPU price + offset 1464 bit 5 */ + bool isEngineChartEnabled : 1; + /** + * Sometimes we have a performance issue while printing error + offset 1464 bit 6 */ + bool silentTriggerError : 1; + /** + offset 1464 bit 7 */ + bool useLinearCltSensor : 1; + /** + * enable can_read/disable can_read + offset 1464 bit 8 */ + bool canReadEnabled : 1; + /** + * enable can_write/disable can_write + offset 1464 bit 9 */ + bool canWriteEnabled : 1; + /** + offset 1464 bit 10 */ + bool useLinearIatSensor : 1; + /** + * See fsioTimingAdjustment + offset 1464 bit 11 */ + bool useFSIO16ForTimingAdjustment : 1; + /** + offset 1464 bit 12 */ + bool tachPulseDurationAsDutyCycle : 1; + /** + * This enables smart alternator control and activates the extra alternator settings. + offset 1464 bit 13 */ + bool isAlternatorControlEnabled : 1; + /** + * This setting flips the signal from the primary engine speed sensor. + offset 1464 bit 14 */ + bool invertPrimaryTriggerSignal : 1; + /** + * This setting flips the signal from the secondary engine speed sensor. + offset 1464 bit 15 */ + bool invertSecondaryTriggerSignal : 1; + /** + offset 1464 bit 16 */ + bool cutFuelOnHardLimit : 1; + /** + offset 1464 bit 17 */ + bool cutSparkOnHardLimit : 1; + /** + offset 1464 bit 18 */ + bool launchFuelCutEnable : 1; + /** + * This is the Cut Mode normally used + offset 1464 bit 19 */ + bool launchSparkCutEnable : 1; + /** + offset 1464 bit 20 */ + bool hasFrequencyReportingMapSensor : 1; + /** + offset 1464 bit 21 */ + bool useFSIO8ForServo1 : 1; + /** + offset 1464 bit 22 */ + bool useFSIO9ForServo2 : 1; + /** + offset 1464 bit 23 */ + bool useFSIO10ForServo3 : 1; + /** + offset 1464 bit 24 */ + bool useFSIO11ForServo4 : 1; + /** + offset 1464 bit 25 */ + bool useFSIO12ForServo5 : 1; + /** + offset 1464 bit 26 */ + bool useFSIO15ForIdleRpmAdjustment : 1; + /** + * Sometimes we just have to shut the engine down. Use carefully! + offset 1464 bit 27 */ + bool useFSIO5ForCriticalIssueEngineStop : 1; + /** + * Sometimes we have to miss injection on purpose to attract driver's attention + offset 1464 bit 28 */ + bool useFSIO4ForSeriousEngineWarning : 1; + /** + offset 1464 bit 29 */ + bool useFSIO12ForIdleOffset : 1; + /** + offset 1464 bit 30 */ + bool useFSIO13ForIdleMinValue : 1; + /** + offset 1464 bit 31 */ + bool useFSIO6ForRevLimiter : 1; + /** + * offset 1468 + */ + adc_channel_e hipOutputChannel; + /** + * A/C button input + * offset 1469 + */ + switch_input_pin_e acSwitch; + /** + * offset 1470 + */ + adc_channel_e vRefAdcChannel; + /** + * Expected neutral position + * offset 1471 + */ + uint8_t etbNeutralPosition; + /** + * See also idleRpmPid + * offset 1472 + */ + idle_mode_e idleMode; + /** + * Enable fuel injection - This is default off for new projects as a safety feature, set to "true" to enable fuel injection and further injector settings. + offset 1476 bit 0 */ + bool isInjectionEnabled : 1; + /** + * Enable ignition - This is default off for new projects as a safety feature, set to "true" to enable ignition and further ignition settings. + offset 1476 bit 1 */ + bool isIgnitionEnabled : 1; + /** + * When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders. + offset 1476 bit 2 */ + bool isCylinderCleanupEnabled : 1; + /** + offset 1476 bit 3 */ + bool unused1476b3 : 1; + /** + offset 1476 bit 4 */ + bool unusedBit4_1476 : 1; + /** + offset 1476 bit 5 */ + bool isMapAveragingEnabled : 1; + /** + * This setting overrides the normal multiplication values that have been set for the idle air control valve during cranking. If this setting is enabled the "IAC multiplier" table in the Cranking settings tab needs to be adjusted appropriately or potentially no IAC opening will occur. + offset 1476 bit 6 */ + bool overrideCrankingIacSetting : 1; + /** + * This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed. + offset 1476 bit 7 */ + bool useSeparateAdvanceForIdle : 1; + /** + offset 1476 bit 8 */ + bool unused1476b8 : 1; + /** + offset 1476 bit 9 */ + bool isWaveAnalyzerEnabled : 1; + /** + * This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling. + offset 1476 bit 10 */ + bool useSeparateVeForIdle : 1; + /** + * enable trigger_details + offset 1476 bit 11 */ + bool verboseTriggerSynchDetails : 1; + /** + * Usually if we have no trigger events that means engine is stopped + * Unless we are troubleshooting and spinning the engine by hand - this case a longer + * delay is needed + offset 1476 bit 12 */ + bool isManualSpinningMode : 1; + /** + * This is needed if your coils are individually wired and you wish to use batch injection. + * enable two_wire_batch_injection + offset 1476 bit 13 */ + bool twoWireBatchInjection : 1; + /** + * VR sensors are only precise on rising front + * enable trigger_only_front + offset 1476 bit 14 */ + bool useOnlyRisingEdgeForTrigger : 1; + /** + * This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark). + offset 1476 bit 15 */ + bool twoWireBatchIgnition : 1; + /** + offset 1476 bit 16 */ + bool useFixedBaroCorrFromMap : 1; + /** + * This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant. + offset 1476 bit 17 */ + bool useSeparateAdvanceForCranking : 1; + /** + * This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle). + offset 1476 bit 18 */ + bool useAdvanceCorrectionsForCranking : 1; + /** + offset 1476 bit 19 */ + bool unused1476b19 : 1; + /** + offset 1476 bit 20 */ + bool unused1476b20 : 1; + /** + * This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller + offset 1476 bit 21 */ + bool useIacPidMultTable : 1; + /** + offset 1476 bit 22 */ + bool isBoostControlEnabled : 1; + /** + * Interpolates the Ignition Retard from 0 to 100% within the RPM Range + offset 1476 bit 23 */ + bool launchSmoothRetard : 1; + /** + offset 1476 bit 24 */ + bool unused_1484_bit_24 : 1; + /** + offset 1476 bit 25 */ + bool unused_1484_bit_25 : 1; + /** + offset 1476 bit 26 */ + bool unused_1484_bit_26 : 1; + /** + offset 1476 bit 27 */ + bool unused_1484_bit_27 : 1; + /** + offset 1476 bit 28 */ + bool unused_1484_bit_28 : 1; + /** + offset 1476 bit 29 */ + bool unused_1484_bit_29 : 1; + /** + offset 1476 bit 30 */ + bool unused_1484_bit_30 : 1; + /** + offset 1476 bit 31 */ + bool unused_1484_bit_31 : 1; + /** + * offset 1480 + */ + uint32_t engineChartSize; + /** + * Relative to the target idle RPM - this limit is coupled with useIacTableForCoasting and iacCoasting parameters + * offset 1484 + */ + int16_t idlePidRpmUpperLimit; + /** + * This sets the temperature above which no priming pulse is used, The value at -40 is reduced until there is no more priming injection at this temperature. + * offset 1486 + */ + int16_t primeInjFalloffTemperature; + /** + * At what trigger index should some ignition-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. + * offset 1488 + */ + int ignMathCalculateAtIndex; + /** + * offset 1492 + */ + int16_t acCutoffLowRpm; + /** + * offset 1494 + */ + int16_t acCutoffHighRpm; + /** + * offset 1496 + */ + int16_t acIdleRpmBump; + /** + * set warningPeriod X + * offset 1498 + */ + int16_t warningPeriod; + /** + * offset 1500 + */ + float knockDetectionWindowStart; + /** + * offset 1504 + */ + float knockDetectionWindowEnd; + /** + * offset 1508 + */ + float idleStepperReactionTime; + /** + * offset 1512 + */ + float knockVThreshold; + /** + * offset 1516 + */ + pin_input_mode_e fsioInputModes[FSIO_COMMAND_COUNT]; + /** + * offset 1532 + */ + int idleStepperTotalSteps; + /** + * TODO: finish this #413 + * offset 1536 + */ + float noAccelAfterHardLimitPeriodSecs; + /** + * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. + * offset 1540 + */ + int mapAveragingSchedulingAtIndex; + /** + * offset 1544 + */ + float baroCorrPressureBins[BARO_CORR_SIZE]; + /** + * offset 1560 + */ + float baroCorrRpmBins[BARO_CORR_SIZE]; + /** + * offset 1576 + */ + baro_corr_table_t baroCorrTable; + /** + * Cranking fuel correction coefficient based on TPS + * offset 1640 + */ + float crankingTpsCoef[CRANKING_CURVE_SIZE]; + /** + * offset 1672 + */ + float crankingTpsBins[CRANKING_CURVE_SIZE]; + /** + * offset 1704 + */ + float tachPulseDuractionMs; + /** + * offset 1708 + */ + int unused1708; + /** + * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. + * offset 1712 + */ + float wwaeTau; + /** + * offset 1716 + */ + pid_s alternatorControl; + /** + * offset 1736 + */ + pid_s etb; + /** + * offset 1756 + */ + float fuelRailPressure; + /** + * offset 1760 + */ + float alternator_derivativeFilterLoss; + /** + * offset 1764 + */ + float alternator_antiwindupFreq; + /** + * Closed throttle#2. todo: extract these two fields into a structure + * See also tps2_1AdcChannel + * set tps2_min X + * offset 1768 + */ + int16_t tps2Min; + /** + * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! + * See also tps1_1AdcChannel + * set tps2_max X + * offset 1770 + */ + int16_t tps2Max; + /** + * See also startStopButtonPin + * offset 1772 + */ + output_pin_e starterControlPin; + /** + * offset 1773 + */ + pin_input_mode_e startStopButtonMode; + /** + * offset 1774 + */ + brain_pin_e mc33816_flag0; + /** + * offset 1775 + */ + uint8_t tachPulsePerRev; + /** + * kPa value which is too low to be true + * offset 1776 + */ + float mapErrorDetectionTooLow; + /** + * kPa value which is too high to be true + * offset 1780 + */ + float mapErrorDetectionTooHigh; + /** + * offset 1784 + */ + uint16_t multisparkSparkDuration; + /** + * offset 1786 + */ + uint16_t multisparkDwell; + /** + * See cltIdleRpmBins + * offset 1788 + */ + pid_s idleRpmPid; + /** + * 0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment. + * offset 1808 + */ + float wwaeBeta; + /** + * blue LED on many rusEFI boards. + * Blue Communication LED which is expected to blink at 50% duty cycle during normal board operation. + * If USB communication cable is connected Blue LED starts to blink faster. + * offset 1812 + */ + brain_pin_e communicationLedPin; + /** + * Green LED on many rusEFI boards. + * Off if engine is stopped, blinks if engine is cranking, solid if engine is running. + * offset 1813 + */ + brain_pin_e runningLedPin; + /** + * See also EFI_CONSOLE_RX_BRAIN_PIN + * offset 1814 + */ + brain_pin_e binarySerialTxPin; + /** + * offset 1815 + */ + brain_pin_e binarySerialRxPin; + /** + * offset 1816 + */ + brain_pin_e auxValves[AUX_DIGITAL_VALVE_COUNT]; + /** + * offset 1818 + */ + switch_input_pin_e tcuUpshiftButtonPin; + /** + * offset 1819 + */ + switch_input_pin_e tcuDownshiftButtonPin; + /** + * Knock sensor output knock detection threshold depending on current RPM + * offset 1820 + */ + float knockNoise[ENGINE_NOISE_CURVE_SIZE]; + /** + * offset 1852 + */ + float knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; + /** + * offset 1884 + */ + float throttlePedalUpVoltage; + /** + * Pedal in the floor + * offset 1888 + */ + float throttlePedalWOTVoltage; + /** + * on ECU start turn fuel pump on to build fuel pressure + * offset 1892 + */ + int16_t startUpFuelPumpDuration; + /** + * If RPM is close enough let's leave IAC alone, and maybe engage timing PID correction + * offset 1894 + */ + int16_t idlePidRpmDeadZone; + /** + * CLT-based target RPM for automatic idle controller + * offset 1896 + */ + float cltIdleRpmBins[CLT_CURVE_SIZE]; + /** + * See idleRpmPid + * offset 1960 + */ + float cltIdleRpm[CLT_CURVE_SIZE]; + /** + * This is the target battery voltage the alternator PID control will attempt to maintain + * offset 2024 + */ + float targetVBatt; + /** + * Turns off alternator output above specified TPS, enabling this reduced parasitic drag on the engine at full load. + * offset 2028 + */ + float alternatorOffAboveTps; + /** + * Prime pulse for cold engine, duration in ms + * Linear interpolation between -40F/-40C and fallout temperature + * + * See also isFasterEngineSpinUpEnabled + * set cranking_priming_pulse X + * offset 2032 + */ + float startOfCrankingPrimingPulse; + /** + * This is the duration in cycles that the IAC will take to reach its normal idle position, it can be used to hold the idle higher for a few seconds after cranking to improve startup. + * offset 2036 + */ + int16_t afterCrankingIACtaperDuration; + /** + * Extra IAC, in percent between 0 and 100, tapered between zero and idle deactivation TPS value + * offset 2038 + */ + int16_t iacByTpsTaper; + /** + * set_aux_tx_pin X + * offset 2040 + */ + brain_pin_e auxSerialTxPin; + /** + * offset 2041 + */ + brain_pin_e warningLedPin; + /** + * set_aux_rx_pin X + * offset 2042 + */ + brain_pin_e auxSerialRxPin; + /** + * offset 2043 + */ + brain_pin_e LIS302DLCsPin; + /** + * This is the number of engine cycles that the TPS position change can occur over, a longer duration will make the enrichment more active but too long may affect steady state driving, a good default is 30-60 cycles. + * offset 2044 + */ + int tpsAccelLength; + /** + * Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in. + * offset 2048 + */ + float tpsAccelEnrichmentThreshold; + /** + * Angle between cam sensor and VVT zero position + * set vvt_offset X + * offset 2052 + */ + float vvtOffset; + /** + * offset 2056 + */ + int engineLoadAccelLength; + /** + * offset 2060 + */ + float engineLoadDecelEnleanmentThreshold; + /** + * offset 2064 + */ + float engineLoadDecelEnleanmentMultiplier; + /** + * offset 2068 + */ + float engineLoadAccelEnrichmentThreshold; + /** + * offset 2072 + */ + float engineLoadAccelEnrichmentMultiplier; + /** + * Band rate for primary TTL + * offset 2076 + */ + uint32_t uartConsoleSerialSpeed; + /** + * offset 2080 + */ + float tpsDecelEnleanmentThreshold; + /** + * offset 2084 + */ + float tpsDecelEnleanmentMultiplier; + /** + * ExpAverage alpha coefficient + * offset 2088 + */ + float slowAdcAlpha; + /** + * See http://rusefi.com/s/debugmode + * + * set debug_mode X + * offset 2092 + */ + debug_mode_e debugMode; + /** + * offset 2096 + */ + uint32_t auxSerialSpeed; + /** + * offset 2100 + */ + float throttlePedalSecondaryUpVoltage; + /** + * Pedal in the floor + * offset 2104 + */ + float throttlePedalSecondaryWOTVoltage; + /** + * set can_baudrate + * offset 2108 + */ + can_baudrate_e canBaudRate; + /** + * Override the Y axis (load) value used for the VE table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 2109 + */ + ve_override_e veOverrideMode; + /** + * offset 2110 + */ + can_baudrate_e can2BaudRate; + /** + * Override the Y axis (load) value used for the AFR table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 2111 + */ + afr_override_e afrOverrideMode; + /** + * offset 2112 + */ + uint32_t verboseCan2BaseAddress; + /** + * CAN broadcast using custom rusEFI protocol + * enable can_broadcast/disable can_broadcast + offset 2116 bit 0 */ + bool enableVerboseCan2Tx : 1; + /** + * enable can_read/disable can_read + offset 2116 bit 1 */ + bool can2ReadEnabled : 1; + /** + * enable can_write/disable can_write + offset 2116 bit 2 */ + bool can2WriteEnabled : 1; + /** + offset 2116 bit 3 */ + bool unused1126 : 1; + /** + offset 2116 bit 4 */ + bool unused1127 : 1; + /** + offset 2116 bit 5 */ + bool unused1128 : 1; + /** + offset 2116 bit 6 */ + bool unused1129 : 1; + /** + offset 2116 bit 7 */ + bool unused1130 : 1; + /** + offset 2116 bit 8 */ + bool unusedBit_488_8 : 1; + /** + offset 2116 bit 9 */ + bool unusedBit_488_9 : 1; + /** + offset 2116 bit 10 */ + bool unusedBit_488_10 : 1; + /** + offset 2116 bit 11 */ + bool unusedBit_488_11 : 1; + /** + offset 2116 bit 12 */ + bool unusedBit_488_12 : 1; + /** + offset 2116 bit 13 */ + bool unusedBit_488_13 : 1; + /** + offset 2116 bit 14 */ + bool unusedBit_488_14 : 1; + /** + offset 2116 bit 15 */ + bool unusedBit_488_15 : 1; + /** + offset 2116 bit 16 */ + bool unusedBit_488_16 : 1; + /** + offset 2116 bit 17 */ + bool unusedBit_488_17 : 1; + /** + offset 2116 bit 18 */ + bool unusedBit_488_18 : 1; + /** + offset 2116 bit 19 */ + bool unusedBit_488_19 : 1; + /** + offset 2116 bit 20 */ + bool unusedBit_488_20 : 1; + /** + offset 2116 bit 21 */ + bool unusedBit_488_21 : 1; + /** + offset 2116 bit 22 */ + bool unusedBit_488_22 : 1; + /** + offset 2116 bit 23 */ + bool unusedBit_488_23 : 1; + /** + offset 2116 bit 24 */ + bool unusedBit_488_24 : 1; + /** + offset 2116 bit 25 */ + bool unusedBit_488_25 : 1; + /** + offset 2116 bit 26 */ + bool unusedBit_488_26 : 1; + /** + offset 2116 bit 27 */ + bool unusedBit_488_27 : 1; + /** + offset 2116 bit 28 */ + bool unusedBit_488_28 : 1; + /** + offset 2116 bit 29 */ + bool unusedBit_488_29 : 1; + /** + offset 2116 bit 30 */ + bool unusedBit_488_30 : 1; + /** + offset 2116 bit 31 */ + bool unusedBit_488_31 : 1; + /** + * set can_mode X + * offset 2120 + */ + can_nbc_e can2NbcType; + /** + * set_can2_tx_pin X + * offset 2124 + */ + brain_pin_e can2TxPin; + /** + * set_can2_rx_pin X + * offset 2125 + */ + brain_pin_e can2RxPin; + /** + * offset 2126 + */ + pin_output_mode_e starterControlPinMode; + /** + * offset 2127 + */ + adc_channel_e wastegatePositionSensor; + /** + * Override the Y axis (load) value used for the ignition table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 2128 + */ + afr_override_e ignOverrideMode; + /** + * Select which fuel pressure sensor measures the pressure of the fuel at your injectors. + * offset 2129 + */ + injector_pressure_type_e injectorPressureType; + /** + * offset 2130 + */ + output_pin_e hpfpValvePin; + /** + * offset 2131 + */ + pin_output_mode_e hpfpValvePinMode; + /** + * MAP value above which fuel is cut in case of overboost. + * Set to 0 to disable overboost cut. + * offset 2132 + */ + float boostCutPressure; + /** + * offset 2136 + */ + float mapAccelTaperBins[MAP_ACCEL_TAPER]; + /** + * offset 2168 + */ + float mapAccelTaperMult[MAP_ACCEL_TAPER]; + /** + * todo: rename to fsioAnalogInputs + * offset 2200 + */ + adc_channel_e fsioAdc[FSIO_ANALOG_INPUT_COUNT]; + /** + * Fixed timing, useful for TDC testing + * offset 2204 + */ + float fixedTiming; + /** + * MAP voltage for low point + * offset 2208 + */ + float mapLowValueVoltage; + /** + * MAP voltage for low point + * offset 2212 + */ + float mapHighValueVoltage; + /** + * EGO value correction + * offset 2216 + */ + float egoValueShift; + /** + * offset 2220 + */ + output_pin_e auxPidPins[AUX_PID_COUNT]; + /** + * offset 2224 + */ + spi_device_e cj125SpiDevice; + /** + * offset 2225 + */ + pin_output_mode_e cj125CsPinMode; + /** + * offset 2226 + */ + pin_output_mode_e sdCardCsPinMode; + /** + * need 4 byte alignment + * offset 2227 + */ + uint8_t alignmentFill_at_2227; + /** + * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. + * offset 2228 + */ + int crankingIACposition; + /** + * offset 2232 + */ + float tChargeMinRpmMinTps; + /** + * offset 2236 + */ + float tChargeMinRpmMaxTps; + /** + * offset 2240 + */ + float tChargeMaxRpmMinTps; + /** + * offset 2244 + */ + float tChargeMaxRpmMaxTps; + /** + * offset 2248 + */ + fsio_pwm_freq_t auxPidFrequency[AUX_PID_COUNT]; + /** + * offset 2256 + */ + int alternatorPwmFrequency; + /** + * offset 2260 + */ + int unused2260; + /** + * Narrow Band WBO Approximation + * offset 2264 + */ + float narrowToWideOxygenBins[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE]; + /** + * offset 2296 + */ + float narrowToWideOxygen[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE]; + /** + * set vvt_mode X + * offset 2328 + */ + vvt_mode_e vvtMode; + /** + * offset 2332 + */ + uint8_t unusedOldBiquad[20]; + /** + * CLT-based timing correction + * offset 2352 + */ + float cltTimingBins[CLT_TIMING_CURVE_SIZE]; + /** + * offset 2384 + */ + float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; + /** + * offset 2416 + */ + tle8888_mode_e tle8888mode; + /** + * offset 2417 + */ + pin_output_mode_e LIS302DLCsPinMode; + /** + * offset 2418 + */ + injector_compensation_mode_e injectorCompensationMode; + /** + * offset 2419 + */ + uint8_t unused2419; + /** + * This is the pressure at which your injector flow is known. + * For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here. + * offset 2420 + */ + float fuelReferencePressure; + /** + * offset 2424 + */ + float unused244_2; + /** + * offset 2428 + */ + float unused244_3; + /** + * offset 2432 + */ + float unused2432; + /** + * Fuel multiplier (enrichment) immediately after engine start + * offset 2436 + */ + float postCrankingFactor; + /** + * Time over which to taper out after start enrichment + * offset 2440 + */ + float postCrankingDurationSec; + /** + * todo: finish implementation #332 + * offset 2444 + */ + ThermistorConf auxTempSensor1; + /** + * todo: finish implementation #332 + * offset 2476 + */ + ThermistorConf auxTempSensor2; + /** + * offset 2508 + */ + uint8_t unused2508[6]; + /** + * offset 2514 + */ + int16_t etbFreq; + /** + * offset 2516 + */ + pid_s etbWastegatePid; + /** + * offset 2536 + */ + uint8_t unused2536[4]; + /** + * per-cylinder timing correction + * offset 2540 + */ + cfg_float_t_1f timing_offset_cylinder[IGNITION_PIN_COUNT]; + /** + * offset 2588 + */ + float idlePidActivationTime; + /** + * offset 2592 + */ + spi_device_e sdCardSpiDevice; + /** + * offset 2593 + */ + uint8_t unusedSpiPadding4[3]; + /** + * offset 2596 + */ + pin_mode_e spi1SckMode; + /** + * Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc. + * offset 2597 + */ + pin_mode_e spi1MosiMode; + /** + * offset 2598 + */ + pin_mode_e spi1MisoMode; + /** + * offset 2599 + */ + pin_mode_e spi2SckMode; + /** + * offset 2600 + */ + pin_mode_e spi2MosiMode; + /** + * offset 2601 + */ + pin_mode_e spi2MisoMode; + /** + * offset 2602 + */ + pin_mode_e spi3SckMode; + /** + * offset 2603 + */ + pin_mode_e spi3MosiMode; + /** + * offset 2604 + */ + pin_mode_e spi3MisoMode; + /** + * offset 2605 + */ + pin_output_mode_e stepperEnablePinMode; + /** + * ResetB + * offset 2606 + */ + brain_pin_e mc33816_rstb; + /** + * offset 2607 + */ + brain_pin_e mc33816_driven; + /** + * Brake pedal switch + * offset 2608 + */ + switch_input_pin_e brakePedalPin; + /** + * lambda input + * offset 2609 + */ + adc_channel_e cj125ua; + /** + * heater input + * offset 2610 + */ + adc_channel_e cj125ur; + /** + * offset 2611 + */ + pin_input_mode_e brakePedalPinMode; + /** + * offset 2612 + */ + pid_s auxPid[AUX_PID_COUNT]; + /** + * offset 2692 + */ + linear_sensor_s oilPressure; + /** + * offset 2712 + */ + spi_device_e accelerometerSpiDevice; + /** + * offset 2713 + */ + uint8_t unusedAuxVoltage1_TODO_332; + /** + * offset 2714 + */ + uint8_t unusedAuxVoltage2_TODO_332; + /** + * offset 2715 + */ + uint8_t unusedSpiPadding5; + /** + * offset 2716 + */ + float fsioCurve1Bins[FSIO_CURVE_16]; + /** + * offset 2780 + */ + float fsioCurve1[FSIO_CURVE_16]; + /** + * offset 2844 + */ + float fsioCurve2Bins[FSIO_CURVE_16]; + /** + * offset 2908 + */ + float fsioCurve2[FSIO_CURVE_16]; + /** + * offset 2972 + */ + float fsioCurve3Bins[FSIO_CURVE_8]; + /** + * offset 3004 + */ + float fsioCurve3[FSIO_CURVE_8]; + /** + * offset 3036 + */ + float fsioCurve4Bins[FSIO_CURVE_8]; + /** + * offset 3068 + */ + float fsioCurve4[FSIO_CURVE_8]; + /** + * Continental/GM flex fuel sensor, 50-150hz type + * offset 3100 + */ + brain_input_pin_e flexSensorPin; + /** + * offset 3101 + */ + brain_pin_e test557pin; + /** + * offset 3102 + */ + pin_output_mode_e stepperDirectionPinMode; + /** + * offset 3103 + */ + adc_channel_e externalKnockSenseAdc; + /** + * offset 3104 + */ + output_pin_e stepperEnablePin; + /** + * offset 3105 + */ + brain_pin_e tle8888_cs; + /** + * offset 3106 + */ + pin_output_mode_e tle8888_csPinMode; + /** + * offset 3107 + */ + brain_pin_e mc33816_cs; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * offset 3108 + */ + float crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * offset 3124 + */ + float crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * todo: more comments + * offset 3140 + */ + brain_pin_e servoOutputPins[SERVO_COUNT]; + /** + * This sets the RPM limit above which the fuel cut is deactivated, activating this maintains fuel flow at high RPM to help cool pistons + * offset 3148 + */ + int16_t coastingFuelCutRpmHigh; + /** + * This sets the RPM limit below which the fuel cut is deactivated, this prevents jerking or issues transitioning to idle + * offset 3150 + */ + int16_t coastingFuelCutRpmLow; + /** + * percent between 0 and 100 below which the fuel cut is deactivated, this helps low speed drivability. + * offset 3152 + */ + int16_t coastingFuelCutTps; + /** + * Fuel cutoff is deactivated below this coolant threshold. + * offset 3154 + */ + int16_t coastingFuelCutClt; + /** + * Increases PID reaction for RPM gen_config_${BOARDNAME}_1.log + +[ $? -eq 0 ] || { echo "ERROR generating TunerStudio config for ${BOARDNAME}"; exit 1; } + +java \ + -DSystemOut.name=gen_config_subaru_eg33 \ + -jar ../java_tools/ConfigDefinition.jar \ + -definition integration/rusefi_config.txt \ + -tool ${BOARD_DIR}/config/gen_config.sh \ + -ts_destination tunerstudio \ + -cache ${SHORT_BOARDNAME} \ + -cache_zip_file tunerstudio/generated/cache.zip \ + -firing_order controllers/algo/firing_order.h \ + -with_c_defines false \ + -initialize_to_zero false \ + -ts_output_name generated/rusefi_${SHORT_BOARDNAME}.ini \ + -c_defines ${BOARD_DIR}/config/controllers/algo/rusefi_generated.h \ + -c_destination ${BOARD_DIR}/config/controllers/algo/engine_configuration_generated_structures.h \ + -signature tunerstudio/generated/signature_${SHORT_BOARDNAME}.txt \ + -signature_destination controllers/generated/signature_${SHORT_BOARDNAME}.h \ + -enumInputFile controllers/algo/rusefi_enums.h \ + -prepend tunerstudio/generated/${BOARDNAME}_prefix.txt \ + -prepend config/boards/${BOARDNAME}/prepend.txt \ + > gen_config_${BOARDNAME}_2.log + +[ $? -eq 0 ] || { echo "ERROR generating TunerStudio config for ${BOARDNAME}"; exit 1; } diff --git a/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh b/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh new file mode 100755 index 0000000000..de45ed6725 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config/gen_enum_to_string.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +echo This batch files reads rusefi_enums.h and produses auto_generated_enums.* files + +#cd ../../../.. +#cd .. + +BOARD=subaru_eg33 + +java -DSystemOut.name=gen_enum_to_string \ + -jar ../java_tools/enum2string.jar \ + -inputPath . \ + -outputPath config/boards/${BOARD}/config/controllers/algo \ + -enumInputFile controllers/algo/rusefi_enums.h \ + -enumInputFile config/boards/${BOARD}/rusefi_hw_enums.h diff --git a/firmware/config/boards/subaru_eg33/config/tunerstudio/subaru_eg33_prefix.txt b/firmware/config/boards/subaru_eg33/config/tunerstudio/subaru_eg33_prefix.txt new file mode 100644 index 0000000000..c722fd0db4 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/config/tunerstudio/subaru_eg33_prefix.txt @@ -0,0 +1,4 @@ + #define output_pin_e_enum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + #define adc_channel_e_enum "TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","NONE" + #define brain_input_pin_e_enum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + #define switch_input_pin_e_enum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" diff --git a/firmware/config/boards/subaru_eg33/efifeatures.h b/firmware/config/boards/subaru_eg33/efifeatures.h new file mode 100644 index 0000000000..54caadde50 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/efifeatures.h @@ -0,0 +1,145 @@ +/** + * @file boards/subaru_eg33/efifeatures.h + * + * @brief In this header we can override efifeatures.h. + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#include "../../stm32f7ems/efifeatures.h" + +#ifndef EFIFEATURES_SUBARUEG33_H_ +#define EFIFEATURES_SUBARUEG33_H_ + +/* LEDs */ +#undef LED_ERROR_BRAIN_PIN_MODE +#define LED_ERROR_BRAIN_PIN_MODE INVERTED_OUTPUT +#undef LED_WARNING_BRAIN_PIN_MODE +#define LED_WARNING_BRAIN_PIN_MODE INVERTED_OUTPUT +#undef LED_RUNING_BRAIN_PIN_MODE +#define LED_RUNING_BRAIN_PIN_MODE INVERTED_OUTPUT + +/* debug console */ +#undef EFI_USE_UART_FOR_CONSOLE +#define EFI_USE_UART_FOR_CONSOLE TRUE +#undef EFI_CONSOLE_SERIAL_DEVICE +#define EFI_CONSOLE_SERIAL_DEVICE (&SD1) + +/* TunerStudio binary protocol */ +/* do not use UART device for console */ +#undef TS_UART_DEVICE + +/* do not use serial device for console */ +#undef TS_SERIAL_DEVICE + +#undef BOARD_TLE6240_COUNT +#define BOARD_TLE6240_COUNT 1 + +#define TLE6240_RESET_PORT GPIOH +#define TLE6240_RESET_PAD 6 +#define TLE6240_DIRECT_IO \ + /* IN1..3 grounded */ \ + [0] = {.port = NULL, .pad = 0}, \ + [1] = {.port = NULL, .pad = 0}, \ + /* IN3 - D_TACH_OUT */ \ + [2] = {.port = GPIOG, .pad = 2},\ + /* IN4 - grounded */ \ + [3] = {.port = NULL, .pad = 0}, \ + /* IN9..10 grounded */ \ + [4] = {.port = NULL, .pad = 15},\ + [5] = {.port = NULL, .pad = 14},\ + /* IN11 - D_IDLE_OPEN */ \ + [6] = {.port = GPIOC, .pad = 6},\ + /* IN12 - D_IDLE_CLOSE */ \ + [7] = {.port = GPIOC, .pad = 8} + +#undef BOARD_MC33972_COUNT +#define BOARD_MC33972_COUNT 1 + +#undef BOARD_MC33810_COUNT +#define BOARD_MC33810_COUNT 2 + +#undef BOARD_TLE8888_COUNT +#define BOARD_TLE8888_COUNT 0 + +#undef EFI_RTC +#define EFI_RTC FALSE + +#undef EFI_POTENTIOMETER +#define EFI_POTENTIOMETER FALSE + +#undef EFI_MAX_31855 +#define EFI_MAX_31855 FALSE + +#undef EFI_HD44780_LCD +#define EFI_HD44780_LCD FALSE + +#undef EFI_IDLE_CONTROL +#define EFI_IDLE_CONTROL TRUE + +#undef EFI_USB_SERIAL +#define EFI_USB_SERIAL TRUE + +#undef EFI_FUEL_PUMP +#define EFI_FUEL_PUMP TRUE + +#undef MMC_CARD_SPI +#define MMC_CARD_SPI SPID1 + +#define ADC_CHANNEL_VREF ADC_CHANNEL_IN14 + +#undef EFI_UART_GPS +#define EFI_UART_GPS FALSE + +#undef EFI_BLUETOOTH_SETUP +#define EFI_BLUETOOTH_SETUP FALSE + +#undef SERIAL_SPEED +#define SERIAL_SPEED 115200 + +#ifdef EFI_CONSOLE_SERIAL_DEVICE + #undef EFI_CONSOLE_TX_PORT + #define EFI_CONSOLE_TX_PORT GPIOA + #undef EFI_CONSOLE_TX_PIN + #define EFI_CONSOLE_TX_PIN 9 + #undef EFI_CONSOLE_RX_PORT + #define EFI_CONSOLE_RX_PORT GPIOA + #undef EFI_CONSOLE_RX_PIN + #define EFI_CONSOLE_RX_PIN 10 + #undef EFI_CONSOLE_AF + #define EFI_CONSOLE_AF 7 +#endif + +#undef TS_SERIAL_AF +#define TS_SERIAL_AF 8 + +/* no console switch */ +#undef CONSOLE_MODE_SWITCH_PORT +#undef CONSOLE_MODE_SWITCH_PIN +#define GET_CONSOLE_MODE_VALUE() (FALSE) + +/* no reset switch */ +#undef CONFIG_RESET_SWITCH_PORT +#undef CONFIG_RESET_SWITCH_PIN + +#undef ADC_VCC +#define ADC_VCC 2.5f + +#undef EFI_MAIN_RELAY_CONTROL +#define EFI_MAIN_RELAY_CONTROL FALSE + +#undef EFI_MEMS +#define EFI_MEMS FALSE + +#undef EFI_IDLE_PID_CIC +#define EFI_IDLE_PID_CIC TRUE + +#define RPM_LOW_THRESHOLD 8 // RPM=8 is an empirical lower sensitivity threshold of MAX9926 for 60-2 +#define NO_RPM_EVENTS_TIMEOUT_SECS 5 // (RPM < 12) + +#define EFI_PRINT_ERRORS_AS_WARNINGS TRUE + +#define EFI_NARROW_EGO_AVERAGING TRUE + +#endif /* EFIFEATURES_SUBARUEG33_H_ */ diff --git a/firmware/config/boards/subaru_eg33/halconf.h b/firmware/config/boards/subaru_eg33/halconf.h new file mode 100644 index 0000000000..2ee1963336 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/halconf.h @@ -0,0 +1,41 @@ +/** + * @file boards/subarue_eg33/halconf.h + * + * @brief In this header we can override halconf.h. + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#include "mcuconf.h" +#include "../../stm32f7ems/halconf.h" + +#ifndef _HALCONF_SUBARUEG33_H_ +#define _HALCONF_SUBARUEG33_H_ + +#undef HAL_USE_PAL +#define HAL_USE_PAL TRUE +#undef PAL_USE_CALLBACKS +#define PAL_USE_CALLBACKS TRUE +#undef HAL_TRIGGER_USE_PAL +#define HAL_TRIGGER_USE_PAL TRUE + +#undef HAL_USE_I2C +#define HAL_USE_I2C FALSE + +#undef HAL_USE_SERIAL +#define HAL_USE_SERIAL TRUE + +//#if TS_UART_DMA_MODE +#undef HAL_USE_UART +#define HAL_USE_UART FALSE +#undef UART_USE_WAIT +#define UART_USE_WAIT FALSE +//#else +//#define HAL_USE_UART FALSE +//#endif + +#undef HAL_USE_USB_MSD +#define HAL_USE_USB_MSD FALSE + +#endif /* _HALCONF_SUBARUEG33_H_ */ diff --git a/firmware/config/boards/subaru_eg33/make.sh b/firmware/config/boards/subaru_eg33/make.sh new file mode 100755 index 0000000000..f3600f2445 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/make.sh @@ -0,0 +1,15 @@ +#!/bin/bash +export PROJECT_BOARD=subaru_eg33 +export PROJECT_CPU=ARCH_STM32F7 +export MCU=cortex-m7 +export EXTRA_PARAMS="-DSHORT_BOARD_NAME=subaru_eg33_f7 -DDUMMY -DEFI_ENABLE_ASSERTS=FALSE -DCH_DBG_ENABLE_ASSERTS=FALSE -DCH_DBG_ENABLE_STACK_CHECK=FALSE -DCH_DBG_FILL_THREADS=FALSE -DCH_DBG_THREADS_PROFILING=FALSE" +export DEFAULT_ENGINE_TYPE="-DDEFAULT_ENGINE_TYPE=SUBARUEG33_DEFAULTS" +#echo $EXTRA_PARAMS +#export DEBUG_LEVEL_OPT="-O0" +#export USE_BOOTLOADER=yes + +#export LDSCRIPT="config/boards/NUCLEO_F767/STM32F76xxI.ld" +#bash config/boards/common_make.sh + +#CROSS_COMPILE=../../toolchain/gcc-arm-none-eabi-8-2018-q4-major/bin/arm-none-eabi- make $* +CROSS_COMPILE=../../toolchain/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi- make $* \ No newline at end of file diff --git a/firmware/config/boards/subaru_eg33/mapping.yaml b/firmware/config/boards/subaru_eg33/mapping.yaml new file mode 100644 index 0000000000..e2ee2d3771 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/mapping.yaml @@ -0,0 +1,92 @@ +outputs: + # MCU + GPIOH_7: " - Self Shutdown" + # TLE6240 + TLE6240_PIN_1: "D17 - FAN 1" + TLE6240_PIN_2: "D03 - FAN 2" + TLE6240_PIN_3: "C16 - Tacho out" + TLE6240_PIN_4: "C14 - FPump modulator" + TLE6240_PIN_5: "D23 - FPump relay" + TLE6240_PIN_6: "D22 - EGR control" + TLE6240_PIN_7: "D19 - CE indicator" + TLE6240_PIN_8: "C15 - AUX1 out" + TLE6240_PIN_9: "D18 - Auxillary air valve" + TLE6240_PIN_10: "D06 - Absorber purge" + TLE6240_PIN_11: "D02 - IDLE open" + TLE6240_PIN_12: "D01 - IDLE close" + TLE6240_PIN_13: "XP2 - AUX0 out" + TLE6240_PIN_14: "XP2 - AUX1 out" + TLE6240_PIN_15: "B08 - AC clutch" + TLE6240_PIN_16: "D20 - Charge valve" + # MC33810s + MC33810_0_PIN_1: "D13 - INJ 1" + MC33810_0_PIN_2: "D11 - INJ 3" + MC33810_0_PIN_3: "A01 - INJ 5" + MC33810_0_PIN_4: "XP2 - INJ 7" + MC33810_0_PIN_5: "D07 - IGN 1" + MC33810_0_PIN_6: "D09 - IGN 3" + MC33810_0_PIN_7: "XP2 - IGN 7 (HP)" + MC33810_0_PIN_8: "D21 - IGN 5" + MC33810_1_PIN_1: "D12 - INJ 2" + MC33810_1_PIN_2: "D26 - INJ 4" + MC33810_1_PIN_3: "A12 - INJ 6" + MC33810_1_PIN_4: "XP6 - INJ 8" + MC33810_1_PIN_5: "XP6 - IGN 8 (HP)" + MC33810_1_PIN_6: "D16 - IGN 6" + MC33810_1_PIN_7: "D08 - IGN 2" + MC33810_1_PIN_8: "D10 - IGN 4" + +switch_inputs: + MC33972_PIN_1: "TP - SP1 Din" + MC33972_PIN_2: "TP - SP2 Din" + MC33972_PIN_3: "TP - SP3 Din" + MC33972_PIN_5: "C10 - Starter Din" + MC33972_PIN_6: "C12 - Memory SW Din" + MC33972_PIN_7: "C13 - Test SW Din" + MC33972_PIN_8: "D04 - California ID Din" + MC33972_PIN_16: "C09 - Air Condition request Din" + MC33972_PIN_17: "B12 - IGN Din" + MC33972_PIN_19: "B10 - N pos Din" + MC33972_PIN_20: "B09 - P pos Din" + MC33972_PIN_21: "A20 - Torque Ctrl Din" + MC33972_PIN_22: "A19 - AC Ctrl Din" + +event_inputs: + GPIOH_10: "C01 - Crank #1" + GPIOE_9: "A08 - Crank #2" + GPIOH_12: "A07 - Cam" + GPIOD_14: "B11 - Speed Din (GPIO)" + MC33972_PIN_18: "B11 - Speed Din (MC33972)" + +analog_inputs: + EFI_ADC_0: "TP - AIN 0" + EFI_ADC_1: "int - IGN1 current" + EFI_ADC_2: "int - IGN2 current" + EFI_ADC_3: "B05 - MAF Ain" +# EFI_ADC_4: "n.u." + EFI_ADC_6: "A02 - Battery Ain" + EFI_ADC_7: "int - Knock" + EFI_ADC_8: "A05 - Oxyg #2 Ain" + EFI_ADC_9: "A04 - EGR t Ait" + EFI_ADC_10: "--- - Atm P Ain" + EFI_ADC_11: "A18 - AUX0 Ain" + EFI_ADC_12: "B02 - TPS Ain" + EFI_ADC_13: "int - MC33972 DIN" + EFI_ADC_14: "A03 - Coolant t Ain" + EFI_ADC_15: "A06 - Oxyg #1 Ain" +# EFI_ADC3_4: "XP2 - OPT0" +# EFI_ADC3_5: "n.u." +# EFI_ADC3_6: "n.u." +# EFI_ADC3_7: "n.u." +# EFI_ADC3_8: "n.u." +# EFI_ADC3_9: "XP6 - OPT3" +# EFI_ADC3_14: "XP6 - OPT2" +# EFI_ADC3_15: "XP2 - OPT1" +# MC33972_PIN_4: "A03 - Coolant t Ain" +# MC33972_PIN_9: "A04 - EGR t Ain" +# MC33972_PIN_10: "A06 - Oxyg #1" +# MC33972_PIN_11: "A05 - Oxyg #2" +# MC33972_PIN_12: "--- - Atm P Ain" +# MC33972_PIN_13: "A18 - AUX0 Ain" +# MC33972_PIN_14: "B02 - TPS Ain" +# MC33972_PIN_15: "B05 - MAF Ain" \ No newline at end of file diff --git a/firmware/config/boards/subaru_eg33/mcuconf.h b/firmware/config/boards/subaru_eg33/mcuconf.h new file mode 100644 index 0000000000..5d7c7a021e --- /dev/null +++ b/firmware/config/boards/subaru_eg33/mcuconf.h @@ -0,0 +1,94 @@ +/** + * @file boards/subarue-eg33/mcuconf.h + * + * @brief In this header we can override mcuconf.h. + * + * @date Feb 06, 2021 + * @author Andrey Gusakov, 2021 + */ + +#include "../../stm32f7ems/mcuconf.h" + +#ifndef _MCUCONF_SUBARUEG33_H_ +#define _MCUCONF_SUBARUEG33_H_ + +/* clocks adjust for 25 MHz ocs */ +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 25 + +//#undef CORTEX_ENABLE_WFI_IDLE +#define CORTEX_ENABLE_WFI_IDLE FALSE + +//#undef STM32_LSE_ENABLED +//#define STM32_LSE_ENABLED FALSE + +#undef STM32_RTCSEL +#define STM32_RTCSEL STM32_RTCSEL_HSEDIV // STM32_RTCSEL_LSI + +/* serials and uarts */ +#undef STM32_SERIAL_USE_USART1 +#undef STM32_UART_USE_USART1 +//#if TS_UART_DMA_MODE +//#define STM32_SERIAL_USE_UART1 FALSE +//#else +#define STM32_SERIAL_USE_USART1 TRUE +#define STM32_UART_USE_USART1 FALSE +//#endif + +/* enable serial driver for USART2 to make usbconsole.c happy: + * as '#define USB_SERIAL_DRIVER SD2' in usbconsole.h and + * sdStart(&USB_SERIAL_DRIVER, NULL); is called unconditionaly */ +#undef STM32_SERIAL_USE_USART2 +#undef STM32_UART_USE_USART2 +#define STM32_SERIAL_USE_USART2 TRUE +#define STM32_UART_USE_USART2 FALSE + +#undef STM32_SERIAL_USE_USART3 +#undef STM32_UART_USE_USART3 +#define STM32_SERIAL_USE_USART3 FALSE +#define STM32_UART_USE_USART3 FALSE + +#undef STM32_UART_USE_USART3 +#define STM32_UART_USE_USART3 FALSE + +#undef STM32_UART_USE_UART4 +#define STM32_UART_USE_UART4 FALSE + +#undef STM32_USB_USE_OTG1 +#define STM32_USB_USE_OTG1 TRUE + +#undef STM32_USB_USE_USB1 +#define STM32_USB_USE_USB1 TRUE + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 FALSE + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 FALSE + +#undef STM32_SPI_USE_SPI4 +#define STM32_SPI_USE_SPI4 TRUE + +#undef STM32_SPI_USE_SPI5 +#define STM32_SPI_USE_SPI5 TRUE + +#undef STM32_ADC_USE_ADC3 +#define STM32_ADC_USE_ADC3 TRUE + +/* default STM32_DMA_STREAM_ID(2, 4) used by ADC1 */ +#undef STM32_SPI_SPI5_TX_DMA_STREAM +#define STM32_SPI_SPI5_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 6) + +/* To remove futher possible conflict */ +#undef STM32_SPI_SPI6_RX_DMA_STREAM + +#undef STM32_ICU_USE_TIM3 +#define STM32_ICU_USE_TIM3 TRUE + +#undef STM32_CAN_USE_CAN2 +#define STM32_CAN_USE_CAN2 FALSE + +//#undef STM32_CAN_CAN1_IRQ_PRIORITY +//#define STM32_CAN_CAN1_IRQ_PRIORITY 4 + +#endif /* _MCUCONF_SUBARUEG33_H_ */ diff --git a/firmware/config/boards/subaru_eg33/prepend.txt b/firmware/config/boards/subaru_eg33/prepend.txt new file mode 100644 index 0000000000..09ff57dcd3 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/prepend.txt @@ -0,0 +1,18 @@ +//TODO: understand this. + +#define ts_show_hip9011 true +#define ts_show_cj125 false +#define ts_show_lcd false +#define ts_show_joystick false +#define ts_show_egt false +#define ts_show_gps false +#define ts_show_etb_pins true +#define ts_show_analog_divider false +#define ts_show_spi true +#define ts_show_sd_card true +#define ts_show_can_pins true +#define ts_show_tunerstudio_port false + +#define show_test_presets false +#define show_Frankenso_presets false +#define show_Proteus_presets false diff --git a/firmware/config/boards/subaru_eg33/readme.txt b/firmware/config/boards/subaru_eg33/readme.txt new file mode 100644 index 0000000000..c8c464ae69 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/readme.txt @@ -0,0 +1,4 @@ +subaru EG33 board. + +https://github.com/dron0gus/rusefi +https://rusefi.com/forum/viewtopic.php?p=35502 diff --git a/firmware/config/boards/subaru_eg33/rusefi_hw_enums.h b/firmware/config/boards/subaru_eg33/rusefi_hw_enums.h new file mode 100644 index 0000000000..a3012705d3 --- /dev/null +++ b/firmware/config/boards/subaru_eg33/rusefi_hw_enums.h @@ -0,0 +1,294 @@ +/* + * @file rusefi_hw_enums.h + * + * @date Jun 2, 2019 + * @author Andrey Belomutskiy, (c) 2012-2020 + */ + +#pragma once + +// todo: migrate/unify with pin_output_mode_e? rename? something is messy here +// this enum is currently only used for SPI pins +typedef enum __attribute__ ((__packed__)) { +// todo: here we have a rare example of stm32-specific enum, todo: make this not stm32 specific? + PO_DEFAULT = 0, + PO_OPENDRAIN = 4, // PAL_STM32_OTYPE_OPENDRAIN + PO_PULLUP = 32, // PAL_STM32_PUDR_PULLUP + PO_PULLDOWN = 64 // PAL_STM32_PUPDR_PULLDOWN +} pin_mode_e; + +/** + * Hardware pin. This enum is platform-specific. + */ +typedef enum __attribute__ ((__packed__)) { + GPIO_UNASSIGNED = 0, + GPIO_INVALID = 1, + + GPIOA_0 = 2, + GPIOA_1 = 3, + GPIOA_2 = 4, + GPIOA_3 = 5, + GPIOA_4 = 6, + GPIOA_5 = 7, + GPIOA_6 = 8, + GPIOA_7 = 9, + GPIOA_8 = 10, + GPIOA_9 = 11, + GPIOA_10 = 12, + GPIOA_11 = 13, + GPIOA_12 = 14, + GPIOA_13 = 15, + GPIOA_14 = 16, + GPIOA_15 = 17, + + GPIOB_0 = 18, + GPIOB_1 = 19, + GPIOB_2 = 20, + GPIOB_3 = 21, + GPIOB_4 = 22, + GPIOB_5 = 23, + GPIOB_6 = 24, + GPIOB_7 = 25, + GPIOB_8 = 26, + GPIOB_9 = 27, + GPIOB_10 = 28, + GPIOB_11 = 29, + GPIOB_12 = 30, + GPIOB_13 = 31, + GPIOB_14 = 32, + GPIOB_15 = 33, + + GPIOC_0 = 34, + GPIOC_1 = 35, + GPIOC_2 = 36, + GPIOC_3 = 37, + GPIOC_4 = 38, + GPIOC_5 = 39, + GPIOC_6 = 40, + GPIOC_7 = 41, + GPIOC_8 = 42, + GPIOC_9 = 43, + GPIOC_10 = 44, + GPIOC_11 = 45, + GPIOC_12 = 46, + GPIOC_13 = 47, + GPIOC_14 = 48, + GPIOC_15 = 49, + + GPIOD_0 = 50, + GPIOD_1 = 51, + GPIOD_2 = 52, + GPIOD_3 = 53, + GPIOD_4 = 54, + GPIOD_5 = 55, + GPIOD_6 = 56, + GPIOD_7 = 57, + GPIOD_8 = 58, + GPIOD_9 = 59, + GPIOD_10 = 60, + GPIOD_11 = 61, + GPIOD_12 = 62, + GPIOD_13 = 63, + GPIOD_14 = 64, + GPIOD_15 = 65, + + GPIOE_0 = 66, + GPIOE_1 = 67, + GPIOE_2 = 68, + GPIOE_3 = 69, + GPIOE_4 = 70, + GPIOE_5 = 71, + GPIOE_6 = 72, + GPIOE_7 = 73, + GPIOE_8 = 74, + GPIOE_9 = 75, + GPIOE_10 = 76, + GPIOE_11 = 77, + GPIOE_12 = 78, + GPIOE_13 = 79, + GPIOE_14 = 80, + GPIOE_15 = 81, + + GPIOF_0 = 82, + GPIOF_1 = 83, + GPIOF_2 = 84, + GPIOF_3 = 85, + GPIOF_4 = 86, + GPIOF_5 = 87, + GPIOF_6 = 88, + GPIOF_7 = 89, + GPIOF_8 = 90, + GPIOF_9 = 91, + GPIOF_10 = 92, + GPIOF_11 = 93, + GPIOF_12 = 94, + GPIOF_13 = 95, + GPIOF_14 = 96, + GPIOF_15 = 97, + + GPIOG_0 = 98, + GPIOG_1 = 99, + GPIOG_2 = 100, + GPIOG_3 = 101, + GPIOG_4 = 102, + GPIOG_5 = 103, + GPIOG_6 = 104, + GPIOG_7 = 105, + GPIOG_8 = 106, + GPIOG_9 = 107, + GPIOG_10 = 108, + GPIOG_11 = 109, + GPIOG_12 = 110, + GPIOG_13 = 111, + GPIOG_14 = 112, + GPIOG_15 = 113, + + GPIOH_0 = 114, + GPIOH_1 = 115, + GPIOH_2 = 116, + GPIOH_3 = 117, + GPIOH_4 = 118, + GPIOH_5 = 119, + GPIOH_6 = 120, + GPIOH_7 = 121, + GPIOH_8 = 122, + GPIOH_9 = 123, + GPIOH_10 = 124, + GPIOH_11 = 125, + GPIOH_12 = 126, + GPIOH_13 = 127, + GPIOH_14 = 128, + GPIOH_15 = 129, + + GPIOI_0 = 130, + GPIOI_1 = 131, + GPIOI_2 = 132, + GPIOI_3 = 133, + GPIOI_4 = 134, + GPIOI_5 = 135, + GPIOI_6 = 136, + GPIOI_7 = 137, + GPIOI_8 = 138, + GPIOI_9 = 139, + GPIOI_10 = 140, + GPIOI_11 = 141, + GPIOI_12 = 142, + GPIOI_13 = 143, + GPIOI_14 = 144, + GPIOI_15 = 145, + + TLE6240_PIN_1 = 146, + TLE6240_PIN_2 = 147, + TLE6240_PIN_3 = 148, + TLE6240_PIN_4 = 149, + TLE6240_PIN_5 = 150, + TLE6240_PIN_6 = 151, + TLE6240_PIN_7 = 152, + TLE6240_PIN_8 = 153, + TLE6240_PIN_9 = 154, + TLE6240_PIN_10 = 155, + TLE6240_PIN_11 = 156, + TLE6240_PIN_12 = 157, + TLE6240_PIN_13 = 158, + TLE6240_PIN_14 = 159, + TLE6240_PIN_15 = 160, + TLE6240_PIN_16 = 161, + + MC33972_PIN_1 = 162, + MC33972_PIN_2 = 163, + MC33972_PIN_3 = 164, + MC33972_PIN_4 = 165, + MC33972_PIN_5 = 166, + MC33972_PIN_6 = 167, + MC33972_PIN_7 = 168, + MC33972_PIN_8 = 169, + MC33972_PIN_9 = 170, + MC33972_PIN_10 = 171, + MC33972_PIN_11 = 172, + MC33972_PIN_12 = 173, + MC33972_PIN_13 = 174, + MC33972_PIN_14 = 175, + MC33972_PIN_15 = 176, + MC33972_PIN_16 = 177, + MC33972_PIN_17 = 178, + MC33972_PIN_18 = 179, + MC33972_PIN_19 = 180, + MC33972_PIN_20 = 181, + MC33972_PIN_21 = 182, + MC33972_PIN_22 = 183, + + MC33810_0_OUT_0 = 184, + MC33810_0_OUT_1 = 185, + MC33810_0_OUT_2 = 186, + MC33810_0_OUT_3 = 187, + MC33810_0_GD_0 = 188, + MC33810_0_GD_1 = 189, + MC33810_0_GD_2 = 190, + MC33810_0_GD_3 = 191, + + MC33810_1_OUT_0 = 192, + MC33810_1_OUT_1 = 193, + MC33810_1_OUT_2 = 194, + MC33810_1_OUT_3 = 195, + MC33810_1_GD_0 = 196, + MC33810_1_GD_1 = 197, + MC33810_1_GD_2 = 198, + MC33810_1_GD_3 = 199, +} brain_pin_e; + +/* Plase keep updating these defines */ +#define BRAIN_PIN_ONCHIP_LAST GPIOI_15 +#define BRAIN_PIN_ONCHIP_PINS (BRAIN_PIN_ONCHIP_LAST - GPIOA_0 + 1) +#define BRAIN_PIN_LAST MC33810_1_GD_3 +#define BRAIN_PIN_TOTAL_PINS (BRAIN_PIN_LAST - GPIOA_0 + 1) +/* Plase keep updating these defines */ + +/* diagnostic for brain pins + * can be combination of few bits + * defined as bit mask */ +typedef enum __attribute__ ((__packed__)) +{ + PIN_OK = 0, + PIN_OPEN = 0x01, + PIN_SHORT_TO_GND = 0x02, + PIN_SHORT_TO_BAT = 0x04, + PIN_OVERLOAD = 0x08, + PIN_DRIVER_OVERTEMP = 0x10, + PIN_INVALID = 0x80 +} brain_pin_diag_e; + +typedef enum __attribute__ ((__packed__)) { + EFI_ADC_NONE = 0, + + EFI_ADC_0 = 1, + EFI_ADC_1 = 2, + EFI_ADC_2 = 3, + EFI_ADC_3 = 4, + EFI_ADC_4 = 5, + EFI_ADC_5 = 6, + EFI_ADC_6 = 7, + EFI_ADC_7 = 8, + EFI_ADC_8 = 9, + EFI_ADC_9 = 10, + EFI_ADC_10 = 11, + EFI_ADC_11 = 12, + EFI_ADC_12 = 13, + EFI_ADC_13 = 14, + EFI_ADC_14 = 15, + EFI_ADC_15 = 16, + + EFI_ADC3_4 = 17, // PF6 + EFI_ADC3_5 = 18, // PF7 + EFI_ADC3_6 = 19, // PF8 + EFI_ADC3_7 = 20, // PF9 + EFI_ADC3_8 = 21, // PF10 + EFI_ADC3_9 = 22, // PF3 + EFI_ADC3_14 = 23, // PF4 + EFI_ADC3_15 = 24, // PF5 + + EFI_ADC_TEMP_SENSOR = 25, // Internal temp sensor + + EFI_ADC_LAST_CHANNEL = 26, // Please keep this in sync with the last valid channel index! + + EFI_ADC_ERROR = 50, +} adc_channel_e; diff --git a/firmware/config/engines/subaru.cpp b/firmware/config/engines/subaru.cpp index 24c8766ce5..bfaca21e56 100644 --- a/firmware/config/engines/subaru.cpp +++ b/firmware/config/engines/subaru.cpp @@ -62,3 +62,60 @@ void setSubaruEJ18_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) { } + +/* + * Subaru SVX (Alcyone SVX) + */ + +void setSubaruEG33Defaults(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); + + engineConfiguration->trigger.type = TT_SUBARU_SVX; + engineConfiguration->useOnlyRisingEdgeForTrigger = true; + + engineConfiguration->specs.cylindersCount = 6; + engineConfiguration->specs.firingOrder = FO_1_6_3_2_5_4; + + engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; + engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; + engineConfiguration->injectionMode = IM_SEQUENTIAL; + + /* TODO: */ + engineConfiguration->globalTriggerAngleOffset = 114; // the end of 19th tooth? + + /* TODO: */ + //engineConfiguration->fuelAlgorithm = LM_REAL_MAF; + engineConfiguration->fuelAlgorithm = LM_ALPHA_N; + + engineConfiguration->specs.displacement = 3.30; + engineConfiguration->injector.flow = 250; + + engineConfiguration->cranking.baseFuel = 5; // ??? + engineConfiguration->crankingChargeAngle = 70; + engineConfiguration->cranking.rpm = 400; + + engineConfiguration->rpmHardLimit = 6500; + + engineConfiguration->idleStepperReactionTime = 10; + engineConfiguration->stepperDirectionPinMode = OM_INVERTED; + engineConfiguration->useLinearCltSensor = true; + + engineConfiguration->canReadEnabled = true; + engineConfiguration->canWriteEnabled = false; + + /* TODO: */ + //engineConfiguration->tpsMin = convertVoltageTo10bitADC(0.250); + //engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538); + //engineConfiguration->tpsMax = convertVoltageTo10bitADC(5.000); + engineConfiguration->tpsErrorDetectionTooLow = -10; // -10% open + engineConfiguration->tpsErrorDetectionTooHigh = 110; // 110% open + + engineConfiguration->mapMinBufferLength = 4; + + /* idle configuration */ + engineConfiguration->manIdlePosition = 30; + engineConfiguration->idle.solenoidFrequency = 250; + + /* Check this */ + engineConfiguration->tachPulsePerRev = 2; +} diff --git a/firmware/config/engines/subaru.h b/firmware/config/engines/subaru.h index 951ceaea0d..7b1c6a959c 100644 --- a/firmware/config/engines/subaru.h +++ b/firmware/config/engines/subaru.h @@ -10,3 +10,4 @@ void setSubaru2003Wrx(DECLARE_CONFIG_PARAMETER_SIGNATURE); void setSubaruEJ20GDefaults(DECLARE_CONFIG_PARAMETER_SIGNATURE); void setSubaruEJ18_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE); +void setSubaruEG33Defaults(DECLARE_ENGINE_PARAMETER_SIGNATURE); diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 5b82a1f9e7..46293ca2bc 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -1375,6 +1375,11 @@ void resetConfigurationExt(Logging * logger, configuration_callback_t boardCallb setTest33816EngineConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE); break; #endif // HW_FRANKENSO +#ifdef HW_SUBARU_EG33 + case SUBARUEG33_DEFAULTS: + setSubaruEG33Defaults(PASS_CONFIG_PARAMETER_SIGNATURE); + break; +#endif //HW_SUBARU_EG33 default: firmwareError(CUSTOM_UNEXPECTED_ENGINE_TYPE, "Unexpected engine type: %d", engineType); } diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index c36432a9ec..1f193e990a 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -191,6 +191,7 @@ typedef enum { HELLEN_NB2 = ET_HELLEN_NB2, + SUBARUEG33_DEFAULTS = 70, /** * this configuration has as few pins configured as possible diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h new file mode 100644 index 0000000000..7fa6daebca --- /dev/null +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -0,0 +1,8 @@ +// +// was generated automatically by rusEfi tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt +// + +#define SIGNATURE_BOARD subaru_eg33_f7 +#define SIGNATURE_DATE 2020.09.08 +#define SIGNATURE_HASH 1078744669 +#define TS_SIGNATURE "rusEFI 2020.09.08.subaru_eg33_f7.1078744669" diff --git a/firmware/gen_config.sh b/firmware/gen_config.sh index 6f13dd1c33..a64ab32f43 100755 --- a/firmware/gen_config.sh +++ b/firmware/gen_config.sh @@ -9,7 +9,7 @@ rm -f gen_config_board.log bash gen_config_default.sh [ $? -eq 0 ] || { echo "ERROR generating default"; exit 1; } -for BOARD in "hellen/hellen72 hellen72" "microrusefi mre_f7" "microrusefi mre_f4" "frankenso frankenso_na6" "prometheus prometheus_469" "prometheus prometheus_405" "proteus proteus_f7" "proteus proteus_f4"; do +for BOARD in "hellen/hellen72 hellen72" "microrusefi mre_f7" "microrusefi mre_f4" "frankenso frankenso_na6" "prometheus prometheus_469" "prometheus prometheus_405" "proteus proteus_f7" "proteus proteus_f4" "subaru_eg33 subaru_eg33_f7"; do BOARD_NAME="${BOARD% *}" BOARD_SHORT_NAME="${BOARD#* }" bash gen_config_board.sh $BOARD_NAME $BOARD_SHORT_NAME diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 64e487b7cfb0daa1f511d0cbe291b101d257df5b..d0656859b92dbf45d70e18d153274b5a467da5f4 100644 GIT binary patch delta 5063 zcmb7I30PD|5`G+p8wwaeVC0e!Mi7QeP#j>;0Tj80Lqt%y1dIX#1{1^q98FLWSPgAN zBdAMOK0YMQ3akP~Sf!Dt=AjzSMO%=Hm73;ilPgR#PSx_)(Jfni z_|9A{hFSj_^VcW0sm{p4Pi3hVj=n5{KULE^9c-qKxaT9!CUAs!xoQg)7G*EWTj5c% zqGTBBugPgKKZtncx96lDJ2|0Uw#|EN?Z)`lT;H08{Oj%B)yJEbl8g9Ki;xmXnu+xeQw#*fImvM%6A7pj4~^` zQ6FwMPOSO(p5)usvJ*Kq9ybpJ=pQv+pHY%`HW4AAX(5QnJy&$bamr)uH2*rE&Y0ZzDTmesQPH% z&S*i{0{7m}9=7gWthd>1#m)=n#dh+P9S^UBwg$E|<)5D(IqyT~Bi0pd?-d%Rcu56T zUFVisc7;k@KAMo!6L)oUwe{IM8Ml&5lWTL%-)Y;v;?>gUN6+ZBoi$0ZJeLu+X5oc< zFEame>G6h5Jk88y&Aylahrmb1O+k1~c z`(Q!ZT5#FZ_`RLKQ?@i}@BEW#ZD}E|k~f4GRCfnTqxw&-Ib9{5YQuAU{{2nAOu-ka z-EXHiYzVfC;C~vv$#tULsVk+tzR!1+JN+!%oBw&Qd~fo;yUxvzcNL!Bl^GI9;>kDs zUsheVx_m=>eNO(%NzZn7kFTBf=)|t_=B^Xq{8}Wx(p&RmkL+JJGcH^_)v(m-`*(kvAbU?(nVZlbGq36LE~-mDA_K-*`V^vy2P_`r_KXQvYW#+1#KTMFTJv} zuV7v1%y&eUiF1~ewocZHxfFXz`|gjc$LtNNY_8YNoA$w?8?9oq(?|187CtY??LKonz4|{L{wXDwKYe)e$(;`=mpR4Nyz<%-Nl8P z_2E6{bmLFAW!twgo(ywagWLI$FE|(V1tPs7Lr1ln`q)yF54ZAlbZ<|(8`80rVa8w9 z#G6_}Q=j4f`N%3G$8>>Dw(7zJ4OR|C(AI-+PUDkYJ*942^f)R)?bd3>PAX~^?BQD+iNm$hsV+drO1sGXx3<9d8PeA3IF?bCsjwYPa zNi78?FnQ2&e895L1uX#Jj@iTjF$gsPDF`9vm`B?boKQBkM0vU?cqrwKoP5}njbP0} zGw`7FZ_&w=n1PTg?3_O_V<&UZ3=%lrASF$s`4HtTPR1hm#ES<$gItw76|S#%N-jR( zSwH|XMOnZ+ggq9J!|~422qLMLAVw&+LbfhTm^2_aSh1pq749Z$or!SO2A!^3!E}^E zZ0StLf~!{0tymHg3^wGQvEYf8UTQf%76MTQYsf;tBz#hD4UQ+bXln;cR>&<%28ANBKyzj*l(H%CQJA4ic4?s&TC4 z&^X8%VhgZi**Yd*sKO5SJ?IwcG{B9yXa^w}Io2K)BD`r2QUp^6bo;>`{5Uxdp?f?I z$sJ&-()^tRYc_O*ML2ZE8O^nhxEJW^h-V^*EEC|6$O%GGE_Q+p1f=JaM@}F_navR} zUYP@D#L1W_Non?RR_5T7HO@fy5fja(#V^yx;-?6}AIC7$d})qI#r`+I8P07F%Gu?5D64L07 z_ z5pJl2w25Fbf|VC!B9wVSGL4P4z}Sag5R79YZ(L#tsrAM-k#H+y=!4ZtNQ4h8K{)6G z*$B42Fn2Jv-j|K-^@TZT68gbBEeRf?_v7&pHT!{tI^H+KB(MDN;7UlqWb7pg*)f?d z@YQ5&gn?W|{+KI*bok@-5wPBk|YHwBhy)dj|pGJDL@ zHwA>Oc8qF*so*!Hm7=CmN7|=C5X56Lk`7^2uPynHVb$4LIea+#bPGsTr?BXseWN5M~Y5! zslIj=XTLs+vxh};_HB`{klJ5HLI%Z**|3OW&uq@$C5rQ37X_Jg{6Q4tQk)wNsT2=I zb9S2;&MuGP>~~{0dw49QX_~lhhZM!e|qr@^Tf#%wf_OA CY3=m@ delta 2657 zcmYjSX>3$g7-ia0N-1wRRI3(*DsAb|Wv1&)JKd(!7CN-k(v7Zkr7c@26hvcUFgyde zlTp988{-}oH`KUbB5_GfM1P2JMU6pXj2dH9ez=@_-+Qg?k9*E{zWbf;-S^!$cl^|F z-!q|urpt^o6)wYmn<`B@QsemuYYLyo5=!nJChlW^X&}{(aPt1^>LZHA`ngyoE@S zm$HzrwF`b`{*wjEAzDt>nvL36ARh8iHhcu^E*sSjFr;Fw9c~FS`|w(n&TF4J8Xuut zhjnAqIW$+5j^`i}%Sm)gk_W{aL_DZ*fFX~0P)G)usb`nJdr&s7tzV}#w;W!F3LUbCM(EgtIFWoTz09zU;)GL=b~VqrRLd87ub?#7too{I$BBv_g%^Km5^WT=2mXB4ow%_?+~c6qsgE^3Reo9Ja-#dO_fFY7AC zx`y2CML@HpRYyS(6|OX4!O{NjUGgZx4S9bm`}g?zzE*XMt_kms)$ zlMGo^gnU=FG#6n=2j3`T@ckm>kU`SR_z+8r?W!A#(Zt+4i!mOXNY!?Rq?OVlM12bv#$f^`!`FMH_!xN@JDxZxP$bE~BwxG&W>!8K3E~%iO}u zG7a>+y8WD271nInVVC!D%kzE?o~_lz8q?hp37}g?jt5XhU=P>ga=RplKFUPMGv#QD z1y<=-Anpqp_R}dn^uAsc|EtRoDTBxU1PgP6p)12;a>}wHkjb$&gp6S)MB; zxklYCD%yBYjha?6ZG5tZ#)>^&$)=XqqE0j3Lqqn|B1oLUT;ChU3`EEUWxCA#~n#)rgFc~{_59G=wMB+W?+T_?iq|4DJ_(g7Zx#e^d znwhsUftHzSJWuy6bfxbACvCeh%uMvu4eRDd-bi}-;5eLba5Qyon}O} zMcxit_*zge@dp`iDQ2(7S`d^DMZapnfMi}z6p5mXWgm*7R~|{?XF9nR8|5#B^q#$~ z+_PaZ=}9G|&Jd-yp+%+GUl_9u0hV~P4HH~4H|diwH=$eV|8~m!xrt@&P&C|*8kbKF zwWFQOnRawZPeKBuvIAiT4tB7gR5{auJ#rv1!Jg#tPIwfB{MyL}d8!kob2Mb-=?fI? zLWM>1)^cth?SjvudT4*^;)&~`{J1w;DAtWm3;ofJehUq6#-xSLY_{64eaCy~d-W1_ z^+XQ}Ep)yIRTjEbefa8n;kBs#n%vrplK-h^Z56V*4-J+u+lQ!yKI%ijLVAF+`W=s( z)XksmchuMVIUeDqJdN}L^t$|#Jise+`v6*qzaGG}{Jxyxhl4z-ZG-4!^yDCBxOlf< zn@puqtl2{G#1_3JehB+0UOj}PQk+3?`7nm!UTcuqVYI9Dy`d?)Jc)D?1SC$FHBpCXyN&^Wg# zMGo&ml}deg7y2Z-%g}c#MXIK0`$-S!ZPS>Qj$WeF-Dp&)PfxP1t8BvOTOptA#s>L* lryEiW|EeX{Rao47GVGY diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini new file mode 100644 index 0000000000..4d4fe83043 --- /dev/null +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -0,0 +1,4942 @@ +; This is a TunerStudio project for the RusEFI.com engine management system +; +; This file has been generated by invoking gen_config.bat. +; The input files are +; rusefi.input the common template +; rusefi_config.txt the project specific file +; +; In TunerStudio some fields have little question mark on the left of the name for additional field tips. +; Those tips are defined in ../integration/rusefi_config.txt +; +; For example +; +; float bias_resistor;+Pull-up resistor value on your board;"Ohm" +; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip +; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio +; +; +; field = "# blue text" +; field = "! red text" +; field = "normal text" +; +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[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 + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI 2020.09.08.subaru_eg33_f7.1078744669" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmwave version for title bar. + signature = "rusEFI 2020.09.08.subaru_eg33_f7.1078744669" ; signature is expected to be 7 or more characters. + +[Constants] +; new packet serial format with CRC + messageEnvelopeFormat = msEnvelope_1.0 + + endianness = little + nPages = 1 + + pageIdentifier = "\x00\x00" + pageReadCommand = "R%2o%2c" + burnCommand = "B" + pageActivate = "P" + pageValueWrite = "W%2o%v" + pageChunkWrite = "C%2o%2c%v" + crc32CheckCommand = "k%2o%2c" + retrieveConfigError = "e" + + ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C + useLegacyFTempUnits = false + +;communication settings + pageActivationDelay = 500 ; Milliseconds delay after burn command. See https://sourceforge.net/p/rusefi/tickets/77/ +;e.g. put writeblocks off and add an interwrite delay + writeBlocks = on + interWriteDelay = 10 + blockReadTimeout = 3000; Milliseconds general timeout + + ; delayAfterPortOpen = 500 + + blockingFactor = 256 ; max chunk size +;end communication settings + + ; 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 + +; see PAGE_0_SIZE in C source code +; CONFIG_DEFINITION_START +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sat Feb 06 13:53:35 MSK 2021 + +pageSize = 20000 +page = 1 +engineType = bits, S32, 0, [0:6], "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "INVALID", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "INVALID", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "INVALID", "TEST_ENGINE", "TEST_ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS_DEFAULTS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "SUBARUEG33_DEFAULTS", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +engineSnifferRpmThreshold = scalar, S32, 4, "RPM", 1.0, 0, 0,30000, 0 +injector_flow = scalar, F32, 8, "cm3/min", 1.0, 0, 0, 99999, 2 +injector_battLagCorrBins = array, F32, 12, [8], "volts", 1.0, 0, 0.0, 20.0, 2 +injector_battLagCorr = array, F32, 44, [8], "ms", 1.0, 0, 0.0, 50.0, 2 +isForcedInduction = bits, U32, 76, [0:0], "false", "true" +activateAuxPid1 = bits, U32, 76, [1:1], "false", "true" +isVerboseAuxPid1 = bits, U32, 76, [2:2], "false", "true" +activateAuxPid2 = bits, U32, 76, [3:3], "false", "true" +isVerboseAuxPid2 = bits, U32, 76, [4:4], "false", "true" +activateAuxPid3 = bits, U32, 76, [5:5], "false", "true" +isVerboseAuxPid3 = bits, U32, 76, [6:6], "false", "true" +activateAuxPid4 = bits, U32, 76, [7:7], "false", "true" +isVerboseAuxPid4 = bits, U32, 76, [8:8], "false", "true" +isCJ125Verbose = bits, U32, 76, [9:9], "false", "true" +cj125isUaDivided = bits, U32, 76, [10:10], "false", "true" +cj125isLsu49 = bits, U32, 76, [11:11], "false", "true" +etb_use_two_wires = bits, U32, 76, [12:12], "false", "true" +isDoubleSolenoidIdle = bits, U32, 76, [13:13], "false", "true" +showSdCardWarning = bits, U32, 76, [14:14], "false", "true" +cj125isUrDivided = bits, U32, 76, [15:15], "false", "true" +useCicPidForIdle = bits, U32, 76, [16:16], "false", "true" +useTLE8888_cranking_hack = bits, U32, 76, [17:17], "false", "true" +useInstantRpmForIdle = bits, U32, 76, [18:18], "false", "true" +absoluteFuelPressure = bits, U32, 76, [19:19], "false", "true" +launchControlEnabled = bits, U32, 76, [20:20], "false", "true" +rollingLaunchEnabled = bits, U32, 76, [21:21], "false", "true" +antiLagEnabled = bits, U32, 76, [22:22], "false", "true" +useRunningMathForCranking = bits, U32, 76, [23:23], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 76, [24:24], "false", "true" +useTLE8888_stepper = bits, U32, 76, [25:25], "false", "true" +enableMapEstimationTableFallback = bits, U32, 76, [26:26], "false", "true" +useFSIOTableForCanSniffingFiltering = bits, U32, 76, [27:27], "false", "true" +issue_294_29 = bits, U32, 76, [28:28], "false", "true" +issue_294_30 = bits, U32, 76, [29:29], "false", "true" +issue_294_31 = bits, U32, 76, [30:30], "nada_example", "si_example" +unusedBit_34_31 = bits, U32, 76, [31:31], "false", "true" +tpsMin = scalar, S16, 80, "ADC", 1.0, 0, 0, 1023, 0 +tpsMax = scalar, S16, 82, "ADC", 1.0, 0, 0, 1023, 0 +tpsErrorDetectionTooLow = scalar, S16, 84, "%", 1.0, 0, -10, 0, 0 +tpsErrorDetectionTooHigh = scalar, S16, 86, "%", 1.0, 0, 100, 110, 0 +cranking_baseFuel = scalar, F32, 88, "mg", 1.0, 0, 0, 500, 1 +cranking_rpm = scalar, S16, 92, "RPM", 1.0, 0, 0, 3000, 0 +cranking_alignmentFill_at_6 = array, U08, 94, [2], "units", 1.0, 0, -20, 100, 0 +primingSquirtDurationMs = scalar, F32, 96, "*C", 1.0, 0, -40, 200, 1 +ignitionDwellForCrankingMs = scalar, F32, 100, "ms", 1.0, 0, 0, 200, 1 +crankingChargeAngle = scalar, F32, 104, "deg", 1.0, 0, 0, 3000.0, 0 +map_samplingAngleBins = array, F32, 108, [8], "", 1.0, 0, 0.0, 18000, 2 +map_samplingAngle = array, F32, 140, [8], "deg", 1.0, 0, -720, 720, 2 +map_samplingWindowBins = array, F32, 172, [8], "", 1.0, 0, 0.0, 18000, 2 +map_samplingWindow = array, F32, 204, [8], "deg", 1.0, 0, -720, 720, 2 +map_sensor_lowValue = scalar, F32, 236, "kpa", 1.0, 0, -400, 800, 2 +map_sensor_highValue = scalar, F32, 240, "kpa", 1.0, 0, -400, 800, 2 +map_sensor_type = bits, U32, 244, [0:3], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "INVALID", "INVALID" +map_sensor_hwChannel = bits, U08, 248, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +map_sensor_alignmentFill = array, U08, 249, [3], "unit", 1.0, 0, 0, 100, 0 +clt_tempC_1 = scalar, F32, 252, "*C", 1.0, 0, -40, 200, 1 +clt_tempC_2 = scalar, F32, 256, "*C", 1.0, 0, -40, 200, 1 +clt_tempC_3 = scalar, F32, 260, "*C", 1.0, 0, -40, 200, 1 +clt_resistance_1 = scalar, F32, 264, "Ohm", 1.0, 0, 0, 200000, 1 +clt_resistance_2 = scalar, F32, 268, "Ohm", 1.0, 0, 0, 200000, 1 +clt_resistance_3 = scalar, F32, 272, "Ohm", 1.0, 0, 0, 200000, 1 +clt_bias_resistor = scalar, F32, 276, "Ohm", 1.0, 0, 0, 200000, 1 +clt_adcChannel = bits, U08, 280, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +clt_alignmentFill_at_29 = array, U08, 281, [3], "units", 1.0, 0, -20, 100, 0 +iat_tempC_1 = scalar, F32, 284, "*C", 1.0, 0, -40, 200, 1 +iat_tempC_2 = scalar, F32, 288, "*C", 1.0, 0, -40, 200, 1 +iat_tempC_3 = scalar, F32, 292, "*C", 1.0, 0, -40, 200, 1 +iat_resistance_1 = scalar, F32, 296, "Ohm", 1.0, 0, 0, 200000, 1 +iat_resistance_2 = scalar, F32, 300, "Ohm", 1.0, 0, 0, 200000, 1 +iat_resistance_3 = scalar, F32, 304, "Ohm", 1.0, 0, 0, 200000, 1 +iat_bias_resistor = scalar, F32, 308, "Ohm", 1.0, 0, 0, 200000, 1 +iat_adcChannel = bits, U08, 312, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +iat_alignmentFill_at_29 = array, U08, 313, [3], "units", 1.0, 0, -20, 100, 0 +launchRpm = scalar, S32, 316, "rpm", 1.0, 0, 0, 20000.0, 2 +launchTimingRetard = scalar, S32, 320, "deg", 1.0, 0, -180, 180, 2 +hip9011PrescalerAndSDO = scalar, S32, 324, "integer", 1.0, 0.0, 0.0, 32, 0 +knockBandCustom = scalar, F32, 328, "kHz", 1.0, 0.0, 0.0, 20.0, 2 +sparkDwellRpmBins = array, F32, 332, [8], "RPM", 1.0, 0.0, 0.0, 18000, 2 +sparkDwellValues = array, F32, 364, [8], "ms", 1.0, 0.0, 0.0, 30.0, 2 +displacement = scalar, F32, 396, "L", 1.0, 0, 0, 1000.0, 2 +cylindersCount = bits, U32, 400, [0:3], "INVALID", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "INVALID", "INVALID", "INVALID" +firingOrder = bits, U32, 404, [0:4], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1_2_3_4_5_6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +cylinderBore = scalar, F32, 408, "mm", 1.0, 0, 0, 20000.0, 2 +sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1.0, 0, 0,30000, 0 +rpmHardLimit = scalar, S32, 416, "rpm", 1.0, 0, 0, 20000.0, 2 +fuelAlgorithm = bits, U32, 420, [0:2], "INVALID", "INVALID", "INVALID", "Speed Density", "MAF Air Charge", "Alpha-N", "INVALID", "INVALID" +crankingInjectionMode = bits, U32, 424, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U32, 428, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +extraInjectionOffset = scalar, F32, 432, "deg", 1.0, 0.0, -720, 720, 2 +crankingTimingAngle = scalar, F32, 436, "deg", 1.0, 0.0, -360, 360, 2 +ignitionMode = bits, U32, 440, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" +ignitionOffset = scalar, F32, 444, "RPM", 1.0, 0, 0, 3000.0, 0 +timingMode = bits, U32, 448, [0:0], "dynamic", "fixed" +fixedModeTiming = scalar, F32, 452, "RPM", 1.0, 0, 0, 3000.0, 0 +globalTriggerAngleOffset = scalar, F32, 456, "deg btdc", 1.0, 0, -720, 720, 0 +analogInputDividerCoefficient = scalar, F32, 460, "coef", 1.0, 0, 0.01, 10.0, 2 +vbattDividerCoeff = scalar, F32, 464, "coef", 1.0, 0, 0.01, 99.0, 2 +fanOnTemperature = scalar, F32, 468, "*C", 1.0, 0, 0, 1000.0, 0 +fanOffTemperature = scalar, F32, 472, "*C", 1.0, 0, 0, 1000.0, 0 +vehicleSpeedCoef = scalar, F32, 476, "coef", 1.0, 0, 0.01, 2000.0, 2 +canNbcType = bits, U32, 480, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "Haltech", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canSleepPeriodMs = scalar, S32, 484, "ms", 1.0, 0, 0, 1000.0, 2 +ambiguousOperationMode = bits, U32, 488, [0:2], "INVALID", "4 stroke without cam sensor", "4 stroke with cam sensor", "2 stroke", "4 stroke with symmetrical crank (requires VVT input)", "INVALID", "INVALID", "INVALID" +displayMode = bits, U32, 492, [0:1], "none", "hd44780", "hd44780 over pcf8574", "INVALID" +logFormat = bits, U32, 496, [0:0], "native", "Mega Log Viewer" +byFirmwareVersion = scalar, S32, 500, "index", 1.0, 0, 0, 300, 0 +HD44780width = scalar, S32, 504, "index", 1.0, 0, 0, 300, 0 +HD44780height = scalar, S32, 508, "index", 1.0, 0, 0, 300, 0 +tps1_1AdcChannel = bits, U08, 512, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vbattAdcChannel = bits, U08, 513, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fuelLevelSensor = bits, U08, 514, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tps2_1AdcChannel = bits, U08, 515, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +idle_derivativeFilterLoss = scalar, F32, 516, "x", 1.0, 0.0, -1000000, 1000000, 4 +sensorChartFrequency = scalar, S32, 520, "index", 1.0, 0, 0, 300, 0 +trigger_type = bits, U32, 524, [0:5], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "Subaru 7 without 6", "trg52", "TriTach", "GM 60/2/2?2", "trg55", "trg56", "trg57", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +trigger_todoRemoveMeOneDay0 = bits, U32, 528, [0:0], "false", "true" +trigger_todoRemoveMeOneDay1 = bits, U32, 528, [1:1], "false", "true" +trigger_useOnlyFirstChannel = bits, U32, 528, [2:2], "false", "true" +trigger_unusedBit_4_3 = bits, U32, 528, [3:3], "false", "true" +trigger_unusedBit_4_4 = bits, U32, 528, [4:4], "false", "true" +trigger_unusedBit_4_5 = bits, U32, 528, [5:5], "false", "true" +trigger_unusedBit_4_6 = bits, U32, 528, [6:6], "false", "true" +trigger_unusedBit_4_7 = bits, U32, 528, [7:7], "false", "true" +trigger_unusedBit_4_8 = bits, U32, 528, [8:8], "false", "true" +trigger_unusedBit_4_9 = bits, U32, 528, [9:9], "false", "true" +trigger_unusedBit_4_10 = bits, U32, 528, [10:10], "false", "true" +trigger_unusedBit_4_11 = bits, U32, 528, [11:11], "false", "true" +trigger_unusedBit_4_12 = bits, U32, 528, [12:12], "false", "true" +trigger_unusedBit_4_13 = bits, U32, 528, [13:13], "false", "true" +trigger_unusedBit_4_14 = bits, U32, 528, [14:14], "false", "true" +trigger_unusedBit_4_15 = bits, U32, 528, [15:15], "false", "true" +trigger_unusedBit_4_16 = bits, U32, 528, [16:16], "false", "true" +trigger_unusedBit_4_17 = bits, U32, 528, [17:17], "false", "true" +trigger_unusedBit_4_18 = bits, U32, 528, [18:18], "false", "true" +trigger_unusedBit_4_19 = bits, U32, 528, [19:19], "false", "true" +trigger_unusedBit_4_20 = bits, U32, 528, [20:20], "false", "true" +trigger_unusedBit_4_21 = bits, U32, 528, [21:21], "false", "true" +trigger_unusedBit_4_22 = bits, U32, 528, [22:22], "false", "true" +trigger_unusedBit_4_23 = bits, U32, 528, [23:23], "false", "true" +trigger_unusedBit_4_24 = bits, U32, 528, [24:24], "false", "true" +trigger_unusedBit_4_25 = bits, U32, 528, [25:25], "false", "true" +trigger_unusedBit_4_26 = bits, U32, 528, [26:26], "false", "true" +trigger_unusedBit_4_27 = bits, U32, 528, [27:27], "false", "true" +trigger_unusedBit_4_28 = bits, U32, 528, [28:28], "false", "true" +trigger_unusedBit_4_29 = bits, U32, 528, [29:29], "false", "true" +trigger_unusedBit_4_30 = bits, U32, 528, [30:30], "false", "true" +trigger_unusedBit_4_31 = bits, U32, 528, [31:31], "false", "true" +trigger_customTotalToothCount = scalar, S32, 532, "number", 1.0, 0.0, 0, 500.0, 0 +trigger_customSkippedToothCount = scalar, S32, 536, "number", 1.0, 0.0, 0, 500.0, 0 +hip9011SpiDevice = bits, U08, 540, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +failedMapFallback = scalar, U08, 541, "kPa", 1.0, 0, 0, 100, 0 +unused542 = scalar, U08, 542, "unit", 1.0, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 543, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +globalFuelCorrection = scalar, F32, 544, "coef", 1.0, 0.0, 0, 1000.0, 2 +adcVcc = scalar, F32, 548, "volts", 1.0, 0.0, 0, 6.0, 3 +maxKnockSubDeg = scalar, F32, 552, "Deg", 1.0, 0, 0, 100, 0 +camInputs1 = bits, U08, 556, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +camInputs2 = bits, U08, 557, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +camInputs3 = bits, U08, 558, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +camInputs4 = bits, U08, 559, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +afr_hwChannel = bits, U08, 560, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +afr_alignmentFill_afr = array, U08, 561, [3], "unit", 1.0, 0, 0, 100, 0 +afr_v1 = scalar, F32, 564, "volts", 1.0, 0.0, 0, 10.0, 2 +afr_value1 = scalar, F32, 568, "AFR", 1.0, 0.0, 0, 1000.0, 2 +afr_v2 = scalar, F32, 572, "volts", 1.0, 0.0, 0, 10.0, 2 +afr_value2 = scalar, F32, 576, "AFR", 1.0, 0.0, 0, 1000.0, 2 +throttlePedalPositionAdcChannel = bits, U08, 580, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tle6240_cs = bits, U08, 581, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tle6240_csPinMode = bits, U08, 582, [0:1], "default", "default inverted", "open collector", "open collector inverted" +throttlePedalUpPin = bits, U08, 583, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +baroSensor_lowValue = scalar, F32, 584, "kpa", 1.0, 0, -400, 800, 2 +baroSensor_highValue = scalar, F32, 588, "kpa", 1.0, 0, -400, 800, 2 +baroSensor_type = bits, U32, 592, [0:3], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "INVALID", "INVALID" +baroSensor_hwChannel = bits, U08, 596, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +baroSensor_alignmentFill = array, U08, 597, [3], "unit", 1.0, 0, 0, 100, 0 +idle_solenoidFrequency = scalar, S32, 600, "Hz", 1.0, 0, 0, 3000, 0 +idle_solenoidPin = bits, U08, 604, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +idle_stepperDirectionPin = bits, U08, 605, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +idle_stepperStepPin = bits, U08, 606, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +idle_solenoidPinMode = bits, U08, 607, [0:1], "default", "default inverted", "open collector", "open collector inverted" +manIdlePosition = scalar, F32, 608, "%", 1.0, 0, 0, 100, 0 +mapFrequency0Kpa = scalar, F32, 612, "Hz", 1.0, 0, 0, 100000, 2 +mapFrequency100Kpa = scalar, F32, 616, "Hz", 1.0, 0, 0, 100000, 2 +triggerSimulatorFrequency = scalar, S32, 620, "Rpm", 1.0, 0, 0,30000, 0 +injectionPins1 = bits, U08, 624, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins2 = bits, U08, 625, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins3 = bits, U08, 626, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins4 = bits, U08, 627, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins5 = bits, U08, 628, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins6 = bits, U08, 629, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins7 = bits, U08, 630, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins8 = bits, U08, 631, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins9 = bits, U08, 632, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins10 = bits, U08, 633, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins11 = bits, U08, 634, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPins12 = bits, U08, 635, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins1 = bits, U08, 636, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins2 = bits, U08, 637, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins3 = bits, U08, 638, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins4 = bits, U08, 639, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins5 = bits, U08, 640, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins6 = bits, U08, 641, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins7 = bits, U08, 642, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins8 = bits, U08, 643, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins9 = bits, U08, 644, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins10 = bits, U08, 645, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins11 = bits, U08, 646, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignitionPins12 = bits, U08, 647, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +injectionPinMode = bits, U08, 648, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 649, [0:1], "default", "default inverted", "open collector", "open collector inverted" +HD44780_rs = bits, U08, 650, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +HD44780_e = bits, U08, 651, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +HD44780_db4 = bits, U08, 652, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +HD44780_db5 = bits, U08, 653, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +HD44780_db6 = bits, U08, 654, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +HD44780_db7 = bits, U08, 655, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gps_rx_pin = bits, U08, 656, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gps_tx_pin = bits, U08, 657, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fuelPumpPin = bits, U08, 658, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fuelPumpPinMode = bits, U08, 659, [0:1], "default", "default inverted", "open collector", "open collector inverted" +malfunctionIndicatorPin = bits, U08, 660, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +malfunctionIndicatorPinMode = bits, U08, 661, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 662, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U08, 663, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +clutchDownPin = bits, U08, 664, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +alternatorControlPin = bits, U08, 665, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +alternatorControlPinMode = bits, U08, 666, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 667, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +digitalPotentiometerChipSelect1 = bits, U08, 668, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +digitalPotentiometerChipSelect2 = bits, U08, 669, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +digitalPotentiometerChipSelect3 = bits, U08, 670, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +digitalPotentiometerChipSelect4 = bits, U08, 671, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +electronicThrottlePin1Mode = bits, U08, 672, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wboHeaterPin = bits, U08, 673, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +cj125CsPin = bits, U08, 674, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855spiDevice = bits, U08, 675, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +debugTriggerSync = bits, U08, 676, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +digitalPotentiometerSpiDevice = bits, U08, 677, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +mc33972_cs = bits, U08, 678, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +mc33972_csPinMode = bits, U08, 679, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 680, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tps1_2AdcChannel = bits, U08, 681, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tps2_2AdcChannel = bits, U08, 682, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +throttlePedalPositionSecondAdcChannel = bits, U08, 683, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fuelLevelEmptyTankVoltage = scalar, F32, 684, "V", 1.0, 0, 0,10, 2 +fuelLevelFullTankVoltage = scalar, F32, 688, "V", 1.0, 0, 0,10, 2 +afr_type = bits, S32, 692, [0:2], "BPSX", "Innovate", "14Point7", "Narrow", "PLX", "Custom", "INVALID", "INVALID" +idle_antiwindupFreq = scalar, F32, 696, "x", 1.0, 0.0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U08, 700, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerInputPins2 = bits, U08, 701, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerInputPins3 = bits, U08, 702, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +hip9011CsPinMode = bits, U08, 703, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tachOutputPin = bits, U08, 704, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tachOutputPinMode = bits, U08, 705, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U08, 706, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +sdCardCsPin = bits, U08, 707, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canTxPin = bits, U08, 708, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canRxPin = bits, U08, 709, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +throttlePedalUpPinMode = bits, U08, 710, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acIdleExtraOffset = scalar, U08, 711, "Percent", 1.0, 0, 0, 255, 0 +can2SleepPeriodMs = scalar, S32, 712, "ms", 1.0, 0, 0, 1000.0, 2 +wastegatePositionMin = scalar, U16, 716, "mv", 1.0, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 718, "mv", 1.0, 0, 0, 5000, 0 +idlePositionMin = scalar, U16, 720, "mv", 1.0, 0, 0, 5000, 0 +idlePositionMax = scalar, U16, 722, "mv", 1.0, 0, 0, 5000, 0 +tempHpfpStart = scalar, U16, 724, "units", 1.0, 0, -20, 100, 0 +tempHpfpDuration = scalar, U16, 726, "units", 1.0, 0, -20, 100, 0 +tunerStudioSerialSpeed = scalar, U32, 728, "BPs", 1.0, 0, 0,1000000, 0 +compressionRatio = scalar, F32, 732, "CR", 1.0, 0, 0, 300.0, 1 +triggerSimulatorPins1 = bits, U08, 736, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerSimulatorPins2 = bits, U08, 737, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerSimulatorPins3 = bits, U08, 738, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerSimulatorPinModes1 = bits, U08, 739, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 740, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes3 = bits, U08, 741, [0:1], "default", "default inverted", "open collector", "open collector inverted" +o2heaterPin = bits, U08, 742, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +o2heaterPinModeTodO = bits, U08, 743, [0:1], "default", "default inverted", "open collector", "open collector inverted" +is_enabled_spi_1 = bits, U32, 744, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 744, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 744, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 744, [3:3], "false", "true" +unused744b4 = bits, U32, 744, [4:4], "false", "true" +isEngineControlEnabled = bits, U32, 744, [5:5], "false", "true" +isHip9011Enabled = bits, U32, 744, [6:6], "false", "true" +isVerboseAlternator = bits, U32, 744, [7:7], "false", "true" +useSerialPort = bits, U32, 744, [8:8], "false", "true" +useStepperIdle = bits, U32, 744, [9:9], "false", "true" +enabledStep1Limiter = bits, U32, 744, [10:10], "false", "true" +useTpicAdvancedMode = bits, U32, 744, [11:11], "false", "true" +useLcdScreen = bits, U32, 744, [12:12], "false", "true" +verboseTLE8888 = bits, U32, 744, [13:13], "false", "true" +enableVerboseCanTx = bits, U32, 744, [14:14], "false", "true" +onOffAlternatorLogic = bits, U32, 744, [15:15], "false", "true" +isCJ125Enabled = bits, U32, 744, [16:16], "false", "true" +vvtCamSensorUseRise = bits, U32, 744, [17:17], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 744, [18:18], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 744, [19:19], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 744, [20:20], "false", "true" +coastingFuelCutEnabled = bits, U32, 744, [21:21], "false", "true" +useIacTableForCoasting = bits, U32, 744, [22:22], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 744, [23:23], "false", "true" +useIdleTimingPidControl = bits, U32, 744, [24:24], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 744, [25:25], "false", "true" +is_enabled_spi_4 = bits, U32, 744, [26:26], "false", "true" +pauseEtbControl = bits, U32, 744, [27:27], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 744, [28:28], "false", "true" +useETBforIdleControl = bits, U32, 744, [29:29], "false", "true" +idleIncrementalPidCic = bits, U32, 744, [30:30], "false", "true" +enableAemXSeries = bits, U32, 744, [31:31], "false", "true" +logicAnalyzerPins1 = bits, U08, 748, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +logicAnalyzerPins2 = bits, U08, 749, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +logicAnalyzerPins3 = bits, U08, 750, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +logicAnalyzerPins4 = bits, U08, 751, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +mainRelayPinMode = bits, U08, 752, [0:1], "default", "default inverted", "open collector", "open collector inverted" +hip9011CsPin = bits, U08, 753, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +hip9011IntHoldPin = bits, U08, 754, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +hip9011IntHoldPinMode = bits, U08, 755, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 +acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 +acFanPin = bits, U08, 762, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes4 = bits, U08, 767, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes5 = bits, U08, 768, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes6 = bits, U08, 769, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes7 = bits, U08, 770, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes8 = bits, U08, 771, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes9 = bits, U08, 772, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes10 = bits, U08, 773, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes11 = bits, U08, 774, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes12 = bits, U08, 775, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes13 = bits, U08, 776, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes14 = bits, U08, 777, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes15 = bits, U08, 778, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gpioPinModes16 = bits, U08, 779, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fsioOutputPins1 = bits, U08, 780, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins2 = bits, U08, 781, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins3 = bits, U08, 782, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins4 = bits, U08, 783, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins5 = bits, U08, 784, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins6 = bits, U08, 785, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins7 = bits, U08, 786, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins8 = bits, U08, 787, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins9 = bits, U08, 788, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins10 = bits, U08, 789, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins11 = bits, U08, 790, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins12 = bits, U08, 791, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins13 = bits, U08, 792, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins14 = bits, U08, 793, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins15 = bits, U08, 794, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioOutputPins16 = bits, U08, 795, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs1 = bits, U08, 796, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs2 = bits, U08, 797, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs3 = bits, U08, 798, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs4 = bits, U08, 799, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs5 = bits, U08, 800, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs6 = bits, U08, 801, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs7 = bits, U08, 802, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +max31855_cs8 = bits, U08, 803, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +sdCardPeriodMs = scalar, S16, 804, "ms", 1.0, 0, 0, 30000, 0 +idlePositionSensor = bits, U08, 806, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +debugMapAveraging = bits, U08, 807, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +starterRelayDisablePin = bits, U08, 808, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +starterRelayDisablePinMode = bits, U08, 809, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U08, 810, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +startStopButtonPin = bits, U08, 811, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +mapMinBufferLength = scalar, S32, 812, "count", 1.0, 0, 0, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 816, "%", 1.0, 0, 0, 100.0, 0 +stepperParkingExtraSteps = scalar, S16, 818, "%", 1.0, 0, 0, 3000.0, 0 +tps1SecondaryMin = scalar, U16, 820, "ADC", 1.0, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 822, "ADC", 1.0, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 824, "rpm", 1.0, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 826, "Seconds", 1.0, 0, 0, 30, 0 +triggerErrorPin = bits, U08, 828, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerErrorPinMode = bits, U08, 829, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U08, 830, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +acRelayPinMode = bits, U08, 831, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fsioFrequency1 = scalar, U16, 832, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency2 = scalar, U16, 834, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency3 = scalar, U16, 836, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency4 = scalar, U16, 838, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency5 = scalar, U16, 840, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency6 = scalar, U16, 842, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency7 = scalar, U16, 844, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency8 = scalar, U16, 846, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency9 = scalar, U16, 848, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency10 = scalar, U16, 850, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency11 = scalar, U16, 852, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency12 = scalar, U16, 854, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency13 = scalar, U16, 856, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency14 = scalar, U16, 858, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency15 = scalar, U16, 860, "Hz", 1, 0.0, 0, 3000, 0 +fsioFrequency16 = scalar, U16, 862, "Hz", 1, 0.0, 0, 3000, 0 +fsio_setting1 = scalar, F32, 864, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting2 = scalar, F32, 868, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting3 = scalar, F32, 872, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting4 = scalar, F32, 876, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting5 = scalar, F32, 880, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting6 = scalar, F32, 884, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting7 = scalar, F32, 888, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting8 = scalar, F32, 892, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting9 = scalar, F32, 896, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting10 = scalar, F32, 900, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting11 = scalar, F32, 904, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting12 = scalar, F32, 908, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting13 = scalar, F32, 912, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting14 = scalar, F32, 916, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting15 = scalar, F32, 920, "Val", 1, 0.0, 0, 18000, 2 +fsio_setting16 = scalar, F32, 924, "Val", 1, 0.0, 0, 18000, 2 +spi1mosiPin = bits, U08, 928, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1misoPin = bits, U08, 929, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1sckPin = bits, U08, 930, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2mosiPin = bits, U08, 931, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2misoPin = bits, U08, 932, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2sckPin = bits, U08, 933, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3mosiPin = bits, U08, 934, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3misoPin = bits, U08, 935, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3sckPin = bits, U08, 936, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +cdmInputPin = bits, U08, 937, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +joystickCenterPin = bits, U08, 938, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +joystickAPin = bits, U08, 939, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +joystickBPin = bits, U08, 940, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +joystickCPin = bits, U08, 941, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +joystickDPin = bits, U08, 942, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +consoleUartDevice = bits,U08, 943, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S32, 944, [0:2], "none", "trigger", "MAP", "RPM ACCEL", "DETAILED RPM", "Fast Aux1", "INVALID", "INVALID" +mafSensorType = bits, S32, 948, [0:1], "v0", "v1", "v2", "v3" +fsioDigitalInputs1 = bits, U08, 952, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs2 = bits, U08, 953, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs3 = bits, U08, 954, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs4 = bits, U08, 955, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs5 = bits, U08, 956, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs6 = bits, U08, 957, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs7 = bits, U08, 958, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs8 = bits, U08, 959, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs9 = bits, U08, 960, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs10 = bits, U08, 961, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs11 = bits, U08, 962, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs12 = bits, U08, 963, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs13 = bits, U08, 964, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs14 = bits, U08, 965, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs15 = bits, U08, 966, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioDigitalInputs16 = bits, U08, 967, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vehicleSpeedSensorInputPin = bits, U08, 968, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +clutchUpPin = bits, U08, 969, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +frequencyReportingMapInputPin = bits, U08, 970, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +clutchUpPinMode = bits, U08, 971, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +multisparkMaxRpm = scalar, U16, 972, "rpm", 1.0, 0, 0, 3000, 0 +multisparkMaxSparkingAngle = scalar, U08, 974, "deg", 1.0, 0, 0, 60, 0 +multisparkMaxExtraSparkCount = scalar, U08, 975, "count", 1.0, 0, 0, 5, 0 +todoClutchUpPinInverted = bits, U32, 976, [0:0], "false", "true" +todoClutchDownPinInverted = bits, U32, 976, [1:1], "false", "true" +useHbridges = bits, U32, 976, [2:2], "false", "true" +multisparkEnable = bits, U32, 976, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 976, [4:4], "false", "true" +enableLaunchBoost = bits, U32, 976, [5:5], "false", "true" +launchDisableBySpeed = bits, U32, 976, [6:6], "false", "true" +enableCanVss = bits, U32, 976, [7:7], "false", "true" +enableInnovateLC2 = bits, U32, 976, [8:8], "false", "true" +showHumanReadableWarning = bits, U32, 976, [9:9], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 976, [10:10], "false", "true" +unused976b11 = bits, U32, 976, [11:11], "false", "true" +enableSoftwareKnock = bits, U32, 976, [12:12], "false", "true" +verboseVVTDecoding = bits, U32, 976, [13:13], "false", "true" +invertCamVVTSignal = bits, U32, 976, [14:14], "false", "true" +consumeObdSensors = bits, U32, 976, [15:15], "false", "true" +knockBankCyl1 = bits, U32, 976, [16:16], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 976, [17:17], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 976, [18:18], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 976, [19:19], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 976, [20:20], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 976, [21:21], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 976, [22:22], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 976, [23:23], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 976, [24:24], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 976, [25:25], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 976, [26:26], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 976, [28:28], "false", "true" +unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" +unusedBit_288_30 = bits, U32, 976, [30:30], "false", "true" +unusedBit_288_31 = bits, U32, 976, [31:31], "false", "true" +etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo1_disablePin = bits, U08, 983, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo2_directionPin1 = bits, U08, 984, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo2_directionPin2 = bits, U08, 985, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo2_controlPin1 = bits, U08, 986, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbIo2_disablePin = bits, U08, 987, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostControlPin = bits, U08, 988, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostControlPinMode = bits, U08, 989, [0:1], "default", "default inverted", "open collector", "open collector inverted" +antiLagActivatePin = bits, U08, 990, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +launchActivatePin = bits, U08, 991, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostPid_pFactor = scalar, F32, 992, "", 1.0, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 996, "", 1.0, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 1000, "", 1.0, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 1004, "", 1.0, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 1006, "ms", 1.0, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 1008, "", 1.0, 0, -30000, 30000.0, 0 +boostPid_maxValue = scalar, S16, 1010, "", 1.0, 0, -30000, 30000.0, 0 +boostType = bits, U32, 1012, [0:0], "Open Loop", "Closed Loop" +boostPwmFrequency = scalar, S32, 1016, "Hz", 1.0, 0, 0, 3000.0, 0 +launchActivationMode = bits, S32, 1020, [0:1], "Switch Input", "Clutch Input", "Always Active(Disabled By Speed)","INVALID" +antiLagActivationMode = bits, S32, 1024, [0:0], "Always Active", "Switch Input" +launchSpeedTreshold = scalar, S32, 1028, "Kph", 1.0, 0, 0, 300.0, 0 +launchRpmTreshold = scalar, S32, 1032, "RPM", 1.0, 0, 0, 8000.0, 0 +launchTimingRpmRange = scalar, S32, 1036, "RPM", 1.0, 0, 0, 8000.0, 0 +launchFuelAdded = scalar, S32, 1040, "%", 1.0, 0, 0, 100.0, 0 +launchBoostDuty = scalar, S32, 1044, "%", 1.0, 0, 0, 100.0, 0 +hardCutRpmRange = scalar, S32, 1048, "rpm", 1.0, 0, 0, 3000.0, 2 +launchAdvanceRpmRange = scalar, S32, 1052, "rpm", 1.0, 0, 0, 20000, 0 +launchTpsTreshold = scalar, S32, 1056, "rpm", 1.0, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 1060, "rpm", 1.0, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 1064, "RPM", 50.0, 0, 0.0, 12000.0, 0 +stft_maxOverrunLoad = scalar, U08, 1065, "load", 1.0, 0, 0.0, 250, 0 +stft_minPowerLoad = scalar, U08, 1066, "load", 1.0, 0, 0.0, 250, 0 +stft_deadband = scalar, U08, 1067, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 1068, "C", 1.0, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 1069, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 1070, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 1071, "seconds", 1.0, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 1072, "%", 1.0, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 1073, "%", 1.0, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 1074, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 1076, "%", 1.0, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 1077, "%", 1.0, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 1078, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1080, "%", 1.0, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1081, "%", 1.0, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1082, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1084, "%", 1.0, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1085, "%", 1.0, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1086, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U08, 1088, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo1_directionPin2 = bits, U08, 1089, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo1_controlPin1 = bits, U08, 1090, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo1_disablePin = bits, U08, 1091, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo2_directionPin1 = bits, U08, 1092, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo2_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo2_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDcIo2_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +engineMake = string, ASCII, 1096, 32 +engineCode = string, ASCII, 1128, 32 +vehicleName = string, ASCII, 1160, 32 +tcu_solenoid1 = bits, U08, 1192, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcu_solenoid2 = bits, U08, 1193, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcu_solenoid3 = bits, U08, 1194, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcu_solenoid4 = bits, U08, 1195, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcu_solenoid5 = bits, U08, 1196, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcu_solenoid6 = bits, U08, 1197, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbFunctions1 = bits, U08, 1198, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +etbFunctions2 = bits, U08, 1199, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +drv8860spiDevice = bits, U08, 1200, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +drv8860_cs = bits, U08, 1201, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +drv8860_csPinMode = bits, U08, 1202, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U08, 1203, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +unusedAtOldBoardConfigurationEnd = array, S32, 1204, [63], "units", 1.0, 0, -20, 100, 0 +vehicleWeight = scalar, U16, 1456, "kg", 1.0, 0, 0, 10000, 0 +unusedHereHereHere = scalar, U16, 1458, "ADC", 1.0, 0, 0, 1000, 0 +tps2SecondaryMin = scalar, U16, 1460, "ADC", 1.0, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1462, "ADC", 1.0, 0, 0, 1000, 0 +unusedHereWeHave = bits, U32, 1464, [0:0], "false", "true" +fuelClosedLoopCorrectionEnabled = bits, U32, 1464, [1:1], "false", "true" +isVerboseIAC = bits, U32, 1464, [2:2], "false", "true" +isVerboseETB = bits, U32, 1464, [3:3], "false", "true" +useConstantDwellDuringCranking = bits, U32, 1464, [4:4], "false", "true" +isEngineChartEnabled = bits, U32, 1464, [5:5], "false", "true" +silentTriggerError = bits, U32, 1464, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1464, [7:7], "false", "true" +canReadEnabled = bits, U32, 1464, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1464, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1464, [10:10], "false", "true" +useFSIO16ForTimingAdjustment = bits, U32, 1464, [11:11], "false", "true" +tachPulseDurationAsDutyCycle = bits, U32, 1464, [12:12], "false", "true" +isAlternatorControlEnabled = bits, U32, 1464, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1464, [14:14], "false", "true" +invertSecondaryTriggerSignal = bits, U32, 1464, [15:15], "false", "true" +cutFuelOnHardLimit = bits, U32, 1464, [16:16], "false", "true" +cutSparkOnHardLimit = bits, U32, 1464, [17:17], "false", "true" +launchFuelCutEnable = bits, U32, 1464, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1464, [19:19], "false", "true" +hasFrequencyReportingMapSensor = bits, U32, 1464, [20:20], "false", "true" +useFSIO8ForServo1 = bits, U32, 1464, [21:21], "false", "true" +useFSIO9ForServo2 = bits, U32, 1464, [22:22], "false", "true" +useFSIO10ForServo3 = bits, U32, 1464, [23:23], "false", "true" +useFSIO11ForServo4 = bits, U32, 1464, [24:24], "false", "true" +useFSIO12ForServo5 = bits, U32, 1464, [25:25], "false", "true" +useFSIO15ForIdleRpmAdjustment = bits, U32, 1464, [26:26], "false", "true" +useFSIO5ForCriticalIssueEngineStop = bits, U32, 1464, [27:27], "false", "true" +useFSIO4ForSeriousEngineWarning = bits, U32, 1464, [28:28], "false", "true" +useFSIO12ForIdleOffset = bits, U32, 1464, [29:29], "false", "true" +useFSIO13ForIdleMinValue = bits, U32, 1464, [30:30], "false", "true" +useFSIO6ForRevLimiter = bits, U32, 1464, [31:31], "false", "true" +hipOutputChannel = bits, U08, 1468, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +acSwitch = bits, U08, 1469, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vRefAdcChannel = bits, U08, 1470, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +etbNeutralPosition = scalar, U08, 1471, "%", 1.0, 0, 0, 100, 0 +idleMode = bits, U32, 1472, [0:0], "Automatic", "Manual" +isInjectionEnabled = bits, U32, 1476, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1476, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1476, [2:2], "false", "true" +unused1476b3 = bits, U32, 1476, [3:3], "false", "true" +unusedBit4_1476 = bits, U32, 1476, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1476, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1476, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1476, [7:7], "false", "true" +unused1476b8 = bits, U32, 1476, [8:8], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1476, [9:9], "false", "true" +useSeparateVeForIdle = bits, U32, 1476, [10:10], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1476, [11:11], "false", "true" +isManualSpinningMode = bits, U32, 1476, [12:12], "false", "true" +twoWireBatchInjection = bits, U32, 1476, [13:13], "false", "true" +useOnlyRisingEdgeForTrigger = bits, U32, 1476, [14:14], "false", "true" +twoWireBatchIgnition = bits, U32, 1476, [15:15], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1476, [16:16], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1476, [17:17], "false", "true" +useAdvanceCorrectionsForCranking = bits, U32, 1476, [18:18], "false", "true" +unused1476b19 = bits, U32, 1476, [19:19], "false", "true" +unused1476b20 = bits, U32, 1476, [20:20], "false", "true" +useIacPidMultTable = bits, U32, 1476, [21:21], "false", "true" +isBoostControlEnabled = bits, U32, 1476, [22:22], "false", "true" +launchSmoothRetard = bits, U32, 1476, [23:23], "false", "true" +unused_1484_bit_24 = bits, U32, 1476, [24:24], "false", "true" +unused_1484_bit_25 = bits, U32, 1476, [25:25], "false", "true" +unused_1484_bit_26 = bits, U32, 1476, [26:26], "false", "true" +unused_1484_bit_27 = bits, U32, 1476, [27:27], "false", "true" +unused_1484_bit_28 = bits, U32, 1476, [28:28], "false", "true" +unused_1484_bit_29 = bits, U32, 1476, [29:29], "false", "true" +unused_1484_bit_30 = bits, U32, 1476, [30:30], "false", "true" +unused_1484_bit_31 = bits, U32, 1476, [31:31], "false", "true" +engineChartSize = scalar, U32, 1480, "count", 1.0, 0, 0, 300, 0 +idlePidRpmUpperLimit = scalar, S16, 1484, "RPM", 1.0, 0, 0, 9000, 0 +primeInjFalloffTemperature = scalar, S16, 1486, "*C", 1.0, 0, 0, 1000.0, 0 +ignMathCalculateAtIndex = scalar, S32, 1488, "index", 1.0, 0, 0, 7000, 0 +acCutoffLowRpm = scalar, S16, 1492, "RPM", 1.0, 0, 1, 15000, 0 +acCutoffHighRpm = scalar, S16, 1494, "RPM", 1.0, 0, 1, 15000, 0 +acIdleRpmBump = scalar, S16, 1496, "RPM", 1.0, 0, 1, 15000, 0 +warningPeriod = scalar, S16, 1498, "seconds", 1.0, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1500, "angle", 1.0, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1504, "angle", 1.0, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1508, "ms", 1.0, 0, 1, 300, 0 +knockVThreshold = scalar, F32, 1512, "V", 1.0, 0, 1, 5, 2 +fsioInputModes1 = bits, U08, 1516, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes2 = bits, U08, 1517, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes3 = bits, U08, 1518, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes4 = bits, U08, 1519, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes5 = bits, U08, 1520, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes6 = bits, U08, 1521, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes7 = bits, U08, 1522, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes8 = bits, U08, 1523, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes9 = bits, U08, 1524, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes10 = bits, U08, 1525, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes11 = bits, U08, 1526, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes12 = bits, U08, 1527, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes13 = bits, U08, 1528, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes14 = bits, U08, 1529, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes15 = bits, U08, 1530, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +fsioInputModes16 = bits, U08, 1531, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +idleStepperTotalSteps = scalar, S32, 1532, "count", 1.0, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1536, "sec", 1.0, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1540, "index", 1.0, 0, 0, 7000, 0 +baroCorrPressureBins = array, F32, 1544, [4], "kPa", 1.0, 0, 0.0, 200, 2 +baroCorrRpmBins = array, F32, 1560, [4], "RPM", 1.0, 0, 0.0, 18000, 2 +baroCorrTable = array, F32, 1576, [4x4],"ratio", 1.0, 0, 0, 2.0, 2 +crankingTpsCoef = array, F32, 1640, [8], "Ratio", 1.0, 0, 0.0, 700.0, 2 +crankingTpsBins = array, F32, 1672, [8], "%", 1.0, 0, 0.0, 100.0, 2 +tachPulseDuractionMs = scalar, F32, 1704, "ms", 1.0, 0, 0.0, 100.0, 2 +unused1708 = scalar, S32, 1708, "units", 1.0, 0, -20, 100, 0 +wwaeTau = scalar, F32, 1712, "Seconds", 1.0, 0, 0.0, 3.0, 2 +alternatorControl_pFactor = scalar, F32, 1716, "", 1.0, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1720, "", 1.0, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1724, "", 1.0, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1728, "", 1.0, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1730, "ms", 1.0, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1732, "", 1.0, 0, -30000, 30000.0, 0 +alternatorControl_maxValue = scalar, S16, 1734, "", 1.0, 0, -30000, 30000.0, 0 +etb_pFactor = scalar, F32, 1736, "", 1.0, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1740, "", 1.0, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1744, "", 1.0, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1748, "", 1.0, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1750, "ms", 1.0, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1752, "", 1.0, 0, -30000, 30000.0, 0 +etb_maxValue = scalar, S16, 1754, "", 1.0, 0, -30000, 30000.0, 0 +fuelRailPressure = scalar, F32, 1756, "kPa", 1.0, 0.0, 0, 1000.0, 2 +alternator_derivativeFilterLoss = scalar, F32, 1760, "x", 1.0, 0.0, -1000000, 1000000, 4 +alternator_antiwindupFreq = scalar, F32, 1764, "x", 1.0, 0.0, -1000000, 1000000, 4 +tps2Min = scalar, S16, 1768, "ADC", 1.0, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1770, "ADC", 1.0, 0, 0, 1023, 0 +starterControlPin = bits, U08, 1772, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +startStopButtonMode = bits, U08, 1773, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +mc33816_flag0 = bits, U08, 1774, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tachPulsePerRev = scalar, U08, 1775, "Pulse", 1.0, 0, 1.0, 255.0, 0 +mapErrorDetectionTooLow = scalar, F32, 1776, "kPa", 1.0, 0, -100.0, 100.0, 2 +mapErrorDetectionTooHigh = scalar, F32, 1780, "kPa", 1.0, 0, -100.0, 800.0, 2 +multisparkSparkDuration = scalar, U16, 1784, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1786, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1788, "", 1.0, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1792, "", 1.0, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1796, "", 1.0, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1800, "", 1.0, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1802, "ms", 1.0, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1804, "", 1.0, 0, -30000, 30000.0, 0 +idleRpmPid_maxValue = scalar, S16, 1806, "", 1.0, 0, -30000, 30000.0, 0 +wwaeBeta = scalar, F32, 1808, "Fraction", 1.0, 0, 0.0, 1.0, 2 +communicationLedPin = bits, U08, 1812, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +runningLedPin = bits, U08, 1813, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +binarySerialTxPin = bits, U08, 1814, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +binarySerialRxPin = bits, U08, 1815, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxValves1 = bits, U08, 1816, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxValves2 = bits, U08, 1817, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcuUpshiftButtonPin = bits, U08, 1818, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tcuDownshiftButtonPin = bits, U08, 1819, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +knockNoise = array, F32, 1820, [8], "v", 1.0, 0, 0.0, 10, 2 +knockNoiseRpmBins = array, F32, 1852, [8], "RPM", 1.0, 0, 0.0, 18000, 2 +throttlePedalUpVoltage = scalar, F32, 1884, "voltage", 1.0, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1888, "voltage", 1.0, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1892, "seconds", 1.0, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1894, "RPM", 1.0, 0, 0, 1000, 0 +cltIdleRpmBins = array, F32, 1896, [16], "C", 1.0, 0, -100.0, 250.0, 2 +cltIdleRpm = array, F32, 1960, [16], "", 1.0, 0, 0.0, 8000.0, 0 +targetVBatt = scalar, F32, 2024, "Volts", 1.0, 0, 0,30, 1 +alternatorOffAboveTps = scalar, F32, 2028, "%", 1.0, 0, 0, 200, 2 +startOfCrankingPrimingPulse = scalar, F32, 2032, "ms", 1.0, 0, 0, 200, 1 +afterCrankingIACtaperDuration = scalar, S16, 2036, "cycles", 1.0, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 2038, "percent", 1.0, 0, 0, 500, 0 +auxSerialTxPin = bits, U08, 2040, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +warningLedPin = bits, U08, 2041, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxSerialRxPin = bits, U08, 2042, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +LIS302DLCsPin = bits, U08, 2043, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tpsAccelLength = scalar, S32, 2044, "cycles", 1.0, 0, 1, 200, 0 +tpsAccelEnrichmentThreshold = scalar, F32, 2048, "roc", 1.0, 0, 0, 200, 3 +vvtOffset = scalar, F32, 2052, "value", 1.0, 0, -720, 1000, 1 +engineLoadAccelLength = scalar, S32, 2056, "cycles", 1.0, 0, 1, 200, 0 +engineLoadDecelEnleanmentThreshold = scalar, F32, 2060, "roc", 1.0, 0, 0, 200, 3 +engineLoadDecelEnleanmentMultiplier = scalar, F32, 2064, "coeff", 1.0, 0, 0, 200, 3 +engineLoadAccelEnrichmentThreshold = scalar, F32, 2068, "roc", 1.0, 0, 0, 200, 3 +engineLoadAccelEnrichmentMultiplier = scalar, F32, 2072, "coeff", 1.0, 0, 0, 200, 3 +uartConsoleSerialSpeed = scalar, U32, 2076, "BPs", 1.0, 0, 0,1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1.0, 0, 0, 200, 3 +tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1.0, 0, 0, 200, 3 +slowAdcAlpha = scalar, F32, 2088, "coeff", 1.0, 0, 0, 200, 3 +debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "GPPWM", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Injector Compensation", "Dyno_View", "Logic_Analyzer", "rusEFI Wideband", "TCU", "Mode48", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxSerialSpeed = scalar, U32, 2096, "BPs", 1.0, 0, 0,1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1.0, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1.0, 0, -6, 6, 2 +canBaudRate = bits, U08, 2108, [0:1], "100kbps", "250kbps" , "500kbps", "1Mbps" +veOverrideMode = bits, U08, 2109, [0:1], "None", "MAP", "TPS", "INVALID" +can2BaudRate = bits, U08, 2110, [0:1], "100kbps", "250kbps" , "500kbps", "1Mbps" +afrOverrideMode = bits, U08, 2111, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +verboseCan2BaseAddress = scalar, U32, 2112, "", 1.0, 0, 0, 536870911, 0 +enableVerboseCan2Tx = bits, U32, 2116, [0:0], "false", "true" +can2ReadEnabled = bits, U32, 2116, [1:1], "false", "true" +can2WriteEnabled = bits, U32, 2116, [2:2], "false", "true" +unused1126 = bits, U32, 2116, [3:3], "false", "true" +unused1127 = bits, U32, 2116, [4:4], "false", "true" +unused1128 = bits, U32, 2116, [5:5], "false", "true" +unused1129 = bits, U32, 2116, [6:6], "false", "true" +unused1130 = bits, U32, 2116, [7:7], "false", "true" +unusedBit_488_8 = bits, U32, 2116, [8:8], "false", "true" +unusedBit_488_9 = bits, U32, 2116, [9:9], "false", "true" +unusedBit_488_10 = bits, U32, 2116, [10:10], "false", "true" +unusedBit_488_11 = bits, U32, 2116, [11:11], "false", "true" +unusedBit_488_12 = bits, U32, 2116, [12:12], "false", "true" +unusedBit_488_13 = bits, U32, 2116, [13:13], "false", "true" +unusedBit_488_14 = bits, U32, 2116, [14:14], "false", "true" +unusedBit_488_15 = bits, U32, 2116, [15:15], "false", "true" +unusedBit_488_16 = bits, U32, 2116, [16:16], "false", "true" +unusedBit_488_17 = bits, U32, 2116, [17:17], "false", "true" +unusedBit_488_18 = bits, U32, 2116, [18:18], "false", "true" +unusedBit_488_19 = bits, U32, 2116, [19:19], "false", "true" +unusedBit_488_20 = bits, U32, 2116, [20:20], "false", "true" +unusedBit_488_21 = bits, U32, 2116, [21:21], "false", "true" +unusedBit_488_22 = bits, U32, 2116, [22:22], "false", "true" +unusedBit_488_23 = bits, U32, 2116, [23:23], "false", "true" +unusedBit_488_24 = bits, U32, 2116, [24:24], "false", "true" +unusedBit_488_25 = bits, U32, 2116, [25:25], "false", "true" +unusedBit_488_26 = bits, U32, 2116, [26:26], "false", "true" +unusedBit_488_27 = bits, U32, 2116, [27:27], "false", "true" +unusedBit_488_28 = bits, U32, 2116, [28:28], "false", "true" +unusedBit_488_29 = bits, U32, 2116, [29:29], "false", "true" +unusedBit_488_30 = bits, U32, 2116, [30:30], "false", "true" +unusedBit_488_31 = bits, U32, 2116, [31:31], "false", "true" +can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "Haltech", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +starterControlPinMode = bits, U08, 2126, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 2127, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignOverrideMode = bits, U08, 2128, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +injectorPressureType = bits, U08, 2129, [0:0], "Low", "High" +hpfpValvePin = bits, U08, 2130, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +hpfpValvePinMode = bits, U08, 2131, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 2132, "kPa (absolute)", 1.0, 0, 0, 500, 0 +mapAccelTaperBins = array, F32, 2136, [8], "counter", 1.0, 0, 0.0, 300, 0 +mapAccelTaperMult = array, F32, 2168, [8], "mult", 1.0, 0, 0.0, 300, 2 +fsioAdc1 = bits, U08, 2200, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioAdc2 = bits, U08, 2201, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioAdc3 = bits, U08, 2202, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fsioAdc4 = bits, U08, 2203, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fixedTiming = scalar, F32, 2204, "deg", 1.0, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 2208, "v", 1.0, 0, 0.0, 10, 2 +mapHighValueVoltage = scalar, F32, 2212, "v", 1.0, 0, 0.0, 10, 2 +egoValueShift = scalar, F32, 2216, "value", 1.0, 0, -10.0, 10, 2 +auxPidPins1 = bits, U08, 2220, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxPidPins2 = bits, U08, 2221, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxPidPins3 = bits, U08, 2222, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxPidPins4 = bits, U08, 2223, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +cj125SpiDevice = bits, U08, 2224, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +cj125CsPinMode = bits, U08, 2225, [0:1], "default", "default inverted", "open collector", "open collector inverted" +sdCardCsPinMode = bits, U08, 2226, [0:1], "default", "default inverted", "open collector", "open collector inverted" +alignmentFill_at_2227 = scalar, U08, 2227, "units", 1.0, 0, -20, 100, 0 +crankingIACposition = scalar, S32, 2228, "percent", 1.0, 0, -100.0, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 2232, "mult", 1.0, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 2236, "mult", 1.0, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 2240, "mult", 1.0, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 2244, "mult", 1.0, 0, 0, 3, 4 +auxPidFrequency1 = scalar, U16, 2248, "Hz", 1, 0.0, 0, 3000, 0 +auxPidFrequency2 = scalar, U16, 2250, "Hz", 1, 0.0, 0, 3000, 0 +auxPidFrequency3 = scalar, U16, 2252, "Hz", 1, 0.0, 0, 3000, 0 +auxPidFrequency4 = scalar, U16, 2254, "Hz", 1, 0.0, 0, 3000, 0 +alternatorPwmFrequency = scalar, S32, 2256, "Hz", 1.0, 0, 0, 3000.0, 0 +unused2260 = scalar, S32, 2260, "units", 1.0, 0, -20, 100, 0 +narrowToWideOxygenBins = array, F32, 2264, [8], "V", 1.0, 0, -10.0, 10.0, 3 +narrowToWideOxygen = array, F32, 2296, [8], "ratio", 1.0, 0, -40.0, 40.0, 2 +vvtMode = bits, U32, 2328, [0:2], "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7" +unusedOldBiquad = array, U08, 2332, [20], "units", 1.0, 0, -20, 100, 0 +cltTimingBins = array, F32, 2352, [8], "C", 1.0, 0, -100.0, 250.0, 1 +cltTimingExtra = array, F32, 2384, [8], "degree", 1.0, 0, -400.0, 400.0, 0 +tle8888mode = bits, U08, 2416, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +LIS302DLCsPinMode = bits, U08, 2417, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 2418, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure", "INVALID" +unused2419 = scalar, U08, 2419, "units", 1.0, 0, -20, 100, 0 +fuelReferencePressure = scalar, F32, 2420, "kPa", 1.0, 0, 0, 700000, 0 +unused244_2 = scalar, F32, 2424, "units", 1.0, 0, -20, 100, 0 +unused244_3 = scalar, F32, 2428, "units", 1.0, 0, -20, 100, 0 +unused2432 = scalar, F32, 2432, "units", 1.0, 0, -20, 100, 0 +postCrankingFactor = scalar, F32, 2436, "mult", 1.0, 0, 0, 100, 4 +postCrankingDurationSec = scalar, F32, 2440, "seconds", 1.0, 0, 0, 100, 2 +auxTempSensor1_tempC_1 = scalar, F32, 2444, "*C", 1.0, 0, -40, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 2448, "*C", 1.0, 0, -40, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 2452, "*C", 1.0, 0, -40, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 2456, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 2460, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 2464, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 2468, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 2472, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxTempSensor1_alignmentFill_at_29 = array, U08, 2473, [3], "units", 1.0, 0, -20, 100, 0 +auxTempSensor2_tempC_1 = scalar, F32, 2476, "*C", 1.0, 0, -40, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 2480, "*C", 1.0, 0, -40, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 2484, "*C", 1.0, 0, -40, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 2488, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 2492, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 2496, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 2500, "Ohm", 1.0, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 2504, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +auxTempSensor2_alignmentFill_at_29 = array, U08, 2505, [3], "units", 1.0, 0, -20, 100, 0 +unused2508 = array, U08, 2508, [6], "units", 1.0, 0, -20, 100, 0 +etbFreq = scalar, S16, 2514, "Hz", 1.0, 0, 0, 10000, 0 +etbWastegatePid_pFactor = scalar, F32, 2516, "", 1.0, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 2520, "", 1.0, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 2524, "", 1.0, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 2528, "", 1.0, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 2530, "ms", 1.0, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 2532, "", 1.0, 0, -30000, 30000.0, 0 +etbWastegatePid_maxValue = scalar, S16, 2534, "", 1.0, 0, -30000, 30000.0, 0 +unused2536 = array, U08, 2536, [4], "units", 1.0, 0, -20, 100, 0 +timing_offset_cylinder1 = scalar, F32, 2540, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder2 = scalar, F32, 2544, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder3 = scalar, F32, 2548, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder4 = scalar, F32, 2552, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder5 = scalar, F32, 2556, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder6 = scalar, F32, 2560, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder7 = scalar, F32, 2564, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder8 = scalar, F32, 2568, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder9 = scalar, F32, 2572, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder10 = scalar, F32, 2576, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder11 = scalar, F32, 2580, "Val", 1, 0.0, -20000000, 20000000, 1 +timing_offset_cylinder12 = scalar, F32, 2584, "Val", 1, 0.0, -20000000, 20000000, 1 +idlePidActivationTime = scalar, F32, 2588, "seconds", 1.0, 0, 0, 60, 1 +sdCardSpiDevice = bits, U08, 2592, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +unusedSpiPadding4 = array, U08, 2593, [3], "units", 1.0, 0, -20, 100, 0 +spi1SckMode = bits, U08, 2596, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MosiMode = bits, U08, 2597, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MisoMode = bits, U08, 2598, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2SckMode = bits, U08, 2599, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MosiMode = bits, U08, 2600, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MisoMode = bits, U08, 2601, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3SckMode = bits, U08, 2602, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MosiMode = bits, U08, 2603, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MisoMode = bits, U08, 2604, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperEnablePinMode = bits, U08, 2605, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U08, 2606, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +mc33816_driven = bits, U08, 2607, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +brakePedalPin = bits, U08, 2608, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +cj125ua = bits, U08, 2609, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +cj125ur = bits, U08, 2610, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +brakePedalPinMode = bits, U08, 2611, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +auxPid1_pFactor = scalar, F32, 2612, "", 1.0, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 2616, "", 1.0, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 2620, "", 1.0, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 2624, "", 1.0, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 2626, "ms", 1.0, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 2628, "", 1.0, 0, -30000, 30000.0, 0 +auxPid1_maxValue = scalar, S16, 2630, "", 1.0, 0, -30000, 30000.0, 0 +auxPid2_pFactor = scalar, F32, 2632, "", 1.0, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 2636, "", 1.0, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 2640, "", 1.0, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 2644, "", 1.0, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 2646, "ms", 1.0, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 2648, "", 1.0, 0, -30000, 30000.0, 0 +auxPid2_maxValue = scalar, S16, 2650, "", 1.0, 0, -30000, 30000.0, 0 +auxPid3_pFactor = scalar, F32, 2652, "", 1.0, 0, -10000, 10000, 4 +auxPid3_iFactor = scalar, F32, 2656, "", 1.0, 0, -10000, 10000, 4 +auxPid3_dFactor = scalar, F32, 2660, "", 1.0, 0, -10000, 10000, 4 +auxPid3_offset = scalar, S16, 2664, "", 1.0, 0, -1000, 1000, 0 +auxPid3_periodMs = scalar, S16, 2666, "ms", 1.0, 0, 0, 3000, 0 +auxPid3_minValue = scalar, S16, 2668, "", 1.0, 0, -30000, 30000.0, 0 +auxPid3_maxValue = scalar, S16, 2670, "", 1.0, 0, -30000, 30000.0, 0 +auxPid4_pFactor = scalar, F32, 2672, "", 1.0, 0, -10000, 10000, 4 +auxPid4_iFactor = scalar, F32, 2676, "", 1.0, 0, -10000, 10000, 4 +auxPid4_dFactor = scalar, F32, 2680, "", 1.0, 0, -10000, 10000, 4 +auxPid4_offset = scalar, S16, 2684, "", 1.0, 0, -1000, 1000, 0 +auxPid4_periodMs = scalar, S16, 2686, "ms", 1.0, 0, 0, 3000, 0 +auxPid4_minValue = scalar, S16, 2688, "", 1.0, 0, -30000, 30000.0, 0 +auxPid4_maxValue = scalar, S16, 2690, "", 1.0, 0, -30000, 30000.0, 0 +oilPressure_hwChannel = bits, U08, 2692, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +oilPressure_alignmentFill = array, U08, 2693, [3], "unit", 1.0, 0, 0, 100, 0 +oilPressure_v1 = scalar, F32, 2696, "volts", 1.0, 0.0, 0, 10.0, 2 +oilPressure_value1 = scalar, F32, 2700, "kPa", 1.0, 0.0, 0, 1000000.0, 2 +oilPressure_v2 = scalar, F32, 2704, "volts", 1.0, 0.0, 0, 10.0, 2 +oilPressure_value2 = scalar, F32, 2708, "kPa", 1.0, 0.0, 0, 1000000.0, 2 +accelerometerSpiDevice = bits, U08, 2712, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +unusedAuxVoltage1_TODO_332 = scalar, U08, 2713, "units", 1.0, 0, -20, 100, 0 +unusedAuxVoltage2_TODO_332 = scalar, U08, 2714, "units", 1.0, 0, -20, 100, 0 +unusedSpiPadding5 = scalar, U08, 2715, "units", 1.0, 0, -20, 100, 0 +fsioCurve1Bins = array, F32, 2716, [16], "x", 1.0, 0, -999, 1000.0, 3 +fsioCurve1 = array, F32, 2780, [16], "y", 1.0, 0, -999, 1000.0, 3 +fsioCurve2Bins = array, F32, 2844, [16], "x", 1.0, 0, -999, 1000.0, 3 +fsioCurve2 = array, F32, 2908, [16], "y", 1.0, 0, -999, 1000.0, 3 +fsioCurve3Bins = array, F32, 2972, [8], "x", 1.0, 0, -999, 1000.0, 3 +fsioCurve3 = array, F32, 3004, [8], "y", 1.0, 0, -999, 1000.0, 3 +fsioCurve4Bins = array, F32, 3036, [8], "x", 1.0, 0, -999, 1000.0, 3 +fsioCurve4 = array, F32, 3068, [8], "y", 1.0, 0, -999, 1000.0, 3 +flexSensorPin = bits, U08, 3100, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +test557pin = bits, U08, 3101, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperDirectionPinMode = bits, U08, 3102, [0:1], "default", "default inverted", "open collector", "open collector inverted" +externalKnockSenseAdc = bits, U08, 3103, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperEnablePin = bits, U08, 3104, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tle8888_cs = bits, U08, 3105, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +tle8888_csPinMode = bits, U08, 3106, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_cs = bits, U08, 3107, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +crankingAdvanceBins = array, F32, 3108, [4], "RPM", 1.0, 0, 0.0, 18000, 2 +crankingAdvance = array, F32, 3124, [4], "deg", 1.0, 0, -20, 90, 2 +servoOutputPins1 = bits, U08, 3140, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins2 = bits, U08, 3141, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins3 = bits, U08, 3142, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins4 = bits, U08, 3143, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins5 = bits, U08, 3144, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins6 = bits, U08, 3145, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins7 = bits, U08, 3146, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +servoOutputPins8 = bits, U08, 3147, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15", "PI0","PI1","PI2","PI3","PI4","PI5","PI6","PI7","PI8","PI9","PI10","PI11","PI12","PI13","PI14","PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +coastingFuelCutRpmHigh = scalar, S16, 3148, "rpm", 1.0, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 3150, "rpm", 1.0, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 3152, "%", 1.0, 0, 0, 100, 1 +coastingFuelCutClt = scalar, S16, 3154, "C", 1.0, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 3156, "%", 1.0, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 3158, "kPa", 1.0, 0, 0, 250, 0 +iacCoastingBins = array, F32, 3160, [16], "C", 1.0, 0, -100.0, 250.0, 2 +iacCoasting = array, F32, 3224, [16], "%", 1.0, 0, 0.0, 100.0, 2 +highPressureFuel_hwChannel = bits, U08, 3288, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +highPressureFuel_alignmentFill = array, U08, 3289, [3], "unit", 1.0, 0, 0, 100, 0 +highPressureFuel_v1 = scalar, F32, 3292, "volts", 1.0, 0.0, 0, 10.0, 2 +highPressureFuel_value1 = scalar, F32, 3296, "kPa", 1.0, 0.0, 0, 1000000.0, 2 +highPressureFuel_v2 = scalar, F32, 3300, "volts", 1.0, 0.0, 0, 10.0, 2 +highPressureFuel_value2 = scalar, F32, 3304, "kPa", 1.0, 0.0, 0, 1000000.0, 2 +lowPressureFuel_hwChannel = bits, U08, 3308, [0:5], "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +lowPressureFuel_alignmentFill = array, U08, 3309, [3], "unit", 1.0, 0, 0, 100, 0 +lowPressureFuel_v1 = scalar, F32, 3312, "volts", 1.0, 0.0, 0, 10.0, 2 +lowPressureFuel_value1 = scalar, F32, 3316, "kPa", 1.0, 0.0, 0, 1000000.0, 2 +lowPressureFuel_v2 = scalar, F32, 3320, "volts", 1.0, 0.0, 0, 10.0, 2 +lowPressureFuel_value2 = scalar, F32, 3324, "kPa", 1.0, 0.0, 0, 1000000.0, 2 +unused3328 = array, U08, 3328, [536], "units", 1.0, 0, -20, 100, 0 +tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1.0, 0, 0.0, 1.0, 4 +tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1.0, 0, 0.0, 1.0, 4 +tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1.0, 0, 0.0, 1000.0, 1 +tChargeAirIncrLimit = scalar, F32, 3876, "tChange Increment Limit (deg/sec)", 1.0, 0, 0.0, 100.0, 1 +tChargeAirDecrLimit = scalar, F32, 3880, "tChange Decrement Limit (deg/sec)", 1.0, 0, 0.0, 100.0, 1 +tChargeMode = bits, U32, 3884, [0:0], "RPM+TPS (Default)", "Air Mass Interpolation" +etbBiasBins = array, F32, 3888, [8], "target TPS position", 1.0, 0.0, 0, 100.0, 0 +etbBiasValues = array, F32, 3920, [8], "ETB duty cycle bias", 1.0, 0.0, -100, 100.0, 2 +hip9011Gain = scalar, F32, 3952, "", 1.0, 0, 0, 100.0, 2 +etb_iTermMin = scalar, S16, 3956, "", 1.0, 0, -30000, 30000.0, 0 +etb_iTermMax = scalar, S16, 3958, "", 1.0, 0, -30000, 30000.0, 0 +etbDeadband = scalar, F32, 3960, "", 1.0, 0, 0, 100.0, 2 +unused1059 = array, U08, 3964, [4], "units", 1.0, 0, -20, 100, 0 +idleTimingPid_pFactor = scalar, F32, 3968, "", 1.0, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 3972, "", 1.0, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 3976, "", 1.0, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 3980, "", 1.0, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 3982, "ms", 1.0, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 3984, "", 1.0, 0, -30000, 30000.0, 0 +idleTimingPid_maxValue = scalar, S16, 3986, "", 1.0, 0, -30000, 30000.0, 0 +unused3988 = array, U08, 3988, [2], "units", 1.0, 0, -20, 100, 0 +idleTimingPidDeadZone = scalar, S16, 3990, "RPM", 1.0, 0, 0, 1000, 0 +unused3942 = array, U08, 3992, [2], "units", 1.0, 0, -20, 100, 0 +tpsAccelFractionPeriod = scalar, S16, 3994, "cycles", 1.0, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 3996, "coef", 1.0, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 4000, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +mc33816spiDevice = bits, U08, 4001, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +idlerpmpid_iTermMin = scalar, S16, 4002, "", 1.0, 0, -30000, 30000.0, 0 +tle6240spiDevice = bits, U08, 4004, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +stoichRatioPrimary = scalar, U08, 4005, ":1", 0.1,0, 5, 25.0, 1 +idlerpmpid_iTermMax = scalar, S16, 4006, "", 1.0, 0, -30000, 30000.0, 0 +mc33972spiDevice = bits, U08, 4008, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "INVALID", "INVALID", "INVALID" +stoichRatioSecondary = scalar, U08, 4009, ":1", 0.1,0, 5, 25.0, 1 +unusedSpiPadding8 = array, U08, 4010, [2], "units", 1.0, 0, -20, 100, 0 +etbIdleThrottleRange = scalar, F32, 4012, "%", 1.0, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 4016, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 4017, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 4018, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 4019, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 4020, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 4021, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 4022, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 4023, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 4024, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 4025, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 4026, "", 1.0, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 4027, "", 1.0, 1, 1, 2, 0 +unused4028 = array, S32, 4028, [2], "units", 1.0, 0, -20, 100, 0 +triggerCompCenterVolt = scalar, U08, 4036, "V", 0.02, 0, 0.0, 5.1, 2 +triggerCompHystMin = scalar, U08, 4037, "V", 0.02, 0, 0.0, 5.1, 2 +triggerCompHystMax = scalar, U08, 4038, "V", 0.02, 0, 0.0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 4039, "RPM", 50.0, 0, 0.0, 12000.0, 0 +idleRpmPid2_pFactor = scalar, F32, 4040, "", 1.0, 0, -10000, 10000, 4 +idleRpmPid2_iFactor = scalar, F32, 4044, "", 1.0, 0, -10000, 10000, 4 +idleRpmPid2_dFactor = scalar, F32, 4048, "", 1.0, 0, -10000, 10000, 4 +idleRpmPid2_offset = scalar, S16, 4052, "", 1.0, 0, -1000, 1000, 0 +idleRpmPid2_periodMs = scalar, S16, 4054, "ms", 1.0, 0, 0, 3000, 0 +idleRpmPid2_minValue = scalar, S16, 4056, "", 1.0, 0, -30000, 30000.0, 0 +idleRpmPid2_maxValue = scalar, S16, 4058, "", 1.0, 0, -30000, 30000.0, 0 +iacPidMultTable = array, U08, 4060, [8x8],"%", 1.0, 0, 0, 999, 2 +iacPidMultLoadBins = array, U08, 4124, [8], "Load", 1.0, 0.0, 0, 500.0, 2 +iacPidMultRpmBins = array, U08, 4132, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +canVssNbcType = bits, U32, 4140, [0:0], "BMW_e46", "W202" +gppwm1_pin = bits, U08, 4144, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 4150, [0:2], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "INVALID", "INVALID" +gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 +gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 +gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +gppwm1_table = array, U08, 4168, [8x8], "duty", 1.0, 0, 0, 100, 0 +gppwm2_pin = bits, U08, 4232, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 4238, [0:2], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "INVALID", "INVALID" +gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 +gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 +gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +gppwm2_table = array, U08, 4256, [8x8], "duty", 1.0, 0, 0, 100, 0 +gppwm3_pin = bits, U08, 4320, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 4326, [0:2], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "INVALID", "INVALID" +gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 +gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 +gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +gppwm3_table = array, U08, 4344, [8x8], "duty", 1.0, 0, 0, 100, 0 +gppwm4_pin = bits, U08, 4408, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 4414, [0:2], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "INVALID", "INVALID" +gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 +gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 +gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +gppwm4_table = array, U08, 4432, [8x8], "duty", 1.0, 0, 0, 100, 0 +mc33_i_boost = scalar, U16, 4496, "mA", 1.0, 0.0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 4498, "mA", 1.0, 0.0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 4500, "mA", 1.0, 0.0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 4502, "us", 1.0, 0.0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 4504, "us", 1.0, 0.0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 4506, "us", 1.0, 0.0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 4508, "us", 1.0, 0.0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 4510, "us", 1.0, 0.0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 4512, "us", 1.0, 0.0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 4514, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcuDownshiftButtonPinMode = bits, U08, 4515, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acSwitchMode = bits, U08, 4516, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_solenoid_mode1 = bits, U08, 4517, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 4518, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 4519, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 4520, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 4521, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 4522, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 4523, [16], "dB", 1.0, 0, -30.0, 0, 2 +alignmentFill_at_4539 = scalar, U08, 4539, "units", 1.0, 0, -20, 100, 0 +mainUnusedEnd = array, S32, 4540, [365], "units", 1.0, 0, -20, 100, 0 +warning_message = string, ASCII, 6000, 120 +afterstartCoolantBins = array, F32, 6120, [8], "C", 1.0, 0, -100.0, 250.0, 0 +afterstartHoldTime = array, F32, 6152, [8], "Seconds", 1.0, 0, 0, 100, 1 +afterstartEnrich = array, F32, 6184, [8], "%", 1.0, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1.0, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 6248, [8x8],"", 2.0, 0 , 0, 100, 0 +unused6312 = array, U08, 6312, [8], "units", 1.0, 0, -20, 100, 0 +boostRpmBins = array, U08, 6320, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +boostTableClosedLoop = array, U08, 6328, [8x8],"", 2.0, 0 , 0, 3000, 0 +boostTpsBins = array, U08, 6392, [8], "%", 2.0, 0.0, 0, 100.0, 2 +pedalToTpsTable = array, U08, 6400, [8x8],"%", 1.0, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 6464, [8], "%", 1.0, 0, 0.0, 120.0, 0 +pedalToTpsRpmBins = array, U08, 6472, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 +cltCrankingCorrBins = array, F32, 6480, [8], "C", 1.0, 0, -100.0, 250.0, 2 +cltCrankingCorr = array, F32, 6512, [8], "%", 1.0, 0, 0.0, 500.0, 2 +idleAdvanceBins = array, F32, 6544, [8], "RPM", 1.0, 0, 0.0, 18000, 2 +idleAdvance = array, F32, 6576, [8], "deg", 1.0, 0, -20, 90, 2 +idleVeBins = array, F32, 6608, [8], "RPM", 1.0, 0, 0.0, 18000, 2 +idleVe = array, F32, 6640, [8], "%", 1.0, 0, 0, 999.0, 2 +fsioFormulas1 = string, ASCII, 6672, 200 +fsioFormulas2 = string, ASCII, 6872, 200 +fsioFormulas3 = string, ASCII, 7072, 200 +fsioFormulas4 = string, ASCII, 7272, 200 +fsioFormulas5 = string, ASCII, 7472, 200 +fsioFormulas6 = string, ASCII, 7672, 200 +fsioFormulas7 = string, ASCII, 7872, 200 +fsioFormulas8 = string, ASCII, 8072, 200 +fsioFormulas9 = string, ASCII, 8272, 200 +fsioFormulas10 = string, ASCII, 8472, 200 +fsioFormulas11 = string, ASCII, 8672, 200 +fsioFormulas12 = string, ASCII, 8872, 200 +fsioFormulas13 = string, ASCII, 9072, 200 +fsioFormulas14 = string, ASCII, 9272, 200 +fsioFormulas15 = string, ASCII, 9472, 200 +fsioFormulas16 = string, ASCII, 9672, 200 +timingMultiplier = string, ASCII, 9872, 200 +timingAdditive = string, ASCII, 10072, 200 +cltFuelCorrBins = array, F32, 10272, [16], "C", 1.0, 0, -100.0, 250.0, 2 +cltFuelCorr = array, F32, 10336, [16], "ratio", 1.0, 0, 0.0, 5.0, 2 +iatFuelCorrBins = array, F32, 10400, [16], "C", 1.0, 0, -100.0, 250.0, 2 +iatFuelCorr = array, F32, 10464, [16], "ratio", 1.0, 0, 0.0, 5.0, 2 +crankingFuelCoef = array, F32, 10528, [8], "ratio", 1.0, 0, 0.1, 50.0, 2 +crankingFuelBins = array, F32, 10560, [8], "C", 1.0, 0, -80.0, 170.0, 2 +crankingCycleCoef = array, F32, 10592, [8], "ratio", 1.0, 0, 0.0, 5.0, 2 +crankingCycleBins = array, F32, 10624, [8], "counter", 1.0, 0, -80.0, 170.0, 0 +cltIdleCorrBins = array, F32, 10656, [16], "C", 1.0, 0, -100.0, 250.0, 2 +cltIdleCorr = array, F32, 10720, [16], "ratio", 1.0, 0, 0.0, 10.0, 2 +mafDecoding = array, F32, 10784, [256], "kg/hour", 1.0, 0, -500.0, 4000.0, 2 +mafDecodingBins = array, F32, 11808, [256], "V", 1.0, 0, -5.0, 150.0, 2 +ignitionIatCorrTable = array, F32, 12832, [16x16],"deg", 1.0, 0, -720, 720, 2 +ignitionIatCorrLoadBins = array, F32, 13856, [16], "Temperature", 1.0, 0.0, 0, 500.0, 2 +ignitionIatCorrRpmBins = array, F32, 13920, [16], "RPM", 1.0, 0.0, 0, 18000.0, 2 +injectionPhase = array, F32, 13984, [16x16],"deg", 1.0, 0, -720, 720, 2 +injPhaseLoadBins = array, F32, 15008, [16], "Load", 1.0, 0.0, 0, 500.0, 2 +injPhaseRpmBins = array, F32, 15072, [16], "RPM", 1.0, 0.0, 0, 18000.0, 2 +tcuSolenoidTable = array, U08, 15136, [6x10],"onoff", 1.0, 0, 0, 1, 0 +vssFilterReciprocal = scalar, F32, 15196, "Hz", 1.0, 0, 2.0, 20.0, 2 +mapEstimateTable = array, U16, 15200, [16x16],"kPa", 0.01, 0, 0.0, 100.0, 2 +mapEstimateTpsBins = array, U16, 15712, [16], "% TPS", 0.01, 0.0, 0, 100.0, 1 +mapEstimateRpmBins = array, U16, 15744, [16], "RPM", 1.0, 0.0, 0, 18000.0, 0 +unused15136 = array, U08, 15776, [512], "units", 1.0, 0, -20, 100, 0 +ignitionTable = array, F32, 16288, [16x16],"deg", 1.0, 0, -20, 90, 2 +ignitionLoadBins = array, F32, 17312, [16], "Load", 1.0, 0.0, 0, 500.0, 2 +ignitionRpmBins = array, F32, 17376, [16], "RPM", 1.0, 0.0, 0, 18000.0, 2 +veTable = array, F32, 17440, [16x16],"%", 1.0, 0, 0, 999.0, 2 +veLoadBins = array, F32, 18464, [16], "kPa", 1.0, 0.0, 0, 400.0, 2 +veRpmBins = array, F32, 18528, [16], "RPM", 1.0, 0.0, 0, 18000.0, 2 +lambdaTable = array, U08, 18592, [16x16],"deg", 0.006802721088435374, 0, 0.6, 1.5, 2 +lambdaLoadBins = array, F32, 18848, [16], "", 1.0, 0.0, 0, 500.0, 2 +lambdaRpmBins = array, F32, 18912, [16], "RPM", 1.0, 0.0, 0, 18000.0, 2 +tpsTpsAccelTable = array, F32, 18976, [8x8],"value", 1.0, 0, 0.0, 30000.0, 2 +tpsTpsAccelFromRpmBins = array, F32, 19232, [8], "from", 1.0, 0, 0.0, 30000.0, 2 +tpsTpsAccelToRpmBins = array, F32, 19264, [8], "to", 1.0, 0, 0.0, 25500.0, 2 +fsioTable1 = array, F32, 19296, [8x8],"value", 1.0, 0, 0.0, 30000.0, 2 +fsioTable1LoadBins = array, F32, 19552, [8], "L", 1.0, 0, 0.0, 30000.0, 2 +fsioTable1RpmBins = array, F32, 19584, [8], "RPM", 1.0, 0, 0.0, 25500.0, 2 +fsioTable2 = array, U08, 19616, [8x8],"value", 1.0, 0, 0.0, 255.0, 0 +fsioTable2LoadBins = array, F32, 19680, [8], "L", 1.0, 0, 0.0, 255, 0 +fsioTable2RpmBins = array, F32, 19712, [8], "RPM", 1.0, 0, 0.0, 25500.0, 2 +fsioTable3 = array, U08, 19744, [8x8],"value", 1.0, 0, 0.0, 255.0, 0 +fsioTable3LoadBins = array, F32, 19808, [8], "L", 1.0, 0, 0.0, 255, 0 +fsioTable3RpmBins = array, F32, 19840, [8], "RPM", 1.0, 0, 0.0, 25500.0, 2 +fsioTable4 = array, U08, 19872, [8x8],"value", 1.0, 0, 0.0, 255.0, 0 +fsioTable4LoadBins = array, F32, 19936, [8], "L", 1.0, 0, 0.0, 255, 0 +fsioTable4RpmBins = array, F32, 19968, [8], "RPM", 1.0, 0, 0.0, 25500.0, 2 +; total TS size = 20000 +[SettingContextHelp] + injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + cj125isUaDivided = "Is your UA CJ125 output wired to MCU via resistor divider? Ua can go over 3.3v but only at lambda >3, i.e very lean AFR above 44.1\nWhen exposed to free air and 17x gain, Ua will be 4.17 volt" + etb_use_two_wires = "TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode." + isDoubleSolenoidIdle = "Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position." + cj125isUrDivided = "Is your UR CJ125 output wired to MCU via resistor divider?\nLooks like 3v range should be enough, divider generally not needed." + useCicPidForIdle = "Switch between Industrial and Cic PID implementation" + absoluteFuelPressure = "If your fuel regulator does not have vacuum line" + enableMapEstimationTableFallback = "If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS." + tpsMin = "Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel\nset tps_min X" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equiped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equiped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. \nset cranking_rpm X" + crankingChargeAngle = "While cranking (which causes battery voltage to drop) we can calculate dwell time in shaft\ndegrees, not in absolute time as in running mode.\nset cranking_charge_angle X" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_bias_resistor = "Pull-up resistor value on your board" + hip9011PrescalerAndSDO = "value '6' for 8MHz hw osc\nread hip9011 datasheet for details\ntodo split into two bit fields" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override" + cylinderBore = "Cylinder diameter, in mm." + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used." + crankingInjectionMode = "This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous"." + injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation". \nset injection_mode X\nSee also twoWireBatchInjection" + extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?" + crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nset cranking_timing_angle X" + ignitionMode = ""Single Coil" is for use on distributed ignition system. "Individual Coils" is to be used when you have one coil per cylinder (COP or similar). "Wasted Spark" means one coil is driving two spark plugs in two cylinders, with one of the sparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X" + ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant" + timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light)." + fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location." + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchnization point before TDC and negative in case of synchnization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + vehicleSpeedCoef = "This coefficient translates vehicle speed input frequency (in Hz) into vehicle speed, km/h" + ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" + trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" + failedMapFallback = "This value is only used for speed density fueling calculations." + camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" + camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" + camInputs3 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" + camInputs4 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" + throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" + triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X\nTODO: rename to triggerSimulatorRpm" + malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" + acIdleExtraOffset = "Additional idle PID offset while A/C is active" + can2SleepPeriodMs = "CANbus thread period, ms" + wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!" + wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units" + idlePositionMin = "Voltage when the idle valve is closed.\nYou probably don't have one of these!" + idlePositionMax = "Voltage when the idle valve is open.\nYou probably don't have one of these!\n1 volt = 1000 units" + tunerStudioSerialSpeed = "Secondary TTL channel baud rate" + compressionRatio = "Just for reference really, not taken into account by any logic at this point" + useStepperIdle = "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed." + enableVerboseCanTx = "CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_broadcast" + onOffAlternatorLogic = "This will cause the alternator to be operated in a basic on or off mode, this is the simplest alternator control." + vvtCamSensorUseRise = "Use rise or fall signal front\nget vvtCamSensorUseRise" + measureMapOnlyInOneCylinder = "Useful for individual intakes" + isFasterEngineSpinUpEnabled = "Smarter cranking logic.\nSee also startOfCrankingPrimingPulse" + coastingFuelCutEnabled = "This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing." + useIacTableForCoasting = "This setting allows the ECU to open the IAC during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars. Used in Auto-PID Idle mode." + disableEtbWhenEngineStopped = "Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary." + pauseEtbControl = "Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle." + useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." + acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" + sdCardPeriodMs = "SD card logging period, in milliseconds" + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling." + triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" + cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" + sensorChartMode = "rusEfi console Sensor Sniffer mode" + useHbridges = "If enabled we use two H-bridges to drive stepper idle air valve" + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor." + consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" + launchSpeedTreshold = "Disabled above this speed" + launchRpmTreshold = "Disabled below this rpm" + launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" + launchFuelAdded = "Extra Fuel Added" + launchBoostDuty = "Duty Cycle for the Boost Solenoid" + hardCutRpmRange = "RPM Range for Hard Cut" + stft_maxIdleRegionRpm = "Below this RPM, the idle region is active" + stft_maxOverrunLoad = "Below this engine load, the overrun region is active" + stft_minPowerLoad = "Above this engine load, the power region is active" + stft_deadband = "When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required." + stft_minClt = "Below this temperature, correction is disabled." + stft_minAfr = "Below this AFR, correction is paused" + stft_maxAfr = "Above this AFR, correction is paused" + stft_startupDelay = "Delay after starting the engine before beginning closed loop correction." + engineMake = "For example, BMW, GM or Chevrolet\nREQUIRED for rusEFI Online" + engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online" + vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online" + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle" + isVerboseETB = "Prints ETB details to rusEFI console" + useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode." + isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price" + silentTriggerError = "Sometimes we have a performance issue while printing error" + useFSIO16ForTimingAdjustment = "See fsioTimingAdjustment" + isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings." + invertPrimaryTriggerSignal = "This setting flips the signal from the primary engine speed sensor." + invertSecondaryTriggerSignal = "This setting flips the signal from the secondary engine speed sensor." + launchSparkCutEnable = "This is the Cut Mode normally used" + etbNeutralPosition = "Expected neutral position" + isInjectionEnabled = "Enable fuel injection - This is default off for new projects as a safety feature, set to "true" to enable fuel injection and further injector settings." + isIgnitionEnabled = "Enable ignition - This is default off for new projects as a safety feature, set to "true" to enable ignition and further ignition settings." + isCylinderCleanupEnabled = "When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders." + overrideCrankingIacSetting = "This setting overrides the normal multiplication values that have been set for the idle air control valve during cranking. If this setting is enabled the "IAC multiplier" table in the Cranking settings tab needs to be adjusted appropriately or potentially no IAC opening will occur." + useSeparateAdvanceForIdle = "This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed." + useSeparateVeForIdle = "This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling." + verboseTriggerSynchDetails = "enable trigger_details" + twoWireBatchInjection = "This is needed if your coils are individually wired and you wish to use batch injection.\nenable two_wire_batch_injection" + useOnlyRisingEdgeForTrigger = "VR sensors are only precise on rising front\nenable trigger_only_front" + twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)." + useSeparateAdvanceForCranking = "This activates a separate advance table for cranking conditions, this allows cranking advance to be RPM dependant." + useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle)." + useIacPidMultTable = "This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller" + launchSmoothRetard = "Interpolates the Ignition Retard from 0 to 100% within the RPM Range" + idlePidRpmUpperLimit = "Relative to the target idle RPM - this limit is coupled with useIacTableForCoasting and iacCoasting parameters" + primeInjFalloffTemperature = "This sets the temperature above which no priming pulse is used, The value at -40 is reduced until there is no more priming injection at this temperature." + ignMathCalculateAtIndex = "At what trigger index should some ignition-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + mapAveragingSchedulingAtIndex = "At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + wwaeTau = "Length of time the deposited wall fuel takes to dissipate after the start of acceleration. " + wwaeBeta = "0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment. " + communicationLedPin = "blue LED on many rusEFI boards.\nBlue Communication LED which is expected to blink at 50% duty cycle during normal board operation.\nIf USB communication cable is connected Blue LED starts to blink faster." + runningLedPin = "Green LED on many rusEFI boards.\nOff if engine is stopped, blinks if engine is cranking, solid if engine is running." + throttlePedalWOTVoltage = "Pedal in the floor" + startUpFuelPumpDuration = "on ECU start turn fuel pump on to build fuel pressure" + targetVBatt = "This is the target battery voltage the alternator PID control will attempt to maintain" + alternatorOffAboveTps = "Turns off alternator output above specified TPS, enabling this reduced parasitic drag on the engine at full load." + startOfCrankingPrimingPulse = "Prime pulse for cold engine, duration in ms\nLinear interpolation between -40F/-40C and fallout temperature\n\nSee also isFasterEngineSpinUpEnabled\nset cranking_priming_pulse X" + afterCrankingIACtaperDuration = "This is the duration in cycles that the IAC will take to reach its normal idle position, it can be used to hold the idle higher for a few seconds after cranking to improve startup." + iacByTpsTaper = "Extra IAC, in percent between 0 and 100, tapered between zero and idle deactivation TPS value" + tpsAccelLength = "This is the number of engine cycles that the TPS position change can occur over, a longer duration will make the enrichment more active but too long may affect steady state driving, a good default is 30-60 cycles. " + tpsAccelEnrichmentThreshold = "Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in." + vvtOffset = "Angle between cam sensor and VVT zero position\nset vvt_offset X" + slowAdcAlpha = "ExpAverage alpha coefficient" + debugMode = "See http://rusefi.com/s/debugmode\n\nset debug_mode X" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + enableVerboseCan2Tx = "CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_broadcast" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling." + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + postCrankingFactor = "Fuel multiplier (enrichment) immediately after engine start" + postCrankingDurationSec = "Time over which to taper out after start enrichment" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." + flexSensorPin = "Continental/GM flex fuel sensor, 50-150hz type" + crankingAdvanceBins = "Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)" + crankingAdvance = "Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)" + coastingFuelCutRpmHigh = "This sets the RPM limit above which the fuel cut is deactivated, activating this maintains fuel flow at high RPM to help cool pistons" + coastingFuelCutRpmLow = "This sets the RPM limit below which the fuel cut is deactivated, this prevents jerking or issues transitioning to idle" + coastingFuelCutTps = "percent between 0 and 100 below which the fuel cut is deactivated, this helps low speed drivability." + coastingFuelCutClt = "Fuel cutoff is deactivated below this coolant threshold." + pidExtraForLowRpm = "Increases PID reaction for RPM , 50, , true + + filter = VBatt, "VBatt", VBatt < , 12, , true + + filter = minTps, "Minimum TPS", TPSValue, < , 1, , true + + +; +; in order to add new TunerStudio gauge you need to chagne two places +; 1) add a line here in '[OutputChannels]' +; 2) in rusEFI firmware make a change to tunerstudio_outputs.h +; +[OutputChannels] + + ochGetCommand = "O%2o%2c" + +; see TS_OUTPUT_SIZE in console source code + ochBlockSize = 340 + +; +; see TunerStudioOutputChannels struct +; + +; Bit flags + hasSdCard = bits, U32, 0, [0:0], "true", "false"; + isIgnitionEnabledIndicator=bits,U32, 0, [1:1], "true", "false"; + isInjectionEnabledIndicator=bits,U32, 0, [2:2], "true", "false"; + isCylinderCleanupEnabled=bits,U32, 0, [3:3], "true", "false"; + isCylinderCleanupActivated=bits,U32, 0, [4:4], "true", "false"; + ind_fuel_pump = bits, U32, 0, [5:5], "true", "false"; + ind_fan = bits, U32, 0, [6:6], "true", "false"; + ind_o2_heater = bits, U32, 0, [7:7], "true", "false"; + ind_check_engine= bits, U32, 0, [8:8], "true", "false"; + needBurn = bits, U32, 0, [9:9], "true", "false"; + clutchUpState =bits, U32, 0, [11:11], "true", "false"; + clutchDownState =bits, U32, 0, [12:12], "true", "false"; + knockEverIndicator=bits, U32, 0, [13:13], "true", "false"; + knockNowIndicator=bits, U32, 0, [14:14], "true", "false"; + brakePedalIndicator=bits, U32, 0, [15:15], "true", "false"; + toothLogReady =bits, U32, 0, [16:16], "true", "false"; + acSwitchState =bits, U32, 0, [17:17], "true", "false"; + isTpsError = bits, U32, 0, [18:18], "true", "false"; + ind_clt_error = bits, U32, 0, [19:19], "true", "false"; +; not implemented +; ind_map_error = bits, U32, 0, [20:20], "true", "false"; + + ind_iat_error = bits, U32, 0, [21:21], "true", "false"; + ind_isTriggerError = bits, U32, 0, [23:23], "true", "false"; + ind_hasFatalError=bits, U32, 0, [24:24], "true", "false"; + ind_isWarnNow =bits, U32, 0, [25:25], "true", "false"; + ind_pedal_error =bits, U32, 0, [26:26], "true", "false"; + isTps2Error = bits, U32, 0, [29:29], "true", "false"; + isIdleClosedLoop= bits, U32, 0, [30:30], "true", "false"; + +; RPM, vss + RPMValue = scalar, U16, 4, "RPM", 1, 0.00000 + rpmAcceleration = scalar, S16, 6, "RPM/s", 1, 0 + speedToRpmRatio = scalar, S16, 8, "value",{1/100}, 0 + vehicleSpeedKph = scalar, U08, 10, "kph", 1, 0.0 + +; temperatures + internalMcuTemperature = scalar,S08, 11, "deg C", 1, 0 + coolant = scalar, S16, 12, "deg C",{1/100}, 0.0 + intake = scalar, S16, 14, "deg C",{1/100}, 0.0 + auxt1 = scalar, S16, 16, "deg C",{1/100}, 0.0 + auxt2 = scalar, S16, 18, "deg C",{1/100}, 0.0 + + +; throttle, pedal + TPSValue = scalar, S16, 20, "%",{1/100}, 0 + throttlePedalPosition = scalar,S16, 22, "%",{1/100}, 0 + tpsADC = scalar, U16, 24, "ADC", 1, 0.0; + +; air flow/mass measurments + MAFValue = scalar, U16, 26, "V",{1/1000}, 0 + massAirFlowValue= scalar, U16, 28, "Kg/h", {1/10}, 0 + MAPValue = scalar, U16, 30, "kPa",{1/30}, 0.0 + baroPressure = scalar, U16, 32, "kPa",{1/30}, 0.0 + lambdaValue = scalar, U16, 34, "",{1/10000}, 0.0 + engineLoad = scalar, U16, 36, "%",{1/100}, 0.0 ; Blend of MAP and TPS, depends on algorithm + +; misc sensors + VBatt = scalar, U16, 38, "V",{1/1000}, 0.0 + oilPressure = scalar, U16, 40, "kPa",{1/30}, 0.0 + vvtPosition = scalar, U16, 42, "deg",{1/50}, 0 + + ; 10 bit TPS ADC value (from 0 to 1023 in 5v scale) + ;tpsADC2 = scalar, U16, 44, "ADC", 1, 0.0; + +; fuel math + chargeAirMass = scalar, U16, 44, "g",0.001, 0 + crankingFuelMs = scalar, U16, 46, "mg",{1/100}, 0.0 + currentTargetAfr= scalar, U16, 48, "ratio",{1/1000}, 0 + baseFuel = scalar, U16, 50, "mg",{1/100}, 0 + fuelRunning = scalar, U16, 52, "mg",{1/100}, 0 + actualLastInjection=scalar,U16, 54, "ms",{1/300}, 0.0 + injectorDutyCycle=scalar, U08, 56, "%", 0.5, 0 + veValue = scalar, U08, 57, "ratio", 0.5, 0 + injectionOffset = scalar, S16, 58, "deg",{1/50}, 0 + tCharge = scalar, U16, 60, "deg C",{1/100}, 0.0 + +; Corrections + injectorLagMs = scalar, U16, 62, "ms",{1/300}, 0.0 + iatCorrection = scalar, S16, 64, "%",{1/100}, 0 + cltCorrection = scalar, S16, 66, "%",{1/100}, 0 + baroCorrection = scalar, S16, 68, "%",{1/100}, 0 + fuelPidCorrection=scalar, S16, 70, "%",{1/100}, 0 + +; Wall model AE + wallFuelAmount = scalar, U16, 72, "ms",{1/300}, 0 + wallFuelCorrection=scalar, S16, 74, "ms",0.001, 0 + +; TPS/load AE + engineLoadDelta = scalar, S16, 76, "value",{1/100}, 0 + deltaTps = scalar, S16, 78, "ratio",{1/100}, 0 + engineLoadAccelExtra=scalar,S16, 80, "value",{1/100}, 0 + tpsAccelFuel = scalar, U16, 82, "ms",{1/300}, 0 + +; Ignition + ignitionAdvance = scalar, S16, 84, "deg",{1/50}, 0.0 + sparkDwellValue = scalar, U16, 86, "ms",{1/300}, 0.0 + coilDutyCycle = scalar, S16, 88, "%",{1/100}, 0 + +; Idle & ETB + idleAirValvePosition=scalar,S16, 90, "%",{1/100}, 0 + etbTarget = scalar, S16, 92, "%",{1/100}, 0 + etb1DutyCycle = scalar, S16, 94, "%",{1/100}, 0 + etb1Error = scalar, S16, 96, "%",{1/100}, 0 + +; Fuel system + fuelTankLevel = scalar, S16, 98, "amount",{1/100}, 0 + fuelConsumptionPerHour=scalar,F32, 100, "kPa", 1, 0.0 + +; Y axis values for selectable tables + veTableYAxis = scalar, U16, 104, "%", 0.01, 0 + afrTableYAxis = scalar, U16, 106, "%", 0.01, 0 + +; Knock + knockLevel = scalar, F32, 108, "Volts", 1, 0 + +; Mode, firmware, protocol, run time +; TS requires 'seconds' name since it has special internal meaning + seconds = scalar, U32, 112, "sec", 1, 0.0 + engineMode = scalar, U32, 116, "em", 1, 0.0; + firmwareVersion = scalar, U32, 120,"version_f", 1, 0 + + +; calibation helpers + calibrationValue = scalar, F32, 128, "", 1, 0 + calibrationMode = scalar, U08, 132, "", 1, 0 + ; 1 bytes padding1 + + fuelingLoad = scalar, U16, 134, "%", 0.01, 0 + ignitionLoad = scalar, U16, 136, "%", 0.01, 0 + + engineMakeCodeNameCrc16= scalar, U16, 138, "crc16", 1, 0 + +; Errors + totalTriggerErrorCounter=scalar,U32, 140,"counter", 1, 0 + ; orderingErrorCounter 144 + warningCounter = scalar, U16, 148, "count", 1, 0 + lastErrorCode = scalar, U16, 150, "error", 1, 0 + recentErrorCode0= scalar, U16, 152, "error", 1, 0 + recentErrorCode1= scalar, U16, 154, "error", 1, 0 + recentErrorCode2= scalar, U16, 156, "error", 1, 0 + recentErrorCode3= scalar, U16, 158, "error", 1, 0 + recentErrorCode4= scalar, U16, 160, "error", 1, 0 + recentErrorCode5= scalar, U16, 162, "error", 1, 0 + recentErrorCode6= scalar, U16, 164, "error", 1, 0 + recentErrorCode7= scalar, U16, 166, "error", 1, 0 + +; Debug + debugFloatField1= scalar, F32, 168, "val", 1, 0.0 + debugFloatField2= scalar, F32, 172, "val", 1, 0.0 + debugFloatField3= scalar, F32, 176, "val", 1, 0.0 + debugFloatField4= scalar, F32, 180, "val", 1, 0.0 + debugFloatField5= scalar, F32, 184, "val", 1, 0.0 + debugFloatField6= scalar, F32, 188, "val", 1, 0.0 + debugFloatField7= scalar, F32, 192, "val", 1, 0.0 + debugIntField1 = scalar, S32, 196, "val", 1, 0.0 + debugIntField2 = scalar, S32, 200, "val", 1, 0.0 + debugIntField3 = scalar, S32, 204, "val", 1, 0.0 + debugIntField4 = scalar, S16, 208, "val", 1, 0.0 + debugIntField5 = scalar, S16, 210, "val", 1, 0.0 + +; Accel + accelerationX = scalar, S16, 212, "G", 0.01, 0 + accelerationY = scalar, S16, 214, "G", 0.01, 0 + +; egt + egt1 = scalar, S16, 216, "deg C", 1, 0 + egt2 = scalar, S16, 218, "deg C", 1, 0 + egt3 = scalar, S16, 220, "deg C", 1, 0 + egt4 = scalar, S16, 222, "deg C", 1, 0 + egt5 = scalar, S16, 224, "deg C", 1, 0 + egt6 = scalar, S16, 226, "deg C", 1, 0 + egt7 = scalar, S16, 228, "deg C", 1, 0 + egt8 = scalar, S16, 230, "deg C", 1, 0 + + TPS2Value = scalar, S16, 232, "%",{1/100}, 0 + + rawTps1Primary = scalar, U16, 234, "V",{1/1000}, 0.0 + rawPpsPrimary = scalar, U16, 236, "V",{1/1000}, 0.0 + rawClt = scalar, U16, 238, "V",{1/1000}, 0.0 + rawIat = scalar, U16, 240, "V",{1/1000}, 0.0 + rawOilPressure = scalar, U16, 242, "V",{1/1000}, 0.0 + rawPpsSecondary = scalar, U16, 248, "V",{1/1000}, 0.0 + + ; we use this to match logs to tunes + tuneCrc16 = scalar, U16, 244, "crc16", 1, 0 + sd_status = scalar, U08, 246, "", 1.0, 0.0 + +; Transmission + tcuCurrentGear = scalar, S08, 247, "gear", 1, 0 + tcuDesiredGear = scalar, S08, 262, "gear", 1, 0 + + knock1 = scalar, S08, 250, "dbv", 1, 0 + knock2 = scalar, S08, 251, "dbv", 1, 0 + knock3 = scalar, S08, 252, "dbv", 1, 0 + knock4 = scalar, S08, 253, "dbv", 1, 0 + knock5 = scalar, S08, 254, "dbv", 1, 0 + knock6 = scalar, S08, 255, "dbv", 1, 0 + knock7 = scalar, S08, 256, "dbv", 1, 0 + knock8 = scalar, S08, 257, "dbv", 1, 0 + knock9 = scalar, S08, 258, "dbv", 1, 0 + knock10 = scalar,S08, 259, "dbv", 1, 0 + knock11 = scalar,S08, 260, "dbv", 1, 0 + knock12 = scalar,S08, 261, "dbv", 1, 0 + + flexPercent = scalar, U08, 263, "%", 0.5, 0 + + rawIdlePositionSensor = scalar, U16, 264, "V",{1/1000}, 0.0 + rawWastegatePosition = scalar, U16, 266, "V",{1/1000}, 0.0 + wastegatePositionSensor = scalar, S16, 268, "%",{1/100}, 0 + idlePositionSensor = scalar, S16, 270, "%",{1/100}, 0 + rawLowFuelPressure = scalar, U16, 272, "V",{1/1000}, 0 + rawHighFuelPressure = scalar, U16, 274, "V",{1/1000}, 0 + lowFuelPressure = scalar, S16, 276, "kpa", {1/30}, 0 + highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0 + targetLambda = scalar, U16, 280, "",{1/10000}, 0.0 + AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0 + VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0 + lambdaValue2 = scalar, U16, 286, "",{1/10000}, 0.0 + AFRValue2 = scalar, U16, 288, "AFR",{1/1000}, 0.0 + +; +; see TunerStudioOutputChannels struct +; + +; todo: generate this section programmatically + LM_SPEED_DENSITY = {3}, + LM_REAL_MAF = {4} + + egoCorrection = { 100 } + time = { timeNow } + + ; These "synthetic" channels provide the Y-axis (load) value for gen purp PWM table's Y axes + gppwm1_load = {(gppwm1_loadAxis == 0) ? TPSValue : ((gppwm1_loadAxis == 1) ? MAPValue : ((gppwm1_loadAxis == 2) ? coolant : ((gppwm1_loadAxis == 3) ? intake : ((gppwm1_loadAxis == 4) ? fuelingLoad : ignitionLoad))))} + gppwm2_load = {(gppwm2_loadAxis == 0) ? TPSValue : ((gppwm2_loadAxis == 1) ? MAPValue : ((gppwm2_loadAxis == 2) ? coolant : ((gppwm2_loadAxis == 3) ? intake : ((gppwm2_loadAxis == 4) ? fuelingLoad : ignitionLoad))))} + gppwm3_load = {(gppwm3_loadAxis == 0) ? TPSValue : ((gppwm3_loadAxis == 1) ? MAPValue : ((gppwm3_loadAxis == 2) ? coolant : ((gppwm3_loadAxis == 3) ? intake : ((gppwm3_loadAxis == 4) ? fuelingLoad : ignitionLoad))))} + gppwm4_load = {(gppwm4_loadAxis == 0) ? TPSValue : ((gppwm4_loadAxis == 1) ? MAPValue : ((gppwm4_loadAxis == 2) ? coolant : ((gppwm4_loadAxis == 3) ? intake : ((gppwm4_loadAxis == 4) ? fuelingLoad : ignitionLoad))))} + +[PcVariables] + tuneCrcPcVariable = continuousChannelValue, tuneCrc16 + + wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; + wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 + + gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave + solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave + +; These are inverted (false = "Yes") so that they default to enabled + enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" + enableLogErrorList = bits, U08, [0:0], "Yes", "No" + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; 0 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 +; Alternator TPS Acceleration GPPWM Idle Engine Load Acc Trigger Counters VVT Cranking Ignition Timing Fu Corr VSS SD Card Knock ETB PID Executor InstantRpm FSIO_1_7 CJ125 CAN MAP TLE8888 Analog inputs 2 Boost Start Launcher ETB Autotune FSIO_8_14 FSIO_SPECIAL Injector flow compensation DYNO_VIEW LOGIC_ANALYZER Wideband TCU DBG_48 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_GPPWM DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Controller Output", "From TPS", "GPPWM 1", "Controller Output", "Idle output", "Channel 1 Rise Counter", "", "", "VVT Event Position","", "Ign IAT Corr", "", "", "Total SD", "", "", "", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "fsio 1", "24:df1", "CJ125: output", "", "", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "Boost Open Loop Duty", "S unused" "", "Osc Amplitude", "", "fsio 8", "idle offset", "Pressure across injector(kpa)", "VSS", "", "WB: Pump DAC duty", "", "" + debugFieldF2List = bits, U08, [0:7], "I-Term", "To TPS", "GPPWM 2", "I-Term", "Idle df2", "Channel 2 Rise Counter", "", "", "VVT Ratio", "", "Ign CLT Corr", "", "", "Write Cnt","", "", "", "ETB I-Term", "", "", "df2", "df2", "dRpm", "fsio 2", "24:df2", "CJ125: i-term", "", "", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "Boost Closed Loop Duty","S unused" "", "Duty Amplitude", "", "fsio 9", "idle min", "Pressure ratio vs. nominal", "Speed", "", "WB: ESR", "", "" + debugFieldF3List = bits, U08, [0:7], "Previous Error", "Current TPS<>TPS", "GPPWM 3", "prev error", "Idle df3", "ICU sum", "", "", "", "", "Ign FSIO Adj", "", "", "Sync Cnt", "", "", "", "ETB err", "", "", "df3", "df3", "22df3", "fsio 3", "24:df3", "CJ125: err", "", "", "", "", "", "", "TPS1/2 Diff", "", "", "", "", "S unused" "", "Tu", "", "fsio 10", "", "Flow ratio vs. configured", "DeltaSpeed", "", "WB: Heater duty", "", "" + debugFieldF4List = bits, U08, [0:7], "I Gain", "Extra Fuel", "GPPWM 4", "I Gain", "Idle df4", "VVT rise", "", "", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "", "ETB I setting", "", "", "df4", "df4", "22df4", "fsio 4", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "", "S unused" "", "Ku", "", "fsio 11", "", "", "accel", "", "WB: Lambda", "", "" + debugFieldF5List = bits, U08, [0:7], "D Gain", "df5", "df5", "D Gain", "Idle df5", "VVT fall", "df5", "", "", "", "", "", "", "", "", "", "", "ETB D setting", "df5", "df5", "df5", "df5", "22df5", "fsio 5", "24:df5", "CJ125: UR", "", "", "", "", "", "", "", "", "", "", "", "S unused" "", "Kp", "", "fsio 12", "", "", "", "", "", "", "" + debugFieldF6List = bits, U08, [0:7], "D Term", "", "", "D Term", "Idle df6", "Current Gap", "", "", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "fsio 6", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "", "S unused" "", "Ki", "", "fsio 13", "", "", "", "", "", "", "" + debugFieldF7List = bits, U08, [0:7], "Max-Value", "", "", "Max-Value", "Idle df7", "", "", "", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "fsio 7", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "", "S unused" "", "Kd", "", "fsio 14", "", "", "", "", "", "", "" + + debugFieldI1List = bits, U08, [0:7], "P-Gain", "", "", "P-Gain", "Idle di1", "Channel 1 Fall Counter", "", "", "VVT Sync Counter", "Cycle Counter", "Multispark Count", "", "", "", "", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "22di1", "", "24:di1", "CJ125: state", "read count","", "", "", "", "SPI Counter", "", "", "", "", "", "Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "" + debugFieldI2List = bits, U08, [0:7], "Offset", "", "", "Offset", "Idle di2", "Channel 2 Fall Counter", "", "", "", "", "", "", "", "", "", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "22di2", "", "24:di2", "", "write count","", "", "", "", "Latest Transmit","", "", "", "", "", "Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "" + debugFieldI3List = bits, U08, [0:7], "Reset Cnt", "", "", "Reset Cnt", "Idle di3", "Cycle Index", "", "", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "", "Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "" + debugFieldI4List = bits, U08, [0:7], "Period", "", "", "State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "", "S unused" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "di5", "S di5" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "" + +[ConstantsExtensions] + ; defaultValue is used to provide TunerStudio with a value to use in the case of + ; the constant not yet being initialized. This is primarily important if the + ; constant is used as a variable in the ini. + ; defaultValue = constantName, value; + defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 + + ; TPS 1 Primary + maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax } + maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin } + + ; TPS 1 Secondary + maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } + maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } + + ; TPS 2 Primary + maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } + maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } + + ; TPS 2 Secondary + maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax } + maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin } + + ; ETB Auto Gain Calibration + maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } + maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } + maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } + + requiresPowerCycle = warningLedPin + requiresPowerCycle = runningLedPin + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbFreq + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = auxPidFrequency1 + requiresPowerCycle = auxPidFrequency2 + requiresPowerCycle = auxPidFrequency3 + requiresPowerCycle = auxPidFrequency4 + + requiresPowerCycle = fsioOutputPins1 + requiresPowerCycle = fsioOutputPins2 + requiresPowerCycle = fsioOutputPins3 + requiresPowerCycle = fsioOutputPins4 + requiresPowerCycle = fsioOutputPins5 + requiresPowerCycle = fsioOutputPins6 + requiresPowerCycle = fsioOutputPins7 + requiresPowerCycle = fsioOutputPins8 + requiresPowerCycle = fsioOutputPins9 + requiresPowerCycle = fsioOutputPins10 + requiresPowerCycle = fsioOutputPins11 + requiresPowerCycle = fsioOutputPins12 + requiresPowerCycle = fsioOutputPins13 + requiresPowerCycle = fsioOutputPins14 + requiresPowerCycle = fsioOutputPins15 + requiresPowerCycle = fsioOutputPins16 + + requiresPowerCycle = fsioFrequency1 + requiresPowerCycle = fsioFrequency2 + requiresPowerCycle = fsioFrequency3 + requiresPowerCycle = fsioFrequency4 + requiresPowerCycle = fsioFrequency5 + requiresPowerCycle = fsioFrequency6 + requiresPowerCycle = fsioFrequency7 + requiresPowerCycle = fsioFrequency8 + requiresPowerCycle = fsioFrequency9 + requiresPowerCycle = fsioFrequency10 + requiresPowerCycle = fsioFrequency11 + requiresPowerCycle = fsioFrequency12 + requiresPowerCycle = fsioFrequency13 + requiresPowerCycle = fsioFrequency14 + requiresPowerCycle = fsioFrequency15 + requiresPowerCycle = fsioFrequency16 + + requiresPowerCycle = fsioAdc1 + requiresPowerCycle = fsioAdc2 + requiresPowerCycle = fsioAdc3 + requiresPowerCycle = fsioAdc4 + + readOnly = warning_message + + defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 + readOnly = gearCountArray + defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 + readOnly = solenoidCountArray + + +[CurveEditor] +; xAxis = leftValue, rightValue, step +; yAxis = bottomValue, topValue, step + + + curve = knockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold" + xAxis = 0, 8000, 10 + yAxis = 0, 8, 10 + xBins = knockNoiseRpmBins, RPMValue + yBins = knockNoise + gauge = RPMGauge + + curve = swKnockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold dB" + xAxis = 0, 8000, 10 + yAxis = -30, 0, 10 + xBins = ignitionRpmBins, RPMValue + yBins = knockBaseNoise + gauge = RPMGauge + + curve = narrowToWideOxygenCurve, "Narrow to Wideband approximation" + columnLabel = "Voltage", "AFR" + xAxis = 0, 6, 10 + yAxis = 0, 28, 10 + xBins = narrowToWideOxygenBins + yBins = narrowToWideOxygen +#if LAMBDA + gauge = lambda1Gauge +#else + gauge = afr1Gauge +#endif + + curve = fsioCurve1, "FSIO Curve #1" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -155, 150, 10 + xBins = fsioCurve1Bins + yBins = fsioCurve1 + + curve = fsioCurve2, "FSIO Curve #2" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -150, 150, 10 + xBins = fsioCurve2Bins + yBins = fsioCurve2 + + curve = fsioCurve3, "FSIO Curve #3" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = fsioCurve3Bins + yBins = fsioCurve3 + + curve = fsioCurve4, "FSIO Curve #4" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = fsioCurve4Bins + yBins = fsioCurve4 + + curve = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" + columnLabel = "Distance", "Multiplier" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = mapAccelTaperBins + yBins = mapAccelTaperMult + + curve = dwellCorrection, "Dwell time RPM based" + columnLabel = "RPM", "Dwell" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 9 + xBins = sparkDwellRpmBins, RPMValue + yBins = sparkDwellValues + gauge = RPMGauge + + curve = map_samplingAngleCurve, "MAP Sampling Start Angle" + columnLabel = "RPM", "Angle" + xAxis = 0, 8000, 10 + yAxis = 0, 180, 10 + xBins = map_samplingAngleBins, RPMValue + yBins = map_samplingAngle + gauge = MAPGauge + + curve = map_samplingWindowCurve, "MAP Sampling Duration" + columnLabel = "RPM", "Window" + xAxis = 0, 8000, 10 + yAxis = 0, 180, 10 + xBins = map_samplingWindowBins, RPMValue + yBins = map_samplingWindow + gauge = MAPGauge + + curve = injectorsDeadTime, "Injector dead time" + columnLabel = "Voltage", "Dead Time" + xAxis = 8, 16, 9 + yAxis = 0, 2, 5 + xBins = injector_battLagCorrBins, VBatt + yBins = injector_battLagCorr + + curve = mafDecodingCurve, "MAF sensor" + columnLabel = "Voltage", "kg/hour" + xAxis = -1, 6, 10 + yAxis = -30, 1300, 10 + xBins = mafDecodingBins, MAFValue + yBins = mafDecoding + gauge = MAFGauge + + curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 2, 11 + xBins = iatFuelCorrBins, intake + yBins = iatFuelCorr + gauge = IATGauge + + curve = cltTimingCorrCurve, "Warmup timing correction" + columnLabel = "Coolant", "Extra" + xAxis = -40, 120, 9 + yAxis = 0, 20, 9 + xBins = cltTimingBins, coolant + yBins = cltTimingExtra + gauge = CLTGauge + + curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + gauge = CLTGauge + + curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoef + gauge = CLTGauge + + curve = etbTpsBiasCurve, "Electronic TB Bias Curve" + columnLabel = "TPS", "duty bias" + xAxis = 0, 50, 11 + yAxis = -40, 40, 9 + xBins = etbBiasBins, TPSValue + yBins = etbBiasValues + gauge = TPSGauge + + curve = crankingTpsCurve, "Cranking TPS Multiplier" + columnLabel = "TPS", "Multiplier" + xAxis = 0, 100, 11 + yAxis = 0, 3, 10 + xBins = crankingTpsBins, TPSValue + yBins = crankingTpsCoef + gauge = TPSGauge + + curve = crankingDurationCurve, "Cranking Duration Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position for Auto-Idle" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingBins, coolant + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = cltIdleRPMCurve, "Idle Target RPM" + columnLabel = "Coolant", "RPM" + xAxis = -40, 120, 9 + yAxis = 0, 8000, 10 + xBins = cltIdleRpmBins, coolant + yBins = cltIdleRpm, RPMValue + gauge = CLTGauge + + curve = idleAdvanceCurve, "Idle Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 8000, 10 + yAxis = -100, 100, 10 + xBins = idleAdvanceBins, RPMValue + yBins = idleAdvance + gauge = RPMGauge + + curve = idleVeCurve, "Idle VE" + columnLabel = "RPM", "%" + xAxis = 0, 8000, 10 + yAxis = 0, 250, 10 + xBins = idleVeBins, RPMValue + yBins = idleVe +#if LAMBDA + gauge = lambda1Gauge +#else + gauge = afr1Gauge +#endif + + curve = crankingAdvanceCurve, "Cranking Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 8000, 10 + yAxis = -100, 100, 10 + xBins = crankingAdvanceBins, RPMValue + yBins = crankingAdvance + gauge = RPMGauge + + curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" + columnLabel = "Coolant", "AFR Offset" + xAxis = -40, 200, 9 + yAxis = -3, 1, 5 + xBins = cltFuelCorrBins, coolant + yBins = wueAfrTargetOffset + gauge = cltGauge + + curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" + columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" + xAxis = -40, 200, 9 + yAxis = 90, 500, 6 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + yBins = wueAnalRecommend + ;gauge = cltGauge + + lineLabel = "Warmup Correction" + lineLabel = "Recommended WUE" + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com//wiki/index.php?title=Manual:Software:TPSTPS + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + + + table = fsioTable1Tbl, fsioTable1Map, "FSIO Table #1", 1 + xBins = fsioTable1RpmBins, RPMValue + yBins = fsioTable1LoadBins, fuelingLoad + zBins = fsioTable1 + + table = fsioTable2Tbl, fsioTable2Map, "FSIO Table #2", 1 + xBins = fsioTable2RpmBins, RPMValue + yBins = fsioTable2LoadBins, fuelingLoad + zBins = fsioTable2 + + table = fsioTable3Tbl, fsioTable3Map, "FSIO Table #3", 1 + xBins = fsioTable3RpmBins, RPMValue + yBins = fsioTable3LoadBins, fuelingLoad + zBins = fsioTable3 + + table = fsioTable4Tbl, fsioTable4Map, "FSIO Table #4", 1 + xBins = fsioTable4RpmBins, RPMValue + yBins = fsioTable4LoadBins, fuelingLoad + zBins = fsioTable4 + + table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 + ; constant, variable + xBins = baroCorrRpmBins, RPMValue + yBins = baroCorrPressureBins, baroPressure + zBins = baroCorrTable + ; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 + ; constant, variable + xBins = ignitionRpmBins, RPMValue + yBins = ignitionLoadBins, ignitionLoad + zBins = ignitionTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 + ; constant, variable + xBins = ignitionIatCorrRpmBins, RPMValue + yBins = ignitionIatCorrLoadBins, intake + zBins = ignitionIatCorrTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = veTableTbl, veTableMap, "VE Table", 1 + ; constant, variable + xBins = veRpmBins, RPMValue + yBins = veLoadBins, veTableYAxis + zBins = veTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 + xBins = mapEstimateRpmBins, RPMValue + yBins = mapEstimateTpsBins, TPSValue + zBins = mapEstimateTable + + table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 + topicHelp = "fuelHelp" + ; constant, variable + xBins = injPhaseRpmBins, RPMValue + yBins = injPhaseLoadBins, fuelingLoad + zBins = injectionPhase +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 + ; constant, variable + xBins = pedalToTpsRpmBins, RPMValue + yBins = pedalToTpsPedalBins, throttlePedalPosition + zBins = pedalToTpsTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + +#if LAMBDA + table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 +#else + table = afrTableTbl, afrTableMap, "Target AFR Table", 1 +#endif + ; constant, variable + xBins = lambdaRpmBins, RPMValue + yBins = lambdaLoadBins, afrTableYAxis + zBins = lambdaTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 + ; constant, variable + xBins = iacPidMultRpmBins, RPMValue + yBins = iacPidMultLoadBins, fuelingLoad + zBins = iacPidMultTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = gppwm1Tbl, gppwm1Map, "GP#1", 1 + xyLabels = "RPM", "" + xBins = gppwm1_rpmBins, RPMValue + yBins = gppwm1_loadBins, gppwm1_load + zBins = gppwm1_table + + table = gppwm2Tbl, gppwm2Map, "GP#2", 1 + xyLabels = "RPM", "" + xBins = gppwm2_rpmBins, RPMValue + yBins = gppwm2_loadBins, gppwm2_load + zBins = gppwm2_table + + table = gppwm3Tbl, gppwm3Map, "GP#3", 1 + xyLabels = "RPM", "" + xBins = gppwm3_rpmBins, RPMValue + yBins = gppwm3_loadBins, gppwm3_load + zBins = gppwm3_table + + table = gppwm4Tbl, gppwm4Map, "GP#4", 1 + xyLabels = "RPM", "" + xBins = gppwm4_rpmBins, RPMValue + yBins = gppwm4_loadBins, gppwm4_load + zBins = gppwm4_table + + table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 + xBins = solenoidCountArray, tcuCurrentGear + yBins = gearCountArray, tcuCurrentGear + zBins = tcuSolenoidTable + xyLabels = "Solenoid", "Gear" + +[GaugeConfigurations] + +gaugeCategory = Sensors - Extra 2 + egt1Gauge = egt1, "EGT#1", "C", 0, 2000 + egt2Gauge = egt2, "EGT#2", "C", 0, 2000 + egt3Gauge = egt3, "EGT#3", "C", 0, 2000 + egt4Gauge = egt4, "EGT#4", "C", 0, 2000 + egt5Gauge = egt5, "EGT#5", "C", 0, 2000 + egt6Gauge = egt6, "EGT#6", "C", 0, 2000 + egt7Gauge = egt7, "EGT#7", "C", 0, 2000 + egt8Gauge = egt8, "EGT#8", "C", 0, 2000 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 + knockLevelGauge = knockLevel,"Knock level", "volts", 0, 7, 10, 10, 100, 100, 1, 2 + fuelTankLevelGauge = fuelTankLevel,"Fuel level", "x", 0, 7, 10, 10, 100, 100, 1, 2 + speedToRpmRatioGauge = speedToRpmRatio, "speed2rpm", "", 0, 100, 0, 0, 100, 100, 4, 4 + wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idlePosSensGauge = idlePositionSensor, "Idle position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + +gaugeCategory = ECU Status + warningCounterGauge = warningCounter, "Warning count", "", 0, 100, 0, 0, 100, 100, 0, 0 + lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + recentErrorCode0Gauge = recentErrorCode0, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode1Gauge = recentErrorCode1, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode2Gauge = recentErrorCode2, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode3Gauge = recentErrorCode3, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode4Gauge = recentErrorCode4, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode5Gauge = recentErrorCode5, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode6Gauge = recentErrorCode6, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode7Gauge = recentErrorCode7, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 + timeSecondsGauge = seconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 + tuneCrc16Gauge = tuneCrc16, "tune CRC16", "", 0, 64000, 0, 0, 64000, 64000, 0, 0 + + +gaugeCategory = Debug + debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + + +gaugeCategory = Sensors - Basic + RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 + CLTGauge = coolant, "Coolant temp", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 + IATGauge = intake, "Intake air temp", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 + afr1Gauge = AFRValue, "Air/Fuel Ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr2Gauge = AFRValue2, "Air/Fuel Ratio 2", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + lambda1Gauge = lambdaValue, "Lambda", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + lambda2Gauge = lambdaValue2, "Lambda 2", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + MAFGauge = MAFValue, "Mass air flow", "v", 0, 5, 0, 1, 3, 4, 1, 1 + VBattGauge = VBatt, "Battery voltage", "V", 8, 21, 9, 10, 17, 19, 1, 1 + MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 + massAirFlowValueGa = massAirFlowValue,"Mass air flow", "kg/hr", 0, 50, -999, -999, 999, 999, 1, 1 + + +gaugeCategory = Sensors - Extra 1 + VSSGauge = vehicleSpeedKph, "Vehicle speed", "kmh", 0, 200, 0, 1, 3, 4, 1, 1 + accelerationXGauge = accelerationX, "Acceleration: X", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 + accelerationYGauge = accelerationY, "Acceleration: Y", "acc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 + atmPresCGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 + vvtPositionGauge = vvtPosition, "VVT position", "deg", 0, 100, 0, 0, 720, 720, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + idleAirValvePositionGauge = idleAirValvePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + AuxT1Gauge = auxt1, "Aux temp 1", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxt2, "Aux temp 2", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + highFuelPressureGauge = highFuelPressure, "Fuel pressure (high)", "bar", 0, 200, 0, 0, 200, 200, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Ignition + ignadvGauge = ignitionAdvance, "Ignition timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + dwellGauge = sparkDwellValue, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 + coilDutyCycleGauge = coilDutyCycle, "dwell: coil duty cycle", "perc", -11, 11, 1.0, 1.2, 100, 100, 3, 1 + ignitionLoadGauge = ignitionLoad, "ign: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + +gaugeCategory = Acceleration Enrichment + engineLoadDeltaGauge = engineLoadDelta,"AE: load change","value", 0, 120, 10, 10, 100, 100, 1, 1 + engineLoadAccelExtraGauge = engineLoadAccelExtra,"AE: load extra","value", 0, 120, 10, 10, 100, 100, 1, 1 + deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "ms", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "ms", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Fueling + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + tChargeGauge = tCharge, "fuel: Estimated charge temperature", "deg C", -40, 140, -15, 1, 95, 110, 1, 1 + baroCorrectionGauge = baroCorrection,"fuel: Barometric pressure correction", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 + crankingFuelGauge = crankingFuelMs, "fuel: cranking", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + iatCorrectionGauge = iatCorrection, "fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + cltCorrectionGauge = cltCorrection, "fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + injectorDutyCycleGauge=injectorDutyCycle, "fuel: injector duty cycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + actualLastInjectionGauge = actualLastInjection, "fuel: Last injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = injectorLagMs, "fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = fuelRunning, "fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = baseFuel, "fuel: base mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection, "fuel: Short-term fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "fuel: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etb1Error, "ETB position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","volts", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","volts", 0, 5, 0, 0, 5, 5, 3, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "Desired", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + currentGearGauge = tcuCurrentGear, "Current", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + +gaugeCategory = Knock + knock1Gauge = knock1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock2Gauge = knock2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock3Gauge = knock3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock4Gauge = knock4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock5Gauge = knock5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock6Gauge = knock6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock9Gauge = knock9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock10Gauge = knock10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock11Gauge = knock11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock12Gauge = knock12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, cltCorrection, egoCorrection + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, cltCorrection, egoCorrection + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = ignadvGauge + + + +; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; important status + indicator = { ind_hasFatalError }, "", "CRITICAL ERROR", white, black, red, black + indicator = { ind_isWarnNow }, "", "WARNING", white, black, yellow, black + indicator = { ind_check_engine }, "", "Check Engine", white, black, red, black + indicator = { isIgnitionEnabledIndicator}, "no ignition", "ignition", yellow, black, white, black + indicator = { isInjectionEnabledIndicator}, "no injection", "injection", yellow, black, white, black + indicator = { ind_isTriggerError}, "trigger ok", "trigger err", white, black, red, black + + indicator = { sd_status & 1}, "No SD", "SD in", white, black, green, black + indicator = { sd_status & 4}, "SD ready", "SD ready", white, black, green, black + indicator = { sd_status & 8}, "SD Log", "SD Log", white, black, green, black + indicator = { sd_status & 16}, "SD Err", "SD Err", white, black, red, black + + ; this is required so that the "config error" feature works in TS + ; don't change this line - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + indicator = { ind_hasFatalError }, "Config Error", "Config Error", white, black, red, black + + ; minor info + indicator = { ind_fan}, "fan off", "fan on", white, black, green, black + indicator = { isCylinderCleanupActivated}, "no cyl cleanup", "cyl cleanup", white, black, yellow, black + indicator = { needBurn }, "config ok", "unsaved changes", white, black, yellow, black + indicator = { hasSdCard}, "no SD", "with SD", white, black, green, black + indicator = { ind_fuel_pump}, "pump off", "pump on", white, black, green, black + indicator = { clutchUpState }, "clutch", "cltch Up", white, black, red, black + indicator = { clutchDownState }, "clutch", "cltch Down", white, black, yellow, black + indicator = { brakePedalIndicator }, "brake", "brake down", white, black, red, black + indicator = { acSwitchState }, "AC off", "AC on", white, black, blue, white + indicator = { isIdleClosedLoop }, "idle open loop", "idle closed loop", white, black, green, black + + ; error codes + indicator = { isTpsError}, "tps", "tps error", white, black, red, black + indicator = { isTps2Error}, "tps 2", "tps 2 error", white, black, red, black + indicator = { ind_clt_error}, "clt", "clt error", white, black, red, black + indicator = { ind_iat_error}, "iat", "iat error", white, black, red, black + +; not implemented +; indicator = { ind_map_error}, "map", "map error", white, black, red, black + + indicator = { ind_pedal_error}, "pedal", "pedal error", white, black, red, black + + indicator = { knockEverIndicator }, "", "Knock recently", white, black, red, black + indicator = { knockNowIndicator }, "no knock", "Knock NOW", white, black, red, black + +[KeyActions] + showPanel = spi, spiFunction + showPanel = con, connection + +; +; this section defines how we log output channels +; see [OutputChannels] +; +[Datalog] + ; Channel Label Type Format + entry = time, "Time", float, "%.3f" + entry = RPMValue, "RPM", int, "%d" + entry = firmwareVersion, "firmware", int, "%d" + entry = coolant, "CLT", float, "%.2f" + entry = intake, "IAT", float, "%.2f" + entry = oilPressure, "Oil Press", float, "%.1f" + entry = TPSValue, "TPS", float, "%.2f" + entry = TPS2Value, "TPS2", float, "%.2f" + entry = MAFValue, "MAF", float, "%.2f" + entry = MAPValue, "MAP", float, "%.1f" + entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" + entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.2f" + entry = lambdaValue, "Lambda", float, "%.2f" + entry = lambdaValue2, "Lambda 2", float, "%.2f" + entry = VBatt, "VBatt", float, "%.2f" + entry = engineLoad, "Engine Load", float, "%.1f" + entry = fuelingLoad, "fuel: load", float, "%.1f" + entry = ignitionLoad, "ign: load", float, "%.1f" + entry = ignitionAdvance, "timing", float, "%.2f" + entry = knockLevel, "knock: current level", float, "%.2f" + entry = vehicleSpeedKph, "Vehicle Speed", float, "%.2f" + entry = speedToRpmRatio, "s2rpm", float, "%.3f" + entry = rpmAcceleration, "dRPM", int, "%d" + entry = massAirFlowValue,"MAF air flow", float, "%.3f" + entry = chargeAirMass, "air mass", float, "%.3f" + entry = throttlePedalPosition, "Throttle pedal position", float, "%.3f" + entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" + entry = totalTriggerErrorCounter, "trg err",int, "%d" + entry = idleAirValvePosition, "Idle Air Valve", float, "%.3f" + entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +; entry = rawLowFuelPressure, "Fuel pressure raw (low)", float, "%.3f" + entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +; entry = rawHighFuelPressure, "Fuel pressure raw (high)", float, "%.3f" + + entry = injectorLagMs, "fuel: injector lag", float, "%.3f" + entry = fuelRunning, "fuel: running", float, "%.3f" + entry = actualLastInjection, "fuel: Last injection", float, "%.3f" + entry = baseFuel, "fuel: base mass", float, "%.2f" + entry = fuelPidCorrection,"fuel: Short-term fuel trim", float, "%.2f" + entry = veValue, "fuel: VE", float, "%.3f" + entry = injectorDutyCycle,"fuel: injector duty cycle",float,"%.3f" + entry = coilDutyCycle, "dwell: coil duty cycle", float,"%.3f" + entry = currentTargetAfr,"fuel: target AFR", float,"%.3f" + entry = targetLambda, "fuel: target lambda", float,"%.4f" + + entry = accelerationX, "Acceleration: X", float,"%.2f", { LIS302DLCsPin != 0 } + entry = accelerationY, "Acceleration: Y", float,"%.2f", { LIS302DLCsPin != 0 } + entry = egt1, "EGT1", float,"%.1f", { max31855_cs1 != 0} + entry = egt2, "EGT2", float,"%.1f", { max31855_cs2 != 0} + entry = egt3, "EGT3", float,"%.1f", { max31855_cs3 != 0} + entry = egt4, "EGT4", float,"%.1f", { max31855_cs4 != 0} + entry = egt5, "EGT5", float,"%.1f", { max31855_cs5 != 0} + entry = egt6, "EGT6", float,"%.1f", { max31855_cs6 != 0} + entry = egt7, "EGT7", float,"%.1f", { max31855_cs7 != 0} + entry = egt8, "EGT8", float,"%.1f", { max31855_cs8 != 0} + + entry = engineLoadAccelExtra, "fuel: engine load acceleration extra fuel",float, "%.3f" + entry = engineLoadDelta, "fuel: load change",float, "%.3f" + + entry = deltaTps, "fuel: TPS change",float, "%.3f" + entry = tpsAccelFuel, "fuel: TPS acceleration extra fuel ms", float, "%.3f" + + entry = wallFuelCorrection,"fuel: wall corr ms", float, "%.3f" + entry = wallFuelAmount, "fuel: wall amount", float, "%.3f" + + entry = baroCorrection, "fuel: Barometric pressure correction",float,"%.3f" + entry = iatCorrection, "fuel: IAT correction", float, "%.3f" + entry = cltCorrection, "fuel: CLT correction", float,"%.3f" + + entry = sparkDwellValue, "dwell: coil charge time", float,"%.3f" + entry = vvtPosition, "VVT position", float,"%.2f" + entry = injectionOffset, "injOffset" , float, "%.2F" + +; is there a way to log parameter? entry = debugMode, "debugMode",int,"%d" + entry = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )},float,"%.4f", { !enableLogDebugChannels } + entry = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )},int,"%d", { !enableLogDebugChannels } + entry = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )},int,"%d", { !enableLogDebugChannels } + entry = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )},int,"%d", { !enableLogDebugChannels } + entry = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )},int,"%d", { !enableLogDebugChannels } + entry = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )},int,"%d", { !enableLogDebugChannels } + + + entry = engineMakeCodeNameCrc16, "Engine CRC16",int,"%d" + entry = tuneCrc16, "Tune CRC16",int,"%d" + + entry = engineMode, "Engine Mode",int,"%d" + entry = warningCounter, "warning: counter",int,"%d" + entry = lastErrorCode, "warning: last",int,"%d" + entry = recentErrorCode0, "error 0",int,"%d", { !enableLogErrorList } + entry = recentErrorCode1, "error 1",int,"%d", { !enableLogErrorList } + entry = recentErrorCode2, "error 2",int,"%d", { !enableLogErrorList } + entry = recentErrorCode3, "error 3",int,"%d", { !enableLogErrorList } + entry = recentErrorCode4, "error 4",int,"%d", { !enableLogErrorList } + entry = recentErrorCode5, "error 5",int,"%d", { !enableLogErrorList } + entry = recentErrorCode6, "error 6",int,"%d", { !enableLogErrorList } + entry = recentErrorCode7, "error 7",int,"%d", { !enableLogErrorList } + entry = internalMcuTemperature, "CPU Temperature",float,"%.2f" + + entry = tCharge, "tCharge",float,"%.3f" + + entry = clutchUpState, "clutch: up",int,"%d" + entry = clutchDownState, "clutch: down",int,"%d" + entry = brakePedalIndicator, "brake: down",int,"%d" + entry = acSwitchState, "AC switch",int,"%d" + entry = ind_fan, "radiator fan",int,"%d" + +; Electronic throttle body + entry = etb1Error, "ETB Error", float, "%.3f" + entry = etb1DutyCycle, "ETB Duty", float, "%.3f" + entry = etbTarget, "ETB Target", float, "%.3f" + +; Transmission + entry = tcuDesiredGear, "Desired Gear", int, "%d" + entry = tcuCurrentGear, "Current Gear", int, "%d" + + entry = knock1, "Knock 1", int, "%d" + entry = knock2, "Knock 2", int, "%d" + entry = knock3, "Knock 3", int, "%d" + entry = knock4, "Knock 4", int, "%d" + entry = knock5, "Knock 5", int, "%d" + entry = knock6, "Knock 6", int, "%d" + entry = knock7, "Knock 7", int, "%d" + entry = knock8, "Knock 8", int, "%d" + + entry = VssAcceleration, "Accel", float, "%.3f" + + entry = flexPercent, "Flex Ethanol %", int, "%d" + +[Menu] + +menuDialog = main +; see #1653 +; menu = "Data Logging" +; subMenu = std_ms3SdConsole, "Browse / Import SD Card" + + menu = "&Base &Engine" + subMenu = engineChars, "Base engine" + subMenu = limitsAndFallback, "Limits and fallbacks" + subMenu = triggerConfiguration, "Trigger" + subMenu = triggerConfiguration_IO, "Advanced Trigger" + subMenu = std_separator + subMenu = energySystems, "Battery and alternator" + subMenu = std_separator + + # Digital outputs + subMenu = mainRelayDialog, "Main relay" + subMenu = starterRelay, "Starter Disable relay" + subMenu = fuelPump, "Fuel pump & rail" + subMenu = fanSetting, "Fan" + subMenu = tachSettings, "Tachometer" + subMenu = malfunction, "Check engine light" + subMenu = statusLeds, "Status LEDs" + + menu = "Fuel" + # basic + subMenu = injectorConfig, "Injection configuration" + subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Air mass model + subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} + subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} + subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY} + subMenu = mapEstimateTableTbl, "MAP estimate table", 0, { enableMapEstimationTableFallback } + subMenu = std_separator + + # Fuel model +#if LAMBDA + subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} +#else + subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} +#endif + subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} + subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} + subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} + subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Injector model + subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Accel enrichment + subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} + subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} + subMenu = mapAccelTaper, "Engine load AE taper", 0, {isInjectionEnabled == 1} + + + menu = "Ignition" + subMenu = ignitionSettings, "Ignition settings" + subMenu = std_separator + + subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} + subMenu = ignitionCylExtra, "Ignition cylinder trim", 0, {isIgnitionEnabled == 1} + ; todo: once proven, uncomment and remove from the "broken" menu + ; subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + subMenu = std_separator + + subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = std_separator + + # corrections + subMenu = cltTimingCorrCurve, "CLT correction", 0, {isIgnitionEnabled == 1} + subMenu = ignitionIatCorrTableTbl, "IAT correction", 0, {isIgnitionEnabled == 1} + + menu = "&Cranking" + subMenu = crankingDialog, "Cranking settings" + subMenu = std_separator + + subMenu = crankingCltCurve, "Fuel CLT multiplier" + subMenu = crankingDurationCurve, "Fuel duration multiplier" + subMenu = crankingTpsCurve, "Fuel TPS multiplier" + subMenu = std_separator + + subMenu = crankingAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForCranking == 1} + subMenu = std_separator + + subMenu = cltCrankingCurve, "IAC multiplier", 0, {overrideCrankingIacSetting == 1} + + menu = "&Idle" + subMenu = idleSettings, "Idle settings" + subMenu = idlehw, "Idle hardware" + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" + subMenu = iacPidMultTbl, "IAC PID Multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC Position for Auto-Idle", 0, {useIacTableForCoasting == 1} + subMenu = std_separator + subMenu = idleVeCurve, "VE", 0, {useSeparateVeForIdle == 1} + subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} + + menu = "&Advanced" + subMenu = boostDialog, "Boost Control" + subMenu = boostPidDialog, "Closed Loop Boost", { isBoostControlEnabled && boostType == 1 } + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { isBoostControlEnabled } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = fsioInputsDialog, "FSIO inputs" + subMenu = auxPidDialog, "Aux PID" + subMenu = fsioOutputsDialog, "FSIO outputs" + subMenu = fsioTable1Tbl, "FSIO Table #1" + subMenu = fsioTable2Tbl, "FSIO Table #2" + subMenu = fsioTable3Tbl, "FSIO Table #3" + subMenu = fsioTable4Tbl, "FSIO Table #4" + subMenu = fsioFormulas, "FSIO Formulas" + subMenu = fsioCurve1, "FSIO Curve #1" + subMenu = fsioCurve2, "FSIO Curve #2" + subMenu = fsioCurve3, "FSIO Curve #3" + subMenu = fsioCurve4, "FSIO Curve #4" + + subMenu = std_separator + subMenu = tcuControls, "Transmission Settings" + subMenu = tcuSolenoidTableTbl, "TCU Solenoids" + + menu = "&Sensors" + # Base analog input settings + subMenu = otherSensorInputs, "Misc sensors" + subMenu = analogInputSettings, "Analog input settings" + subMenu = std_separator + + # Thermistors + subMenu = cltSensor, "CLT sensor" + subMenu = iatSensor, "IAT sensor" + subMenu = auxTempSensor1Sensor, "AuxTemp1 sensor" + subMenu = auxTempSensor2Sensor, "AuxTemp2 sensor" + subMenu = std_separator + + # TPS/pedal + subMenu = tpsSensor, "TPS" + subMenu = pedalSensor, "Accelerator pedal" + subMenu = std_separator + + # MAP/Baro + subMenu = mapSettings, "MAP sensor" + subMenu = mapCurves, "MAP sampling" + subMenu = baroSettings, "Baro sensor" + subMenu = std_separator + + # MAF + subMenu = mafSettings, "MAF sensor" + subMenu = mafDecodingCurve, "MAF transfer function", 0, {mafAdcChannel != 0 } + subMenu = std_separator + + # O2 sensor(s) + subMenu = egoSettings, "EGO sensor" + subMenu = narrowToWideOxygenCurve, "Narrow to Wideband approximation" + subMenu = std_separator + + # Misc sensors + subMenu = speedSensor, "Vehicle speed sensor" + subMenu = oilPressureSensor, "Oil pressure" + subMenu = fuelPressureSensor, "Fuel pressure" + subMenu = wastegateIdlePos, "Wastegate and idle position sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = datalogSettings, "Datalogging" + subMenu = ioTest, "Bench test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = spiFunction, "SPI" + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = tle8888, "TLE8888" + + subMenu = allPins1, "Full pinout 1/3" + subMenu = allPins2, "Full pinout 2/3" + subMenu = allPins3_1_and_2 "Full pinout 3/3" + subMenu = std_separator + + + # EXPERIMENTAL FEATURES + subMenu = parkingLot, "Experimental/Broken" + subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + subMenu = mc33Dialog, "GDI Dreams" + subMenu = widebandConfig, "rusEFI Wideband Controller", 0, { canReadEnabled && canWriteEnabled } + subMenu = cylinderBankSelect, "Cylinder Bank Selection" + subMenu = std_separator + + subMenu = hipFunction, "HIP9011 settings (knock sensor) (alpha version)" + subMenu = std_separator + + subMenu = etbDialog, "Electronic throttle body (beta version)" + subMenu = etbTpsBiasCurve, "Electronic throttle body bias curve" + subMenu = pedalToTpsTbl, "Electronic Pedal Map" + subMenu = std_separator + subMenu = smLaunchControl, "Launch Control" + subMenu = std_separator +# subMenu = smRollingLaunch, "Rolling Launch" +# subMenu = std_separator +# subMenu = antiLag, "Antilag Setup" +# subMenu = std_separator + + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + +[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. + +; +; see TS_IO_TEST_COMMAND in firmware code +; + +cmd_test_spk1 = "Z\x00\x12\x00\x01" +cmd_test_spk2 = "Z\x00\x12\x00\x02" +cmd_test_spk3 = "Z\x00\x12\x00\x03" +cmd_test_spk4 = "Z\x00\x12\x00\x04" +cmd_test_spk5 = "Z\x00\x12\x00\x05" +cmd_test_spk6 = "Z\x00\x12\x00\x06" +cmd_test_spk7 = "Z\x00\x12\x00\x07" +cmd_test_spk8 = "Z\x00\x12\x00\x08" +cmd_test_spk9 = "Z\x00\x12\x00\x09" +cmd_test_spk10 = "Z\x00\x12\x00\x0a" +cmd_test_spk11 = "Z\x00\x12\x00\x0b" +cmd_test_spk12 = "Z\x00\x12\x00\x0c" + +cmd_test_fsio1 = "Z\x00\x21\x00\x01" +cmd_test_fsio2 = "Z\x00\x21\x00\x02" +cmd_test_fsio3 = "Z\x00\x21\x00\x03" +cmd_test_fsio4 = "Z\x00\x21\x00\x04" +cmd_test_fsio5 = "Z\x00\x21\x00\x05" +cmd_test_fsio6 = "Z\x00\x21\x00\x06" +cmd_test_fsio7 = "Z\x00\x21\x00\x07" +cmd_test_fsio8 = "Z\x00\x21\x00\x08" +cmd_test_fsio9 = "Z\x00\x21\x00\x09" +cmd_test_fsio10 = "Z\x00\x21\x00\x0a" +cmd_test_fsio11 = "Z\x00\x21\x00\x0b" +cmd_test_fsio12 = "Z\x00\x21\x00\x0c" +cmd_test_fsio13 = "Z\x00\x21\x00\x0d" +cmd_test_fsio14 = "Z\x00\x21\x00\x0e" +cmd_test_fsio15 = "Z\x00\x21\x00\x0f" +cmd_test_fsio16 = "Z\x00\x21\x00\x10" + + +cmd_test_inj1 = "Z\x00\x13\x00\x01" +cmd_test_inj2 = "Z\x00\x13\x00\x02" +cmd_test_inj3 = "Z\x00\x13\x00\x03" +cmd_test_inj4 = "Z\x00\x13\x00\x04" +cmd_test_inj5 = "Z\x00\x13\x00\x05" +cmd_test_inj6 = "Z\x00\x13\x00\x06" +cmd_test_inj7 = "Z\x00\x13\x00\x07" +cmd_test_inj8 = "Z\x00\x13\x00\x08" +cmd_test_inj9 = "Z\x00\x13\x00\x09" +cmd_test_inj10 = "Z\x00\x13\x00\x0a" +cmd_test_inj11 = "Z\x00\x13\x00\x0b" +cmd_test_inj12 = "Z\x00\x13\x00\x0c" + +cmd_test_sol1 = "Z\x00\x29\x00\x01" +cmd_test_sol2 = "Z\x00\x29\x00\x02" +cmd_test_sol3 = "Z\x00\x29\x00\x03" +cmd_test_sol4 = "Z\x00\x29\x00\x04" +cmd_test_sol5 = "Z\x00\x29\x00\x05" +cmd_test_sol6 = "Z\x00\x29\x00\x06" + +cmd_test_main_relay = "Z\x00\x16\x00\x00" +cmd_test_fuel_pump = "Z\x00\x16\x00\x01" +cmd_test_starter_relay = "Z\x00\x16\x00\x02" +cmd_test_starter_disable_relay = "Z\x00\x16\x00\x03" +cmd_test_ac_relay = "Z\x00\x16\x00\x06" +cmd_test_radiator_fan = "Z\x00\x16\x00\x04" +cmd_test_check_engine_light = "Z\x00\x16\x00\x07" +cmd_test_idle_valve = "Z\x00\x16\x00\x08" +cmd_test_hpfp_valve = "Z\x00\x16\x00\x09" + + +cmd_calibrate_tps_1_closed = "Z\x00\x14\x00\x02" +cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03" +cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04" +cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05" +cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06" +cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07" +cmd_tle8888_init = "Z\x00\x14\x00\x08" +cmd_write_config = "Z\x00\x14\x00\x0A" +cmd_etb_autotune = "Z\x00\x14\x00\x0C" +cmd_enable_self_stim = "Z\x00\x14\x00\x0D" +cmb_etb_auto_calibrate = "Z\x00\x14\x00\x0E" +cmd_disable_self_stim = "Z\x00\x14\x00\x0F" +cmd_etb_autotune_stop = "Z\x00\x14\x00\x10" +cmb_etb_auto_calibrate_2 = "Z\x00\x14\x00\x11" +cmd_wideband_firmare_update = "Z\x00\x14\x00\x12" + +cmd_cj125_calibrate = "Z\x00\x18\x00\x00" +cmd_call_from_pit = "Z\x00\x20\x34\x56" +cmd_stop_engine = "Z\x00\x79\x00\x00" + +; reboot ECU +cmd_reset_controller = "Z\x00\xbb\x00\x00" +; jump to DFU mode +cmd_dfu = "Z\x00\xba\x00\x00" + +; See 'executeTSCommand' in firmware source code + + +; MRE_MIATA_NB2_MAP = 11 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAP = "Z\x00\x30\x00\x0b" + +cmd_set_engine_type_microRusEFI_VW_B6 = "Z\x00\x30\x00\x3e" +cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "Z\x00\x30\x00\x17" + + +; MRE_MIATA_NA6 12 +cmd_set_engine_type_microRusEFI_Miata_NA6_VAF = "Z\x00\x30\x00\x0c" + +cmd_set_engine_type_microRusEFI_Miata_NA6_MAP = "Z\x00\x30\x00\x42" + +cmd_set_engine_type_microRusEFI_Miata_94_MAP = "Z\x00\x30\x00\x14" + + +; MRE_MIATA_NB2_MAF = 15 +cmd_set_engine_type_microRusEFI_Miata_NB2_MAF = "Z\x00\x30\x00\x0f" + +cmd_set_engine_type_ET_MRE_SUBARU_EJ18 = "Z\x00\x30\x00\x25" + +cmd_set_engine_type_microRusEFI_Defaults = "Z\x00\x30\x00\x3c" +cmd_set_engine_type_ET_MRE_M111 = "Z\x00\x30\x00\x44" + +; MIATA_NA6_MAP = 41 +cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x30\x00\x29" +; MIATA_NA6_VAF = 57 +cmd_set_engine_type_Frankenso_Miata_NA6_VAF = "Z\x00\x30\x00\x39" +; MAZDA_MIATA_2003 = 47 +cmd_set_engine_type_Frankenso_Miata_NB2 = "Z\x00\x30\x00\x2f" + +cmd_set_engine_type_Proteus_M73 = "Z\x00\x30\x00\x3f" +cmd_set_engine_type_ET_PROTEUS_MIATA_NB2 = "Z\x00\x30\x00\x43" +cmd_set_engine_type_Proteus_Miata_TCU = "Z\x00\x30\x00\x01" + + +; ETB_BENCH_ENGINE = 58 +cmd_set_engine_type_etb_test = "Z\x00\x30\x00\x3A" +; ETB_BENCH_ENGINE = 59 +cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" +cmd_set_engine_type_default = "Z\x00\x31\x00\x00" + +[UserDefined] + dialog = tChargeRpmTpsSettings, "RPM+TPS Mode Settings" + field = "We use these coefficients to approximate air/fuel charge temperate" + field = "based on CLT and IAT, depending on RPM and TPM" + field = "minRPM minTPS", tChargeMinRpmMinTps + field = "minRPM maxTPS", tChargeMinRpmMaxTps + field = "maxRPM minTPS", tChargeMaxRpmMinTps + field = "maxRPM maxTPS", tChargeMaxRpmMaxTps + + dialog = tChargeGeneralSettings, "" + field = "tCharge Mode", tChargeMode + field = "tChange Increment Limit, deg/sec", tChargeAirIncrLimit + field = "tChange Decrement Limit, deg/sec", tChargeAirDecrLimit + field = "" + + dialog = tChargeAirInterpSettings, "Air Interpolation Mode Settings" + field = "Min tCharge Coeff.", tChargeAirCoefMin + field = "Max tCharge Coeff.", tChargeAirCoefMax + field = "Max Air Flow, kg/h", tChargeAirFlowMax + + dialog = tChargeSettings, "tCharge Settings" + panel = tChargeGeneralSettings + panel = tChargeRpmTpsSettings, { tChargeMode == 0} + panel = tChargeAirInterpSettings, { tChargeMode == 1} + + dialog = baseInjection, "General" + field = "Enabled", isInjectionEnabled + field = "Mode", injectionMode, {isInjectionEnabled == 1} + field = "#Batch injection with individual wiring" + field = "Two wire batch emulation", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == 2} + field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } + field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } + + dialog = ignitionOutputs, "Ignition Outputs" + field = "Ignition Pin Mode", ignitionPinMode, {isIgnitionEnabled == 1} + field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1} + ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says + ; this section is auto-generated by FiringOrderTSLogic.java + field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 23)))} + field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20) || (firingOrder == 23)))} + field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17) || (firingOrder == 22) || (firingOrder == 23)))} + field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 23)))} + field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23)))} + field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 22)))} + field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))} + field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))} + field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))} + field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))} + field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18) || (firingOrder == 22)))} + + + dialog = ignitionBasic, "" + field = "Enabled", isIgnitionEnabled + field = "Mode", ignitionMode, {isIgnitionEnabled == 1} + field = "Two wire wasted", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2} + field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} + field = "#Use fixed timing while validating with a timing gun" + field = "Timing Mode", timingMode, {isIgnitionEnabled == 1} + field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} + + dialog = ignitionSettings, "", xAxis + panel = ignitionBasic + panel = ignitionOutputs + + dialog = baseEngineConfig, "Engine Configuration" +; field = "Engine preset", engineType + field = "Number of cylinders", cylindersCount + field = "Displacement", displacement + field = "Firing order", firingOrder + field = "Vehicle weight", vehicleWeight + + dialog = engineMetadata, "Engine Metadata" + field = "#These metadata are used by rusEFI Online" + field = "Engine Make", engineMake + field = "Manufacturer Engine Code", engineCode + field = "Vehicle Name", vehicleName + field = "Compression Ratio", compressionRatio + field = "Forced Induction?", isForcedInduction + +; Engine->Trigger configuration + dialog = triggerConfiguration_settings, "Trigger Pattern" + field = "!https://rusefi.com/s/trigger" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "Operation mode / speed", ambiguousOperationMode + field = "#Please use '4 stroke with cam' only if primary trigger sensor is actually on cam" + field = "#Separate cam input not part of Trigger Pattern does not count here" + field = "With VR sensors only rising edge has reliable position" + field = "use only rising edge", useOnlyRisingEdgeForTrigger + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + field = "Display only interesting", displayLogicLevelsInEngineSniffer + + dialog = triggerConfiguration_IO, "Advanced Trigger" + field = "!https://rusefi.com/s/vvt" + field = "VVT mode", vvtMode, {trigger_type != 80} + field = "VVT use rise front", vvtCamSensorUseRise, {trigger_type != 80} + field = "VVT position display offset", vvtOffset + field = "print verbose VVT sync details to console",verboseVVTDecoding + field = "Do not print messages in case of sync error", silentTriggerError + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + + dialog = triggerInputs, "Trigger Inputs" + field = "!ECU reboot needed to apply these settings" + field = "#Cam is primary if you have cam sensor" + field = "Primary channel", triggerInputPins1 + field = "Invert Primary", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { trigger_type != 0 && trigger_type != 8 && trigger_type != 9 && trigger_type != 18 && trigger_type != 20 && trigger_type != 48} + field = "Invert Secondary", invertSecondaryTriggerSignal, { trigger_type != 0 && trigger_type != 8 && trigger_type != 9 && trigger_type != 18 && trigger_type != 20 && trigger_type != 48} + field = "Cam Sync/VVT input #1", camInputs1 + field = "Cam Sync/VVT input #2", camInputs2 + field = "Cam Sync/VVT input #3", camInputs3 + field = "Cam Sync/VVT input #4", camInputs4 + field = "Invert Cam/VVT", invertCamVVTSignal + + + dialog = triggerConfiguration + panel = triggerConfiguration_settings, North, { consumeObdSensors == 0 } + panel = triggerInputs, South, { consumeObdSensors == 0 } + +; Engine->Injection Settings + dialog = injChars, "Injector Settings", yAxis + field = "Injector Flow", injector_flow, {isInjectionEnabled == 1} + field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } + field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } + field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } + + dialog = fuelParams, "Fuel characteristics", yAxis + field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} + field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } + + dialog = injectorOutputSettings, "Injector Outputs", yAxis + field = "Use only first half of pins for batch mode" + field = "Injection Pin 1", injectionPins1, {isInjectionEnabled == 1} + field = "Injection Pin 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Injection Pin 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Injection Pin 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Injection Pin 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Injection Pin 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Injection Pin 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Injection Pin 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Injection Pin 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Injection Pin 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Injection Pin 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Injection Pin 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} + field = "" + field = "injection Pin Mode", injectionPinMode, {isInjectionEnabled == 1} + + dialog = cylinderBankSelect, "Cylinder Banks", yAxis + field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} + field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = testFsio, "FSIO Test" + commandButton = "FSIO#1", cmd_test_fsio1 + commandButton = "FSIO#2", cmd_test_fsio2 + commandButton = "FSIO#3", cmd_test_fsio3 + commandButton = "FSIO#4", cmd_test_fsio4 + commandButton = "FSIO#5", cmd_test_fsio5 + commandButton = "FSIO#6", cmd_test_fsio6 + commandButton = "FSIO#7", cmd_test_fsio7 + commandButton = "FSIO#8", cmd_test_fsio8 + commandButton = "FSIO#9", cmd_test_fsio9 + commandButton = "FSIO#10", cmd_test_fsio10 + commandButton = "FSIO#11", cmd_test_fsio11 + commandButton = "FSIO#12", cmd_test_fsio12 + commandButton = "FSIO#13", cmd_test_fsio13 + commandButton = "FSIO#14", cmd_test_fsio14 + commandButton = "FSIO#15", cmd_test_fsio15 + commandButton = "FSIO#16", cmd_test_fsio16 + + dialog = testInjectors, "Injector Test" + commandButton = "Injector #1", cmd_test_inj1 + commandButton = "Injector #2", cmd_test_inj2 + commandButton = "Injector #3", cmd_test_inj3 + commandButton = "Injector #4", cmd_test_inj4 + commandButton = "Injector #5", cmd_test_inj5 + commandButton = "Injector #6", cmd_test_inj6 + commandButton = "Injector #7", cmd_test_inj7 + commandButton = "Injector #8", cmd_test_inj8 + commandButton = "Injector #9", cmd_test_inj9 + commandButton = "Injector #10", cmd_test_inj10 + commandButton = "Injector #11", cmd_test_inj11 + commandButton = "Injector #12", cmd_test_inj12 + + dialog = testSolenoids, "TCU Solenoid Test" + commandButton = "Solenoid #1", cmd_test_sol1 + commandButton = "Solenoid #2", cmd_test_sol2 + commandButton = "Solenoid #3", cmd_test_sol3 + commandButton = "Solenoid #4", cmd_test_sol4 + commandButton = "Solenoid #5", cmd_test_sol5 + commandButton = "Solenoid #6", cmd_test_sol6 + + dialog = injectionSettingsEast, "", yAxis + panel = testInjectors + field = "" + + dialog = injectionSettingsWest, "", yAxis + panel = injectorOutputSettings + field = "" + + dialog = injectionSettings, "", xAxis + panel = injectionSettingsWest + panel = injectionSettingsEast + + dialog = injectorConfig, "", yAxis + topicHelp = "fuelHelp" + panel = baseInjection + panel = injChars + panel = fuelParams + panel = injectorsDeadTime + + dialog = ignitionCylExtra, "Ignition Cylinder Extra Timing" + field = "Extra cyl #1", timing_offset_cylinder1 + field = "Extra cyl #2", timing_offset_cylinder2, {cylindersCount > 1} + field = "Extra cyl #3", timing_offset_cylinder3, {cylindersCount > 2} + field = "Extra cyl #4", timing_offset_cylinder4, {cylindersCount > 3} + field = "Extra cyl #5", timing_offset_cylinder5, {cylindersCount > 4} + field = "Extra cyl #6", timing_offset_cylinder6, {cylindersCount > 5} + field = "Extra cyl #7", timing_offset_cylinder7, {cylindersCount > 6} + field = "Extra cyl #8", timing_offset_cylinder8, {cylindersCount > 7} + field = "Extra cyl #9", timing_offset_cylinder9, {cylindersCount > 8} + field = "Extra cyl #10", timing_offset_cylinder10, {cylindersCount > 9} + field = "Extra cyl #11", timing_offset_cylinder11, {cylindersCount > 10} + field = "Extra cyl #12", timing_offset_cylinder12, {cylindersCount > 11} + + dialog = multisparkDwellParams, "Delay & Dwell" + field = "Spark Duration", multisparkSparkDuration, {multisparkEnable} + field = "Dwell", multisparkDwell, {multisparkEnable} + + dialog = multisparkMain, "Configuration" + field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} + field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} + field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} + + dialog = multisparkSettings, "Multispark" + field = "#WARNING! These settings have the potential to overheat ignition components" + field = "#and cause other nasty misbehavior. Use with care, at your own risk!" + field = "Enable Multiple Sparks", multisparkEnable + panel = multisparkMain + panel = multisparkDwellParams + + dialog = dwellSettings, "", yAxis + panel = dwellCorrection, Center + +; Sensors->AUX1 Thermistor Sensor Setting + dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" + field = "Input channel", auxTempSensor1_adcChannel + field = "Bias resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 0} + +; Sensors->AUX2 Thermistor Sensor Setting + dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" + field = "Input channel", auxTempSensor2_adcChannel + field = "Bias resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 0} + + dialog = tpsNum1, "Throttle #1" + field = "!See Tools>Calibrate TPS" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0} + commandButton = "Auto Calibrate TPS 1", cmb_etb_auto_calibrate, {tps1_2AdcChannel != 0 && throttlePedalPositionAdcChannel != 0} + + dialog = tpsNum2, "Throttle #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0} + commandButton = "Auto Calibrate TPS 2", cmb_etb_auto_calibrate_2, {tps2_2AdcChannel != 0 && throttlePedalPositionAdcChannel != 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensor, "TPS" + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + field = "Down (WOT) voltage", throttlePedalWOTVoltage + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage" throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input pin", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = idlePosConfig, "Idle position sensor" + field = "Input pin", idlePositionSensor + field = "Min (valve closed, low idle)", idlePositionMin + field = "Max (valve open, high idle)", idlePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + panel = idlePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + gauge = rawIdlePositionSensorGauge + gauge = idlePosSensGauge + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = mc33Dialog, "Low-Z injector control (MC33816)" + field = "MC33816 cs", mc33816_cs + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + field = "MC33816 SPI Device", mc33972spiDevice + field = "HPFP Valve Pin", hpfpValvePin + field = "HPFP Valve Pin Mode", hpfpValvePinMode + field = tempHpfpStart, tempHpfpStart + field = tempHpfpDuration, tempHpfpDuration + + field = "Boost voltage", mc33_hvolt + + field = "Boost current target", mc33_i_boost + field = "Max boost time (timeout)", mc33_t_max_boost + field = "Boost -> Peak Bypass Time", mc33_t_peak_off + + field = "Peak current target", mc33_i_peak + field = "Peak time", mc33_t_peak_tot + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "mc33_t_hold_off ?????", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Fuel level", fuelLevelSensor + field = "Clutch down switch", clutchDownPin + field = "Clutch down inverted", clutchDownPinMode + field = "Clutch up switch", clutchUpPin + field = "Clutch up inverted", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake pedal switch", brakePedalPin + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "Flex fuel sensor", flexSensorPin + + dialog = triggerInputComparator, "Built-in Comparator Settings (Kinetis-only)" + field = "Comparator Center Point Voltage", triggerCompCenterVolt + field = "Comparator hysteresis voltage (Min)", triggerCompHystMin + field = "Comparator hysteresis voltage (Max)", triggerCompHystMax + field = "VR-sensor saturation RPM", triggerCompSensorSatRpm + + dialog = joystickPanel, "Joystick" + field = "joustick center button", joystickCenterPin + field = "joustick button A", joystickAPin + field = "joustick button B", joystickBPin + field = "joustick button C", joystickCPin + field = "joustick button D", joystickDPin + +; +; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to +; configure the features. +; + dialog = allPinsSensors, "Sensors" + field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel + field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel + field = "Primary input channel", triggerInputPins1 + field = "Secondary channel", triggerInputPins2 + field = "Cam Sync/VVT input", camInputs1 + field = "CLT ADC input", clt_adcChannel + field = "IAT ADC input", iat_adcChannel + field = "vBatt ADC input", vbattAdcChannel + field = "TPS1 ADC input", tps1_1AdcChannel + field = "TPS2 ADC input", tps2_1AdcChannel + field = "MAF ADC input", mafAdcChannel + field = "AFR ADC input", afr_hwChannel + field = "Baro ADC input", baroSensor_hwChannel + field = "MAP ADC input", map_sensor_hwChannel + field = "FrequencyReportingMapInputPin", frequencyReportingMapInputPin + field = "FuelLevelSensor", fuelLevelSensor + field = "Vehicle Speed Input pin", vehicleSpeedSensorInputPin + field = "clutchDownPin", clutchDownPin + field = "clutchUpPin", clutchUpPin + field = "brakePedalPin", brakePedalPin + field = "A/C Switch", acSwitch + field = "Aux Temperature #1", auxTempSensor1_adcChannel + field = "Aux Temperature #2", auxTempSensor2_adcChannel + field = "Aux Fast Analog", auxFastSensor1_adcChannel + + dialog = allPinsMC33, "MC33816" + field = "Chip Select", mc33816_cs + field = rstb, mc33816_rstb + field = flag0, mc33816_flag0 + field = mc33816_driven, mc33816_driven + field = mc33816spiDevice, mc33816spiDevice + field = hpfpValcePin, hpfpValvePin + + dialog = allPins1_1 + field = "trigger stimulator pin #1", triggerSimulatorPins1 + field = "trigger stimulator pin #2", triggerSimulatorPins2 + field = "trigger stimulator pin #2", triggerSimulatorPins3 + field = "Warning Led", warningLedPin + field = "tle6240_cs", tle6240_cs + field = "tle6240 SPI", tle6240spiDevice + panel = joystickPanel + + dialog = allPins1_2 + field = "Tachometer output Pin", tachOutputPin + field = "O2 heater pin", o2heaterPin + field = "Idle Solenoid Pin", idle_solenoidPin + field = "Second Idle Solenoid Pin", secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump Pin", fuelPumpPin + field = "ETB#1 Dir #1", etbIo1_directionPin1 + field = "ETB#1 Dir #2", etbIo1_directionPin2 + field = "ETB#1 Control #1", etbIo1_controlPin1 + field = "ETB#1 Disable", etbIo1_disablePin + field = "ETB#2 Dir #1", etbIo2_directionPin1 + field = "ETB#2 Dir #2", etbIo2_directionPin2 + field = "ETB#2 Control #1", etbIo2_controlPin1 + field = "ETB#2 Disable", etbIo2_disablePin + field = "SD CS Pin", sdCardCsPin + field = "MIL / Check Engine Pin", malfunctionIndicatorPin + field = "test557pin", test557pin + field = "Fan Pin", fanPin + field = "A/C Relay", acRelayPin + field = "Main Relay Pin", mainRelayPin + field = "Starter Relay Pin", starterRelayDisablePin + + dialog = allPins2_1 + field = "Injection Pin 1", injectionPins1 + field = "Injection Pin 2", injectionPins2 + field = "Injection Pin 3", injectionPins3 + field = "Injection Pin 4", injectionPins4 + field = "Injection Pin 5 ", injectionPins5 + field = "Injection Pin 6 ", injectionPins6 + field = "Injection Pin 7 ", injectionPins7 + field = "Injection Pin 8 ", injectionPins8 + field = "Injection Pin 9 ", injectionPins9 + field = "Injection Pin 10 ", injectionPins10 + field = "Injection Pin 11 ", injectionPins11 + field = "Injection Pin 12 ", injectionPins12 + field = "FSIO dig inp #1", fsioDigitalInputs1 + field = "FSIO dig inp #2", fsioDigitalInputs2 + field = "FSIO dig inp #3", fsioDigitalInputs3 + field = "FSIO dig inp #4", fsioDigitalInputs4 + field = "FSIO dig inp #5", fsioDigitalInputs5 + field = "FSIO dig inp #6", fsioDigitalInputs6 + field = "FSIO dig inp #7", fsioDigitalInputs7 + field = "FSIO dig inp #8", fsioDigitalInputs8 + field = "FSIO dig inp #9", fsioDigitalInputs9 + field = "FSIO dig inp #10", fsioDigitalInputs10 + field = "FSIO dig inp #11", fsioDigitalInputs11 + field = "FSIO dig inp #12", fsioDigitalInputs12 + field = "FSIO dig inp #13", fsioDigitalInputs13 + field = "FSIO dig inp #14", fsioDigitalInputs14 + field = "FSIO dig inp #15", fsioDigitalInputs15 + field = "FSIO dig inp #16", fsioDigitalInputs16 + + + dialog = allPins2_2 + field = "Ignition Pin 1", ignitionPins1 + field = "Ignition Pin 2", ignitionPins2 + field = "Ignition Pin 3", ignitionPins3 + field = "Ignition Pin 4", ignitionPins4 + field = "Ignition Pin 5", ignitionPins5 + field = "Ignition Pin 6", ignitionPins6 + field = "Ignition Pin 7", ignitionPins7 + field = "Ignition Pin 8", ignitionPins8 + field = "Ignition Pin 9", ignitionPins9 + field = "Ignition Pin 10", ignitionPins10 + field = "Ignition Pin 11", ignitionPins11 + field = "Ignition Pin 12", ignitionPins12 + field = "output #1", fsioOutputPins1 + field = "output #2", fsioOutputPins2 + field = "output #3", fsioOutputPins3 + field = "output #4", fsioOutputPins4 + field = "output #5", fsioOutputPins5 + field = "output #6", fsioOutputPins6 + field = "output #7", fsioOutputPins7 + field = "output #8", fsioOutputPins8 + field = "output #9", fsioOutputPins9 + field = "output #10", fsioOutputPins10 + field = "output #11", fsioOutputPins11 + field = "output #12", fsioOutputPins12 + field = "output #13", fsioOutputPins13 + field = "output #14", fsioOutputPins14 + field = "output #15", fsioOutputPins15 + field = "output #16", fsioOutputPins16 + + dialog = allPins2_3 + field = "LCD E pin", HD44780_e + field = "LCD D4 pin", HD44780_db4 + field = "LCD D5 pin", HD44780_db5 + field = "LCD D6 pin", HD44780_db6 + field = "LCD D7 pin", HD44780_db7 + field = "Debug Trigger Sync", debugTriggerSync + panel = allPinsMC33 + + dialog = allPins1_3 + field = "FSIO ADC #1", fsioAdc1 + field = "FSIO ADC #2", fsioAdc2 + field = "FSIO ADC #3", fsioAdc3 + field = "FSIO ADC #4", fsioAdc4 + field = "CAN RX pin", canRxPin + field = "CAN TX pin", canTxPin + field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "hip9011CsPin", hip9011CsPin + field = "LIS302DLCsPin", LIS302DLCsPin + field = "MIL / Check Engine", malfunctionIndicatorPin + field = "Saab CDM knock", cdmInputPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + field = "comm status light", communicationLedPin + field = "running status light", runningLedPin + + + dialog = allPins3_1 + panel = allPinsSensors + + dialog = allPins3_2 + field = "servo#1", servoOutputPins1 + field = "servo#2", servoOutputPins2 + field = "servo#3", servoOutputPins3 + field = "servo#4", servoOutputPins4 + field = "servo#5", servoOutputPins5 + field = "Aux Pin #1", auxPidPins1 + field = "Aux Pin #2", auxPidPins2 + field = "Aux Pin #3", auxPidPins3 + field = "Aux Pin #4", auxPidPins4 + field = "Aux Valve #1", auxValves1 + field = "Aux Valve #2", auxValves2 + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE 8888 spi", tle8888spiDevice + field = "AUX Serial TX", auxSerialTxPin + field = "AUX Serial RX", auxSerialRxPin + field = "External Knock", externalKnockSenseAdc + field = "Start/Stop Button", startStopButtonPin + field = "Upshift Pin", tcuUpshiftButtonPin + field = "Downshift Pin", tcuDownshiftButtonPin + + dialog = allPins3_1_and_2, "All Pins 3/3", xAxis + panel = allPins3_1 + panel = allPins3_2 + + dialog = allPins1_1_and_2, "", xAxis + panel = allPins1_1 + panel = allPins1_2 + + dialog = allPins1, "All Pins 1/3", xAxis + panel = allPins1_1_and_2 + panel = allPins1_3 + + dialog = allPins2_1_and_2, "", xAxis + panel = allPins2_1 + panel = allPins2_2 + + dialog = allPins2, "All Pins 2/3", xAxis + panel = allPins2_1_and_2 + panel = allPins2_3 + + +; Sensors->CLT sensor + dialog = clt_thermistor, "CLT sensor" + field = "Input channel", clt_adcChannel + field = "Bias resistor", clt_bias_resistor, {clt_adcChannel != 0} + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 0} + field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 0} + field = "" + field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 0} + field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 0} + field = "" + field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 0} + field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 0} + + dialog = cltGauges + gauge = CLTGauge + gauge = rawCltGauge + + dialog = cltSensor, "CLT Sensor", border + panel = clt_thermistor, West + panel = cltGauges, East + +; Sensors->IAT sensor + dialog = iat_thermistor, "IAT sensor" + field = "Input channel", iat_adcChannel + field = "Bias resistor", iat_bias_resistor, {iat_adcChannel != 0} + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 0} + field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 0} + field = "" + field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 0} + field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 0} + field = "" + field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 0} + field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 0} + + dialog = iatGauges + gauge = IATGauge + gauge = rawIatGauge + + dialog = iatSensor, "IAT Sensor", border + panel = iat_thermistor, West + panel = iatGauges, East + +; Sensors->Oil pressure sensor + dialog = oilp_settings, "Oil Pressure Sensor" + field = "Oil Pressure ADC input", oilPressure_hwChannel + field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0} + field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0} + field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0} + field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0} + + dialog = oilPressureGauges + gauge = OilPressGauge + gauge = rawOilPressureGauge + + dialog = oilPressureSensor, "", border + panel = oilp_settings, West + panel = oilPressureGauges, East + + dialog = fuelp_settings, "Fuel Pressure Sensor" + field = "Fuel low pressure ADC input", lowPressureFuel_hwChannel + field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0} + field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0} + field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0} + field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0} + + field = "Fuel high pressure ADC input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP ADC input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue,{ map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapSensorFreq, "MAP frequency sensor", yAxis + field = "MAP Freq", frequencyReportingMapInputPin + field = "0 kPa freq", mapFrequency0Kpa + field = "100 kpa freq", mapFrequency100Kpa + + dialog = mapCommon, "MAP common settings" + field = "frequency-based MAP", hasFrequencyReportingMapSensor + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Minimum MAP samples", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog, {hasFrequencyReportingMapSensor == 0} + panel = mapSensorFreq, {hasFrequencyReportingMapSensor == 1} + + dialog = baroSettings, "Baro sensor" + field = "Baro ADC input", baroSensor_hwChannel + field = baroSensor_lowValue, baroSensor_lowValue, {baroSensor_hwChannel != 0} + field = baroSensor_highValue, baroSensor_highValue, {baroSensor_hwChannel != 0} + field = baroSensor_type, baroSensor_type, {baroSensor_hwChannel != 0} + + dialog = mapCurves, "MAP sampling", yAxis + field = "isMapAveragingEnabled", isMapAveragingEnabled + panel = map_samplingAngleCurve + panel = map_samplingWindowCurve + + dialog = mafSettings, "MAF sensor", yAxis + field = "MAF ADC input", mafAdcChannel + +; Sensors->EGO sensor + dialog = egoSettings_sensor, "EGO sensor" + field = "Type", afr_type +; todo: only use these values for custom! + field = "low voltage", afr_v1 + field = "low value", afr_value1 + field = "high voltage", afr_v2 + field = "high value", afr_value2 + field = "Correction", egoValueShift + + dialog = egoSettings_IO, "EGO Sensor I/O" + field = "Input channel", afr_hwChannel + field = "Heater pin", o2heaterPin + + dialog = egoSettings, "", yAxis + panel = egoSettings_IO + panel = egoSettings_sensor, {afr_hwChannel != 0 && enableAemXSeries == 0 && !auxSerialRxPin && !auxSerialTxPin} + field = "Enable AEM X-Series CANbus", enableAemXSeries, { canReadEnabled } + field = "Enable Innovate LC-2 Serial", enableInnovateLC2, { auxSerialRxPin && auxSerialTxPin } + +; Engine->EGT inputs + dialog = egtInputs, "EGT inputs" + field = "SPI", max31855spiDevice + field = "CS #1", max31855_cs1 + field = "CS #2", max31855_cs2 + field = "CS #3", max31855_cs3 + field = "CS #4", max31855_cs4 + field = "CS #5", max31855_cs5 + field = "CS #6", max31855_cs6 + field = "CS #7", max31855_cs7 + field = "CS #8", max31855_cs8 + +; Engine->idle Settings + dialog = idleSolenoid, "Solenoid" + field = "Idle Solenoid Pin Mode", idle_solenoidPinMode, !useStepperIdle + field = "Idle Solenoid Pin", idle_solenoidPin, !useStepperIdle + field = "Second Idle Solenoid Pin", secondSolenoidPin, { !useStepperIdle && isDoubleSolenoidIdle } + field = "Idle Solenoid Frequency", idle_solenoidFrequency, !useStepperIdle + + dialog = hbridgeHardware, "H-Bridge Hardware" + field = "PWM Frequency", etbFreq + field = "Two-wire mode", etb_use_two_wires + field = "No1 Direction #1", etbIo1_directionPin1 + field = "No1 Direction #2", etbIo1_directionPin2 + field = "No1 Control #1", etbIo1_controlPin1, { etb_use_two_wires == 0 } + field = "No1 Disable", etbIo1_disablePin + field = "No2 Direction #1", etbIo2_directionPin1 + field = "No2 Direction #2", etbIo2_directionPin2 + field = "No2 Control #1", etbIo2_controlPin1, { etb_use_two_wires == 0} + field = "No2 Disable", etbIo2_disablePin + + dialog = idleStepperHw, "Stepper Hardware" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = idleStepper, "Stepper" + field = "Drive stepper with dual H bridges", useHbridges, useStepperIdle + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + panel = idleStepperHw, { useStepperIdle && !useHbridges } + panel = hbridgeHardware, { useStepperIdle && useHbridges } + + dialog = idleHwType, "Idle Valve Hardware", border + panel = idleSolenoid, West + panel = idleStepper, East + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Use electronic throttle for idle", useETBforIdleControl, { throttlePedalPositionAdcChannel != 0 } + field = "Electronic throttle idle range", etbIdleThrottleRange, { useETBforIdleControl == 1 } + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Offset", idleRpmPid_offset + field = "A/C Offset extra", acIdleExtraOffset + field = "Min", idleRpmPid_minValue + field = "A/C Min extra", acIdleExtraMin + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = idleIncrementalPidCic, idleIncrementalPidCic + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM dead zone", idlePidRpmDeadZone + + dialog = idleExtra, "Extra Idle Features" + field = "Extra idle air if throttle pressed", iacByTpsTaper + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Use coasting idle table", useIacTableForCoasting, {idleMode == 0} + field = useInstantRpmForIdle, useInstantRpmForIdle + field = "Detailed status in console", isVerboseIAC + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control requires above zero RPM" + slider = "Open loop idle position", manIdlePosition, horizontal + field = "" + + panel = idleGating + panel = idlePidSettings, { idleMode == 0} + panel = idleExtra + + dialog = idleTimingPidCorrDialog, "", yAxis + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "RPM deadzone", idleTimingPidDeadZone + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" + +; Engine->Fan Settings + dialog = fanSetting, "Fan Settings" + field = "Pin", fanPin + field = "Pin mode", fanPinMode + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature +; this one has build-in FSIO logic + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + + dialog = fuelPumpConfig, "Fuel Pump" + field = "Pin", fuelPumpPin + field = "Pin mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + + dialog = fuelRailConfig, "Fuel Rail" + field = "Absolute Fuel Pressure", absoluteFuelPressure + field = "Fuel Rail pressure", fuelRailPressure, {absoluteFuelPressure == 1} + + dialog = fuelPump, "" + panel = fuelPumpConfig + panel = fuelRailConfig + + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Pin", mainRelayPin + field = "Pin mode", mainRelayPinMode + + dialog = starterRelay, "Starter relay output" + field = "Pin", starterRelayDisablePin + field = "Pin mode", starterRelayDisablePinMode + + dialog = statusLeds, "Status LEDs" + field = "Running status LED", runningLedPin + field = "TS communication status LED", communicationLedPin + field = "Warning LED", warningLedPin + field = "Trigger error LED", triggerErrorPin + field = "Debug Trigger Sync", debugTriggerSync + +; Engine->MIL Settings + dialog = malfunction, "Check Engine Settings" + field = "Pin", malfunctionIndicatorPin + field = "Pin mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + + dialog = softwareKnockCfg, "Configuration" + field = "Enable", enableSoftwareKnock + field = "Cylinder Bore", cylinderBore + field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} + field = "" + field = "Select the nearest sensor for each cylinder" + field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} + field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} + field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} + field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} + field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} + field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} + field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} + field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} + field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} + field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} + field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} + field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} + + dialog = softwareKnock, "Software Knock", border + panel = softwareKnockCfg, West + panel = swKnockThresholdCurve, Center + +; Engine->hip9011 Settings + dialog = hipFunction, "HIP9011 Settings (knock decoder)" + field = "Enabled", isHip9011Enabled + field = "Threshold", knockVThreshold, {isHip9011Enabled == 1} + field = "!ECU reboot needed to apply these settings" + field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} + field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} + field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} + field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} + field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} + field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} + field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} + field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} + field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} + field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} + field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} + panel = knockThresholdCurve + +; Engine->cj125 Settings + dialog = cj125Function, "CJ125 Settings (wbo decoder)" + field = "Enabled", isCJ125Enabled + commandButton = "Calibrate", cmd_cj125_calibrate + field = "Using 4.9 sensor?", cj125isLsu49 + field = "!ECU reboot needed to apply these settings" + field = "ChipSelect pin", cj125CsPin, {isCJ125Enabled == 1} + field = "ChipSelect mode", cj125CsPinMode, {isCJ125Enabled == 1} + field = "!See also 'Controller-SPI setting'" + field = "SPI device", cj125SpiDevice + field = "Heater pin", wboHeaterPin, {isCJ125Enabled == 1} + field = "UA input", cj125ua, {isCJ125Enabled == 1} + field = "UR input", cj125ur, {isCJ125Enabled == 1} + field = "Is UA input divided?" cj125isUaDivided, {isCJ125Enabled == 1} + field = "Is UR input divided?" cj125isUrDivided, {isCJ125Enabled == 1} + + dialog = spiFunction, "SPI settings" + field = "!ECU reboot needed to apply these settings" + field = "SPI1 enable", is_enabled_spi_1 + field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} + field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} + field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} + + field = "SPI2 enable", is_enabled_spi_2 + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} + + field = "SPI3 enable", is_enabled_spi_3 + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} + field = "LIS302DLCsPin", LIS302DLCsPin + + dialog = stftPartitioning, "Region Configuration" + field = "Idle region RPM", stft_maxIdleRegionRpm + field = "Overrun region load", stft_maxOverrunLoad + field = "Power region load", stft_minPowerLoad + + dialog = stftPartitionSettingsMain, "Main Region", xAxis + field = "Time Const", stft_cellCfgs4_timeConstant + field = "Max add", stft_cellCfgs4_maxAdd + field = "Max remove", stft_cellCfgs4_maxRemove + + dialog = stftPartitionSettingsIdle, "Idle Region", xAxis + field = "Time Const", stft_cellCfgs1_timeConstant + field = "Max add", stft_cellCfgs1_maxAdd + field = "Max remove", stft_cellCfgs1_maxRemove + + dialog = stftPartitionSettingsPower, "Power Region", xAxis + field = "Time Const", stft_cellCfgs3_timeConstant + field = "Max add", stft_cellCfgs3_maxAdd + field = "Max remove", stft_cellCfgs3_maxRemove + + dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis + field = "Time Const", stft_cellCfgs2_timeConstant + field = "Max add", stft_cellCfgs2_maxAdd + field = "Max remove", stft_cellCfgs2_maxRemove + + dialog = fuelClosedLoopDialog, "Short-term fuel trim" + field = "Enabled", fuelClosedLoopCorrectionEnabled + + field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} + field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} + + panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} + + dialog = auxPidDialog, "Aux PID" + field = "Enabled", activateAuxPid1 + field = "FSIO pin #1", auxPidPins1 + field = "PWM Frequency", auxPidFrequency1 + field = "Detailed status in console", isVerboseAuxPid1 + field = "#target based on FSIO map#1" + field = "control period", auxPid1_periodMs, {activateAuxPid1 == 1} + field = "#PID control" + field = "offset", auxPid1_offset, {activateAuxPid1 == 1} + field = "P factor", auxPid1_pFactor, {activateAuxPid1 == 1} + field = "I factor", auxPid1_iFactor, {activateAuxPid1 == 1} + field = "D factor", auxPid1_dFactor, {activateAuxPid1 == 1} + field = "Min", auxPid1_minValue, {activateAuxPid1 == 1} + field = "Max", auxPid1_maxValue, {activateAuxPid1 == 1} + field = "FSIO pin #2", auxPidPins2 + field = "FSIO pin #3", auxPidPins3 + field = "FSIO pin #4", auxPidPins4 + +; Engine->Battery & Alternator + dialog = batteryDialog, "Battery Settings", yAxis + field = "vBatt ADC input", vbattAdcChannel + field = "Battery Input Divider Coefficient", vbattDividerCoeff + dialog = alternator, "Alternator Settings", yAxis + field = "Enabled", isAlternatorControlEnabled + field = "simple on/off mode", onOffAlternatorLogic, {isAlternatorControlEnabled == 1} + field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} + field = "Pin", alternatorControlPin, {isAlternatorControlEnabled == 1} + field = "Pin Mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} + field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "Off Above TPS", alternatorOffAboveTps, {isAlternatorControlEnabled == 1} + field = "Detailed status in console", isVerboseAlternator, {isAlternatorControlEnabled == 1} + field = "control period", alternatorControl_periodMs, {isAlternatorControlEnabled == 1} + field = "#PID control" + field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1 && onOffAlternatorLogic == 0} + field = "#% duty = Pterm + Iterm + Dterm + offset%" + + dialog = startStopDialog, "Start/Stop Button" + field = "Start/Stop Button Pin", startStopButtonPin + field = "Start/Stop Button Mode", startStopButtonMode + field = "Starter Control", starterControlPin, {startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + + dialog = energySystems, "Battery and Alternator Settings", yAxis + panel = batteryDialog + panel = alternator + panel = startStopDialog + + dialog = speedSensorAnalog + field = "Input pin", vehicleSpeedSensorInputPin + field = "revolution to speed mult", vehicleSpeedCoef + + dialog = speedSensorCan + field = "Vss Car Type", canVssNbcType, { enableCanVss } + + dialog = vssFilter + field = "Filter Reciprocal", vssFilterReciprocal + + dialog = speedSensorLeft, "Speed sensor config", yAxis + panel = speedSensorCan, { enableCanVss } + panel = speedSensorAnalog, { enableCanVss == 0 } + field = "Enable CANbus VSS values", enableCanVss, { canReadEnabled } + panel = vssFilter + + dialog = speedSensor, "Speed sensor", xAxis + panel = speedSensorLeft + gauge = VSSGauge + +; Engine->Other inputs + dialog = analogInputSettings, "Analog Input Settings" + field = "!ECU reboot needed to apply these settings" + field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap + field = "Smoothing factor", slowAdcAlpha + + dialog = tachSettings, "Tachometer output" + field = "Pin", tachOutputPin + field = "Pin mode", tachOutputPinMode + field = "Pulse duration is duty cycle", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + +; Board->Connection + dialog = tsPort, "TunerStudio Port" + field = "tunerStudioSerialSpeed", tunerStudioSerialSpeed + field = "Use UART/TTL serial?", useSerialPort + field = "TX pin", binarySerialTxPin, {useSerialPort == 1} + field = "RX pin", binarySerialRxPin, {useSerialPort == 1} + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + + dialog = canBus, "CAN Bus" + field = "Can Read Enabled", canReadEnabled + field = "Can Write Enabled", canWriteEnabled + field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} + field = "Can Nbc Type", canNbcType + field = "Can Baud Rate", canBaudRate + field = "Enable rusEFI CAN broadcast", enableVerboseCanTx + field = "use FSIO Table CAN Sniffing Filtering",useFSIOTableForCanSniffingFiltering + field = "rusEFI CAN data base address", verboseCanBaseAddress + field = "Can Sleep Period", canSleepPeriodMs + field = "RX pin", canRxPin + field = "TX pin", canTxPin + + dialog = canBus2, "Secondary CAN Bus" + field = "Can Read Enabled", can2ReadEnabled + field = "Can Write Enabled", can2WriteEnabled + field = "Can Nbc Type", can2NbcType + field = "Can Baud Rate", can2BaudRate + field = "Enable rusEFI CAN broadcast", enableVerboseCan2Tx + field = "rusEFI CAN data base address", verboseCan2BaseAddress + field = "Can Sleep Period", can2SleepPeriodMs + field = "RX pin", can2RxPin + field = "TX pin", can2TxPin + + dialog = canBusMain, "CAN Bus Communication", yAxis + panel = canBus + panel = canBus2 + + dialog = auxSerial, "AUX Serial" + field = "RX pin", auxSerialRxPin + field = "TX pin", auxSerialTxPin + field = "Serial Baud Rate", auxSerialSpeed + + dialog = sdCard, "SD Card Logger" + field = "Enable SD Card", isSdCardEnabled + field = "showSdCardWarning", showSdCardWarning + field = "CS Pin", sdCardCsPin + field = "SPI", sdCardSpiDevice + field = "log format", logFormat + field = "Write Period", sdCardPeriodMs + + dialog = gpsReceiver, "GPS Receiver" + field = "gps RX", gps_rx_pin + field = "gps TX", gps_tx_pin + + dialog = lcdScreen, "LCD screen" + field = "display Mode", displayMode + field = "height", HD44780height + field = "width", HD44780width + field = "RS pin", HD44780_rs + field = "E pin", HD44780_e + field = "D4 pin", HD44780_db4 + field = "D5 pin", HD44780_db5 + field = "D6 pin", HD44780_db6 + field = "D7 pin", HD44780_db7 + + dialog = tle8888, "TLE8888", yAxis + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE8888 SPI", tle8888spiDevice + field = "Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinit", cmd_tle8888_init + + dialog = connection, "", yAxis + field = "ADC vRef voltage", adcVcc + panel = auxSerial + + + dialog = monitoringSettings, "rusEFI Console Settings" + field = "Sensor Sniffer", sensorChartMode + field = " Threshold", sensorSnifferRpmThreshold + field = " Each X cycle", sensorChartFrequency + field = "Engine Sniffer", isEngineChartEnabled + field = " Threshold", engineSnifferRpmThreshold + + dialog = generalSettings, "General" + field = "!https://rusefi.com/s/fuel" + field = "Fuel strategy", fuelAlgorithm + + dialog = debugging, "Debug" + field = "!https://rusefi.com/s/debugmode" + field = "Debug mode", debugMode + + dialog = limits, "Limits" + field = "RPM hard limit", rpmHardLimit + field = "Cut fuel on RPM limit", cutFuelOnHardLimit + field = "Cut spark on RPM limit", cutSparkOnHardLimit + field = "Boost cut pressure", boostCutPressure + + dialog = fallbacks, "Fallbacks" + field = "Use MAP estimation table as fallback", enableMapEstimationTableFallback + field = "Failed MAP sensor fallback", failedMapFallback, { !enableMapEstimationTableFallback } + + dialog = limitsAndFallback, "Limits and fallbacks" + panel = limits + panel = fallbacks + +; Engine->Base Engine Settings + dialog = engineChars, "Base Engine Settings" + topicHelp = "baseHelp" + panel = baseEngineConfig + panel = engineMetadata + panel = generalSettings + panel = debugging + + dialog = crankingFuel, "Fuel" + field = "Injection mode", crankingInjectionMode + field = "Fuel Source For Cranking", useRunningMathForCranking + field = "Base fuel mass", cranking_baseFuel, {useRunningMathForCranking == 0} + + dialog = crankingIAC, "IAC" + field = "Cranking IAC position", crankingIACposition + field = "After cranking IAC taper duration", afterCrankingIACtaperDuration + field = "Override IAC multiplier for cranking", overrideCrankingIacSetting + + dialog = crankingIgnition, "Ignition" + field = "Advance", crankingTimingAngle, {useSeparateAdvanceForCranking == 0} + field = "Use separate Advance Table for cranking", useSeparateAdvanceForCranking + field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking + field = "Use fixed cranking dwell", useConstantDwellDuringCranking + field = "Fixed Cranking Dwell", ignitionDwellForCrankingMs, {useConstantDwellDuringCranking == 1} + field = "Cranking Dwell Angle", crankingChargeAngle, {useConstantDwellDuringCranking == 0} + + dialog = postCrankingEnrichment, "After start enrichment" + field = "Post-Cranking factor", postCrankingFactor + field = "Duration", postCrankingDurationSec + + dialog = primingFuelPulsePanel, "Priming fuel pulse" + field = "Duration at -40C degrees", startOfCrankingPrimingPulse + field = "Falloff temperature", primeInjFalloffTemperature + + +; Cranking->Cranking Settings + dialog = crankingDialog, "Cranking Settings" + field = "Cranking RPM limit", cranking_rpm + field = "Enable cylinder cleanup", isCylinderCleanupEnabled + field = "" + field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled + panel = primingFuelPulsePanel + panel = crankingFuel + panel = crankingIgnition + panel = crankingIAC + panel = postCrankingEnrichment + + dialog = EngineLoadAccelPanel, "Engine Load (alpha version)" + field = "Length", engineLoadAccelLength + field = "Accel threshold", engineLoadAccelEnrichmentThreshold + field = "Accel multiplier", engineLoadAccelEnrichmentMultiplier + field = "Decel threshold", engineLoadDecelEnleanmentThreshold + field = "Decel multiplier", engineLoadDecelEnleanmentMultiplier + + dialog = TpsAccelPanel, "TPS" + field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" + field = "Length", tpsAccelLength + field = "Accel Threshold", tpsAccelEnrichmentThreshold + field = "Decel Threshold", tpsDecelEnleanmentThreshold +; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier + field = "#Accelerator Pump model:" + field = "Fraction Period", tpsAccelFractionPeriod + field = "Fraction Divisor", tpsAccelFractionDivisor + + dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" + field = "evaporation time constant / tau", wwaeTau + field = "added to wall coef / beta", wwaeBeta + + +; Tuning->AccelEnrichment + dialog = AccelEnrich, "Accel/Decel Enrichment" + panel = TpsAccelPanel + panel = WallWettingAccelPanel + panel = EngineLoadAccelPanel + field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs + + +; Flex Logic + dialog = fsioIO, "Outputs" + field = "output #1", fsioOutputPins1 + field = "output #2", fsioOutputPins2 + field = "output #3", fsioOutputPins3 + field = "output #4", fsioOutputPins4 + field = "output #5", fsioOutputPins5 + field = "output #6", fsioOutputPins6 + field = "output #7", fsioOutputPins7 + field = "output #8", fsioOutputPins8 + field = "output #9", fsioOutputPins9 + field = "output #10", fsioOutputPins10 + field = "output #11", fsioOutputPins11 + field = "output #12", fsioOutputPins12 + field = "output #13", fsioOutputPins13 + field = "output #14", fsioOutputPins14 + field = "output #15", fsioOutputPins15 + field = "output #16", fsioOutputPins16 + field = "aux valve #1", auxValves1 + field = "aux valve #2", auxValves2 + + dialog = fsioFrequency, "Frequency" + field = "freq #1", fsioFrequency1 + field = "freq #2", fsioFrequency2 + field = "freq #3", fsioFrequency3 + field = "freq #4", fsioFrequency4 + field = "freq #5", fsioFrequency5 + field = "freq #6", fsioFrequency6 + field = "freq #7", fsioFrequency7 + field = "freq #8", fsioFrequency8 + field = "freq #9", fsioFrequency9 + field = "freq #10", fsioFrequency10 + field = "freq #11", fsioFrequency11 + field = "freq #12", fsioFrequency12 + field = "freq #13", fsioFrequency13 + field = "freq #14", fsioFrequency14 + field = "freq #15", fsioFrequency15 + field = "freq #16", fsioFrequency16 + field = "" + field = "" + + dialog = fsioSetting, "Setting" + field = "Set number is not associated with the output number." + field = "Set number, only the cell number with some numbers." + field = "set #1", fsio_setting1 + field = "set #2", fsio_setting2 + field = "set #3", fsio_setting3 + field = "set #4", fsio_setting4 + field = "set #5", fsio_setting5 + field = "set #6", fsio_setting6 + field = "set #7", fsio_setting7 + field = "set #8", fsio_setting8 + field = "set #9", fsio_setting9 + field = "set #10", fsio_setting10 + field = "set #11", fsio_setting11 + field = "set #12", fsio_setting12 + field = "set #13", fsio_setting13 + field = "set #14", fsio_setting14 + field = "set #15", fsio_setting15 + field = "set #16", fsio_setting16 + + dialog = fsioOutputsDialog, "FSIO outputs", border + panel = fsioIO, West + panel = fsioFrequency, Center + panel = fsioSetting, East + + dialog = fsioFormulas, "FSIO Formulas" + field = "!FSIO uses Reverse Polish Notation. Please read http://rusefi.com/s/fsio" + field = "#fsioinfo command in rusEFI console could be useful while troubleshooting those" + field = "#1", fsioFormulas1 + field = "#2", fsioFormulas2 + field = "#3", fsioFormulas3 + + field = "use FSIO #4 for serious engine warning",useFSIO4ForSeriousEngineWarning + field = "#4", fsioFormulas4 + + field = "use FSIO #5 for critical engine stop", useFSIO5ForCriticalIssueEngineStop + field = "#5", fsioFormulas5 + + field = "use FSIO #6 for rev limiter", useFSIO6ForRevLimiter + field = "#6", fsioFormulas6 + + field = "#7", fsioFormulas7 + + field = "use FSIO #8 for servo #1", useFSIO8ForServo1 + field = "#8", fsioFormulas8 + field = "use FSIO #9 for servo #2", useFSIO9ForServo2 + field = "#9", fsioFormulas9 + field = "use FSIO #10 for servo #3", useFSIO10ForServo3 + field = "#10", fsioFormulas10 + field = "use FSIO #11 for servo #4", useFSIO11ForServo4 + field = "#11", fsioFormulas11 + field = "use FSIO #12 for servo #5", useFSIO12ForServo5 + field = "use FSIO #12 idle offset", useFSIO12ForIdleOffset + field = "#12", fsioFormulas12 + field = "use FSIO #13 idle min value", useFSIO13ForIdleMinValue + field = "#13", fsioFormulas13 + field = "#14", fsioFormulas14 + field = "use FSIO #15 for target idle RPM adjustment", useFSIO15ForIdleRpmAdjustment + field = "#15", fsioFormulas15 + field = "use FSIO #16 for timing adjustment", useFSIO16ForTimingAdjustment + field = "#16", fsioFormulas16 + + dialog = fsioInputsDialog, "FSIO inputs" + field = "ADC #1", fsioAdc1 + field = "ADC #2", fsioAdc2 + field = "ADC #3", fsioAdc3 + field = "ADC #4", fsioAdc4 + + dialog = transmissionPanel + field = "TCU Enabled" tcuEnabled + + dialog = solenoidPanel, "Shift Solenoids" + field = "Solenoid 1 Pin" tcu_solenoid1, { tcuEnabled } + field = "Solenoid 2 Pin" tcu_solenoid2, { tcuEnabled } + field = "Solenoid 3 Pin" tcu_solenoid3, { tcuEnabled } + field = "Solenoid 4 Pin" tcu_solenoid4, { tcuEnabled } + field = "Solenoid 5 Pin" tcu_solenoid5, { tcuEnabled } + field = "Solenoid 6 Pin" tcu_solenoid6, { tcuEnabled } + field = "Solenoid 1 Pin Mode" tcu_solenoid_mode1, { tcuEnabled } + field = "Solenoid 2 Pin Mode" tcu_solenoid_mode2, { tcuEnabled } + field = "Solenoid 3 Pin Mode" tcu_solenoid_mode3, { tcuEnabled } + field = "Solenoid 4 Pin Mode" tcu_solenoid_mode4, { tcuEnabled } + field = "Solenoid 5 Pin Mode" tcu_solenoid_mode5, { tcuEnabled } + field = "Solenoid 6 Pin Mode" tcu_solenoid_mode6, { tcuEnabled } + + dialog = buttonShiftInputPanel, "Switch/Button Shift" + field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled } + field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled } + field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled } + field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled } + + dialog = tcuControls, "Transmission Settings" + panel = transmissionPanel + panel = solenoidPanel + panel = buttonShiftInputPanel + +;Boost Open Loop + + dialog = boost_left, "" + field = "Enable", isBoostControlEnabled + field = "Control Mode", boostType, { isBoostControlEnabled } + field = "Output", boostControlPin, { isBoostControlEnabled } + field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } + field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } + + dialog = boostDialog, "", border + panel = boost_left, West + panel = boostTableTbl, Center + +;Boost Closed Loop + + dialog = boostPidleft, "" + field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } + field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } + field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } + field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } + field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } + + dialog = boostTableDialog, "", card + panel = boostTable2Tbl + + dialog = boostPidDialog, "", border + panel = boostPidleft, West + panel = boostTableDialog, Center + + dialog = boostEtbPid, "" + field = "!This section is for advanced users only!" + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } + field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } + field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } + field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } + field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } + + help = veTableDialogHelp, "Volumetric Efficiency" + text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode" + webHelp = "https://rusefi.com/s/fuel" + + help = fuelHelp, "Fuel Control" + text = "More about fuel control on the web" + webHelp = "https://rusefi.com/s/fuel" + + help = etbHelp, "ETB Control" + text = "More about electronic throttle body on the web" + webHelp = "https://rusefi.com/s/etb" + + help = tpsTpsHelp, "Acceleration Enrichment" + text = "More about Tps To Tps acceleration on the web" + webHelp = "https://rusefi.com/s/tpstps" + + help = baseHelp, "Base Settings Control" + text = "More about rusefi on the web" + webHelp = "https://rusefi.com/" + + dialog = veTableDialog + topicHelp = "veTableDialogHelp" + panel = veTableTbl, South + + dialog = veTableDialog3D, "VE Table" + topicHelp = "veTableDialogHelp" + panel = veTableMap, South + + dialog = etbPidDialog, "PID settings" + field = "pFactor", etb_pFactor + field = "iFactor", etb_iFactor + field = "dFactor", etb_dFactor + field = "pid min", etb_minValue + field = "pid max", etb_maxValue + field = "iTermMin", etb_iTermMin + field = "iTermMax", etb_iTermMax + + dialog = etbIdleDialog, "ETB Idle" + field = "use ETB for idle", useETBforIdleControl + field = "ETB idle maximum angle", etbIdleThrottleRange + + dialog = etbDialogLeft + field = "https://rusefi.com/s/etb" + field = "Detailed status in console", isVerboseETB + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped + field = "Disable ETB Motor", pauseEtbControl + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility + ; criteria for the same panel when used in multiple places + panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 0 || (useStepperIdle && useHbridges) } + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate TPS 1", cmb_etb_auto_calibrate + commandButton = "Auto Calibrate TPS 2", cmb_etb_auto_calibrate_2 + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop + + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog, { throttlePedalPositionAdcChannel != 0 } + panel = etbPidDialog, { (throttlePedalPositionAdcChannel != 0) } + panel = etbAutotune + + ; Neutral position handling not yet implemented! + ;field = "Neutral Position", etbNeutralPosition + + dialog = etbDialog, "Electronic Throttle Body (beta)", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + + dialog = testSpark, "Spark" + commandButton = "Spark #1", cmd_test_spk1 + commandButton = "Spark #2", cmd_test_spk2 + commandButton = "Spark #3", cmd_test_spk3 + commandButton = "Spark #4", cmd_test_spk4 + commandButton = "Spark #5", cmd_test_spk5 + commandButton = "Spark #6", cmd_test_spk6 + commandButton = "Spark #7", cmd_test_spk7 + commandButton = "Spark #8", cmd_test_spk8 + commandButton = "Spark #9", cmd_test_spk9 + commandButton = "Spark #10",cmd_test_spk10 + commandButton = "Spark #11",cmd_test_spk11 + commandButton = "Spark #12",cmd_test_spk12 + + dialog = testMisc, "Misc" +; commandButton = "Come To Pit", cmd_call_from_pit + commandButton = "Main Relay", cmd_test_main_relay + commandButton = "Fuel Pump", cmd_test_fuel_pump + commandButton = "Radiator Fan", cmd_test_radiator_fan + commandButton = "Check Engine", cmd_test_check_engine_light + commandButton = "Idle Air Valve", cmd_test_idle_valve + commandButton = "HPFP Valve", cmd_test_hpfp_valve + commandButton = "A/C Relay", cmd_test_ac_relay + commandButton = "Starter Relay", cmd_test_starter_relay + commandButton = "Stop Engine", cmd_stop_engine + commandButton = "Write Config", cmd_write_config + commandButton = "Reset ECU", cmd_reset_controller + commandButton = "Reset to DFU", cmd_dfu + + ; bench test + dialog = ioTest, "Bench Test & Commands", xAxis + panel = testSpark + panel = testInjectors + panel = testSolenoids + panel = testFsio + panel = testMisc + + dialog = widebandConfig, "rusEFI Wideband Config" + field = "!Please connect exactly one wideband controller before pressing this button!" + commandButton = "Update Firmware", cmd_wideband_firmare_update + + dialog = engineTypeDialog, "Popular vehicles" + field = "!These buttons send a command to rusEFI controller to apply preset values" + field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" + + commandButton = "microRusEFI Defaults", cmd_set_engine_type_microRusEFI_Defaults + commandButton = "microRusEFI Miata NA6 VAF", cmd_set_engine_type_microRusEFI_Miata_NA6_VAF + commandButton = "microRusEFI Miata NA6 MAP", cmd_set_engine_type_microRusEFI_Miata_NA6_MAP + commandButton = "microRusEFI Miata 94/95 MAP", cmd_set_engine_type_microRusEFI_Miata_94_MAP + commandButton = "microRusEfi Miata NB2 MAP", cmd_set_engine_type_microRusEFI_Miata_NB2_MAP + commandButton = "microRusEFI Miata NB2 MAF", cmd_set_engine_type_microRusEFI_Miata_NB2_MAF + commandButton = "microRusEFI GDI VAG B6 test", cmd_set_engine_type_microRusEFI_VW_B6 + commandButton = "microRusEFI BCM", cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL + commandButton = "microRusEFI Subaru EJ18", cmd_set_engine_type_ET_MRE_SUBARU_EJ18 + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorFrequency + commandButton = "Enable Internal Trigger Simulation", cmd_enable_self_stim + commandButton = "Disable Internal Trigger Simulation", cmd_disable_self_stim + field = "" + field = "digipot spi", digitalPotentiometerSpiDevice + field = "digipot CS #0", digitalPotentiometerChipSelect1 + field = "digipot CS #1", digitalPotentiometerChipSelect2 + field = "digipot CS #2", digitalPotentiometerChipSelect3 + field = "digipot CS #3", digitalPotentiometerChipSelect4 + field = "" + field = "trigger stimulator pin #1", triggerSimulatorPins1 + field = "trigger stimulator pin mode #1", triggerSimulatorPinModes1 + field = "trigger stimulator pin #2", triggerSimulatorPins2 + field = "trigger stimulator pin mode #2", triggerSimulatorPinModes2 + field = "trigger stimulator pin #3", triggerSimulatorPins3 + field = "trigger stimulator pin mode #3", triggerSimulatorPinModes3 + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + dialog = datalogSettings, "Datalogging Settings" + field = "#Disabling optional logging may increase update rate!" + field = "Log debug channels", enableLogDebugChannels + field = "Log recent errors list", enableLogErrorList + + ; Racing Features->Launch Control + dialog = smLaunchControl, "Launch Control Settings EXPERIMENTAL" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1} + field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1} + field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + ;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1} + ;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1} + field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + field = "Hard Cut RPM Range", hardCutRpmRange, {launchControlEnabled == 1} + + + + + ; Racing Features->Rolling Launch + dialog = smRollingLaunch, "Rolling Launch Settings NOT WORKING" + field = "Enable Rolling Launch", rollingLaunchEnabled + + ; Racing Features->Rolling Launch + dialog = antiLag, "AntiLag Settings NOT WORKING" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode, {antiLagEnabled == 1} + field = "Switch Input", antiLagActivatePin, {antiLagActivationMode == 1 && antiLagEnabled == 1} + + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "Cutoff Activation RPM High Limit", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "Cutoff Deactivation RPM Low Limit", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "TPS Deactivation Threshold", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "CLT Activation Threshold", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "MAP Deactivation Threshold", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + + dialog = parkingLot, "Experimental/Broken" + field = "#System hacks" + field = "Global fuel correction", globalFuelCorrection + field = "Ignition Math Logic @", ignMathCalculateAtIndex + field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex + field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning + + + help = helpGeneral, "rusEFI General Help" + webHelp = "http://www.rusefi.com/" + text = "" + + dialog = gppwm1left, "" + field = "Pin", gppwm1_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm1_pwmFrequency, {gppwm1_pin != 0} + field = "" + field = "On above duty", gppwm1_onAboveDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Off below duty", gppwm1_offBelowDuty, {gppwm1_pin != 0 && gppwm1_pwmFrequency == 0} + field = "Duty if error", gppwm1_dutyIfError, {gppwm1_pin != 0} + field = "" + field = "Load Axis", gppwm1_loadAxis, {gppwm1_pin != 0} + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm1, "General Purpose PWM 1", xAxis + panel = gppwm1left + panel = gppwm1Tbl, {gppwm1_pin != 0} + + dialog = gppwm2left, "" + field = "Pin", gppwm2_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm2_pwmFrequency, {gppwm2_pin != 0} + field = "" + field = "On above duty", gppwm2_onAboveDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Off below duty", gppwm2_offBelowDuty, {gppwm2_pin != 0 && gppwm2_pwmFrequency == 0} + field = "Duty if error", gppwm2_dutyIfError, {gppwm2_pin != 0} + field = "" + field = "Load Axis", gppwm2_loadAxis, {gppwm2_pin != 0} + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm2, "General Purpose PWM 2", xAxis + panel = gppwm2left + panel = gppwm2Tbl, {gppwm2_pin != 0} + + dialog = gppwm3left, "" + field = "Pin", gppwm3_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm3_pwmFrequency, {gppwm3_pin != 0} + field = "" + field = "On above duty", gppwm3_onAboveDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Off below duty", gppwm3_offBelowDuty, {gppwm3_pin != 0 && gppwm3_pwmFrequency == 0} + field = "Duty if error", gppwm3_dutyIfError, {gppwm3_pin != 0} + field = "" + field = "Load Axis", gppwm3_loadAxis, {gppwm3_pin != 0} + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm3, "General Purpose PWM 3", xAxis + panel = gppwm3left + panel = gppwm3Tbl, {gppwm3_pin != 0} + + dialog = gppwm4left, "" + field = "Pin", gppwm4_pin + field = "" + field = "Set frequency to 0hz for on-off mode" + field = "Frequency", gppwm4_pwmFrequency, {gppwm4_pin != 0} + field = "" + field = "On above duty", gppwm4_onAboveDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Off below duty", gppwm4_offBelowDuty, {gppwm4_pin != 0 && gppwm4_pwmFrequency == 0} + field = "Duty if error", gppwm4_dutyIfError, {gppwm4_pin != 0} + field = "" + field = "Load Axis", gppwm4_loadAxis, {gppwm4_pin != 0} + field = "" + field = "" + field = "" + field = "" + field = "" + + dialog = gppwm4, "General Purpose PWM 4", xAxis + panel = gppwm4left + panel = gppwm4Tbl, {gppwm4_pin != 0} + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/subaru_eg33_prefix.txt b/firmware/tunerstudio/generated/subaru_eg33_prefix.txt new file mode 100644 index 0000000000..386feb39e1 --- /dev/null +++ b/firmware/tunerstudio/generated/subaru_eg33_prefix.txt @@ -0,0 +1,4 @@ + #define output_pin_e_enum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"," - Self Shutdown","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","D17 - FAN 1","D03 - FAN 2","C16 - Tacho out","C14 - FPump modulator","D23 - FPump relay","D22 - EGR control","D19 - CE indicator","C15 - AUX1 out","D18 - Auxillary air valve","D06 - Absorber purge","D02 - IDLE open","D01 - IDLE close","XP2 - AUX0 out","XP2 - AUX1 out","B08 - AC clutch","D20 - Charge valve","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + #define adc_channel_e_enum "NONE","TP - AIN 0","int - IGN1 current","int - IGN2 current","B05 - MAF Ain","INVALID","INVALID","A02 - Battery Ain","int - Knock","A05 - Oxyg #2 Ain","A04 - EGR t Ait","--- - Atm P Ain","A18 - AUX0 Ain","B02 - TPS Ain","int - MC33972 DIN","A03 - Coolant t Ain","A06 - Oxyg #1 Ain","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + #define brain_input_pin_e_enum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","B11 - Speed Din (GPIO)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","A08 - Crank #2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C01 - Crank #1","INVALID","A07 - 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","B11 - Speed Din (MC33972)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID" + #define switch_input_pin_e_enum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","TP - SP1 Din","TP - SP2 Din","TP - SP3 Din","INVALID","C10 - Starter Din","C12 - Memory SW Din","C13 - Test SW Din","D04 - California ID Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","C09 - Air Condition request Din","B12 - IGN Din","INVALID","B10 - N pos Din","B09 - P pos Din","A20 - Torque Ctrl Din","A19 - AC Ctrl Din","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID"