diff --git a/.gitignore b/.gitignore index 7bb26561..fa92e1aa 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ reference/hardware/v0.2/~$schematic v0.2_bom.xlsx reference/hardware/v0.4/gerbers/Archive.zip .pioenvs +.pio .piolibdeps .clang_complete .gcc-flags.json diff --git a/.travis.yml b/.travis.yml index 9ee7d9e5..25637578 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,11 +46,12 @@ before_install: - sudo apt-get update -qq # - sudo apt-get install -t trusty-backports cppcheck - sudo apt-get build-dep -qq cppcheck - - wget https://github.com/danmar/cppcheck/archive/1.79.zip - - unzip 1.79.zip - - cd cppcheck-1.79 -# - make SRCDIR=build CFGDIR=/usr/share/cppcheck/ HAVE_RULES=yes - - sudo make install CFGDIR=/usr/share/cppcheck/ HAVE_RULES=yes +# - wget https://github.com/danmar/cppcheck/archive/1.79.zip +# - unzip 1.79.zip +# - cd cppcheck-1.79 +# - git clone --depth=10 https://github.com/noisymime/cppcheck.git +# - cd cppcheck +# - sudo make install CFGDIR=/usr/share/cppcheck/ HAVE_RULES=yes # Requirements for doxygen - sudo apt-get install doxygen graphviz @@ -59,19 +60,20 @@ install: script: - cd /home/travis/build - - git clone --depth=20 https://github.com/noisymime/cppcheck.git noisymime/cppcheck - - cd noisymime/speeduino + - git clone --depth=10 https://github.com/noisymime/cppcheck.git noisymime/cppcheck_github + - cd noisymime/cppcheck_github + - make + - cd ../speeduino - platformio update -# - platformio run -e megaatmega2560 -e teensy35 -e bluepill_f103c8 -e genericSTM32F103RB # Run the builds - - platformio run -e megaatmega2560 -e teensy35 -e genericSTM32F103RB + - platformio run -e megaatmega2560 -e teensy35 # Upload ini and hex files to speeduino.com server - curl --user "speeduino_firmware@speeduino.com:$WEB_PWD" --basic -T "./.pioenvs/megaatmega2560/firmware.hex" "https://speeduino.com:2078/bin/master.hex" - curl --user "speeduino_firmware@speeduino.com:$WEB_PWD" --basic -T "./reference/speeduino.ini" "https://speeduino.com:2078/master.ini" # Begin MISRA scan - cd .. - - chmod +x speeduino/misra/check_misra.sh - - speeduino/misra/check_misra.sh + - chmod +x speeduino/misra/check_misra_github.sh + - speeduino/misra/check_misra_github.sh # Do doxygen run and upload to gh-pages server. - cd speeduino - doxygen @@ -88,5 +90,5 @@ notifications: env: global: - secure: "L6pyVQKCkOJNPBEbx6pEln+QnGyntouZW1tGSqOysgRFmUOdXH8l+DKq0YwW+civ0yWrF91G5YkWmyAE1jkoDLy7TBOt8Iqq/xAmf+BHIqDl/+uNsVxgvZ6+gqwMeoWBfmo0vmRj3/wY7ZmepNe2jKop/DX2olhBgmRdCKp8nA+SX8/pc2tO7DZeSsbCP0+JozvVhFtQMNwzkVp4llmER2yGr+u5pTTOz4eXCEkEKUCZMZ6JhvPKCDm+7tUQSS4NvShizj7QZIjqxvINQPi9i1TGJRoPTlQqYNGfTHufU3/W7nsUWFdtrZRapLZuKN/ktOr5T0ydQriNlDpBoIWXJvHzZrBjyT2arzz7jw57QZ8Yhyhetdw+zIfBepLEp7nKZGjR3eeWGtRzj8RRIgw19MT+8g2l7a1gKte+L01o4y8RKfQCqt/2PcVelIUv3X08JVOE6q7PumBEUSAkk1ITE80Y8SYoQda62gehH06xloSWJvU79tIC0drWMO+hGvj4LTpoe9ujMYTxkwGjiIfx9I9jButAN0vI2MtcDyVR+9XuKwZc9nFf4z4HR8xav1NmrzEAy0OVsOdjpM3OxAnVzTUo4M0c11dt9sDP7xR3TgwgSs2ptNOamujRFqrONHnn6VglOnWuypfvJfBxfovuRP1+UZoHIH7sbiMXmX/3nyA=" - secure: "LKvIikE69mmD2yroQ84KFfrCw9sCU6o4zDqdGQM3mFKVi/Tuiyskvk3KMbf5Rxwt6Fy2OhdvitxG1ckbpccdTNlEbef7DtBdjNd5Oh72GseBCwToNTinFCVpJbj2AWceDykSDsaxzZMg3ienXwZ5XB3ClyUi6N+8MLwpsX4kJuGNfOY3z6yC+JQSvuVhIb1zDRYDKAHDuabzo38sk8q/WhBEVvL95lzPHoxMEpaQfwyjZ4lLhDbqe9/y7s7M9bjz1K9AXHS6h5fIWGVKVzL8YKoOVi6Na6vcnS8w7YNr71AMr0d7H0nM9gG6Fy4DDyUsfa9SBhLVxMWbEPe9+eJNZ0MkuwI/6eaxiqnqAcMfFyvw1bwBGCi4+x0+9riwpOYE21q3Mq/XbTKdvI7YG4RPfd2X4Xe6hOVPW/5iEICZdxrpLdyDN7suZX7Y8POcBeJgi6HkdKXfDO6NlCV+Fnmwx/FltHILX2GNASob/o2/dVkPNh3NjxVqgwN9OxyzNQefWC3z1W3YgBwTWc3VkuiuE0eTEkBX5aSGTGZWqysz4U42/7M+MiSC80VpMbsFNd1FEGZR75Y644q+aUHLGNWIK01dslxZUiUEh5CkdOHTqpeHVszJyCblTtIBAXyBhZfnbdOBxpPsZGg2U+iSUSOzXW2W11e52ARhpi0QlnvhdkI=" \ No newline at end of file + - secure: "L6pyVQKCkOJNPBEbx6pEln+QnGyntouZW1tGSqOysgRFmUOdXH8l+DKq0YwW+civ0yWrF91G5YkWmyAE1jkoDLy7TBOt8Iqq/xAmf+BHIqDl/+uNsVxgvZ6+gqwMeoWBfmo0vmRj3/wY7ZmepNe2jKop/DX2olhBgmRdCKp8nA+SX8/pc2tO7DZeSsbCP0+JozvVhFtQMNwzkVp4llmER2yGr+u5pTTOz4eXCEkEKUCZMZ6JhvPKCDm+7tUQSS4NvShizj7QZIjqxvINQPi9i1TGJRoPTlQqYNGfTHufU3/W7nsUWFdtrZRapLZuKN/ktOr5T0ydQriNlDpBoIWXJvHzZrBjyT2arzz7jw57QZ8Yhyhetdw+zIfBepLEp7nKZGjR3eeWGtRzj8RRIgw19MT+8g2l7a1gKte+L01o4y8RKfQCqt/2PcVelIUv3X08JVOE6q7PumBEUSAkk1ITE80Y8SYoQda62gehH06xloSWJvU79tIC0drWMO+hGvj4LTpoe9ujMYTxkwGjiIfx9I9jButAN0vI2MtcDyVR+9XuKwZc9nFf4z4HR8xav1NmrzEAy0OVsOdjpM3OxAnVzTUo4M0c11dt9sDP7xR3TgwgSs2ptNOamujRFqrONHnn6VglOnWuypfvJfBxfovuRP1+UZoHIH7sbiMXmX/3nyA=" + - secure: "LKvIikE69mmD2yroQ84KFfrCw9sCU6o4zDqdGQM3mFKVi/Tuiyskvk3KMbf5Rxwt6Fy2OhdvitxG1ckbpccdTNlEbef7DtBdjNd5Oh72GseBCwToNTinFCVpJbj2AWceDykSDsaxzZMg3ienXwZ5XB3ClyUi6N+8MLwpsX4kJuGNfOY3z6yC+JQSvuVhIb1zDRYDKAHDuabzo38sk8q/WhBEVvL95lzPHoxMEpaQfwyjZ4lLhDbqe9/y7s7M9bjz1K9AXHS6h5fIWGVKVzL8YKoOVi6Na6vcnS8w7YNr71AMr0d7H0nM9gG6Fy4DDyUsfa9SBhLVxMWbEPe9+eJNZ0MkuwI/6eaxiqnqAcMfFyvw1bwBGCi4+x0+9riwpOYE21q3Mq/XbTKdvI7YG4RPfd2X4Xe6hOVPW/5iEICZdxrpLdyDN7suZX7Y8POcBeJgi6HkdKXfDO6NlCV+Fnmwx/FltHILX2GNASob/o2/dVkPNh3NjxVqgwN9OxyzNQefWC3z1W3YgBwTWc3VkuiuE0eTEkBX5aSGTGZWqysz4U42/7M+MiSC80VpMbsFNd1FEGZR75Y644q+aUHLGNWIK01dslxZUiUEh5CkdOHTqpeHVszJyCblTtIBAXyBhZfnbdOBxpPsZGg2U+iSUSOzXW2W11e52ARhpi0QlnvhdkI=" diff --git a/Doxyfile b/Doxyfile index 48068a3d..2300c88c 100644 --- a/Doxyfile +++ b/Doxyfile @@ -746,7 +746,7 @@ CITE_BIB_FILES = # messages are off. # The default value is: NO. -QUIET = NO +QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES diff --git a/README.md b/README.md index 7f9f0d72..26afb0ec 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ | | | | --- | --- | | **Dev Status** | ![Stable](https://img.shields.io/badge/Status-Stable-green.svg) | -| **Latest Release** | [![GitHub release](https://img.shields.io/github/release/noisymime/speeduino.svg)](https://github.com/noisymime/speeduino/releases/tag/201903) | +| **Latest Release** | [![GitHub release](https://img.shields.io/github/release/noisymime/speeduino.svg)](https://github.com/noisymime/speeduino/releases/latest) | | **MISRA Status** | [![MISRA](https://img.shields.io/travis/noisymime/speeduino.svg)](https://travis-ci.org/noisymime/speeduino/) | | **Feature Bounties** | [![Bountysource](https://img.shields.io/bountysource/team/speeduino/activity.svg)](https://www.bountysource.com/teams/speeduino) diff --git a/misra/check_misra_github.sh b/misra/check_misra_github.sh new file mode 100755 index 00000000..c3124c36 --- /dev/null +++ b/misra/check_misra_github.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +cppcheck_path=cppcheck_github/ +cppcheck_bin="${cppcheck_path}cppcheck" +#cppcheck_bin="cppcheck" +cppcheck_misra="${cppcheck_path}addons/misra.py" + +if [ -f ./results.txt ]; then + rm results.txt +fi + +for i in speeduino/speeduino/*.ino; do + $cppcheck_bin --dump --max-configs=1 --suppressions-list=speeduino/misra/suppressions.txt --suppress=syntaxError:speeduino/speeduino/src/PID_v1/PID_v1.h --include=${i%.*}.h -DCORE_AVR=1 -D__AVR_ATmega2560__=1 $i > /dev/null +done + +mv speeduino/speeduino/*.dump ./ +rm ./utils.*.dump + +python $cppcheck_misra --rule-texts=speeduino/misra/misra_2012_text.txt *.dump 2> results.txt +#rm *.dump + +cat results.txt +# wc -l results.txt + +errors=`wc -l < results.txt | tr -d ' '` +echo $errors MISRA violations + +if [ $errors -gt 0 ]; then + exit 1 +else + exit 0 +fi diff --git a/misra/check_misra_v1.86.sh b/misra/check_misra_v1.86.sh deleted file mode 100755 index 540c838f..00000000 --- a/misra/check_misra_v1.86.sh +++ /dev/null @@ -1,26 +0,0 @@ -if [ -f ./results.txt ]; then - rm results.txt -fi - -cd speeduino/speeduino -#cppcheck --dump --inline-suppr --suppress=syntaxError:src/PID_v1/PID_v1.h --suppressions-list=../misra/suppressions.txt --include=./*.h -DCORE_AVR=1 -D__AVR_ATmega2560__ -U__STM32F1__ -USTM32F4 ./*.ino > /dev/null -cppcheck --dump --inline-suppr --suppress=syntaxError:src/PID_v1/PID_v1.h --suppressions-list=../misra/suppressions.txt --include=./*.h -DCORE_AVR=1 -D__AVR_ATmega2560__ -U__STM32F1__ -USTM32F4 -UCORE_STM32 -UCORE_TEENSY ./storage.ino > /dev/null -cd ../.. -mv speeduino/speeduino/*.dump ./ -rm ./utils.*.dump - -python cppcheck/addons/misra.py --rule-texts=speeduino/misra/misra_2012_text.txt *.dump 2> results.txt -#python cppcheck/addons/misra.py --rule-texts=speeduino/misra/misra_2012_text.txt board_avr2560.ino.dump 2> results.txt -#rm *.dump - -cat results.txt -# wc -l results.txt - -errors=`wc -l < results.txt | tr -d ' '` -echo $errors MISRA violations - -if [ $errors -gt 0 ]; then - exit 1 -else - exit 0 -fi diff --git a/misra/misra_2012_text.txt b/misra/misra_2012_text.txt index fb58afd3..bcc5853b 100644 --- a/misra/misra_2012_text.txt +++ b/misra/misra_2012_text.txt @@ -94,17 +94,17 @@ No text specified Rule 9.5 No text specified Rule 10.1 -No text specified +Arguments of a conditional operation must be of an essentially boolean type Rule 10.2 No text specified Rule 10.3 No text specified Rule 10.4 -No text specified +The target of an operation must be of an appropriate type Rule 10.5 No text specified Rule 10.6 -No text Specified +An expression should not assign a value to a variable of a narrower or essentially different type Rule 10.7 No text specified Rule 10.8 @@ -126,7 +126,7 @@ No text specified Rule 11.8 No text specified Rule 11.9 -No text specified +An integer null pointer shall have no value assigned other than NULL macro Rule 12.1 Advisory - Order of operations within an expression must be explicit. Multiple conditions in a logical operation should have brackets around them. Rule 12.2 @@ -166,9 +166,9 @@ No text specified Rule 15.5 Advisory - A function should only have a single return point Rule 15.6 -No text specified +Loops, switch and if/else statements must have brackets around their body Rule 15.7 -No text specified +'else if' statements must terminate with a final 'else' Rule 16.1 No text specified Rule 16.2 @@ -232,7 +232,7 @@ Advisory - Use of #undef is not permitted Rule 20.6 No text specified Rule 20.7 -No text specified +Macro expressions must be enclosed in parentheses Rule 20.8 No text specified Rule 20.9 @@ -252,7 +252,7 @@ No text specified Rule 21.2 No text specified Rule 21.3 -No text specified +Memory allocation functions (Eg malloc(), talloc() etc) shall not be used Rule 21.4 No text specified Rule 21.5 diff --git a/misra/suppression_notes.txt b/misra/suppression_notes.txt new file mode 100644 index 00000000..074e4c99 --- /dev/null +++ b/misra/suppression_notes.txt @@ -0,0 +1,2 @@ +5.4 - cppcheck currently doesn't appear to handle the scope of #defines within header files and so is counting all instances as duplicates. +10.4 - Currently suppressing this as the work required to go through and add I, U, UL, L etc to all the contstants is not worth it. diff --git a/misra/suppressions.txt b/misra/suppressions.txt index e78929fe..89f97547 100644 --- a/misra/suppressions.txt +++ b/misra/suppressions.txt @@ -1,7 +1,6 @@ -misra_12.1:board_avr2560.ino:7 -misra_14_4 -misra.5.2 +misra_10.4 +misra_5.4 MISRA_16_4:misra-suppressions1-test.c MISRA.16.6:misra-suppressions1-test.c MISRA_4_1:misra-suppressions2-test.c -MISRA.19_2:misra-suppressions2-test.c \ No newline at end of file +MISRA.19_2:misra-suppressions2-test.c diff --git a/platformio.ini b/platformio.ini index c587dfac..68ac8ede 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,7 +13,7 @@ platform=atmelavr board=megaatmega2560 framework=arduino build_unflags = -Os -build_flags = -O3 -ffast-math +build_flags = -O3 -ffast-math -Wall -Wextra lib_deps = EEPROM [env:teensy35] @@ -55,9 +55,8 @@ board = black_f407ve lib_deps = EEPROM board_build.core = stm32 ;build_flags = -fpermissive -std=gnu++11 -UBOARD_NR_GPIO_PINS -DCORE_STM32_OFFICIAL -DSRAM_AS_EEPROM -build_flags = -fpermissive -std=gnu++11 -UBOARD_NR_GPIO_PINS -DCORE_STM32_OFFICIAL -DSPI_AS_EEPROM - - +build_flags = -fpermissive -std=gnu++11 -UBOARD_NR_GPIO_PINS -DCORE_STM32_OFFICIAL -DSPI_AS_EEPROM -DMENU_USB_SERIAL +upload_protocol = serial [env:bluepill_f103c8] platform = ststm32 @@ -88,7 +87,7 @@ upload_protocol = sam-ba [platformio] src_dir=speeduino -env_default = megaatmega2560 +default_envs = megaatmega2560 ;The following lines are for testing / experimentation only. Comment the line above to try them out ;env_default = teensy35 ;env_default = LaunchPad_tm4c1294ncpdt diff --git a/reference/Base Tunes/NA6 PNP base tune.msq b/reference/Base Tunes/NA6 PNP base tune.msq index 3a9ac6b3..9c5e7ad7 100644 --- a/reference/Base Tunes/NA6 PNP base tune.msq +++ b/reference/Base Tunes/NA6 PNP base tune.msq @@ -1,7 +1,7 @@ - - + + "CAN ID 0" @@ -19,10 +19,8 @@ Aux0 -50.0 -50.0 -15.0 -5.0 +"MAP" +"MAP" 179.0 179.0 @@ -40,9 +38,9 @@ "Board Default" "Normal" 3.0 -0.0 -30.0 -400.0 +70.0 +70.0 +200.0 "Unused" "VE" "CPU" @@ -78,7 +76,6 @@ "Paired" "Yes" "Off" -2.0 95.0 42.0 0.0 @@ -96,8 +93,7 @@ "Normal" "Off" 20.0 -1500.0 -6000.0 +1000.0 40.0 80.0 12.0 @@ -107,66 +103,35 @@ 65535.0 "Yes" "30" - - 60.0 - 60.0 - 64.0 - 65.0 - 69.0 - 72.0 - 73.0 - 74.0 - 75.0 - 76.0 - 78.0 - 78.0 - 79.0 - 76.0 - 62.0 - 59.0 - 61.0 - 64.0 - 66.0 - 69.0 - 72.0 - 73.0 - 74.0 - 75.0 - 76.0 - 77.0 - 78.0 - 79.0 - 73.0 - 63.0 - 60.0 - 62.0 - 64.0 - 66.0 - 69.0 - 72.0 - 74.0 - 75.0 - 76.0 - 77.0 - 78.0 - 78.0 - 79.0 - 74.0 - 61.0 - 60.0 - 62.0 - 65.0 - 67.0 - 70.0 - 72.0 - 74.0 - 74.0 - 76.0 - 77.0 - 77.0 + + 50.0 + 29.0 + 15.0 + 8.0 - + + 15.0 + 10.0 + 10.0 + 5.0 + + 0.0 + 27.0 + 60.0 + 101.0 + + + 2.0 + 1.0 + 1.0 + 1.0 + + + -8.0 + 40.0 + 65.0 + 100.0 @@ -286,7 +251,7 @@ 0.0 5.0 10.0 -"RISING" +"FALLING" "Crank Speed" "Going Low" "4G63 / Miata / 3000GT" @@ -372,71 +337,77 @@ 50.0 180.0 180.0 -128.0 +100.0 128.0 20.0 64.0 - + + 0.0 + 20.0 + 50.0 + 70.0 + 85.0 + 100.0 + + + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + + + 10.0 + 260.0 + 670.0 + 1000.0 + + + 97.0 + 102.0 + 104.0 + 113.0 + + 16.0 - 33.0 - 142.0 - 128.0 - 129.0 - 131.0 - 147.0 - 150.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 146.0 - 128.0 + 91.0 128.0 130.0 - 142.0 - 68.0 - 57.0 - 95.0 - 70.0 - 93.0 + 147.0 + 148.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 131.0 + 129.0 + 140.0 + 64.0 + 92.0 + 80.0 110.0 - 68.0 - 5.0 - 14.0 - 24.0 - 35.0 - 54.0 - 76.0 - 94.0 - 111.0 - 56.0 - 79.0 - 105.0 - 100.0 - 99.0 - 90.0 - 56.0 - 9.0 - 26.0 37.0 - 57.0 + 14.0 + 30.0 + 56.0 + 87.0 + 103.0 + 71.0 + 104.0 99.0 + 82.0 + 19.0 + 29.0 + 54.0 + 63.0 0.0 0.0 0.0 - 0.0 - 0.0 - 112.0 - 150.0 + 130.0 1.0 - - 0.0 - @@ -1063,44 +1034,48 @@ "8" "Yes" "0" -7.0 -20.0 -44.0 -1.0 -188.0 -2.0 -7.0 -0.0 -20.0 -40.0 -60.0 -80.0 -100.0 -0.0 -0.0 -10.0 -0.0 -20.0 -0.0 -30.0 -0.0 -40.0 -0.0 -50.0 -0.0 -0.0 -20.0 -40.0 -60.0 -80.0 -100.0 -100.0 -112.0 -125.0 -137.0 -150.0 -163.0 "" +"" + + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + @@ -1254,14 +1229,13 @@ 0.1 0.0 0.0 - + 0.0 0.0 0.0 - 0.0 - 18800.0 - 1400.0 - 0.0 + 800.0 + 17800.0 + 1300.0 0.0 0.0 0.0 @@ -1327,6 +1301,62 @@ 9800.0 + + + 39.0 39.0 39.0 39.0 39.0 38.0 37.0 36.0 35.0 34.0 33.0 33.0 33.0 33.0 33.0 33.0 + 40.0 40.0 41.0 42.0 42.0 41.0 40.0 39.0 39.0 39.0 39.0 39.0 40.0 40.0 40.0 40.0 + 40.0 42.0 43.0 46.0 46.0 45.0 44.0 43.0 42.0 42.0 43.0 43.0 43.0 44.0 44.0 44.0 + 42.0 45.0 47.0 51.0 51.0 49.0 48.0 47.0 46.0 46.0 46.0 47.0 47.0 47.0 48.0 48.0 + 44.0 49.0 52.0 56.0 55.0 54.0 52.0 51.0 50.0 50.0 50.0 50.0 51.0 51.0 51.0 52.0 + 48.0 54.0 58.0 61.0 59.0 58.0 56.0 55.0 54.0 53.0 54.0 54.0 54.0 55.0 55.0 55.0 + 54.0 61.0 64.0 66.0 64.0 62.0 61.0 59.0 58.0 57.0 57.0 58.0 58.0 59.0 59.0 59.0 + 60.0 67.0 70.0 70.0 68.0 67.0 65.0 63.0 62.0 61.0 61.0 61.0 62.0 63.0 63.0 63.0 + 67.0 74.0 76.0 75.0 73.0 71.0 69.0 68.0 66.0 64.0 65.0 65.0 66.0 66.0 67.0 67.0 + 74.0 80.0 81.0 79.0 77.0 75.0 73.0 72.0 70.0 68.0 68.0 69.0 69.0 70.0 70.0 71.0 + 81.0 85.0 86.0 84.0 82.0 80.0 78.0 76.0 74.0 72.0 72.0 72.0 73.0 74.0 74.0 74.0 + 87.0 91.0 91.0 88.0 86.0 84.0 82.0 80.0 78.0 76.0 76.0 76.0 77.0 78.0 78.0 78.0 + 93.0 93.0 93.0 93.0 93.0 90.0 88.0 86.0 84.0 83.0 83.0 83.0 84.0 85.0 85.0 86.0 + 93.0 93.0 93.0 93.0 93.0 92.0 90.0 88.0 86.0 86.0 86.0 87.0 88.0 89.0 89.0 90.0 + 93.0 93.0 93.0 93.0 93.0 93.0 93.0 90.0 90.0 90.0 90.0 91.0 92.0 93.0 93.0 93.0 + 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 95.0 + + + 500.0 + 700.0 + 900.0 + 1400.0 + 2000.0 + 2800.0 + 3600.0 + 4500.0 + 5200.0 + 5500.0 + 5800.0 + 6200.0 + 6500.0 + 6800.0 + 6900.0 + 7000.0 + + + 16.0 + 26.0 + 30.0 + 36.0 + 40.0 + 46.0 + 50.0 + 56.0 + 60.0 + 66.0 + 70.0 + 76.0 + 86.0 + 90.0 + 96.0 + 100.0 + + diff --git a/reference/Base Tunes/Speeduino base tune.msq b/reference/Base Tunes/Speeduino base tune.msq index 4632fd6d..11cb7d66 100644 --- a/reference/Base Tunes/Speeduino base tune.msq +++ b/reference/Base Tunes/Speeduino base tune.msq @@ -1,7 +1,7 @@ - - + + "CAN ID 0" @@ -19,10 +19,8 @@ Aux0 --1.0 -255.0 -25.0 -8.0 +"TPS" +"MAP" 180.0 175.0 @@ -40,9 +38,9 @@ "Board Default" "Normal" 3.0 -25.5 -70.0 -200.0 +70.0 +70.0 +200.0 "Unused" "VE" "CPU" @@ -78,7 +76,6 @@ "Paired" "Yes" "Off" -1.0 90.0 50.0 150.0 @@ -96,8 +93,7 @@ "Normal" "Off" 20.0 -1000.0 -4500.0 +1000.0 0.0 0.0 20.0 @@ -107,66 +103,35 @@ 260.0 "Yes" "30" - - 62.0 - 62.0 - 60.0 - 61.0 - 64.0 - 65.0 - 67.0 - 68.0 - 69.0 + 70.0 - 71.0 - 71.0 - 70.0 - 66.0 - 61.0 - 60.0 - 60.0 - 62.0 - 63.0 - 65.0 - 66.0 - 67.0 - 68.0 - 69.0 - 70.0 - 72.0 - 73.0 - 69.0 - 62.0 - 60.0 - 61.0 - 62.0 - 63.0 - 65.0 - 67.0 - 68.0 - 70.0 - 71.0 - 72.0 - 72.0 - 73.0 - 72.0 - 64.0 - 60.0 - 61.0 - 60.0 - 63.0 - 65.0 - 66.0 - 68.0 - 68.0 - 70.0 - 71.0 - 71.0 - 71.0 - 71.0 + 50.0 + 35.0 + 35.0 - + + 15.0 + 8.0 + 8.0 + 3.0 + + 0.0 + 40.0 + 80.0 + 100.0 + + + 1.0 + 1.0 + 1.0 + 1.0 + + + 0.0 + 40.0 + 60.0 + 100.0 @@ -286,7 +251,7 @@ 0.0 5.0 0.0 -"RISING" +"FALLING" "Crank Speed" "Going Low" "Missing Tooth" @@ -372,70 +337,76 @@ 50.0 180.0 180.0 -128.0 +100.0 128.0 20.0 64.0 - - 16.0 - 33.0 - 147.0 - 147.0 - 147.0 - 149.0 - 151.0 - 151.0 - 148.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 148.0 - 151.0 - 151.0 - 149.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 148.0 - 150.0 - 151.0 - 149.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 147.0 - 149.0 - 150.0 - 149.0 - 148.0 - 147.0 - 147.0 - 146.0 - 145.0 - - + 0.0 + 20.0 + 40.0 + 60.0 + 80.0 + 100.0 + + + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + + + 80.0 + 220.0 + 500.0 + 860.0 + + + 50.0 + 73.0 + 92.0 + 94.0 + + + 16.0 + 93.0 + 147.0 + 148.0 + 151.0 + 149.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 151.0 + 150.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 149.0 + 151.0 + 148.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 147.0 + 148.0 + 150.0 + 149.0 + 147.0 + 147.0 + 145.0 @@ -1063,44 +1034,48 @@ "8" "No" "1" -7.0 -20.0 -44.0 -1.0 -188.0 -2.0 -7.0 -0.0 -20.0 -40.0 -60.0 -80.0 -100.0 -0.0 -0.0 -10.0 -0.0 -20.0 -0.0 -30.0 -0.0 -40.0 -0.0 -50.0 -0.0 -0.0 -20.0 -40.0 -60.0 -80.0 -100.0 -100.0 -112.0 -125.0 -137.0 -150.0 -163.0 "" +"" + + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + 7.0 + @@ -1254,15 +1229,14 @@ 0.2 0.1 0.0 - + 0.0 0.0 0.0 0.0 - 0.0 - 18600.0 - 1700.0 - 0.0 + 1100.0 + 17400.0 + 1500.0 0.0 0.0 0.0 @@ -1327,6 +1301,62 @@ 0.0 + + + 39.0 39.0 39.0 39.0 39.0 38.0 37.0 36.0 35.0 34.0 33.0 33.0 33.0 33.0 33.0 33.0 + 40.0 40.0 41.0 42.0 42.0 41.0 40.0 39.0 39.0 39.0 39.0 39.0 40.0 40.0 40.0 40.0 + 40.0 42.0 43.0 46.0 46.0 45.0 44.0 43.0 42.0 42.0 43.0 43.0 43.0 44.0 44.0 44.0 + 42.0 45.0 47.0 51.0 51.0 49.0 48.0 47.0 46.0 46.0 46.0 47.0 47.0 47.0 48.0 48.0 + 44.0 49.0 52.0 56.0 55.0 54.0 52.0 51.0 50.0 50.0 50.0 50.0 51.0 51.0 51.0 52.0 + 48.0 54.0 58.0 61.0 59.0 58.0 56.0 55.0 54.0 53.0 54.0 54.0 54.0 55.0 55.0 55.0 + 54.0 61.0 64.0 66.0 64.0 62.0 61.0 59.0 58.0 57.0 57.0 58.0 58.0 59.0 59.0 59.0 + 60.0 67.0 70.0 70.0 68.0 67.0 65.0 63.0 62.0 61.0 61.0 61.0 62.0 63.0 63.0 63.0 + 67.0 74.0 76.0 75.0 73.0 71.0 69.0 68.0 66.0 64.0 65.0 65.0 66.0 66.0 67.0 67.0 + 74.0 80.0 81.0 79.0 77.0 75.0 73.0 72.0 70.0 68.0 68.0 69.0 69.0 70.0 70.0 71.0 + 81.0 85.0 86.0 84.0 82.0 80.0 78.0 76.0 74.0 72.0 72.0 72.0 73.0 74.0 74.0 74.0 + 87.0 91.0 91.0 88.0 86.0 84.0 82.0 80.0 78.0 76.0 76.0 76.0 77.0 78.0 78.0 78.0 + 93.0 93.0 93.0 93.0 93.0 90.0 88.0 86.0 84.0 83.0 83.0 83.0 84.0 85.0 85.0 86.0 + 93.0 93.0 93.0 93.0 93.0 92.0 90.0 88.0 86.0 86.0 86.0 87.0 88.0 89.0 89.0 90.0 + 93.0 93.0 93.0 93.0 93.0 93.0 93.0 90.0 90.0 90.0 90.0 91.0 92.0 93.0 93.0 93.0 + 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 93.0 95.0 + + + 500.0 + 700.0 + 900.0 + 1400.0 + 2000.0 + 2800.0 + 3600.0 + 4500.0 + 5200.0 + 5500.0 + 5800.0 + 6200.0 + 6500.0 + 6800.0 + 6900.0 + 7000.0 + + + 16.0 + 26.0 + 30.0 + 36.0 + 40.0 + 46.0 + 50.0 + 56.0 + 60.0 + 66.0 + 70.0 + 76.0 + 86.0 + 90.0 + 96.0 + 100.0 + + diff --git a/reference/Calculations.dash b/reference/Calculations.dash index 4d13649d..7cda603e 100644 --- a/reference/Calculations.dash +++ b/reference/Calculations.dash @@ -1,16 +1,19 @@ - - + + iVBORw0KGgoAAAANSUhEUgAAB9cAAAMaCAYAAAA82MbBAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAABCVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjIwMDc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjc5NDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAg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kIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCCBuQj8/2V6U5EecpkVAAAAAElFTkSuQmCC -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.2047244094488189 @@ -20,17 +23,17 @@ false false false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.18203125 @@ -40,17 +43,17 @@ false false false - -false - -false -false ) / 0 -1 +false +false + +false + 0.07948243992606285 0.03622047244094488 0.39921259842519685 @@ -60,17 +63,17 @@ false false false - -false - -false -false ( 0 -1 +false +false + +false + 0.07948243992606285 0.03622047244094488 -0.0015748031496062992 @@ -80,17 +83,17 @@ false false false - -false - -false -false = 0 -1 +false +false + +false + 0.051756007393715345 0.11023622047244094 0.5448818897637795 @@ -100,29 +103,29 @@ false false false - -false - 0.0 +Basic Rectangle Indicator +-4144960 +-256 +-16777216 +-1 +null +null false false Protocol Error Protocol Error -Basic Rectangle Indicator --1 -null --4144960 --256 -null --16777216 0.0 -null -null false protocolError +null +null +Application Events +false + 0.028 0.0803333358168602 0.8348333879709244 @@ -132,29 +135,29 @@ false false false -Application Events -false - 0.0 +Basic Rectangle Indicator +-4144960 +-16711936 +-16777216 +-1 +null +null false false Not Connected Connected -Basic Rectangle Indicator --1 -null --4144960 --16711936 -null --16777216 0.0 -null -null false controllerConnected +null +null +Application Events +false + 0.028 0.0803333358168602 0.7515000521540642 @@ -164,29 +167,29 @@ false false false -Application Events -false - 0.0 +Basic Rectangle Indicator +-4144960 +-16711936 +-16777216 +-1 +null +null false false Connecting -Basic Rectangle Indicator --1 -null --4144960 --16711936 -null --16777216 0.0 -null -null false controllerConnecting +null +null +Application Events +false + 0.028 0.0803333358168602 0.668166716337204 @@ -196,29 +199,29 @@ false false false -Application Events -false - 0.0 +Basic Rectangle Indicator +-4144960 +-16711936 +-16777216 +-1 +null +null false false Data Logging Data Logging -Basic Rectangle Indicator --1 -null --4144960 --16711936 -null --16777216 0.0 -null -null false dataLoggingActive +null +null +Application Events +false + 0.028 0.0803333358168602 0.5848333805203438 @@ -228,29 +231,29 @@ false false false -Application Events -false - 0.0 +Basic Rectangle Indicator +-16777216 +-1 +-16777216 +-1 +null +null false true Std. Boot Custom Boot -Basic Rectangle Indicator --1 -null --16777216 --1 -null --16777216 0.0 -null -null false bootloaderCapsGT0_OC +null +null + +false + 0.028 0.0803333358168602 0.5015000447034836 @@ -260,29 +263,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-65536 +null +null false true Reset Lock OFF Reset Lock ON -Basic Rectangle Indicator --65536 -null --16777216 --16711936 -null --16777216 0.0 -null -null false resetLockOn +null +null + +false + 0.028 0.0803333358168602 0.41816670888662344 @@ -292,29 +295,29 @@ false false true - -false - -1.0 +0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true No Sync Sync -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 -1.0 -null -null +0.0 false sync +null +null + +false + 0.028 0.0803333358168602 0.33483337306976324 @@ -324,29 +327,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-65536 +-16777216 +-1 +null +null false true Ign Cut OFF Ign Cut (Boost) -Basic Rectangle Indicator --1 -null --16777216 --65536 -null --16777216 0.0 -null -null false boostCutOut +null +null + +false + 0.028 0.0803333358168602 0.25150003725290304 @@ -356,29 +359,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-65536 +-16777216 +-1 +null +null false true Hard Limit OFF Hard Limiter -Basic Rectangle Indicator --1 -null --16777216 --65536 -null --16777216 0.0 -null -null false hardLimitOn +null +null + +false + 0.028 0.0803333358168602 0.16816670143604284 @@ -388,29 +391,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-65536 +-16777216 +-1 +null +null false true Soft Limit OFF Soft Limiter -Basic Rectangle Indicator --1 -null --16777216 --65536 -null --16777216 0.0 -null -null false softlimitOn +null +null + +false + 0.028 0.0803333358168602 0.08483336561918264 @@ -420,29 +423,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true Launch Soft Launch Soft -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false launchSoft +null +null + +false + 0.028 0.0803333358168602 0.0015000298023224445 @@ -452,29 +455,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true Launch Hard Launch Hard -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false launchHard +null +null + +false + 0.028 0.0803333358168602 0.9181666939854621 @@ -484,29 +487,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-65536 +-16777216 +-1 +null +null false true DFCO OFF DFCO On -Basic Rectangle Indicator --1 -null --16777216 --65536 -null --16777216 0.0 -null -null false DFCOOn +null +null + +false + 0.028 0.0803333358168602 0.8348333581686019 @@ -516,29 +519,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-65536 +-16777216 +-1 +null +null false true FLOOD OFF FLOOD CLEAR -Basic Rectangle Indicator --1 -null --16777216 --65536 -null --16777216 0.0 -null -null false LPtpsGTtpsfloodRPANDANDLPrpmLTcrankRPMRP_OC +null +null + +false + 0.028 0.0803333358168602 0.7515000223517417 @@ -548,29 +551,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true No Errors ERROR -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false error +null +null + +false + 0.028 0.0803333358168602 0.6681666865348815 @@ -580,29 +583,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true MAP Decel MAP Decel -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false mapaccden +null +null + +false + 0.028 0.0803333358168602 0.5848333507180213 @@ -612,29 +615,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true MAP Accel MAP Accel -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false mapaccaen +null +null + +false + 0.028 0.0803333358168602 0.5015000149011611 @@ -644,29 +647,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true Decel Decel -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false tpsaccden +null +null + +false + 0.028 0.0803333358168602 0.418166679084301 @@ -676,29 +679,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true Accel Accel -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false tpsaccaen +null +null + +false + 0.028 0.0803333358168602 0.3348333432674408 @@ -708,29 +711,29 @@ false false true - -false - -1.0 +0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true WUE OFF WUE ON -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 -1.0 -null -null +0.0 false warmup +null +null + +false + 0.028 0.0803333358168602 0.2515000074505806 @@ -740,29 +743,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true ASE OFF ASE ON -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false ase +null +null + +false + 0.028 0.0803333358168602 0.1681666716337204 @@ -772,29 +775,29 @@ false false true - -false - 0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true Not Cranking Cranking -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 0.0 -null -null false crank +null +null + +false + 0.028 0.0803333358168602 0.0848333358168602 @@ -804,29 +807,29 @@ false false true - -false - -1.0 +0.0 +Basic Rectangle Indicator +-16777216 +-16711936 +-16777216 +-1 +null +null false true Not Running Running -Basic Rectangle Indicator --1 -null --16777216 --16711936 -null --16777216 -1.0 -null -null +0.0 false running +null +null + +false + 0.028 0.0803333358168602 0.0015 @@ -836,17 +839,17 @@ false false true - -false - -false -false Pulsewidth 0 -3355444 +false +false + +false + 0.066543438077634 0.14094488188976378 0.01811023622047244 @@ -856,67 +859,67 @@ false false false - -false - -30.537 +0.0 +0.0 +mSec +0.0 +false +true +0 +true +false +Pulse Width +false +0 +0 +0 +-1 +1 +0 +3 +-65536 +1 +-6710887 true false 0 false -Pulse Width -false -0.0 -0.0 -mSec -0 null -0 -0 0.0 0.0 -30.537 +0.000 360 --1 -1 Basic Readout 0.0 0.0 0.0 0.0 -30.537 -0 -3 +0.0 0.0 0.0 0.0 0.0 -1.0 --65536 null -1 0.0 -38 -30.537 +45 +0.0 0 300 300 --6710887 -3 -0 -false -true -true +3.0 false -false -30.537 - - +0.0 false pulseWidth + + + +false + 0.07208872458410351 0.11181102362204724 0.6039370078740157 @@ -926,67 +929,67 @@ true true false - -false - -93.0 +0.0 +0.0 +% +120.0 +false +true +0 +true +false +VE Current +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -VE Current -false -0.0 -120.0 -% -0 null -0 -0 120.0 0.0 -93 +0 360 --1 -1 Basic Readout 999.0 999.0 999.0 999.0 -93.0 -0 -0 +0.0 -1.0 -1.0 -1.0 -1.0 -1.0 --65536 null -1 0.0 -38 -93.0 +45 +0.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -93.0 - - +0.0 false veCurr + + + +false + 0.07208872458410351 0.07007874015748032 0.115748031496063 @@ -996,67 +999,67 @@ true true false - -false - -191.0 +50.0 +50.0 +% +150.0 +false +true +0 +true +false +Gamma Enrichment +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Gamma Enrichment -false -50.0 -150.0 -% -0 null -0 -0 150.0 50.0 -191 +50 360 --1 -1 Basic Readout 151.0 151.0 151.0 151.0 -191.0 -0 -0 +50.0 -1.0 -1.0 -1.0 -1.0 -1.0 --65536 null -1 0.0 -38 -191.0 +45 +50.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -191.0 - - +50.0 false gammaEnrich + + + +false + 0.07208872458410351 0.1047244094488189 0.1968503937007874 @@ -1066,17 +1069,17 @@ true true false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.09448818897637795 @@ -1086,17 +1089,17 @@ false false false - -false - -false -false = 0 -1 +false +false + +false + 0.051756007393715345 0.11023622047244094 0.6385826771653543 @@ -1106,17 +1109,17 @@ false false false - -false - -false -false Gamma Enrichment 0 -3355444 +false +false + +false + 0.10351201478743069 0.23070866141732282 0.015748031496062992 @@ -1126,67 +1129,67 @@ false false false - -false - -152.0 +100.0 +100.0 +% +200.0 +false +true +0 +true +false +Warmup Enrichment +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Warmup Enrichment -false -100.0 -200.0 -% -0 null -0 -0 200.0 100.0 -152 +100 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 -152.0 -0 -0 +100.0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 -152.0 +45 +100.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -152.0 - - +100.0 false warmupEnrich + + + +false + 0.07208872458410351 0.09763779527559055 0.0031496062992125984 @@ -1196,67 +1199,67 @@ true true false - -false - -191.0 +50.0 +50.0 +% +150.0 +false +true +0 +true +false +Gamma Enrichment +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Gamma Enrichment -false -50.0 -150.0 -% -0 null -0 -0 150.0 50.0 -191 +50 360 --1 -1 Basic Readout 151.0 151.0 151.0 151.0 -191.0 -0 -0 +50.0 -1.0 -1.0 -1.0 -1.0 -1.0 --65536 null -1 0.0 -38 -191.0 +45 +50.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -191.0 - - +50.0 false gammaEnrich + + + +false + 0.07208872458410351 0.1047244094488189 0.7094488188976378 @@ -1266,67 +1269,67 @@ true true false - -false - 100.0 +100.0 +% +200.0 +false +true +0 +true +false +Afterstart Enrichment +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Afterstart Enrichment -false -100.0 -200.0 -% -0 null -0 -0 200.0 100.0 100 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 100.0 -0 -0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 +45 100.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false 100.0 - - false ase_enrich + + + +false + 0.07208872458410351 0.09763779527559055 0.1110236220472441 @@ -1336,17 +1339,17 @@ true true false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.38818897637795274 @@ -1356,17 +1359,17 @@ false false false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.48503937007874015 @@ -1376,17 +1379,17 @@ false false false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.5787401574803149 @@ -1396,17 +1399,17 @@ false false false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.2968503937007874 @@ -1416,67 +1419,67 @@ false false false - -false - -100.0 +50.0 +50.0 +% +150.0 +false +true +0 +true +false +Accel Enrich +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Accel Enrich -false -50.0 -150.0 -% -0 null -0 -0 150.0 50.0 -100 +50 360 --1 -1 Basic Readout 999.0 999.0 999.0 999.0 -100.0 -0 -0 +50.0 -1.0 -1.0 -1.0 -1.0 -1.0 --65536 null -1 0.0 -38 -100.0 +45 +50.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -100.0 - - +50.0 false accelEnrich + + + +false + 0.07208872458410351 0.09763779527559055 0.2141732283464567 @@ -1486,67 +1489,67 @@ true true false - -false - -100.0 +50.0 +50.0 +% +150.0 +false +true +0 +true +false +EGO Correction +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -EGO Correction -false -50.0 -150.0 -% -0 null -0 -0 150.0 50.0 -100 +50 360 --1 -1 Basic Readout 110.0 110.0 101.0 101.0 -100.0 -0 -0 +50.0 90.0 90.0 99.0 99.0 -1.0 --65536 null -1 0.0 -38 -100.0 +45 +50.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -100.0 - - +50.0 false egoCorrection + + + +false + 0.07208872458410351 0.09763779527559055 0.3031496062992126 @@ -1556,67 +1559,67 @@ true true false - -false - -100.0 +0.0 +0.0 +% +200.0 +false +true +0 +true +false +Voltage Correction +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Voltage Correction -false -0.0 -200.0 -% -0 null -0 -0 200.0 0.0 -100 +0 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 -100.0 -0 -0 +0.0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 -100.0 +45 +0.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -100.0 - - +0.0 false batCorrection + + + +false + 0.07208872458410351 0.09763779527559055 0.3952755905511811 @@ -1626,67 +1629,67 @@ true true false - -false - -126.0 +0.0 +0.0 +% +200.0 +false +true +0 +true +false +IAT Correction +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -IAT Correction -false -0.0 -200.0 -% -0 null -0 -0 200.0 0.0 -126 +0 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 -126.0 -0 -0 +0.0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 -126.0 +45 +0.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -126.0 - - +0.0 false airCorrection + + + +false + 0.07208872458410351 0.09763779527559055 0.4937007874015748 @@ -1696,67 +1699,67 @@ true true false - -false - -100.0 +0.0 +0.0 +% +200.0 +false +true +0 +true +false +Flex Correction +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -Flex Correction -false -0.0 -200.0 -% -0 null -0 -0 200.0 0.0 -100 +0 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 -100.0 -0 -0 +0.0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 -100.0 +45 +0.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -100.0 - - +0.0 false flexFuelCor + + + +false + 0.07208872458410351 0.09763779527559055 0.5881889763779528 @@ -1766,17 +1769,17 @@ true true false - -false - -false -false + 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.47401574803149604 @@ -1786,67 +1789,67 @@ false false false - -false - -1.0 +0.0 +0.0 +ms +35.0 +false +true +0 +true +false +Injector Open Time +false +0 +0 +0 +-1 +1 +0 +3 +-65536 +1 +-6710887 true false 0 false -Injector Open Time -false -0.0 -35.0 -ms -0 null -0 -0 35.0 0.0 -1.000 +0.000 360 --1 -1 Basic Readout 25.0 25.0 20.0 20.0 -1.0 -0 -3 +0.0 1.0 1.0 1.2 1.2 -1.0 --65536 null -1 0.0 -38 -1.0 +45 +0.0 0 300 300 --6710887 -3 -0 -false -true -true +3.0 false -false -1.0 - - +0.0 false inj_open + + + +false + 0.07208872458410351 0.1047244094488189 0.48976377952755906 @@ -1856,17 +1859,17 @@ true true false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.3031496062992126 @@ -1876,17 +1879,17 @@ false false false - -false - -false -false x 0 -1 +false +false + +false + 0.051756007393715345 0.023622047244094488 0.09685039370078741 @@ -1896,67 +1899,67 @@ false false false - -false - -12.200000000000001 +0.0 +0.0 +ms +35.0 +false +true +0 +true +false +Req. Fuel +false +0 +0 +0 +-1 +1 +0 +2 +-65536 +1 +-6710887 true false 0 false -Req. Fuel -false -0.0 -35.0 -ms -0 null -0 -0 35.0 0.0 -12.20 +0.00 360 --1 -1 Basic Readout 25.0 25.0 20.0 20.0 -12.200000000000001 -0 -2 +0.0 1.0 1.0 1.2 1.2 -1.0 --65536 null -1 0.0 -38 -12.200000000000001 +45 +0.0 0 300 300 --6710887 -2 -0 -false -true -true +2.0 false -false -12.200000000000001 - - +0.0 false req_fuel + + + +false + 0.07208872458410351 0.07007874015748032 0.023622047244094488 @@ -1966,137 +1969,137 @@ true true false - -false - -183.0 +0.0 +0.0 +% +200.0 +false +true +0 +true +false +MAP Multiply +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -MAP Multiply -false -0.0 -200.0 -% -0 null -0 -0 200.0 0.0 -183 +0 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 -183.0 -0 -0 +0.0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 -183.0 +45 +0.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -183.0 - - +0.0 false map_multiply_amt + + + +false + 0.07208872458410351 0.1047244094488189 -0.3062992125984252 -0.32532347504621073 +0.30628087508821455 +0.32591414944356123 true false true true false - -false - -2.0 +0.0 +0.0 + +10.0 +false +true +0 +true +false +# Squirts +false +0 +0 +0 +-1 +1 +0 +0 +-65536 +1 +-6710887 true false 0 false -# Squirts -false -0.0 -10.0 - -0 null -0 -0 10.0 0.0 -2 +0 360 --1 -1 Basic Readout 150.0 150.0 140.0 140.0 -2.0 -0 -0 +0.0 130.0 130.0 140.0 140.0 -1.0 --65536 null -1 0.0 -38 -2.0 +45 +0.0 0 300 300 --6710887 -0 -0 -false -true -true +0.0 false -false -2.0 - - +0.0 false nSquirts + + + +false + 0.07208872458410351 0.1047244094488189 0.3984251968503937 @@ -2106,29 +2109,29 @@ true true false - -false - 0.0 +Basic Rectangle Indicator +-16777216 +0 +-16777216 +0 +IMG_ID_Speeduino logo_white_reflection.png_0 +IMG_ID_Speeduino logo_white_reflection.png_0 false true -Basic Rectangle Indicator -0 -IMG_ID_Speeduino logo_white_reflection.png_0 --16777216 -0 -IMG_ID_Speeduino logo_white_reflection.png_0 --16777216 0.0 - - true launchHard + + + +true + 0.2532347504621072 0.33385826771653543 0.6645669291338583 @@ -2138,9 +2141,6 @@ false false true - -true - diff --git a/reference/hardware/v0.4/schematic v0.4.3.fzz b/reference/hardware/v0.4/schematic v0.4.3.fzz index a64645c6..3fe7667d 100644 Binary files a/reference/hardware/v0.4/schematic v0.4.3.fzz and b/reference/hardware/v0.4/schematic v0.4.3.fzz differ diff --git a/reference/hardware/v0.4/schematic v0.4.3_schem.png b/reference/hardware/v0.4/schematic v0.4.3_schem.png index 676340c2..854e0213 100644 Binary files a/reference/hardware/v0.4/schematic v0.4.3_schem.png and b/reference/hardware/v0.4/schematic v0.4.3_schem.png differ diff --git a/reference/speeduino.ini b/reference/speeduino.ini index f84a9311..48bab1c4 100644 --- a/reference/speeduino.ini +++ b/reference/speeduino.ini @@ -6,11 +6,11 @@ MTversion = 2.25 queryCommand = "Q" - signature = "speeduino 201904-dev" + signature = "speeduino 201906-dev" versionInfo = "S" ;This info is what is displayed to user [TunerStudio] - iniSpecVersion = 3.51 + iniSpecVersion = 3.64 ;------------------------------------------------------------------------------- @@ -54,6 +54,7 @@ ;algorithmUnits = bits, U08, [0:2], $loadSourceUnits algorithmUnits = bits, U08, [0:2], "kPa", "% TPS", "%", "% TPS", "INVALID", "INVALID", "INVALID", "INVALID" algorithmLimits= array, U16, [8], "", 1.0, 0, 0, 511, 0, noMsqSave + fuel2SwitchUnits = bits, U08, [0:2], "rpm", "kPa", "% TPS", "%", "% TPS", "INVALID", "INVALID", "INVALID" #define all_IO_Pins = "Board Default", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" #define IO_Pins_no_def = "INVALID", "INVALID", "INVALID", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID" @@ -159,7 +160,6 @@ ;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" ; New commands - ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 192, 192 pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A", "\$tsCanId\x0B" burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" pageReadCommand = "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c" @@ -175,6 +175,7 @@ ;tsWriteBlocks = on interWriteDelay = 5 ;Ignored when tsWriteBlocks is on pageActivationDelay = 10 + restrictSquirtRelationship = false ;New for TS 3.0.08ish upwards, define lists of standard I/O options @@ -204,19 +205,20 @@ ;Page 1 is all general settings. Note that some of these (algorithm and ignAlgorithm) MUST come before their use in the bitStringValue() calls in the fuel and ignition tables ;-------------------------------------------------- page = 1 - unused2-1 = scalar, S08, 0, "kPa", 1.0, 0.0, -127, 127, 0 - unused2-2 = scalar, U08, 1, "kPa", 1.0, 0.0, 0.0, 255, 0 - unused2-3 = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 95.0, 0 ;This used to be asePct - unused2-4 = scalar, U08, 3, "s", 1.0, 0.0, 0.0, 255, 0 ;This used to be aseCount + unused1-0 = scalar, S08, 0, "kPa", 1.0, 0.0, -127, 127, 0 + unused1-1 = scalar, U08, 1, "kPa", 1.0, 0.0, 0.0, 255, 0 + unused1-2 = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 95.0, 0 ;This used to be asePct + aeMode = bits, U08, 3, [0:1], "TPS", "MAP", "INVALID", "INVALID" + unused1-3c = bits, U08, 3, [2:7], "MAP", "TPS", "INVALID", "INVALID" wueRates = array, U08, 4, [10], "%", 1.0, 0.0, 0.0, 255, 0 crankingPct = scalar, U08, 14, "%", 1.0, 0.0, 0.0, 255, 0 - pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + pinLayout = bits, U08, 15, [0:7], "Speeduino v0.1", "Speeduino v0.2", "Speeduino v0.3", "Speeduino v0.4", "INVALID", "INVALID", "01-05 MX5 PNP", "INVALID", "96-97 MX5 PNP", "NA6 MX5 PNP", "Turtana PCB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Plazomat I/O 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "Daz V6 Shield 0.1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NO2C", "UA4C", "INVALID", "INVALID", "INVALID", "DIY-EFI CORE4 v1.0", "INVALID", "INVALID", "INVALID", "INVALID", "dvjcodec Teensy RevA", "dvjcodec Teensy RevB", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" tachoPin = bits, U08, 16, [0:5], "Board Default", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" tachoDiv = bits, U08, 16, [6:7], "Normal", "Half", "INVALID", "INVALID" tachoDuration = scalar, U08, 17, "ms", 1.0, 0.0, 1.0, 6.0, 0 - unused2-18 = scalar, U08, 18, "ms", 0.1, 0.0, 0.0, 25.5, 1 - tpsThresh = scalar, U08, 19, "%/s", 1.0, 0.0, 0.0, 255, 0 - taeTime = scalar, U08, 20, "ms", 10, 0.0, 0.0, 2550, 0 + maeThresh = scalar, U08, 18, "kPa/s", 1.0, 0.0, 0.0, 255, 0 ;MAP threshold for triggering AE + taeThresh = scalar, U08, 19, "%/s", 1.0, 0.0, 0.0, 255, 0 ;TPS threshold for triggering AE + aeTime = scalar, U08, 20, "ms", 10, 0.0, 0.0, 2550, 0 ; Display (Options for what the display is showing) display = bits, U08, 21, [0:2], "Unused", "Adafruit 128x32", "Generic 128x32", "Adafruit 128x64", "Generic 128x64", "INVALID", "INVALID", "INVALID" @@ -258,7 +260,7 @@ page = 1 ; Config3 engineType = bits, U08, 38, [0:0], "Even fire", "Odd fire" flexEnabled = bits, U08, 38, [1:1], "Off", "On" - unused2_38c = bits, U08, 38, [2:2], "Speed Density", "Alpha-N" + legacyMAP = bits, U08, 38, [2:2], "No", "Yes" ;Whether to use the older legacy MAP reading that had the pullup enabled baroCorr = bits, U08, 38, [3:3], "Off", "On" injLayout = bits, U08, 38, [4:5], "Paired", "Semi-Sequential", "INVALID", "Sequential" perToothIgn = bits, U08, 38, [6:6], "No", "Yes" @@ -284,8 +286,8 @@ page = 1 idleUpPolarity= bits, U08, 57, [6:6], "Normal", "Inverted" idleUpEnabled = bits, U08, 57, [7:7], "Off", "On" idleUpAdder = scalar, U08, 58, "% / Steps" 1.0, 0.0, 0.0, 250.0, 0 - taeTaperMin = scalar, U08, 59, "RPM", 100, 0.0, 1000, 10000, 0 - taeTaperMax = scalar, U08, 60, "RPM", 100, 0.0, 2000, 10000, 0 + aeTaperMin = scalar, U08, 59, "RPM", 100, 0.0, 1000, 10000, 0 + aeTaperMax = scalar, U08, 60, "RPM", 100, 0.0, 2000, 10000, 0 iacCLminDuty = scalar, U08, 61, "%", 1.0, 0.0, 0.0, 100.0, 0 ; Minimum and maximum duty cycles when using closed loop idle iacCLmaxDuty = scalar, U08, 62, "%", 1.0, 0.0, 0.0, 100.0, 0 @@ -428,9 +430,14 @@ page = 4 #else cltAdvBins = array, U08, 71, [ 6], "F", 1.8, -22.23, -40, 215.0, 0 ; No -40 degree offset here #endif - cltAdvValues = array, S08, 77, [ 6], "deg", 0.1, 0.0, -12.7, 12.7, 1 + cltAdvValues = array, S08, 77, [ 6], "deg", 1.0, -15, -15, 15, 0 - unused4-64 = array, U08, 83, [45], "%", 1.0, 0.0, 0.0, 255, 0 +;MAP based acceleration enrichment + maeBins = array, U08, 83, [ 4], "kpa/s", 10.0, 0.0, 0.00, 2550.0, 0 + maeRates = array, U08, 87, [ 4], "%", 1.0, 0.0, 0.00, 255.0, 0 ; 4 bytes + + batVoltCorrect = scalar, S08, 91, "v", 0.1, 0.0, -2, 2, 1 ;Battery reading calibration value. Note: Signed value + unused4-92 = array, U08, 92, [36], "%", 1.0, 0.0, 0.0, 255, 0 ;-------------------------------------------------- ;Start AFR page @@ -443,36 +450,37 @@ page = 5 #endif rpmBinsAFR = array, U08, 256,[ 16], "RPM", 100.0, 0.0, 100, 25500, 0 - #if SPEED_DENSITY - mapBinsAFR = array, U08, 272,[ 16], "kPa", 2.0, 0.0, 0.0, 511.0, 0 - #elif ALPHA_N - tpsBinsAFR = array, U08, 272,[ 16], "TPS", 2.0, 0.0, 0.0, 100.0, 0 - #endif + loadBinsAFR = array, U08, 272,[ 16], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 ;-------------------------------------------------- ;Start page 6 ; Page 6 is all settings associated with O2/AFR ;-------------------------------------------------- page = 6 - egoAlgorithm= bits , U08, 0, [0:1], "Simple", "INVALID", "PID", "No correction" ; * ( 1 byte) - egoType = bits , U08, 0, [2:3], "Disabled", "Narrow Band", "Wide Band", "INVALID" ; egoOption - boostEnabled= bits, U08, 0, [4:4], "Off", "On" - vvtEnabled = bits, U08, 0, [5:5], "Off", "On" - boostCutType= bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both" + egoAlgorithm = bits , U08, 0, [0:1], "Simple", "INVALID", "PID", "No correction" ; * ( 1 byte) + egoType = bits , U08, 0, [2:3], "Disabled", "Narrow Band", "Wide Band", "INVALID" ; egoOption + boostEnabled = bits, U08, 0, [4:4], "Off", "On" + vvtEnabled = bits, U08, 0, [5:5], "Off", "On" + boostCutType = bits, U08, 0, [6:7], "Off", "Spark Only", "Fuel Only","Both" - egoKP = scalar, U08, 1, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) - egoKD = scalar, U08, 3, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + egoKP = scalar, U08, 1, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + egoKI = scalar, U08, 2, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + egoKD = scalar, U08, 3, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) #if CELSIUS - egoTemp = scalar, U08, 4, "C", 1.0, -40, -40, 102.0, 0 + egoTemp = scalar, U08, 4, "C", 1.0, -40, -40, 102.0, 0 #else - egoTemp = scalar, U08, 4, "F", 1.8, -22.23, -40, 215.0, 0 + egoTemp = scalar, U08, 4, "F", 1.8, -22.23, -40, 215.0, 0 #endif - egoCount = scalar, U08, 5, "", 4.0, 0.0, 4.0, 255.0, 0 ; * ( 1 byte) - unused6-6 = scalar, U08, 6, "%", 1.0, 0.0, 0.0, 255.0, 0 - egoLimit = scalar, U08, 7, "", 1, 0, 0, 16, 0 - ego_min = scalar, U08, 8, "AFR", 0.1, 0.0, 7, 25, 1 - ego_max = scalar, U08, 9, "AFR", 0.1, 0.0, 7, 25, 1 + egoCount = scalar, U08, 5, "", 4.0, 0.0, 4.0, 255.0, 0 ; * ( 1 byte) + vvtMode = bits, U08, 6, [0:1], "On/Off", "Open Loop", "Closed loop", "INVALID" + vvtLoadSource = bits, U08, 6, [2:3], "MAP", "TPS", "INVALID", "INVALID" + vvtCLDir = bits, U08, 6, [4:4], "Advance", "Retard" + vvtCLUseHold = bits, U08, 6, [5:5], "No", "Yes" + vvtCLAlterFuelTiming = bits, U08, 6, [6:6], "No", "Yes" + unused6-6 = bits, U08, 6, [7:7], "TPS", "MAP" + egoLimit = scalar, U08, 7, "", 1, 0, 0, 16, 0 + ego_min = scalar, U08, 8, "AFR", 0.1, 0.0, 7, 25, 1 + ego_max = scalar, U08, 9, "AFR", 0.1, 0.0, 7, 25, 1 ego_sdelay = scalar, U08, 10, "sec", 1, 0, 0, 120, 0 egoRPM = scalar, U08, 11, "rpm", 100, 0.0, 100, 25500, 0 egoTPSMax = scalar, U08, 12, "%", 1, 0, 0, 120, 0 @@ -587,15 +595,11 @@ page = 7 tpsBinsBoost = array, U08, 72,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 vvtTable = array, U08, 80,[8x8], "%", 1.0, 0.0, 0, 100, 0 rpmBinsVVT = array, U08, 144,[ 8], "RPM", 100.0, 0.0, 100, 25500, 0 - tpsBinsVVT = array, U08, 152,[ 8], "TPS", 1.0, 0.0, 0.0, 255.0, 0 + loadBinsVVT = array, U08, 152,[ 8], { bitStringValue(algorithmUnits , vvtLoadSource) }, 1.0, 0.0, 0.0, 255.0, 0 ;Fuel staging Table stagingTable = array, U08, 160, [8x8], "%", 1.0, 0.0, 0.0, 100.0, 0 rpmBinsStaging= array, U08, 224, [ 8], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 - #if SPEED_DENSITY - mapBinsStaging= array, U08, 232, [ 8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 - #elif ALPHA_N - tpsBinsStaging= array, U08, 232, [ 8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 - #endif + loadBinsStaging= array, U08, 232, [ 8], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 ;-------------------------------------------------- ;Sequential fuel trim tables (Page 8) @@ -603,35 +607,19 @@ page = 7 page = 8 fuelTrim1Table = array, U08, 0,[6x6], "%", 1.0, -128, -50, 50, 0 fuelTrim1rpmBins = array, U08, 36,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim1loadBins = array, U08, 42,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim1loadBins = array, U08, 42,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif + fuelTrim1loadBins = array, U08, 42,[ 6], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 fuelTrim2Table = array, U08, 48,[6x6], "%", 1.0, -128, -50, 50, 0 fuelTrim2rpmBins = array, U08, 84,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim2loadBins = array, U08, 90,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim2loadBins = array, U08, 90,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif + fuelTrim2loadBins = array, U08, 90,[ 6], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 fuelTrim3Table = array, U08, 96,[6x6], "%", 1.0, -128, -50, 50, 0 fuelTrim3rpmBins = array, U08, 132,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim3loadBins = array, U08, 138,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim3loadBins = array, U08, 138,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif + fuelTrim3loadBins = array, U08, 138,[ 6], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 fuelTrim4Table = array, U08, 144,[6x6], "%", 1.0, -128, -50, 50, 0 fuelTrim4rpmBins = array, U08, 180,[ 6], "RPM", 100.0, 0.0, 0, 25500, 0 -#if SPEED_DENSITY - fuelTrim4loadBins = array, U08, 186,[ 6], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - fuelTrim4loadBins = array, U08, 186,[ 6], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif + fuelTrim4loadBins = array, U08, 186,[ 6], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 ;-------------------------------------------------- ;CANBUS control and Auxillary io(Page 9) @@ -884,11 +872,8 @@ page = 10 EMAPPin = bits, U08, 8, [4:7], "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A8", "A10", "A11", "A12", "A13", "A14", "A15" rotarySplitValues = array, U08, 9, [8], "degrees", 1.0, 0.0, 0.0, 40, 0 -#if SPEED_DENSITY - rotarySplitBins = array, U08, 17, [8], "kPa", 2.0, 0.0, 0.0, 511.0, 0 -#elif ALPHA_N - rotarySplitBins = array, U08, 17, [8], "TPS", 2.0, 0.0, 0.0, 100.0, 0 -#endif + rotarySplitBins = array, U08, 17, [8], { bitStringValue(algorithmUnits , algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 + boostSens = scalar, U16, 25, "", 1, 0, 0, 5000, 0 boostIntv = scalar, U08, 27, "ms", 1, 0, 0, 250, 0 stagedInjSizePri = scalar, U16, 28, "cc/min", 1, 0, 0, 1500, 0 @@ -961,19 +946,28 @@ page = 10 ;Things for the 2nd fuel table fuel2Algorithm = bits, U08, 122, [0:2], $loadSourceNames - fuel2Mode = bits, U08, 122, [3:4], "Off", "Multiplied", "Added", "Switched" - unused10_212 = bits, U08, 122, [5:7], "INVALID","1","2","3","4","5","6","INVALID" + fuel2Mode = bits, U08, 122, [3:5], "Off", "Multiplied %", "Added", "Switched - Conditional", "Switched - Input based","INVALID","INVALID","INVALID" + fuel2SwitchVariable = bits, U08, 122, [6:7], "RPM", "MAP", "TPS", "ETH%" + fuel2SwitchValue = scalar, U16, 123, { bitStringValue(algorithmUnits, fuel2SwitchVariable) }, 1.0, 0.0, 0.0, 9000, 0 - unused11_122_191 = array, U08, 123, [69], "RPM", 100.0, 0.0, 100, 25500, 0 + ;All related to the closed loop VVT control + vvtCLholdDuty = scalar, U08, 125, "%", 1.0, 0.0, 0.0, 100.0, 0 + vvtCLKP = scalar, U08, 126, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + vvtCLKI = scalar, U08, 127, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + vvtCLKD = scalar, U08, 128, "%", 1.0, 0.0, 0.0, 200.0, 0 ; * ( 1 byte) + vvtCLMinAng = scalar, U16, 129, "deg", 1.0, 0.0, 0.0, 360.0, 0 ; * ( 1 bytes) + vvtCLMaxAng = scalar, U16, 131, "deg", 1.0, 0.0, 0.0, 360.0, 0 ; * ( 1 bytes) + + unused11_122_191 = array, U08, 126, [58], "RPM", 100.0, 0.0, 100, 25500, 0 ;Page 11 is the fuel map and axis bins only page = 11 - ; 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 - veTable2 = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 - fuelRPM2Bins = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 100.0, 25500.0, 0 - fuelLoad2Bins = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , fuel2Algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 + ; 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 + veTable2 = array, U08, 0, [16x16],"%", 1.0, 0.0, 0.0, 255.0, 0 + fuelRPM2Bins = array, U08, 256, [ 16], "RPM", 100.0, 0.0, 0.0, 25500.0, 0 + fuelLoad2Bins = array, U08, 272, [ 16], { bitStringValue(algorithmUnits , fuel2Algorithm) }, 2.0, 0.0, 0.0, {fuelLoadMax}, 0 ;------------------------------------------------------------------------------- @@ -1021,12 +1015,13 @@ page = 11 requiresPowerCycle = knock_trigger requiresPowerCycle = knock_pullup requiresPowerCycle = idleUpEnabled + requiresPowerCycle = legacyMAP requiresPowerCycle = caninput_sel0a requiresPowerCycle = caninput_sel0b requiresPowerCycle = caninput_sel1a requiresPowerCycle = caninput_sel1b - requiresPowerCycle = caninput_sel2a + requiresPowerCycle = caninput_sel2a requiresPowerCycle = caninput_sel2b requiresPowerCycle = caninput_sel3a requiresPowerCycle = caninput_sel3b @@ -1105,9 +1100,11 @@ page = 11 defaultValue = lnchCtrlTPS, 0 defaultValue = resetControl, 0 defaultValue = bootloaderCaps, 0 - defaultValue = taeTaperMin, 1000 - defaultValue = taeTaperMax, 5000 - ; defaultValue = obd_address, 0 + defaultValue = aeTaperMin, 1000 + defaultValue = aeTaperMax, 5000 + defaultValue = aeMode, 0 ;Set aeMode to TPS + defaultValue = batVoltCorrect, 0 + defaultValue = legacyMAP, 0 ;Default pins defaultValue = fanPin, 0 @@ -1143,13 +1140,10 @@ page = 11 ;These are the limits for each of the load algorithms (Refer to the PC Variables section) ;Order is: MAP TPS IMAP/EMAP ITB UNUSED UNUSED UNUSED UNUSED defaultValue = algorithmLimits, 511 100 511 511 100 100 100 100 -#if SPEED_DENSITY defaultValue = fuelLoadMax, 511 defaultValue = ignLoadMax, 511 -#else defaultValue = fuelLoadMax, 511 defaultValue = ignLoadMax, 511 -#endif controllerPriority = bootloaderCaps @@ -1231,12 +1225,11 @@ menuDialog = main ;subMenu = knockSettings, "Knock Settings" subMenu = rotary_ignition, "Rotary Ignition", { sparkMode == 4 } - menu = "&Starting/Idle" + menu = "&Startup/Idle" subMenu = crankPW, "Cranking Settings" subMenu = primePW, "Priming Pulsewidth" subMenu = warmup, "Warmup Enrichment" - subMenu = ASE, "Afterstart Enrichment - Percentage" - subMenu = ASE_time, "Afterstart Enrichment - Duration" + subMenu = ASE, "Afterstart Enrichment (ASE)" subMenu = std_separator subMenu = idleSettings, "Idle Control" subMenu = iacClosedLoop_curve, "Idle - Closed loop targets", 7, { iacAlgorithm == 3 || iacAlgorithm == 5 } @@ -1280,8 +1273,9 @@ menuDialog = main menuDialog = main menu = "Tools" subMenu = mapCal, "Calibrate Pressure Sensors" + subMenu = batCal, "Calibrate Voltage Reading" subMenu = std_ms2gentherm, "Calibrate Temperature Sensors", 0 - subMenu = std_ms2geno2, "Calibrate AFR Sensor", 0 + subMenu = std_ms2geno2, "Calibrate AFR Sensor", { egoType > 0 } subMenu = sensorFilters, "Set analog sensor filters" menuDialog = main @@ -1336,7 +1330,7 @@ menuDialog = main fanInv = "" fanHyster = "The number of degrees of hysteresis to be used in controlling the fan. Recommended values are between 2 and 5" - taeTime = "The duration of the acceleration enrichment" + aeTime = "The duration of the acceleration enrichment" iacChannels = "The number of output channels used for PWM valves. Select 1 for 2-wire valves or 2 for 3-wire valves." iacStepTime = "Pause time between each step. Values that are too low can cause the motor to behave erratically or not at all" @@ -1368,6 +1362,7 @@ menuDialog = main ignCranklock = "On certain low resolution ignition patterns, the cranking timing can be locked to occur when a pulse is recieved." multiplyMAP = "If enabled, the MAP reading is included directly into the pulsewidth calculation by multiplying the VE lookup value by the MAP:Baro ratio. This results in a flatter VE table that can be easier to tune in some instances. VE table must be retuned when this value is changed." + legacyMAP = "Use the legacy method of reading the MAP sensor that was used prior to the 201905 firmware. This should ONLY be enabled if you are upgrading from a firmware earlier than this" includeAFR = "When enabled, the current AFR reading is incorporated directly in the pulsewidth calculation as a percentage of the current target ratio. VE table must be retuned when this value is changed. " useExtBaro = "By Default, Speeduino will measure barometric pressure upon startup. Optionally however, a 2nd pressure sensor can be used to perform live barometric readings whilst the system is on." @@ -1388,9 +1383,7 @@ menuDialog = main enable_secondarySerial = "This Enables the secondary serial port . Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor " - cltAdvValues = "This curve can be used to advance ignition timing when engine is warming up. This can also be used to warm up the catalytic converters in cold start by retarding timing. Or even as safety feature to retard timign when engine is too hot to prevent knock." - asePct = "Defines the fuel enrichment percentage after start. This is needed to keep engine running after start and it's usually about 5% when engine is hot to 50% when engine is cold." - aseCount = "Will set how long time the After Start Enrichment is applied in seconds. Usually this is second or two when engine is hot up to 10 or twenty on really cold engine." + cltAdvValues = "This curve can be used to advance ignition timing when engine is warming up. This can also be used to warm up the catalytic converters in cold start by retarding timing. Or even as safety feature to retard timing when engine is too hot to prevent knock." ;speeduino_tsCanId = "This is the TsCanId that the Speeduino ECU will respond to. This should match the main controller CAN ID in project properties if it is connected directy to TunerStudio, Otherwise the device ID if connected via CAN passthrough" true_address = "This is the 11bit Can address of the Speeduino ECU " @@ -1641,11 +1634,13 @@ menuDialog = main field = "Output speed", tachoDiv field = "Pulse duration", tachoDuration - dialog = accelEnrichments_center, "" - field = "TPSdot Threshold", tpsThresh - field = "Accel Time", taeTime - field = "Taper Start RPM", taeTaperMin - field = "Taper End RPM", taeTaperMax + dialog = accelEnrichments_center, "Acceleration Enrichment" + field = "Enrichment mode", aeMode + field = "TPSdot Threshold", taeThresh, { aeMode == 0 } + field = "MAPdot Threshold", maeThresh, { aeMode == 1 } + field = "Accel Time", aeTime + field = "Taper Start RPM", aeTaperMin + field = "Taper End RPM", aeTaperMax dialog = accelEnrichments_south, "Decelleration Fuel Cutoff (DFCO)" field = "Enabled", dfcoEnabled @@ -1657,9 +1652,11 @@ menuDialog = main liveGraph = pump_ae_Graph, "AE Graph" graphLine = afr graphLine = TPSdot, "%", -2000, 2000, auto, auto + graphLine = MAPdot, "%", -2000, 2000, auto, auto dialog = accelEnrichments_north, "", xAxis - panel = time_accel_tpsdot_curve + panel = time_accel_tpsdot_curve, { aeMode == 0 } + panel = time_accel_mapdot_curve, { aeMode == 1 } dialog = accelEnrichments, "Acceleration Enrichment" topicHelp = "http://speeduino.com/wiki/index.php/Acceleration_Wizard" @@ -1705,6 +1702,7 @@ menuDialog = main dialog = egoControl, "" topicHelp = "http://speeduino.com/wiki/index.php/AFR/O2" field = "Sensor Type", egoType + field = "#Please ensure you calibrate your O2 sensor in the Tools menu", { egoType } field = "Algorithm", egoAlgorithm, { egoType } field = "Ignition Events per Step", egoCount, { egoType && (egoAlgorithm < 3) } field = "Controller Auth +/-", egoLimit, { egoType && (egoAlgorithm < 3) } @@ -1790,16 +1788,22 @@ menuDialog = main panel = crankingEnrichDialog, Center panel = crankingIgnOptions, South - dialog = ASE, "Afterstart Enrichment(ASE) - Percent Multiplier" - field = "Coolant axis is shared with ASE duration" - field = "" + dialog = ASE_amount, "Enrichment amount (%)", yAxis + field = "Defines the fuel enrichment percentage after start." + field = "This is needed to keep engine running after start" + field = "Common values are 5% when engine is hot to 50% when engine is cold." panel = afterstart_enrichment_curve - dialog = ASE_time, "Afterstart Enrichment(ASE) - Number of seconds to run" - field = "Coolant axis is shared with ASE percentage" - field = "" + dialog = ASE_time, "Duration (s)", yAxis + field = "How long time the After Start Enrichment is applied in seconds." + field = "Usually this is varies from 1-2s when engine is hot up to 20s on a cold engine." panel = afterstart_enrichment_time + dialog = ASE, "Afterstart Enrichment(ASE)", yAxis + field = "#Time and duration curves share common coolant values" + panel = ASE_amount + panel = ASE_time + dialog = triggerSettings,"Trigger Settings",4 topicHelp = "http://speeduino.com/wiki/index.php/Decoders" field = "Trigger Pattern", TrigPattern @@ -1940,6 +1944,9 @@ menuDialog = main ;field = "Bar 1", displayB1, { display } ;field = "Bar 2", displayB2, { display > 2 } + dialog = batCal, "Calibrate voltage reading" + slider = "Battery Voltage reading offset", batVoltCorrect, horizontal + dialog = mapCal, "Calibrate MAP" field = "#MAP Sensor" settingSelector = "Common Pressure Sensors" @@ -1957,6 +1964,7 @@ menuDialog = main field = "kPa At 0.0 Volts", mapMin field = "kPa At 5.0 Volts", mapMax + field = "Use legacy MAP reading",legacyMAP field = "#Baro Sensor" field = "Use external Baro sensor", useExtBaro @@ -2013,7 +2021,7 @@ menuDialog = main dialog = boostSettings, "Boost Control" topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control" field = "Boost Control Enabled", boostEnabled - field = "Boost control type", boostType + field = "Boost control type", boostType, { boostEnabled } field = "Boost output pin", boostPin, { boostEnabled } field = "Boost solenoid freq.", boostFreq, { boostEnabled } @@ -2028,12 +2036,26 @@ menuDialog = main field = "I", boostKI, { boostEnabled && boostMode && boostType == 1 } field = "D", boostKD, { boostEnabled && boostMode && boostType == 1 } + dialog = vvtClosedLoop, "Closed loop" + field = "Increased duty direction", vvtCLDir + field = "Hold duty used", vvtCLUseHold + field = "Hold duty", vvtCLholdDuty, { vvtCLUseHold } + field = "Adjust fuel timing", vvtCLAlterFuelTiming + field = "Cam angle @ 0% duty", vvtCLMinAng + field = "" + field = "Proportional Gain", vvtCLKP + field = "Integral Gain", vvtCLKI + field = "Differential Gain", vvtCLKD + dialog = vvtSettings, "VVT Control" field = "VVT Control Enabled", vvtEnabled - field = "Use VVT map as On / Off only", VVTasOnOff, { vvtEnabled } + field = "VVT Mode", vvtMode, { vvtEnabled } + field = "Load source", vvtLoadSource, { vvtEnabled } + field = "Use VVT map as On / Off only", VVTasOnOff, { vvtEnabled && vvtMode != 2 } field = "VVT output pin", vvtPin, { vvtEnabled } field = "VVT solenoid freq.", vvtFreq, { vvtEnabled } + panel = vvtClosedLoop, { vvtEnabled && vvtMode == 2 } dialog = warmup, "Warmup Enrichment (WUE) - Percent Multiplier" @@ -2104,19 +2126,19 @@ menuDialog = main dialog = outputtestinj1, "Injector CH1", yAxis commandButton = "Off", cmdtestinj1off,{testactive} - commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestinj1on,{!testenabled & testactive} dialog = outputtestinj2, "Injector CH2", yAxis commandButton = "Off", cmdtestinj2off,{testactive} - commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive} + commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive & 0} commandButton = "On", cmdtestinj2on,{!testenabled & testactive} dialog = outputtestinj3, "Injector CH3", yAxis commandButton = "Off", cmdtestinj3off,{testactive} - commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestinj3on,{!testenabled & testactive} dialog = outputtestinj4, "Injector CH4", yAxis commandButton = "Off", cmdtestinj4off,{testactive} - commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestinj4on ,{!testenabled & testactive} dialog = outputtest_injectors, "Injector Driver Output Test", xAxis @@ -2127,19 +2149,19 @@ menuDialog = main dialog = outputtestspk1, "Spark CH1 ", yAxis commandButton = "Off", cmdtestspk1off,{testactive} - commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestspk150dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestspk1on,{!testenabled & testactive} dialog = outputtestspk2, "Spark CH2", yAxis commandButton = "Off", cmdtestspk2off,{testactive} - commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestspk250dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestspk2on,{!testenabled & testactive} dialog = outputtestspk3, "Spark CH3", yAxis commandButton = "Off", cmdtestspk3off,{testactive} - commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestspk350dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestspk3on,{!testenabled & testactive} dialog = outputtestspk4, "Spark CH4", yAxis commandButton = "Off", cmdtestspk4off,{testactive} - commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive} + commandButton = "50% DC", cmdtestspk450dc,{!testenabled & testactive & 0} commandButton = "On", cmdtestspk4on,{!testenabled & testactive} dialog = outputtest_spark, "Spark Driver Output Test", xAxis @@ -2712,14 +2734,21 @@ cmdtestspk450dc = "E\x03\x0C" [CurveEditor] -;time-based accel enrichment +;tps-based accel enrichment curve = time_accel_tpsdot_curve, "TPS based AE" columnLabel = "TPSdot", "Added" xAxis = 0, 1200, 6 yAxis = 0, 250, 4 xBins = taeBins, TPSdot yBins = taeRates - ;gauge = cltGauge + +;map-based accel enrichment + curve = time_accel_mapdot_curve, "MAP based AE" + columnLabel = "MAPdot", "Added" + xAxis = 0, 1200, 6 + yAxis = 0, 250, 4 + xBins = maeBins, MAPdot + yBins = maeRates ; Correction curve for dwell vs battery voltage curve = dwell_correction_curve, "Dwell voltage correction" @@ -2810,13 +2839,8 @@ cmdtestspk450dc = "E\x03\x0C" curve = rotaryTrailing_curve, "Rotary Trailing Split" columnLabel = "Engine load", "Split" yAxis = 0, 40, 4 -#if SPEED_DENSITY - xBins = rotarySplitBins, map - xAxis = 0, 250, 5 -#else - xBins = rotarySplitBins, throttle - xAxis = 0, 100, 5 -#endif + xBins = rotarySplitBins, fuelLoad + xAxis = 0, { fuelLoadMax }, 5 yBins = rotarySplitValues ; Warmup enrichment curve @@ -2841,7 +2865,7 @@ cmdtestspk450dc = "E\x03\x0C" curve = priming_pw_curve, "Priming Pulsewidth" columnLabel = "Coolant", "PW" xAxis = -40, 110, 4 - yAxis = 0, 25.5, 4 + yAxis = 0, 10, 4 xBins = primeBins, coolant yBins = primePulse gauge = cltGauge @@ -2854,6 +2878,7 @@ cmdtestspk450dc = "E\x03\x0C" xBins = aseBins, coolant yBins = asePct gauge = cltGauge + size = 50, 250 ; Afterstart Enrichment time curve = afterstart_enrichment_time, "ASE - Duration" @@ -2863,6 +2888,7 @@ cmdtestspk450dc = "E\x03\x0C" xBins = aseBins, coolant yBins = aseCount gauge = cltGauge + size = 50, 250 ; Warmup enrichment VEAL AFR adjustment curve (Not currently working) ;curve = warmup_afr_curve, "AFR Target Temperature Adustment" @@ -2916,7 +2942,7 @@ cmdtestspk450dc = "E\x03\x0C" [TableEditor] ; table_id, map3d_id, "title", page - table = veTable1Tbl, veTable1Map, "VE Table", 1 + table = veTable1Tbl, veTable1Map, "VE Table", 2 topicHelp = "http://speeduino.com/wiki/index.php/Tuning" ; constant, variable xBins = rpmBins, rpm @@ -2928,10 +2954,10 @@ cmdtestspk450dc = "E\x03\x0C" gridOrient = 250, 0, 340 upDownLabel = "(RICHER)", "(LEANER)" - table = fuelTable2Tbl, fuel2Map, "Fuel Table 2", 1 + table = fuelTable2Tbl, fuel2Map, "Fuel Table 2", 11 topicHelp = "http://speeduino.com/wiki/index.php/Tuning" xBins = fuelRPM2Bins, rpm - yBins = fuelLoad2Bins, fuelLoad + yBins = fuelLoad2Bins, fuelLoad2 xyLabels = "RPM", "Fuel Load: " zBins = veTable2 @@ -2951,11 +2977,7 @@ cmdtestspk450dc = "E\x03\x0C" ;table = afrTbl, afrTableMap, "AFR Table", 5 table = afrTable1Tbl, afrTable1Map, "AFR Table", 5 xBins = rpmBinsAFR, rpm - #if SPEED_DENSITY - yBins = mapBinsAFR, map - #else ALPHA_N - yBins = tpsBinsAFR, throttle - #endif + yBins = loadBinsAFR, fuelLoad zBins = afrTable gridHeight = 1.0 upDownLabel = "RICHER", "LEANER" @@ -2975,18 +2997,16 @@ cmdtestspk450dc = "E\x03\x0C" table = vvtTbl, vvtMap, "VVT control Table", 8 xBins = rpmBinsVVT, rpm - yBins = tpsBinsVVT, throttle + ;yBins = tpsBinsVVT, throttle + yBins = loadBinsVVT, vvtLoad zBins = vvtTable + xyLabels = "RPM", "VVT Load: " gridHeight = 3.0 upDownLabel = "HIGHER", "LOWER" table = stagingTbl, stagingMap, "Fuel Staging Table", 10 xBins = rpmBinsStaging, rpm - #if SPEED_DENSITY - yBins = mapBinsStaging, map - #else ALPHA_N - yBins = tpsBinsStaging, throttle - #endif + yBins = loadBinsStaging, fuelLoad zBins = stagingTable gridHeight = 3.0 upDownLabel = "HIGHER", "LOWER" @@ -2995,40 +3015,28 @@ cmdtestspk450dc = "E\x03\x0C" table = fuelTrimTable1Tbl, fuelTrimTable1Map, "Fuel trim Table 1", 9 topicHelp = "http://speeduino.com/wiki/index.php/Tuning" xBins = fuelTrim1rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim1loadBins, map - #else - yBins = fuelTrim1loadBins, throttle - #endif - zBins = fuelTrim1Table + yBins = fuelTrim1loadBins, fuelLoad + zBins = fuelTrim1Table - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTable2Tbl, fuelTrimTable2Map, "Fuel trim Table 2", 9 topicHelp = "http://speeduino.com/wiki/index.php/Tuning" xBins = fuelTrim2rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim2loadBins, map - #else - yBins = fuelTrim2loadBins, throttle - #endif - zBins = fuelTrim2Table + yBins = fuelTrim2loadBins, fuelLoad + zBins = fuelTrim2Table - gridHeight = 2.0 - gridOrient = 250, 0, 340 - upDownLabel = "(RICHER)", "(LEANER)" + gridHeight = 2.0 + gridOrient = 250, 0, 340 + upDownLabel = "(RICHER)", "(LEANER)" table = fuelTrimTable3Tbl, fuelTrimTable3Map, "Fuel trim Table 3", 9 topicHelp = "http://speeduino.com/wiki/index.php/Tuning" xBins = fuelTrim3rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim3loadBins, map - #else - yBins = fuelTrim3loadBins, throttle - #endif - zBins = fuelTrim3Table + yBins = fuelTrim3loadBins, fuelLoad + zBins = fuelTrim3Table gridHeight = 2.0 gridOrient = 250, 0, 340 @@ -3037,12 +3045,8 @@ cmdtestspk450dc = "E\x03\x0C" table = fuelTrimTable4Tbl, fuelTrimTable4Map, "Fuel trim Table 4", 9 topicHelp = "http://speeduino.com/wiki/index.php/Tuning" xBins = fuelTrim4rpmBins, rpm - #if SPEED_DENSITY - yBins = fuelTrim4loadBins, map - #else - yBins = fuelTrim4loadBins, throttle - #endif - zBins = fuelTrim4Table + yBins = fuelTrim4loadBins, fuelLoad + zBins = fuelTrim4Table gridHeight = 2.0 gridOrient = 250, 0, 340 @@ -3082,7 +3086,7 @@ cmdtestspk450dc = "E\x03\x0C" gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0 pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3 tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 300, 600, 3000, 5000, 0, 0 - veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 + veGauge = veCurr, "VE 1 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0 aseEnrichGauge = ase_enrich, "Afterstart Enrichment","%", 0, 200, 130, 140, 140, 150, 0, 0 batCorrectGauge = batCorrection, "Voltage Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0 @@ -3096,6 +3100,7 @@ cmdtestspk450dc = "E\x03\x0C" mapGauge_psi = map_psi, "Engine MAP (PSI)", "PSI", -15, 100, 0, 20, 200, 245, 0, 0 mapGauge_bar = map_bar, "Engine MAP (BAR)", "Bar", -1, 3, -1, -1, 5, 5, 2, 2 mapGauge_vacBoost = map_vacboost, "Engine MAP (in-Hg/PSI)", "in-Hg/PSI", -30, 30, -30, -30, 30, 30, 1, 1 + baroGauge = baro, "Baro Pressure", "kPa", 0, 255, 0, 20, 200, 245, 0, 0 batteryVoltage = batteryVoltage,"Battery Voltage", "volts", 0, 25, 8, 9, 15, 16, 2, 2 tpsADCGauge = tpsADC, "TPS ADC", "", 0, 255, -1, -1, 256, 256, 0, 0 @@ -3192,7 +3197,7 @@ cmdtestspk450dc = "E\x03\x0C" ; you change it. ochGetCommand = "r\$tsCanId\x30%2o%2c" - ochBlockSize = 92 + ochBlockSize = 94 secl = scalar, U08, 0, "sec", 1.000, 0.000 status1 = scalar, U08, 1, "bits", 1.000, 0.000 @@ -3292,7 +3297,8 @@ cmdtestspk450dc = "E\x03\x0C" ignLoad = scalar, S16, 87, { bitStringValue( algorithmUnits , ignAlgorithm ) }, 1.000, 0.000 dwell = scalar, U16, 89, "ms", 0.001, 0.000 CLIdleTarget = scalar, U08, 91, "RPM", 10.00, 0.000 - + MAPdot = scalar, U08, 92, "kPa/s", 10.00, 0.000 + vvtAngle = scalar, U08, 93, "deg", 1.00, 0.000 #if CELSIUS coolant = { coolantRaw - 40 } ; Temperature readings are offset by 40 to allow for negatives @@ -3306,11 +3312,14 @@ cmdtestspk450dc = "E\x03\x0C" throttle = { tps }, "%" - cycleTime = { rpm ? ( 60000.0 / rpm ) : 0 } - cycleMultiplier = { injLayout == 3 ? 2 : 1 } - strokeMultipler = { twoStroke == 1 ? 2 : 1 } - dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) * strokeMultipler ) : 0 } - stgDutyCycle = { rpm && stagingEnabled ? ( 100.0*pulseWidth3/(cycleTime * cycleMultiplier) * strokeMultipler ) : 0 } + revolutionTime = { rpm ? ( 60000.0 / rpm) : 0 } + strokeMultipler = { twoStroke == 1 ? 1 : 2 } + cycleTime = { revolutionTime * strokeMultipler } + pulseLimit = { cycleTime / nSquirts } + + + dutyCycle = { rpm ? ( 100.0*pulseWidth/pulseLimit ) : 0 } + stgDutyCycle = { rpm && stagingEnabled ? ( 100.0*pulseWidth3/pulseLimit ) : 0 } boostCutOut = { boostCutFuel || boostCutSpark } lambda = { afr / stoich } @@ -3332,6 +3341,9 @@ cmdtestspk450dc = "E\x03\x0C" fuelLoadMax = { (algorithm == 0 || algorithm == 2) ? 511 : 100 } ignLoadMax = { (ignAlgorithm == 0 || ignAlgorithm == 2) ? 511 : 100 } + fuelLoad2 = { fuel2Algorithm == 0 ? map : fuel2Algorithm == 1 ? tps : fuel2Algorithm == 2 ? 0 : 0 } + vvtLoad = { (vvtLoadSource == 0) ? map : tps } + boostTableLimit = { boostType == 0 ? 100 : 511 } ;The maximum value allowed in the boost table. 100 is used for duty cycle, 511 for kpa CLIdleDelta = { CLIdleTarget - rpm } @@ -3374,7 +3386,7 @@ cmdtestspk450dc = "E\x03\x0C" ;entry = baroCorrection, "Gbaro", int, "%d" entry = gammaEnrich, "Gammae", int, "%d" entry = accelEnrich, "Accel Enrich", int, "%d" - entry = veCurr, "VE", int, "%d" + entry = veCurr, "VE1", int, "%d" entry = pulseWidth, "PW", float, "%.1f" entry = afrTarget, "AFR Target", float, "%.3f" entry = pulseWidth, "PW2", float, "%.1f" @@ -3401,6 +3413,7 @@ cmdtestspk450dc = "E\x03\x0C" entry = baro, "Baro Pressure",int, "%d" entry = nitrousOn, "Nitrous", int, "onOff", { n2o_enable > 0 } entry = syncLossCounter, "Sync Loss #", int, "%d" + entry = vvtAngle, "VVT Angle", int, "%d", { vvtMode == 2 } ;;Only show when using close loop vvt entry = auxin_gauge0, "AuxIn CH0", int, "%d" entry = auxin_gauge1, "AuxIn CH1", int, "%d" diff --git a/speeduino/board_avr2560.h b/speeduino/board_avr2560.h index 6695feb7..a8722394 100644 --- a/speeduino/board_avr2560.h +++ b/speeduino/board_avr2560.h @@ -37,7 +37,7 @@ #define FUEL2_COUNTER TCNT3 #define FUEL3_COUNTER TCNT3 #define FUEL4_COUNTER TCNT4 - #define FUEL5_COUNTER TCNT1 + #define FUEL5_COUNTER TCNT4 #define FUEL6_COUNTER TCNT4 //Replaces ignition 4 #define FUEL7_COUNTER TCNT5 //Replaces ignition 3 #define FUEL8_COUNTER TCNT5 //Replaces ignition 2 @@ -46,7 +46,7 @@ #define IGN2_COUNTER TCNT5 #define IGN3_COUNTER TCNT5 #define IGN4_COUNTER TCNT4 - #define IGN5_COUNTER TCNT1 + #define IGN5_COUNTER TCNT4 #define IGN6_COUNTER TCNT4 //Replaces injector 4 #define IGN7_COUNTER TCNT3 //Replaces injector 3 #define IGN8_COUNTER TCNT3 //Replaces injector 2 @@ -55,7 +55,7 @@ #define FUEL2_COMPARE OCR3B #define FUEL3_COMPARE OCR3C #define FUEL4_COMPARE OCR4B - #define FUEL5_COMPARE OCR1C //Shared with FUEL1 + #define FUEL5_COMPARE OCR4C //Shared with FUEL1 #define FUEL6_COMPARE OCR4A //Replaces ignition4 #define FUEL7_COMPARE OCR5C //Replaces ignition3 #define FUEL8_COMPARE OCR5B //Replaces ignition2 @@ -64,7 +64,7 @@ #define IGN2_COMPARE OCR5B #define IGN3_COMPARE OCR5C #define IGN4_COMPARE OCR4A - #define IGN5_COMPARE OCR1C + #define IGN5_COMPARE OCR4C #define IGN6_COMPARE OCR4B //Replaces injector 4 #define IGN7_COMPARE OCR3C //Replaces injector 3 #define IGN8_COMPARE OCR3B //Replaces injector 2 @@ -73,7 +73,7 @@ #define FUEL2_TIMER_ENABLE() TIMSK3 |= (1 << OCIE3B) //Turn on the B compare unit (ie turn on the interrupt) #define FUEL3_TIMER_ENABLE() TIMSK3 |= (1 << OCIE3C) //Turn on the C compare unit (ie turn on the interrupt) #define FUEL4_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4B) //Turn on the B compare unit (ie turn on the interrupt) - #define FUEL5_TIMER_ENABLE() TIMSK1 |= (1 << OCIE1C) // + #define FUEL5_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4C) // #define FUEL6_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4A) // #define FUEL7_TIMER_ENABLE() TIMSK5 |= (1 << OCIE5C) // #define FUEL8_TIMER_ENABLE() TIMSK5 |= (1 << OCIE5B) // @@ -82,7 +82,7 @@ #define FUEL2_TIMER_DISABLE() TIMSK3 &= ~(1 << OCIE3B); //Turn off this output compare unit #define FUEL3_TIMER_DISABLE() TIMSK3 &= ~(1 << OCIE3C); //Turn off this output compare unit #define FUEL4_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4B); //Turn off this output compare unit - #define FUEL5_TIMER_DISABLE() TIMSK1 &= ~(1 << OCIE1C); // + #define FUEL5_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4C); // #define FUEL6_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4A); // #define FUEL7_TIMER_DISABLE() TIMSK5 &= ~(1 << OCIE5C); // #define FUEL8_TIMER_DISABLE() TIMSK5 &= ~(1 << OCIE5B); // @@ -96,7 +96,7 @@ //#define IGN2_TIMER_ENABLE() TIMSK5 |= (1 << OCIE5B) //Turn on the B compare unit (ie turn on the interrupt) //#define IGN3_TIMER_ENABLE() TIMSK5 |= (1 << OCIE5C) //Turn on the C compare unit (ie turn on the interrupt) #define IGN4_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4A) //Turn on the A compare unit (ie turn on the interrupt) - #define IGN5_TIMER_ENABLE() TIMSK1 |= (1 << OCIE1C) //Turn on the A compare unit (ie turn on the interrupt) + #define IGN5_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4C) //Turn on the A compare unit (ie turn on the interrupt) #define IGN6_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4B) //Replaces injector 4 #define IGN7_TIMER_ENABLE() TIMSK3 |= (1 << OCIE3C) //Replaces injector 3 #define IGN8_TIMER_ENABLE() TIMSK3 |= (1 << OCIE3B) //Replaces injector 2 @@ -105,16 +105,16 @@ #define IGN2_TIMER_DISABLE() TIMSK5 &= ~(1 << OCIE5B) //Turn off this output compare unit #define IGN3_TIMER_DISABLE() TIMSK5 &= ~(1 << OCIE5C) //Turn off this output compare unit #define IGN4_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4A) //Turn off this output compare unit - #define IGN5_TIMER_DISABLE() TIMSK1 &= ~(1 << OCIE1C) //Turn off this output compare unit + #define IGN5_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4C) //Turn off this output compare unit #define IGN6_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4B) //Replaces injector 4 #define IGN7_TIMER_DISABLE() TIMSK3 &= ~(1 << OCIE3C) //Replaces injector 3 #define IGN8_TIMER_DISABLE() TIMSK3 &= ~(1 << OCIE3B) //Replaces injector 2 #define MAX_TIMER_PERIOD 262140UL //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 4, as each timer tick is 4uS) - #define MAX_TIMER_PERIOD_SLOW 1048560UL //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 16, as each timer tick is 16uS) - #define uS_TO_TIMER_COMPARE(uS1) (uS1 >> 2) //Converts a given number of uS into the required number of timer ticks until that time has passed + #define MAX_TIMER_PERIOD_SLOW 262140UL //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 16, as each timer tick is 16uS) + #define uS_TO_TIMER_COMPARE(uS1) ((uS1) >> 2) //Converts a given number of uS into the required number of timer ticks until that time has passed //This is a hack until I make all the AVR timers run at the same speed - #define uS_TO_TIMER_COMPARE_SLOW(uS1) (uS1 >> 4) + #define uS_TO_TIMER_COMPARE_SLOW(uS1) ((uS1) >> 2) /* *********************************************************************************************************** @@ -134,11 +134,11 @@ *********************************************************************************************************** * Idle */ - #define IDLE_COUNTER TCNT4 - #define IDLE_COMPARE OCR4C + #define IDLE_COUNTER TCNT1 + #define IDLE_COMPARE OCR1C - #define IDLE_TIMER_ENABLE() TIMSK4 |= (1 << OCIE4C) - #define IDLE_TIMER_DISABLE() TIMSK4 &= ~(1 << OCIE4C) + #define IDLE_TIMER_ENABLE() TIMSK1 |= (1 << OCIE1C) + #define IDLE_TIMER_DISABLE() TIMSK1 &= ~(1 << OCIE1C) /* *********************************************************************************************************** diff --git a/speeduino/board_avr2560.ino b/speeduino/board_avr2560.ino index d4df8657..612837f0 100644 --- a/speeduino/board_avr2560.ino +++ b/speeduino/board_avr2560.ino @@ -3,6 +3,18 @@ #include "globals.h" #include "auxiliaries.h" +// Prescaler values for timers 1-3-4-5. Refer to www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg +#define TIMER_PRESCALER_OFF ((0<= 2) { - int cmdCombined = word(Serial.read(), Serial.read()); + byte cmdGroup = Serial.read(); + byte cmdValue = Serial.read(); + int cmdCombined = word(cmdGroup, cmdValue); if (currentStatus.RPM == 0) { commandButtons(cmdCombined); } cmdPending = false; @@ -173,6 +175,7 @@ void command() break; case 'P': // set the current page + //This is a legacy function and is no longer used by TunerStudio. It is maintained for compatibility with other systems //A 2nd byte of data is required after the 'P' specifying the new page number. cmdPending = true; @@ -180,9 +183,21 @@ void command() { currentPage = Serial.read(); //This converts the ascii number char into binary. Note that this will break everyything if there are ever more than 48 pages (48 = asci code for '0') - if (currentPage >= '0') { currentPage -= '0'; } + if ((currentPage >= '0') && (currentPage <= '9')) // 0 - 9 + { + currentPage -= 48; + } + else if ((currentPage >= 'a') && (currentPage <= 'f')) // 10 - 15 + { + currentPage -= 87; + } + else if ((currentPage >= 'A') && (currentPage <= 'F')) + { + currentPage -= 55; + } + // Detecting if the current page is a table/map - if ( (currentPage == veMapPage) || (currentPage == ignMapPage) || (currentPage == afrMapPage) ) { isMap = true; } + if ( (currentPage == veMapPage) || (currentPage == ignMapPage) || (currentPage == afrMapPage) || (currentPage == fuelMap2Page) ) { isMap = true; } else { isMap = false; } cmdPending = false; } @@ -223,7 +238,7 @@ void command() break; case 'Q': // send code version - Serial.print(F("speeduino 201904-dev")); + Serial.print(F("speeduino 201906-dev")); break; case 'r': //New format for the optimised OutputChannels @@ -253,12 +268,12 @@ void command() break; case 'S': // send code version - Serial.print(F("Speeduino 2019.04-dev")); + Serial.print(F("Speeduino 2019.06-dev")); currentStatus.secl = 0; //This is required in TS3 due to its stricter timings break; case 'T': //Send 256 tooth log entries to Tuner Studios tooth logger - if(currentStatus.toothLogEnabled == true) { sendToothLog(false); } //Sends tooth log values as ints + if(currentStatus.toothLogEnabled == true) { sendToothLog(); } //Sends tooth log values as ints else if (currentStatus.compositeLogEnabled == true) { sendCompositeLog(); } break; @@ -401,7 +416,7 @@ void command() break; case 'z': //Send 256 tooth log entries to a terminal emulator - sendToothLog(true); //Sends tooth log values as chars + sendToothLog(); //Sends tooth log values as chars break; case '`': //Custom 16u2 firmware is making its presence known @@ -482,7 +497,7 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) requestCount++; } - currentStatus.spark ^= (-currentStatus.hasSync ^ currentStatus.spark) & (1 << BIT_SPARK_SYNC); //Set the sync bit of the Spark variable to match the hasSync variable + currentStatus.spark ^= (-currentStatus.hasSync ^ currentStatus.spark) & (1U << BIT_SPARK_SYNC); //Set the sync bit of the Spark variable to match the hasSync variable fullStatus[0] = currentStatus.secl; //secl is simply a counter that increments each second. Used to track unexpected resets (Which will reset this count to 0) fullStatus[1] = currentStatus.status1; //status1 Bitfield @@ -500,7 +515,7 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[13] = currentStatus.wueCorrection; //Warmup enrichment (%) fullStatus[14] = lowByte(currentStatus.RPM); //rpm HB fullStatus[15] = highByte(currentStatus.RPM); //rpm LB - fullStatus[16] = (byte)(currentStatus.TAEamount >> 1); //TPS acceleration enrichment (%) divided by 2 (Can exceed 255) + fullStatus[16] = (byte)(currentStatus.AEamount >> 1); //TPS acceleration enrichment (%) divided by 2 (Can exceed 255) fullStatus[17] = currentStatus.corrections; //Total GammaE (%) fullStatus[18] = currentStatus.VE; //Current VE 1 (%) fullStatus[19] = currentStatus.afrTarget; @@ -593,6 +608,7 @@ void sendValues(uint16_t offset, uint16_t packetLength, byte cmd, byte portNum) fullStatus[90] = highByte(currentStatus.dwell); fullStatus[91] = currentStatus.CLIdleTarget; fullStatus[92] = currentStatus.mapDOT; + fullStatus[93] = currentStatus.vvtAngle; for(byte x=0; x= currentStatus.TAEEndTime ) + if( micros_safe() >= currentStatus.AEEndTime ) { //Time to turn enrichment off BIT_CLEAR(currentStatus.engine, BIT_ENGINE_ACC); - currentStatus.TAEamount = 0; + currentStatus.AEamount = 0; accelValue = 100; - currentStatus.tpsDOT = 0; + + //Reset the relevant DOT value to 0 + if(configPage2.aeMode == AE_MODE_MAP) { currentStatus.mapDOT = 0; } + else if(configPage2.aeMode == AE_MODE_TPS) { currentStatus.tpsDOT = 0; } } else { //Enrichment still needs to keep running. Simply return the total TAE amount - accelValue = currentStatus.TAEamount; + accelValue = currentStatus.AEamount; } } else { - int8_t TPS_change = (currentStatus.TPS - currentStatus.TPSlast); - //Check for deceleration (Deceleration adjustment not yet supported) - //Also check for only very small movement (Movement less than or equal to 2% is ignored). This not only means we can skip the lookup, but helps reduce false triggering around 0-2% throttle openings - if (TPS_change <= 2) + if(configPage2.aeMode == AE_MODE_MAP) { - accelValue = 100; - currentStatus.tpsDOT = 0; - } - else - { - //If TAE isn't currently turned on, need to check whether it needs to be turned on - int rateOfChange = ldiv(1000000, (currentStatus.TPS_time - currentStatus.TPSlast_time)).quot * TPS_change; //This is the % per second that the TPS has moved - currentStatus.tpsDOT = rateOfChange / 10; //The TAE bins are divided by 10 in order to allow them to be stored in a byte. Faster as this than divu10 + int16_t MAP_change = (currentStatus.MAP - MAPlast); - if (rateOfChange > configPage2.tpsThresh) + if (MAP_change <= 2) { - BIT_SET(currentStatus.engine, BIT_ENGINE_ACC); //Mark accleration enrichment as active. - currentStatus.TAEEndTime = micros_safe() + ((unsigned long)configPage2.aeTime * 10000); //Set the time in the future where the enrichment will be turned off. taeTime is stored as mS / 10, so multiply it by 100 to get it in uS - accelValue = table2D_getValue(&taeTable, currentStatus.tpsDOT); + accelValue = 100; + currentStatus.mapDOT = 0; + } + else + { + //If MAE isn't currently turned on, need to check whether it needs to be turned on + int rateOfChange = ldiv(1000000, (MAP_time - MAPlast_time)).quot * MAP_change; //This is the % per second that the TPS has moved + currentStatus.mapDOT = rateOfChange / 10; //The MAE bins are divided by 10 in order to allow them to be stored in a byte. Faster as this than divu10 - //Apply the taper to the above - //The RPM settings are stored divided by 100: - uint16_t trueTaperMin = configPage2.taeTaperMin * 100; - uint16_t trueTaperMax = configPage2.taeTaperMax * 100; - if (currentStatus.RPM > trueTaperMin) + if (rateOfChange > configPage2.maeThresh) { - if(currentStatus.RPM > trueTaperMax) { accelValue = 0; } //RPM is beyond taper max limit, so accel enrich is turned off - else + BIT_SET(currentStatus.engine, BIT_ENGINE_ACC); //Mark accleration enrichment as active. + currentStatus.AEEndTime = micros_safe() + ((unsigned long)configPage2.aeTime * 10000); //Set the time in the future where the enrichment will be turned off. taeTime is stored as mS / 10, so multiply it by 100 to get it in uS + accelValue = table2D_getValue(&maeTable, currentStatus.mapDOT); + + //Apply the taper to the above + //The RPM settings are stored divided by 100: + uint16_t trueTaperMin = configPage2.aeTaperMin * 100; + uint16_t trueTaperMax = configPage2.aeTaperMax * 100; + if (currentStatus.RPM > trueTaperMin) { - int16_t taperRange = trueTaperMax - trueTaperMin; - int16_t taperPercent = ((currentStatus.RPM - trueTaperMin) * 100) / taperRange; //The percentage of the way through the RPM taper range - accelValue = percentage((100-taperPercent), accelValue); //Calculate the above percentage of the calculated accel amount. + if(currentStatus.RPM > trueTaperMax) { accelValue = 0; } //RPM is beyond taper max limit, so accel enrich is turned off + else + { + int16_t taperRange = trueTaperMax - trueTaperMin; + int16_t taperPercent = ((currentStatus.RPM - trueTaperMin) * 100) / taperRange; //The percentage of the way through the RPM taper range + accelValue = percentage((100-taperPercent), accelValue); //Calculate the above percentage of the calculated accel amount. + } } - } - accelValue = 100 + accelValue; //Add the 100 normalisation to the calculated amount + accelValue = 100 + accelValue; //Add the 100 normalisation to the calculated amount + } //MAE Threshold } } - } + else if(configPage2.aeMode == AE_MODE_TPS) + { + + int8_t TPS_change = (currentStatus.TPS - TPSlast); + //Check for deceleration (Deceleration adjustment not yet supported) + //Also check for only very small movement (Movement less than or equal to 2% is ignored). This not only means we can skip the lookup, but helps reduce false triggering around 0-2% throttle openings + if (TPS_change <= 2) + { + accelValue = 100; + currentStatus.tpsDOT = 0; + } + else + { + //If TAE isn't currently turned on, need to check whether it needs to be turned on + int rateOfChange = ldiv(1000000, (TPS_time - TPSlast_time)).quot * TPS_change; //This is the % per second that the TPS has moved + currentStatus.tpsDOT = rateOfChange / 10; //The TAE bins are divided by 10 in order to allow them to be stored in a byte. Faster as this than divu10 + + if (rateOfChange > configPage2.taeThresh) + { + BIT_SET(currentStatus.engine, BIT_ENGINE_ACC); //Mark accleration enrichment as active. + currentStatus.AEEndTime = micros_safe() + ((unsigned long)configPage2.aeTime * 10000); //Set the time in the future where the enrichment will be turned off. taeTime is stored as mS / 10, so multiply it by 100 to get it in uS + accelValue = table2D_getValue(&taeTable, currentStatus.tpsDOT); + + //Apply the taper to the above + //The RPM settings are stored divided by 100: + uint16_t trueTaperMin = configPage2.aeTaperMin * 100; + uint16_t trueTaperMax = configPage2.aeTaperMax * 100; + if (currentStatus.RPM > trueTaperMin) + { + if(currentStatus.RPM > trueTaperMax) { accelValue = 0; } //RPM is beyond taper max limit, so accel enrich is turned off + else + { + int16_t taperRange = trueTaperMax - trueTaperMin; + int16_t taperPercent = ((currentStatus.RPM - trueTaperMin) * 100) / taperRange; //The percentage of the way through the RPM taper range + accelValue = percentage((100-taperPercent), accelValue); //Calculate the above percentage of the calculated accel amount. + } + } + accelValue = 100 + accelValue; //Add the 100 normalisation to the calculated amount + } //TAE Threshold + } //TPS change > 2 + } //AE Mode + } //AE active return accelValue; } @@ -450,11 +499,11 @@ static inline int8_t correctionIATretard(int8_t advance) static inline int8_t correctionCLTadvance(int8_t advance) { - byte ignCLTValue = advance; + int8_t ignCLTValue = advance; //Adjust the advance based on CLT. - int8_t advanceCLTadjust = table2D_getValue(&CLTAdvanceTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); - ignCLTValue = (advance + advanceCLTadjust/10); - + int8_t advanceCLTadjust = (int16_t)(table2D_getValue(&CLTAdvanceTable, currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET)) - 15; + ignCLTValue = (advance + advanceCLTadjust); + return ignCLTValue; } diff --git a/speeduino/crankMaths.h b/speeduino/crankMaths.h index f89d1ea4..330fffcb 100644 --- a/speeduino/crankMaths.h +++ b/speeduino/crankMaths.h @@ -10,9 +10,9 @@ //#define fastDegreesToUS(targetDegrees) ((targetDegrees) * (unsigned long)timePerDegree) #define fastDegreesToUS(targetDegrees) (((targetDegrees) * (unsigned long)timePerDegreex16) >> 4) //#define fastTimeToAngle(time) (((unsigned long)time * degreesPeruSx2048) / 2048) //Divide by 2048 will be converted at compile time to bitshift -#define fastTimeToAngle(time) (((unsigned long)time * degreesPeruSx32768) / 32768) //Divide by 32768 will be converted at compile time to bitshift +#define fastTimeToAngle(time) (((unsigned long)(time) * degreesPeruSx32768) / 32768) //Divide by 32768 will be converted at compile time to bitshift -#define ignitionLimits(angle) ( (((int16_t)angle) >= CRANK_ANGLE_MAX_IGN) ? (angle - CRANK_ANGLE_MAX_IGN) : ( (angle < 0) ? (angle + CRANK_ANGLE_MAX_IGN) : angle) ) +#define ignitionLimits(angle) ( (((int16_t)(angle)) >= CRANK_ANGLE_MAX_IGN) ? ((angle) - CRANK_ANGLE_MAX_IGN) : ( ((int16_t)(angle) < 0) ? ((angle) + CRANK_ANGLE_MAX_IGN) : (angle)) ) unsigned long angleToTime(int16_t, byte); diff --git a/speeduino/decoders.h b/speeduino/decoders.h index f6337078..901d14af 100644 --- a/speeduino/decoders.h +++ b/speeduino/decoders.h @@ -187,6 +187,7 @@ byte checkSyncToothCount; //How many teeth must've been seen on this revolution unsigned long elapsedTime; unsigned long lastCrankAngleCalc; int16_t lastToothCalcAdvance = 99; //Invalid value here forces calculation of this on first main loop +unsigned long lastVVTtime; //The time between the vvt reference pulse and the last crank pulse int16_t ignition1EndTooth = 0; int16_t ignition2EndTooth = 0; diff --git a/speeduino/decoders.ino b/speeduino/decoders.ino index 8ccbb498..ffceea66 100644 --- a/speeduino/decoders.ino +++ b/speeduino/decoders.ino @@ -634,7 +634,7 @@ void triggerSetEndTeeth_DualWheel() /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Basic Distributor Desc: Tooth equal to the number of cylinders are evenly spaced on the cam. No position sensing (Distributor is retained) so crank angle is a made up figure based purely on the first teeth to be seen -Note: This is a very simple decoder. See http://www.megamanual.com/ms2/GM_7pinHEI.htm +Note: This is a very simple decoder. See www.megamanual.com/ms2/GM_7pinHEI.htm */ void triggerSetup_BasicDistributor() { @@ -662,11 +662,11 @@ void triggerPri_BasicDistributor() { if( (toothCurrentCount == triggerActualTeeth) || (currentStatus.hasSync == false) ) //Check if we're back to the beginning of a revolution { - toothCurrentCount = 1; //Reset the counter - toothOneMinusOneTime = toothOneTime; - toothOneTime = curTime; - currentStatus.hasSync = true; - currentStatus.startRevolutions++; //Counter + toothCurrentCount = 1; //Reset the counter + toothOneMinusOneTime = toothOneTime; + toothOneTime = curTime; + currentStatus.hasSync = true; + currentStatus.startRevolutions++; //Counter } else { @@ -779,7 +779,7 @@ void triggerSetEndTeeth_BasicDistributor() Name: GM7X Desc: GM 7X trigger wheel. It has six equally spaced teeth and a seventh tooth for cylinder identification. Note: Within the code below, the sync tooth is referred to as tooth #3 rather than tooth #7. This makes for simpler angle calculations -https://speeduino.com/forum/download/file.php?id=4743 +www.speeduino.com/forum/download/file.php?id=4743 */ void triggerSetup_GM7X() { @@ -914,7 +914,7 @@ void triggerSetEndTeeth_GM7X() /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Mitsubishi 4G63 / NA/NB Miata + MX-5 / 4/2 Desc: TBA -Note: https://raw.githubusercontent.com/noisymime/speeduino/master/reference/wiki/decoders/4g63_trace.png +Note: raw.githubusercontent.com/noisymime/speeduino/master/reference/wiki/decoders/4g63_trace.png Tooth #1 is defined as the next crank tooth after the crank signal is HIGH when the cam signal is falling. Tooth number one is at 355* ATDC */ @@ -965,21 +965,6 @@ void triggerSetup_4G63() triggerActualTeeth = 8; } - /* - * https://forums.libreems.org/attachment.php?aid=34 - toothAngles[0] = 715; //Falling edge of tooth #1 - toothAngles[1] = 49; //Falling edge of wide cam - toothAngles[2] = 105; //Rising edge of tooth #2 - toothAngles[3] = 175; //Falling edge of tooth #2 - toothAngles[4] = 229; //Rising edge of narrow cam tooth (??) - toothAngles[5] = 285; //Rising edge of tooth #3 - toothAngles[6] = 319; //Falling edge of narrow cam tooth - toothAngles[7] = 355; //falling edge of tooth #3 - toothAngles[8] = 465; //Rising edge of tooth #4 - toothAngles[9] = 535; //Falling edge of tooth #4 - toothAngles[10] = 535; //Rising edge of wide cam tooth - toothAngles[11] = 645; //Rising edge of tooth #1 - */ triggerFilterTime = 1500; //10000 rpm, assuming we're triggering on both edges off the crank tooth. triggerSecFilterTime = (int)(1000000 / (MAX_RPM / 60 * 2)) / 2; //Same as above, but fixed at 2 teeth on the secondary input and divided by 2 (for cam speed) @@ -1365,7 +1350,7 @@ void triggerSetEndTeeth_4G63() Name: GM Desc: TBA Note: Useful references: -http://www.vems.hu/wiki/index.php?page=MembersPage%2FJorgenKarlsson%2FTwentyFourX +www.vems.hu/wiki/index.php?page=MembersPage%2FJorgenKarlsson%2FTwentyFourX Provided that the cam signal is used, this decoder simply counts the teeth and then looks their angles up against a lookup table. The cam signal is used to determine tooth #1 */ void triggerSetup_24X() @@ -1488,7 +1473,7 @@ Name: Jeep 2000 Desc: For '91 to 2000 6 cylinder Jeep engines Note: Quite similar to the 24X setup. 24 crank teeth over 720 degrees, in groups of 4. Crank wheel is high for 360 crank degrees. AS we only need timing within 360 degrees, only 12 tooth angles are defined. Tooth number 1 represents the first tooth seen after the cam signal goes high -http://speeduino.com/forum/download/file.php?id=205 +www.speeduino.com/forum/download/file.php?id=205 */ void triggerSetup_Jeep2000() { @@ -1808,7 +1793,7 @@ void triggerSetEndTeeth_HondaD17() /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Miata '99 to '05 -Desc: TBA (See: http://forum.diyefi.org/viewtopic.php?f=56&t=1077) +Desc: TBA (See: www.forum.diyefi.org/viewtopic.php?f=56&t=1077) Note: 4x 70 degree duration teeth running at cam speed. Believed to be at the same angles as the 4g63 decoder Tooth #1 is defined as the next crank tooth after the crank signal is HIGH when the cam signal is falling. Tooth number one is at 355* ATDC @@ -1956,6 +1941,12 @@ void triggerSec_Miata9905() secondaryToothCount++; //TODO Add some secondary filtering here + + //Record the VVT tooth time + if( (toothCurrentCount == 1) && (curTime2 > toothLastToothTime) ) + { + lastVVTtime = curTime2 - toothLastToothTime; + } } } @@ -2290,7 +2281,7 @@ void triggerSetEndTeeth_non360() /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Nissan 360 tooth with cam Desc: -Note: https://wiki.r31skylineclub.com/index.php/Crank_Angle_Sensor +Note: wiki.r31skylineclub.com/index.php/Crank_Angle_Sensor */ void triggerSetup_Nissan360() { @@ -2767,7 +2758,7 @@ void triggerSetEndTeeth_Subaru67() /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Name: Daihatsu +1 trigger for 3 and 4 cylinder engines Desc: Tooth equal to the number of cylinders are evenly spaced on the cam. No position sensing (Distributor is retained) so crank angle is a made up figure based purely on the first teeth to be seen -Note: This is a very simple decoder. See http://www.megamanual.com/ms2/GM_7pinHEI.htm +Note: This is a very simple decoder. See www.megamanual.com/ms2/GM_7pinHEI.htm */ void triggerSetup_Daihatsu() { @@ -3070,7 +3061,7 @@ void triggerSetEndTeeth_Harley() /* Name: 36-2-2-2 trigger wheel wheel Desc: A crank based trigger with a nominal 36 teeth, but 6 of these removed in 3 groups of 2. 2 of these groups are located concurrently. -Note: http://thefactoryfiveforum.com/attachment.php?attachmentid=34279&d=1412431418 +Note: www.thefactoryfiveforum.com/attachment.php?attachmentid=34279&d=1412431418 */ void triggerSetup_ThirtySixMinus222() { diff --git a/speeduino/globals.h b/speeduino/globals.h index 65827659..15160931 100644 --- a/speeduino/globals.h +++ b/speeduino/globals.h @@ -61,8 +61,8 @@ #else //libmaple core aka STM32DUINO //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value #ifndef portOutputRegister - #define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) - #define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) + #define portOutputRegister(port) ((volatile byte *)( &((port)->regs->ODR) )) + #define portInputRegister(port) ((volatile byte *)( &((port)->regs->IDR) )) #endif #endif #elif defined(__SAMD21G18A__) @@ -76,11 +76,11 @@ #include BOARD_H //Note that this is not a real file, it is defined in globals.h. //Handy bitsetting macros -#define BIT_SET(a,b) ((a) |= (1<<(b))) -#define BIT_CLEAR(a,b) ((a) &= ~(1<<(b))) -#define BIT_CHECK(var,pos) !!((var) & (1<<(pos))) +#define BIT_SET(a,b) ((a) |= (1U<<(b))) +#define BIT_CLEAR(a,b) ((a) &= ~(1U<<(b))) +#define BIT_CHECK(var,pos) !!((var) & (1U<<(pos))) -#define interruptSafe(c) noInterrupts(); c interrupts(); //Wraps any code between nointerrupt and interrupt calls +#define interruptSafe(c) (noInterrupts(); {c} interrupts();) //Wraps any code between nointerrupt and interrupt calls #define MS_IN_MINUTE 60000 #define US_IN_MINUTE 60000000 @@ -137,7 +137,7 @@ #define BIT_STATUS3_RESET_PREVENT 0 //Indicates whether reset prevention is enabled #define BIT_STATUS3_NITROUS 1 -#define BIT_STATUS3_UNUSED2 2 +#define BIT_STATUS3_FUEL2_ACTIVE 2 #define BIT_STATUS3_UNUSED3 3 #define BIT_STATUS3_UNUSED4 4 #define BIT_STATUS3_NSQUIRTS1 5 @@ -195,6 +195,9 @@ #define NITROUS_STAGE1 1 #define NITROUS_STAGE2 2 +#define AE_MODE_TPS 0 +#define AE_MODE_MAP 1 + #define KNOCK_MODE_OFF 0 #define KNOCK_MODE_DIGITAL 1 #define KNOCK_MODE_ANALOG 2 @@ -202,7 +205,13 @@ #define FUEL2_MODE_OFF 0 #define FUEL2_MODE_MULTIPLY 1 #define FUEL2_MODE_ADD 2 -#define FUEL2_MODE_SWITCH 3 +#define FUEL2_MODE_CONDITIONAL_SWITCH 3 +#define FUEL2_MODE_INPUT_SWITCH 4 + +#define FUEL2_CONDITION_RPM 0 +#define FUEL2_CONDITION_MAP 1 +#define FUEL2_CONDITION_TPS 2 +#define FUEL2_CONDITION_ETH 3 #define RESET_CONTROL_DISABLED 0 #define RESET_CONTROL_PREVENT_WHEN_RUNNING 1 @@ -212,11 +221,17 @@ #define OPEN_LOOP_BOOST 0 #define CLOSED_LOOP_BOOST 1 + +#define VVT_MODE_ONOFF 0 +#define VVT_MODE_OPEN_LOOP 1 +#define VVT_MODE_CLOSED_LOOP 2 +#define VVTCL_LOAD_MAP 0 +#define VVTCL_LOAD_TPS 1 + #define FOUR_STROKE 0 #define TWO_STROKE 1 #define MAX_RPM 18000 //This is the maximum rpm that the ECU will attempt to run at. It is NOT related to the rev limiter, but is instead dictates how fast certain operations will be allowed to run. Lower number gives better performance -#define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke //Table sizes #define CALIBRATION_TABLE_SIZE 512 @@ -233,7 +248,7 @@ const char TSfirmwareVersion[] PROGMEM = "Speeduino"; const byte data_structure_version = 2; //This identifies the data structure when reading / writing. #define NUM_PAGES 12 -const uint16_t npage_size[NUM_PAGES] = {0,128,288,288,128,288,128,240,192,192,192,288}; +const uint16_t npage_size[NUM_PAGES] = {0,128,288,288,128,288,128,240,192,192,192,288}; /**< This array stores the size (in bytes) of each configuration page */ #define MAP_PAGE_SIZE 288 struct table3D fuelTable; //16x16 fuel map @@ -248,6 +263,7 @@ struct table3D trim2Table; //6x6 Fuel trim 2 map struct table3D trim3Table; //6x6 Fuel trim 3 map struct table3D trim4Table; //6x6 Fuel trim 4 map struct table2D taeTable; //4 bin TPS Acceleration Enrichment map (2D) +struct table2D maeTable; struct table2D WUETable; //10 bin Warm Up Enrichment map (2D) struct table2D ASETable; //4 bin After Start Enrichment map (2D) struct table2D ASECountTable; //4 bin After Start duration map (2D) @@ -370,9 +386,6 @@ struct statuses { int16_t EMAPADC; byte baro; //Barometric pressure is simply the inital MAP reading, taken before the engine is running. Alternatively, can be taken from an external sensor byte TPS; /**< The current TPS reading (0% - 100%). Is the tpsADC value after the calibration is applied */ - byte TPSlast; /**< The previous TPS reading */ - unsigned long TPS_time; //The time the TPS sample was taken - unsigned long TPSlast_time; //The time the previous TPS sample was taken byte tpsADC; /**< 0-255 byte representation of the TPS. Downsampled from the original 10-bit reading, but before any calibration is applied */ byte tpsDOT; /**< TPS delta over time. Measures the % per second that the TPS is changing. Value is divided by 10 to be stored in a byte */ byte mapDOT; /**< MAP delta over time. Measures the kpa per second that the MAP is changing. Value is divided by 10 to be stored in a byte */ @@ -393,7 +406,7 @@ struct statuses { byte battery10; /**< The current BRV in volts (multiplied by 10. Eg 12.5V = 125) */ int8_t advance; /**< Signed 8 bit as advance can now go negative (ATDC) */ byte corrections; /**< The total current corrections % amount */ - int16_t TAEamount; /**< The amount of accleration enrichment currently being applied */ + int16_t AEamount; /**< The amount of accleration enrichment currently being applied */ byte egoCorrection; /**< The amount of closed loop AFR enrichment currently being applied */ byte wueCorrection; /**< The amount of warmup enrichment currently being applied */ byte batCorrection; /**< The amount of battery voltage enrichment currently being applied */ @@ -407,11 +420,11 @@ struct statuses { bool idleUpActive; /**< Whether the externally controlled idle up is currently active */ bool fanOn; /**< Whether or not the fan is turned on */ volatile byte ethanolPct; /**< Ethanol reading (if enabled). 0 = No ethanol, 100 = pure ethanol. Eg E85 = 85. */ - unsigned long TAEEndTime; /**< The target end time used whenever TAE is turned on */ + unsigned long AEEndTime; /**< The target end time used whenever AE is turned on */ volatile byte status1; volatile byte spark; volatile byte spark2; - byte engine; + uint8_t engine; unsigned int PW1; //In uS unsigned int PW2; //In uS unsigned int PW3; //In uS @@ -451,6 +464,8 @@ struct statuses { bool knockActive; bool toothLogEnabled; bool compositeLogEnabled; + byte vvtAngle; + byte targetVVTAngle; }; struct statuses currentStatus; //The global status object @@ -463,10 +478,11 @@ struct statuses currentStatus; //The global status object */ struct config2 { + byte unused2_0; byte unused2_1; - byte unused2_2; - byte unused2_3; //Was ASE - byte unused2_4; //Was ASECount + byte unused2_2; //Was ASE + byte aeMode : 2; /**< Acceleration Enrichment mode. 0 = TPS, 1 = MAP. Values 2 and 3 reserved for potential future use (ie blended TPS / MAP) */ + byte unused1_3c : 6; byte wueValues[10]; //Warm up enrichment array (10 bytes) byte crankingPct; //Cranking enrichment byte pinMapping; // The board / ping mapping to be used @@ -474,7 +490,7 @@ struct config2 { byte tachoDiv : 2; //Whether to change the tacho speed byte tachoDuration; //The duration of the tacho pulse in mS byte maeThresh; /**< The MAPdot threshold that must be exceeded before AE is engaged */ - byte tpsThresh; /**< The TPSdot threshold that must be exceeded before AE is engaged */ + byte taeThresh; /**< The TPSdot threshold that must be exceeded before AE is engaged */ byte aeTime; //Display config bits @@ -518,7 +534,7 @@ struct config2 { //config3 in ini byte engineType : 1; byte flexEnabled : 1; - byte unused2_38c : 1; //"Speed Density", "Alpha-N" + byte legacyMAP : 1; byte baroCorr : 1; byte injLayout : 2; byte perToothIgn : 1; @@ -545,8 +561,8 @@ struct config2 { byte idleUpEnabled : 1; byte idleUpAdder; - byte taeTaperMin; - byte taeTaperMax; + byte aeTaperMin; + byte aeTaperMax; byte iacCLminDuty; byte iacCLmaxDuty; @@ -640,12 +656,13 @@ struct config4 { byte ADCFILTER_BARO; byte cltAdvBins[6]; /**< Coolant Temp timing advance curve bins */ - byte cltAdvValues[6]; /**< Coolant timing advance curve values */ + byte cltAdvValues[6]; /**< Coolant timing advance curve values. These are translated by 15 to allow for negative values */ byte maeBins[4]; /**< MAP based AE MAPdot bins */ byte maeRates[4]; /**< MAP based AE values */ - byte unused2_91[37]; + int8_t batVoltCorrect; /**< Battery voltage calibration offset */ + byte unused2_91[36]; #if defined(CORE_AVR) }; @@ -668,7 +685,12 @@ struct config6 { byte egoKD; byte egoTemp; //The temperature above which closed loop functions byte egoCount; //The number of ignition cylces per step - byte unused6_6; + byte vvtMode : 2; //Valid VVT modes are 'on/off', 'open loop' and 'closed loop' + byte vvtLoadSource : 2; //Load source for VVT (TPS or MAP) + byte vvtCLDir : 1; //VVT direction (advance or retard) + byte vvtCLUseHold : 1; //Whether or not to use a hold duty cycle (Most cases are Yes) + byte vvtCLAlterFuelTiming : 1; + byte unused6_6 : 1; byte egoLimit; //Maximum amount the closed loop will vary the fueling byte ego_min; //AFR must be above this for closed loop to function byte ego_max; //AFR must be below this for closed loop to function @@ -831,85 +853,101 @@ Page 10 - No specific purpose. Created initially for the cranking enrich curve See ini file for further info (Config Page 11 in the ini) */ struct config10 { - byte crankingEnrichBins[4]; - byte crankingEnrichValues[4]; + byte crankingEnrichBins[4]; //Bytes 0-4 + byte crankingEnrichValues[4]; //Bytes 4-7 + //Byte 8 byte rotaryType : 2; byte stagingEnabled : 1; byte stagingMode : 1; byte EMAPPin : 4; - byte rotarySplitValues[8]; - byte rotarySplitBins[8]; + byte rotarySplitValues[8]; //Bytes 9-16 + byte rotarySplitBins[8]; //Bytes 17-24 - uint16_t boostSens; - byte boostIntv; - uint16_t stagedInjSizePri; - uint16_t stagedInjSizeSec; - byte lnchCtrlTPS; + uint16_t boostSens; //Bytes 25-26 + byte boostIntv; //Byte 27 + uint16_t stagedInjSizePri; //Bytes 28-29 + uint16_t stagedInjSizeSec; //Bytes 30-31 + byte lnchCtrlTPS; //Byte 32 - uint8_t flexBoostBins[6]; - int16_t flexBoostAdj[6]; //kPa to be added to the boost target @ current ethanol (negative values allowed) - uint8_t flexFuelBins[6]; - uint8_t flexFuelAdj[6]; //Fuel % @ current ethanol (typically 100% @ 0%, 163% @ 100%) - uint8_t flexAdvBins[6]; - uint8_t flexAdvAdj[6]; //Additional advance (in degrees) @ current ethanol (typically 0 @ 0%, 10-20 @ 100%). NOTE: THIS IS A SIGNED VALUE! + uint8_t flexBoostBins[6]; //Byets 33-38 + int16_t flexBoostAdj[6]; //kPa to be added to the boost target @ current ethanol (negative values allowed). Bytes 39-50 + uint8_t flexFuelBins[6]; //Bytes 51-56 + uint8_t flexFuelAdj[6]; //Fuel % @ current ethanol (typically 100% @ 0%, 163% @ 100%). Bytes 57-62 + uint8_t flexAdvBins[6]; //Bytes 63-68 + uint8_t flexAdvAdj[6]; //Additional advance (in degrees) @ current ethanol (typically 0 @ 0%, 10-20 @ 100%). NOTE: THIS SHOULD BE A SIGNED VALUE BUT 2d TABLE LOOKUP NOT WORKING WITH IT CURRENTLY! //And another three corn rows die. + //Bytes 69-74 + //Byte 75 byte n2o_enable : 2; byte n2o_arming_pin : 6; - byte n2o_minCLT; - byte n2o_maxMAP; - byte n2o_minTPS; - byte n2o_maxAFR; + byte n2o_minCLT; //Byte 76 + byte n2o_maxMAP; //Byte 77 + byte n2o_minTPS; //Byte 78 + byte n2o_maxAFR; //Byte 79 + //Byte 80 byte n2o_stage1_pin : 6; byte n2o_pin_polarity : 1; byte n2o_stage1_unused : 1; - byte n2o_stage1_minRPM; - byte n2o_stage1_maxRPM; - byte n2o_stage1_adderMin; - byte n2o_stage1_adderMax; - byte n2o_stage1_retard; + byte n2o_stage1_minRPM; //Byte 81 + byte n2o_stage1_maxRPM; //Byte 82 + byte n2o_stage1_adderMin; //Byte 83 + byte n2o_stage1_adderMax; //Byte 84 + byte n2o_stage1_retard; //Byte 85 + //Byte 86 byte n2o_stage2_pin : 6; byte n2o_stage2_unused : 2; - byte n2o_stage2_minRPM; - byte n2o_stage2_maxRPM; - byte n2o_stage2_adderMin; - byte n2o_stage2_adderMax; - byte n2o_stage2_retard; + byte n2o_stage2_minRPM; //Byte 87 + byte n2o_stage2_maxRPM; //Byte 88 + byte n2o_stage2_adderMin; //Byte 89 + byte n2o_stage2_adderMax; //Byte 90 + byte n2o_stage2_retard; //Byte 91 + //Byte 92 byte knock_mode : 2; byte knock_pin : 6; + //Byte 93 byte knock_trigger : 1; byte knock_pullup : 1; byte knock_limiterDisable : 1; byte knock_unused : 2; byte knock_count : 3; - byte knock_threshold; - byte knock_maxMAP; - byte knock_maxRPM; - byte knock_window_rpms[6]; - byte knock_window_angle[6]; - byte knock_window_dur[6]; + byte knock_threshold; //Byte 94 + byte knock_maxMAP; //Byte 95 + byte knock_maxRPM; //Byte 96 + byte knock_window_rpms[6]; //Bytes 97-102 + byte knock_window_angle[6]; //Bytes 103-108 + byte knock_window_dur[6]; //Bytes 109-114 - byte knock_maxRetard; - byte knock_firstStep; - byte knock_stepSize; - byte knock_stepTime; + byte knock_maxRetard; //Byte 115 + byte knock_firstStep; //Byte 116 + byte knock_stepSize; //Byte 117 + byte knock_stepTime; //Byte 118 - byte knock_duration; //Time after knock retard starts that it should start recovering - byte knock_recoveryStepTime; - byte knock_recoveryStep; + byte knock_duration; //Time after knock retard starts that it should start recovering. Byte 119 + byte knock_recoveryStepTime; //Byte 120 + byte knock_recoveryStep; //Byte 121 + //Byte 122 byte fuel2Algorithm : 3; - byte fuel2Mode : 2; - byte unused10_122 : 3; + byte fuel2Mode : 3; + byte fuel2SwitchVariable : 2; + uint16_t fuel2SwitchValue; - byte unused11_123_191[69]; + byte vvtCLholdDuty; + byte vvtCLKP; + byte vvtCLKI; + byte vvtCLKD; + uint16_t vvtCLMinAng; + uint16_t vvtCLMaxAng; + + byte unused11_123_191[59]; #if defined(CORE_AVR) }; @@ -982,20 +1020,22 @@ byte pinResetControl; // Output pin used control resetting the Arduino // global variables // from speeduino.ino extern struct statuses currentStatus; // from speeduino.ino extern struct table3D fuelTable; //16x16 fuel map +extern struct table3D fuelTable2; //16x16 fuel map extern struct table3D ignitionTable; //16x16 ignition map extern struct table3D afrTable; //16x16 afr target map extern struct table3D stagingTable; //8x8 afr target map -extern struct table2D taeTable; //4 bin TPS Acceleration Enrichment map (2D) -extern struct table2D WUETable; //10 bin Warm Up Enrichment map (2D) -extern struct table2D crankingEnrichTable; //4 bin cranking Enrichment map (2D) +extern struct table2D taeTable; /**< 4 bin TPS Acceleration Enrichment curve (2D) */ +extern struct table2D maeTable; /**< 4 bin MAP based Acceleration Enrichment curve (2D) */ +extern struct table2D WUETable; /**< 10 bin Warm Up Enrichment curve (2D) */ +extern struct table2D crankingEnrichTable; /**< 4 bin cranking Enrichment curve (2D) */ extern struct config2 configPage2; extern struct config4 configPage4; extern struct config6 configPage6; extern struct config9 configPage9; extern struct config10 configPage10; -extern unsigned long currentLoopTime; //The time the current loop started (uS) -extern unsigned long previousLoopTime; //The time the previous loop started (uS) -volatile uint16_t ignitionCount; //The count of ignition events that have taken place since the engine started +extern unsigned long currentLoopTime; /**< The time (in uS) that the current mainloop started */ +extern unsigned long previousLoopTime; /**< The time (in uS) that the previous mainloop started */ +volatile uint16_t ignitionCount; /**< The count of ignition events that have taken place since the engine started */ extern byte cltCalibrationTable[CALIBRATION_TABLE_SIZE]; extern byte iatCalibrationTable[CALIBRATION_TABLE_SIZE]; extern byte o2CalibrationTable[CALIBRATION_TABLE_SIZE]; diff --git a/speeduino/idle.ino b/speeduino/idle.ino index 5abf2eda..ee96e6d6 100644 --- a/speeduino/idle.ino +++ b/speeduino/idle.ino @@ -463,7 +463,7 @@ static inline void enableIdle() } #if defined(CORE_AVR) //AVR chips use the ISR for this -ISR(TIMER4_COMPC_vect) +ISR(TIMER1_COMPC_vect) #else static inline void idleInterrupt() //Most ARM chips can simply call a function #endif diff --git a/speeduino/init.ino b/speeduino/init.ino index 69d615d6..4d12df9b 100644 --- a/speeduino/init.ino +++ b/speeduino/init.ino @@ -44,7 +44,7 @@ void initialiseAll() Serial.begin(115200); if (configPage9.enable_secondarySerial == 1) { CANSerial.begin(115200); } - + #if defined(CORE_STM32) || defined(CORE_TEENSY) configPage9.intcan_available = 1; // device has internal canbus //Teensy onboard CAN not used currently @@ -60,6 +60,10 @@ void initialiseAll() taeTable.xSize = 4; taeTable.values = configPage4.taeValues; taeTable.axisX = configPage4.taeBins; + maeTable.valueSize = SIZE_BYTE; //Set this table to use byte values + maeTable.xSize = 4; + maeTable.values = configPage4.maeRates; + maeTable.axisX = configPage4.maeBins; WUETable.valueSize = SIZE_BYTE; //Set this table to use byte values WUETable.xSize = 10; WUETable.values = configPage2.wueValues; @@ -100,7 +104,7 @@ void initialiseAll() IATRetardTable.axisX = configPage4.iatRetBins; CLTAdvanceTable.valueSize = SIZE_BYTE; CLTAdvanceTable.xSize = 6; - CLTAdvanceTable.values = configPage4.cltAdvValues; + CLTAdvanceTable.values = (byte*)configPage4.cltAdvValues; CLTAdvanceTable.axisX = configPage4.cltAdvBins; rotarySplitTable.valueSize = SIZE_BYTE; rotarySplitTable.xSize = 8; @@ -246,7 +250,7 @@ void initialiseAll() } //Begin the main crank trigger interrupt pin setup - //The interrupt numbering is a bit odd - See here for reference: http://arduino.cc/en/Reference/AttachInterrupt + //The interrupt numbering is a bit odd - See here for reference: arduino.cc/en/Reference/AttachInterrupt //These assignments are based on the Arduino Mega AND VARY BETWEEN BOARDS. Please confirm the board you are using and update acordingly. currentStatus.RPM = 0; currentStatus.hasSync = false; @@ -267,7 +271,11 @@ void initialiseAll() initialiseTriggers(); //End crank triger interrupt attachment - req_fuel_uS = req_fuel_uS / engineSquirtsPerCycle; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) + if(configPage2.strokes == FOUR_STROKE) + { + //Default is 1 squirt per revolution, so we halve the given req-fuel figure (Which would be over 2 revolutions) + req_fuel_uS = req_fuel_uS / 2; //The req_fuel calculation above gives the total required fuel (At VE 100%) in the full cycle. If we're doing more than 1 squirt per cycle then we need to split the amount accordingly. (Note that in a non-sequential 4-stroke setup you cannot have less than 2 squirts as you cannot determine the stroke to make the single squirt on) + } //Initial values for loop times previousLoopTime = 0; @@ -280,7 +288,6 @@ void initialiseAll() if(configPage2.strokes == FOUR_STROKE) { CRANK_ANGLE_MAX_INJ = 720 / currentStatus.nSquirts; } else { CRANK_ANGLE_MAX_INJ = 360 / currentStatus.nSquirts; } - //Calculate the number of degrees between cylinders switch (configPage2.nCylinders) { case 1: @@ -420,7 +427,7 @@ void initialiseAll() //Adjust the injection angles based on the number of squirts if (currentStatus.nSquirts > 2) { - channel2InjDegrees = channel2InjDegrees / (currentStatus.nSquirts / 2); + channel2InjDegrees = (channel2InjDegrees * 2) / currentStatus.nSquirts; } if( (configPage4.sparkMode == IGN_MODE_SEQUENTIAL) && (configPage2.strokes == FOUR_STROKE) ) @@ -551,8 +558,8 @@ void initialiseAll() //Adjust the injection angles based on the number of squirts if (currentStatus.nSquirts > 2) { - channel2InjDegrees = channel2InjDegrees / (currentStatus.nSquirts / 2); - channel3InjDegrees = channel3InjDegrees / (currentStatus.nSquirts / 2); + channel2InjDegrees = (channel2InjDegrees * 2) / currentStatus.nSquirts; + channel3InjDegrees = (channel3InjDegrees * 2) / currentStatus.nSquirts; } #if INJ_CHANNELS >= 6 @@ -598,9 +605,9 @@ void initialiseAll() //Adjust the injection angles based on the number of squirts if (currentStatus.nSquirts > 2) { - channel2InjDegrees = channel2InjDegrees / (currentStatus.nSquirts / 2); - channel3InjDegrees = channel3InjDegrees / (currentStatus.nSquirts / 2); - channel4InjDegrees = channel4InjDegrees / (currentStatus.nSquirts / 2); + channel2InjDegrees = (channel2InjDegrees * 2) / currentStatus.nSquirts; + channel3InjDegrees = (channel3InjDegrees * 2) / currentStatus.nSquirts; + channel4InjDegrees = (channel4InjDegrees * 2) / currentStatus.nSquirts; } #if INJ_CHANNELS >= 8 @@ -654,6 +661,15 @@ void initialiseAll() else if (CRANK_ANGLE_MAX_IGN > CRANK_ANGLE_MAX_INJ) { CRANK_ANGLE_MAX = CRANK_ANGLE_MAX_IGN; } else { CRANK_ANGLE_MAX = CRANK_ANGLE_MAX_INJ; } currentStatus.status3 = currentStatus.nSquirts << BIT_STATUS3_NSQUIRTS1; //Top 3 bits of the status3 variable are the number of squirts. This must be done after the above section due to nSquirts being forced to 1 for sequential + + //Special case: + //3 or 5 squirts per cycle MUST be tracked over 720 degrees. This is because the angles for them (Eg 720/3=240) are not evenly divisible into 360 + //This is ONLY the case on 4 stroke systems + if( (currentStatus.nSquirts == 3) || (currentStatus.nSquirts == 5) ) + { + if(configPage2.strokes == FOUR_STROKE) { CRANK_ANGLE_MAX = 720; } + } + switch(configPage4.sparkMode) { @@ -998,7 +1014,7 @@ void setPinMapping(byte boardID) pinCoil3 = 30; pinO2 = A22; #elif defined(STM32F4) - //Black F407VE http://wiki.stm32duino.com/index.php?title=STM32F407 + //Black F407VE wiki.stm32duino.com/index.php?title=STM32F407 //PC8~PC12 SDio //PA13~PA15 & PB4 SWD(debug) pins //PB0 EEPROM CS pin @@ -1039,8 +1055,8 @@ void setPinMapping(byte boardID) pinTrigger = PE3; //The CAS pin pinTrigger2 = PE4; //The Cam Sensor pin #elif defined(CORE_STM32) - //blue pill http://wiki.stm32duino.com/index.php?title=Blue_Pill - //Maple mini http://wiki.stm32duino.com/index.php?title=Maple_Mini + //blue pill wiki.stm32duino.com/index.php?title=Blue_Pill + //Maple mini wiki.stm32duino.com/index.php?title=Maple_Mini //pins PA12, PA11 are used for USB or CAN couldn't be used for GPIO pinInjector1 = PB7; //Output pin injector 1 is on pinInjector2 = PB6; //Output pin injector 2 is on @@ -1076,8 +1092,109 @@ void setPinMapping(byte boardID) #endif break; + case 6: + //Pin mappings as per the 2001-05 MX5 PNP shield + pinInjector1 = 44; //Output pin injector 1 is on + pinInjector2 = 46; //Output pin injector 2 is on + pinInjector3 = 47; //Output pin injector 3 is on + pinInjector4 = 45; //Output pin injector 4 is on + pinInjector5 = 14; //Output pin injector 5 is on + pinCoil1 = 42; //Pin for coil 1 + pinCoil2 = 43; //Pin for coil 2 + pinCoil3 = 32; //Pin for coil 3 + pinCoil4 = 33; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinTPS = A2;//TPS input pin + pinMAP = A5; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A3; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = 23; //Tacho output pin (Goes to ULN2803) + pinIdle1 = 5; //Single wire idle control + pinBoost = 4; + pinVVT_1 = 11; //Default VVT output + pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!) + pinFuelPump = 40; //Fuel pump output + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinStepperEnable = 24; + pinFan = 41; //Pin for the fan output + pinLaunch = 12; //Can be overwritten below + pinFlex = 3; // Flex sensor (Must be external interrupt enabled) + pinResetControl = 39; //Reset control output + + //This is NOT correct. It has not yet been tested with this board + #if defined(CORE_TEENSY) + pinTrigger = 23; + pinTrigger2 = 36; + pinStepperDir = 34; + pinStepperStep = 35; + pinCoil1 = 33; //Done + pinCoil2 = 24; //Done + pinCoil3 = 51; //Won't work (No mapping for pin 32) + pinCoil4 = 52; //Won't work (No mapping for pin 33) + pinFuelPump = 26; //Requires PVT4 adapter or above + pinFan = 50; //Won't work (No mapping for pin 35) + pinTachOut = 28; //Done + #endif + break; + + case 8: + //Pin mappings as per the 1996-97 MX5 PNP shield + pinInjector1 = 11; //Output pin injector 1 is on + pinInjector2 = 10; //Output pin injector 2 is on + pinInjector3 = 9; //Output pin injector 3 is on + pinInjector4 = 8; //Output pin injector 4 is on + pinInjector5 = 14; //Output pin injector 5 is on + pinCoil1 = 39; //Pin for coil 1 + pinCoil2 = 41; //Pin for coil 2 + pinCoil3 = 32; //Pin for coil 3 + pinCoil4 = 33; //Pin for coil 4 + pinCoil5 = 34; //Pin for coil 5 PLACEHOLDER value for now + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinTPS = A2;//TPS input pin + pinMAP = A5; //MAP sensor pin + pinIAT = A0; //IAT sensor pin + pinCLT = A1; //CLS sensor pin + pinO2 = A3; //O2 Sensor pin + pinBat = A4; //Battery reference voltage pin + pinDisplayReset = 48; // OLED reset pin + pinTachOut = A9; //Tacho output pin (Goes to ULN2803) + pinIdle1 = 2; //Single wire idle control + pinBoost = 4; + pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!) + pinFuelPump = 49; //Fuel pump output + pinStepperDir = 16; //Direction pin for DRV8825 driver + pinStepperStep = 17; //Step pin for DRV8825 driver + pinStepperEnable = 24; + pinFan = 35; //Pin for the fan output + pinLaunch = 37; //Can be overwritten below + pinFlex = 3; // Flex sensor (Must be external interrupt enabled) + pinResetControl = 44; //Reset control output + + //This is NOT correct. It has not yet been tested with this board + #if defined(CORE_TEENSY) + pinTrigger = 23; + pinTrigger2 = 36; + pinStepperDir = 34; + pinStepperStep = 35; + pinCoil1 = 33; //Done + pinCoil2 = 24; //Done + pinCoil3 = 51; //Won't work (No mapping for pin 32) + pinCoil4 = 52; //Won't work (No mapping for pin 33) + pinFuelPump = 26; //Requires PVT4 adapter or above + pinFan = 50; //Won't work (No mapping for pin 35) + pinTachOut = 28; //Done + #endif + break; + case 9: - //Pin mappings as per the MX5 PNP shield + //Pin mappings as per the 89-95 MX5 PNP shield pinInjector1 = 11; //Output pin injector 1 is on pinInjector2 = 10; //Output pin injector 2 is on pinInjector3 = 9; //Output pin injector 3 is on @@ -1325,6 +1442,51 @@ void setPinMapping(byte boardID) #endif break; + case 45: + #ifndef SMALL_FLASH_MODE //No support for bluepill here anyway + //Pin mappings for the DIY-EFI CORE4 Module + pinInjector1 = 10; //Output pin injector 1 is on + pinInjector2 = 11; //Output pin injector 2 is on + pinInjector3 = 12; //Output pin injector 3 is on + pinInjector4 = 9; //Output pin injector 4 is on + pinCoil1 = 39; //Pin for coil 1 + pinCoil2 = 29; //Pin for coil 2 + pinCoil3 = 28; //Pin for coil 3 + pinCoil4 = 27; //Pin for coil 4 + pinCoil4 = 26; //Placeholder for coil 5 + pinTrigger = 19; //The CAS pin + pinTrigger2 = 18; //The Cam Sensor pin + pinFlex = 20; // Flex sensor + pinTPS = A3; //TPS input pin + pinMAP = A2; //MAP sensor pin + pinBaro = A15; //Baro sensor pin + pinIAT = A11; //IAT sensor pin + pinCLT = A4; //CLS sensor pin + pinO2 = A12; //O2 Sensor pin + pinO2_2 = A13; //O2 sensor pin (second sensor) + pinBat = A1; //Battery reference voltage pin + pinSpareTemp1 = A14; //spare Analog input 1 + pinLaunch = 24; //Can be overwritten below + pinDisplayReset = 48; // OLED reset pin PLACEHOLDER value for now + pinTachOut = 38; //Tacho output pin + pinIdle1 = 42; //Single wire idle control + pinIdle2 = 43; //2 wire idle control + pinFuelPump = 41; //Fuel pump output + pinVVT_1 = 44; //Default VVT output + pinStepperDir = 32; //Direction pin for DRV8825 driver + pinStepperStep = 31; //Step pin for DRV8825 driver + pinStepperEnable = 30; //Enable pin for DRV8825 driver + pinBoost = 45; //Boost control + pinSpareLOut1 = 37; //low current output spare1 + pinSpareLOut2 = 36; //low current output spare2 + pinSpareLOut3 = 35; //low current output spare3 + pinSpareLOut4 = 34; //low current output spare4 + pinSpareLOut5 = 33; //low current output spare4 + pinFan = 40; //Pin for the fan output + pinResetControl = 46; //Reset control output PLACEHOLDER value for now + #endif + break; + #if defined(CORE_TEENSY) case 50: //Pin mappings as per the teensy rev A shield @@ -1399,7 +1561,7 @@ void setPinMapping(byte boardID) default: #if defined(STM32F4) - //Black F407VE http://wiki.stm32duino.com/index.php?title=STM32F407 + //Black F407VE wiki.stm32duino.com/index.php?title=STM32F407 //PC8~PC12 SDio //PA13~PA15 & PB4 SWD(debug) pins //PB0 EEPROM CS pin @@ -1524,6 +1686,9 @@ void setPinMapping(byte boardID) pinMode(pinBoost, OUTPUT); pinMode(pinVVT_1, OUTPUT); + //This is a legacy mode option to revert the MAP reading behaviour to match what was in place prior to the 201905 firmware + if(configPage2.legacyMAP > 0) { digitalWrite(pinMAP, HIGH); } + inj1_pin_port = portOutputRegister(digitalPinToPort(pinInjector1)); inj1_pin_mask = digitalPinToBitMask(pinInjector1); inj2_pin_port = portOutputRegister(digitalPinToPort(pinInjector2)); @@ -1612,13 +1777,6 @@ void setPinMapping(byte boardID) triggerSec_pin_port = portInputRegister(digitalPinToPort(pinTrigger2)); triggerSec_pin_mask = digitalPinToBitMask(pinTrigger2); - #if defined(CORE_STM32) - #else - //Set default values - digitalWrite(pinMAP, HIGH); - //digitalWrite(pinO2, LOW); - digitalWrite(pinTPS, LOW); - #endif } void initialiseTriggers() diff --git a/speeduino/maths.ino b/speeduino/maths.ino index 1c67ca5a..e43d5ef6 100644 --- a/speeduino/maths.ino +++ b/speeduino/maths.ino @@ -15,7 +15,7 @@ int fastMap(unsigned long x, int in_min, int in_max, int out_min, int out_max) /* The following are all fast versions of specific divisions -Ref: http://www.hackersdelight.org/divcMore.pdf +Ref: www.hackersdelight.org/divcMore.pdf */ //Unsigned divide by 10 @@ -31,20 +31,6 @@ unsigned int divu10(unsigned int n) return q + ((r + 6) >> 4); } -//Signed divide by 10 -int divs10(long n) -{ - long q, r, p; - p = n + ( (n>>31) & 9); - q = (p >> 1) + (p >> 2); - q = q + (q >> 4); - q = q + (q >> 8); - q = q + (q >> 16); - q = q >> 3; - r = p - (q * 10); - return q + ((r + 6) >> 4); -} - //Signed divide by 100 int divs100(long n) { diff --git a/speeduino/scheduler.ino b/speeduino/scheduler.ino index c22d48d0..46c1d96a 100644 --- a/speeduino/scheduler.ino +++ b/speeduino/scheduler.ino @@ -854,7 +854,7 @@ static inline void fuelSchedule4Interrupt() //Most ARM chips can simply call a f #if (INJ_CHANNELS >= 5) #if defined(CORE_AVR) //AVR chips use the ISR for this -ISR(TIMER1_COMPC_vect) //fuelSchedule5 +ISR(TIMER4_COMPC_vect) //fuelSchedule5 #else static inline void fuelSchedule5Interrupt() //Most ARM chips can simply call a function #endif @@ -1139,7 +1139,7 @@ static inline void ignitionSchedule4Interrupt() //Most ARM chips can simply call #if IGN_CHANNELS >= 5 #if defined(CORE_AVR) //AVR chips use the ISR for this -ISR(TIMER1_COMPC_vect) //ignitionSchedule5 +ISR(TIMER4_COMPC_vect) //ignitionSchedule5 #else static inline void ignitionSchedule5Interrupt() //Most ARM chips can simply call a function #endif @@ -1165,7 +1165,7 @@ static inline void ignitionSchedule5Interrupt() //Most ARM chips can simply call #if IGN_CHANNELS >= 6 #if defined(CORE_AVR) //AVR chips use the ISR for this -ISR(TIMER1_COMPC_vect) //ignitionSchedule6 NOT CORRECT!!! +ISR(TIMER4_COMPC_vect) //ignitionSchedule6 NOT CORRECT!!! #else static inline void ignitionSchedule6Interrupt() //Most ARM chips can simply call a function #endif @@ -1191,7 +1191,7 @@ static inline void ignitionSchedule6Interrupt() //Most ARM chips can simply call #if IGN_CHANNELS >= 7 #if defined(CORE_AVR) //AVR chips use the ISR for this -ISR(TIMER1_COMPC_vect) //ignitionSchedule6 NOT CORRECT!!! +ISR(TIMER4_COMPC_vect) //ignitionSchedule6 NOT CORRECT!!! #else static inline void ignitionSchedule7Interrupt() //Most ARM chips can simply call a function #endif @@ -1217,7 +1217,7 @@ static inline void ignitionSchedule7Interrupt() //Most ARM chips can simply call #if IGN_CHANNELS >= 8 #if defined(CORE_AVR) //AVR chips use the ISR for this -ISR(TIMER1_COMPC_vect) //ignitionSchedule8 NOT CORRECT!!! +ISR(TIMER4_COMPC_vect) //ignitionSchedule8 NOT CORRECT!!! #else static inline void ignitionSchedule8Interrupt() //Most ARM chips can simply call a function #endif diff --git a/speeduino/sensors.h b/speeduino/sensors.h index 96ff6474..fb77ddc7 100644 --- a/speeduino/sensors.h +++ b/speeduino/sensors.h @@ -36,6 +36,12 @@ unsigned long EMAPrunningValue; //As above but for EMAP unsigned int MAPcount; //Number of samples taken in the current MAP cycle uint32_t MAPcurRev; //Tracks which revolution we're sampling on bool auxIsEnabled; +byte TPSlast; /**< The previous TPS reading */ +unsigned long TPS_time; //The time the TPS sample was taken +unsigned long TPSlast_time; //The time the previous TPS sample was taken +byte MAPlast; /**< The previous MAP reading */ +unsigned long MAP_time; //The time the MAP sample was taken +unsigned long MAPlast_time; //The time the previous MAP sample was taken //These variables are used for tracking the number of running sensors values that appear to be errors. Once a threshold is reached, the sensor reading will go to default value and assume the sensor is faulty byte mapErrorCount = 0; @@ -49,10 +55,10 @@ byte cltErrorCount = 0; */ #define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8 //These functions all do checks on a pin to determine if it is already in use by another (higher importance) function -#define pinIsInjector(pin) ( (pin == pinInjector1) || (pin == pinInjector2) || (pin == pinInjector3) || (pin == pinInjector4) ) -#define pinIsIgnition(pin) ( (pin == pinCoil1) || (pin == pinCoil2) || (pin == pinCoil3) || (pin == pinCoil4) ) -#define pinIsSensor(pin) ( (pin == pinCLT) || (pin == pinIAT) || (pin == pinMAP) || (pin == pinTPS) || (pin == pinO2) || (pin == pinBat) ) -#define pinIsUsed(pin) ( pinIsInjector(pin) || pinIsIgnition(pin) || pinIsSensor(pin) ) +#define pinIsInjector(pin) ( ((pin) == pinInjector1) || ((pin) == pinInjector2) || ((pin) == pinInjector3) || ((pin) == pinInjector4) ) +#define pinIsIgnition(pin) ( ((pin) == pinCoil1) || ((pin) == pinCoil2) || ((pin) == pinCoil3) || ((pin) == pinCoil4) ) +#define pinIsSensor(pin) ( ((pin) == pinCLT) || ((pin) == pinIAT) || ((pin) == pinMAP) || ((pin) == pinTPS) || ((pin) == pinO2) || ((pin) == pinBat) ) +#define pinIsUsed(pin) ( pinIsInjector((pin)) || pinIsIgnition((pin)) || pinIsSensor((pin)) ) static inline void instanteneousMAPReading() __attribute__((always_inline)); static inline void readMAP() __attribute__((always_inline)); diff --git a/speeduino/sensors.ino b/speeduino/sensors.ino index 3d4d9aae..62caa7e2 100644 --- a/speeduino/sensors.ino +++ b/speeduino/sensors.ino @@ -43,7 +43,7 @@ void initialiseADC() #else //This sets the ADC (Analog to Digitial Converter) to run at 1Mhz, greatly reducing analog read times (MAP/TPS) when using the standard analogRead() function //1Mhz is the fastest speed permitted by the CPU without affecting accuracy - //Please see chapter 11 of 'Practical Arduino' (http://books.google.com.au/books?id=HsTxON1L6D4C&printsec=frontcover#v=onepage&q&f=false) for more detail + //Please see chapter 11 of 'Practical Arduino' (books.google.com.au/books?id=HsTxON1L6D4C&printsec=frontcover#v=onepage&q&f=false) for more detail BIT_SET(ADCSRA,ADPS2); BIT_CLEAR(ADCSRA,ADPS1); BIT_CLEAR(ADCSRA,ADPS0); @@ -120,6 +120,11 @@ void initialiseADC() static inline void instanteneousMAPReading() { + //Update the calculation times and last value. These are used by the MAP based Accel enrich + MAPlast = currentStatus.MAP; + MAPlast_time = MAP_time; + MAP_time = micros(); + unsigned int tempReading; //Instantaneous MAP readings #if defined(ANALOG_ISR_MAP) @@ -196,6 +201,11 @@ static inline void readMAP() //Sanity check if( (MAPrunningValue != 0) && (MAPcount != 0) ) { + //Update the calculation times and last value. These are used by the MAP based Accel enrich + MAPlast = currentStatus.MAP; + MAPlast_time = MAP_time; + MAP_time = micros(); + currentStatus.mapADC = ldiv(MAPrunningValue, MAPcount).quot; currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage2.mapMin, configPage2.mapMax); //Get the current MAP value if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check @@ -240,6 +250,12 @@ static inline void readMAP() else { //Reaching here means that the last cylce has completed and the MAP value should be calculated + + //Update the calculation times and last value. These are used by the MAP based Accel enrich + MAPlast = currentStatus.MAP; + MAPlast_time = MAP_time; + MAP_time = micros(); + currentStatus.mapADC = MAPrunningValue; currentStatus.MAP = fastMap10Bit(currentStatus.mapADC, configPage2.mapMin, configPage2.mapMax); //Get the current MAP value if(currentStatus.MAP < 0) { currentStatus.MAP = 0; } //Sanity check @@ -259,8 +275,8 @@ static inline void readMAP() void readTPS() { - currentStatus.TPSlast = currentStatus.TPS; - currentStatus.TPSlast_time = currentStatus.TPS_time; + TPSlast = currentStatus.TPS; + TPSlast_time = TPS_time; #if defined(ANALOG_ISR) byte tempTPS = fastMap1023toX(AnChannel[pinTPS-A0], 255); //Get the current raw TPS ADC value and map it into a byte #else @@ -291,7 +307,7 @@ void readTPS() currentStatus.TPS = map(tempADC, configPage2.tpsMax, configPage2.tpsMin, 0, 100); } - currentStatus.TPS_time = micros(); + TPS_time = micros(); } void readCLT(bool useFilter) @@ -344,15 +360,25 @@ void readBaro() void readO2() { - unsigned int tempReading; - #if defined(ANALOG_ISR) - tempReading = fastMap1023toX(AnChannel[pinO2-A0], 511); //Get the current O2 value. - #else - tempReading = analogRead(pinO2); - tempReading = fastMap1023toX(analogRead(pinO2), 511); //Get the current O2 value. - #endif - currentStatus.O2ADC = ADC_FILTER(tempReading, configPage4.ADCFILTER_O2, currentStatus.O2ADC); - currentStatus.O2 = o2CalibrationTable[currentStatus.O2ADC]; + //An O2 read is only performed if an O2 sensor type is selected. This is to prevent potentially dangerous use of the O2 readings prior to proper setup/calibration + if(configPage6.egoType > 0) + { + unsigned int tempReading; + #if defined(ANALOG_ISR) + tempReading = fastMap1023toX(AnChannel[pinO2-A0], 511); //Get the current O2 value. + #else + tempReading = analogRead(pinO2); + tempReading = fastMap1023toX(analogRead(pinO2), 511); //Get the current O2 value. + #endif + currentStatus.O2ADC = ADC_FILTER(tempReading, configPage4.ADCFILTER_O2, currentStatus.O2ADC); + currentStatus.O2 = o2CalibrationTable[currentStatus.O2ADC]; + } + else + { + currentStatus.O2ADC = 0; + currentStatus.O2 = 0; + } + } void readO2_2() @@ -380,6 +406,9 @@ void readBat() tempReading = fastMap1023toX(analogRead(pinBat), 245); //Get the current raw Battery value. Permissible values are from 0v to 24.5v (245) #endif + //Apply the offset calibration value to the reading + tempReading += configPage4.batVoltCorrect; + //The following is a check for if the voltage has jumped up from under 5.5v to over 7v. //If this occurs, it's very likely that the system has gone from being powered by USB to being powered from the 12v power source. //Should that happen, we retrigger the fuel pump priming and idle homing (If using a stepper) diff --git a/speeduino/speeduino.ino b/speeduino/speeduino.ino index a857f48f..5e0cb1f6 100644 --- a/speeduino/speeduino.ino +++ b/speeduino/speeduino.ino @@ -19,7 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #ifndef UNIT_TEST // Scope guard for unit testing -#include //https://developer.mbed.org/handbook/C-Data-Types +#include //developer.mbed.org/handbook/C-Data-Types //************************************************ #include "globals.h" #include "speeduino.h" @@ -132,6 +132,7 @@ void loop() VVT_PIN_LOW(); DISABLE_VVT_TIMER(); boostDisable(); + if(configPage4.ignBypassEnabled > 0) { digitalWrite(pinIgnBypass, LOW); } //Reset the ignition bypass ready for next crank attempt } //***Perform sensor reads*** @@ -286,6 +287,7 @@ void loop() currentStatus.VE = getVE(); //If the secondary fuel table is in use, also get the VE value from there + BIT_CLEAR(currentStatus.status3, BIT_STATUS3_FUEL2_ACTIVE); //Clear the bit indicating that the 2nd fuel table is in use. if(configPage10.fuel2Mode > 0) { currentStatus.VE2 = getVE2(); @@ -293,7 +295,9 @@ void loop() if(configPage10.fuel2Mode == FUEL2_MODE_MULTIPLY) { //Fuel 2 table is treated as a % value. Table 1 and 2 are multiplied together and divded by 100 - totalVE = ((uint16_t)currentStatus.VE * (uint16_t)currentStatus.VE2) / 100; + uint16_t combinedVE = ((uint16_t)currentStatus.VE * (uint16_t)currentStatus.VE2) / 100; + if(combinedVE <= 255) { totalVE = combinedVE; } + else { totalVE = 255; } } else if(configPage10.fuel2Mode == FUEL2_MODE_ADD) { @@ -302,7 +306,14 @@ void loop() if(combinedVE <= 255) { totalVE = combinedVE; } else { totalVE = 255; } } - else if(configPage10.fuel2Mode == FUEL2_MODE_SWITCH) + else if(configPage10.fuel2Mode == FUEL2_MODE_CONDITIONAL_SWITCH ) + { + if(configPage10.fuel2SwitchVariable == FUEL2_CONDITION_RPM) + { + + } + } + else if(configPage10.fuel2Mode == FUEL2_MODE_INPUT_SWITCH) { } @@ -399,8 +410,9 @@ void loop() //Check that the duty cycle of the chosen pulsewidth isn't too high. unsigned long pwLimit = percentage(configPage2.dutyLim, revolutionTime); //The pulsewidth limit is determined to be the duty cycle limit (Eg 85%) by the total time it takes to perform 1 revolution - if (CRANK_ANGLE_MAX_INJ == 720) { pwLimit = pwLimit * 2; } //For sequential, the maximum pulse time is double (2 revolutions). Wouldn't work for 2 stroke... - else if (CRANK_ANGLE_MAX_INJ < 360) { pwLimit = pwLimit / currentStatus.nSquirts; } //Handle cases where there are multiple squirts per rev + //Handle multiple squirts per rev + if (configPage2.strokes == FOUR_STROKE) { pwLimit = pwLimit * 2 / currentStatus.nSquirts; } + else { pwLimit = pwLimit / currentStatus.nSquirts; } //Apply the pwLimit if staging is dsiabled and engine is not cranking if( (!BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK)) && (configPage10.stagingEnabled == false) ) { if (currentStatus.PW1 > pwLimit) { currentStatus.PW1 = pwLimit; } } @@ -462,10 +474,10 @@ void loop() configPage2.inj4Ang = configPage2.inj1Ang; } unsigned int PWdivTimerPerDegree = div(currentStatus.PW1, timePerDegree).quot; //How many crank degrees the calculated PW will take at the current speed - //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See http://www.extraefi.co.uk/sequential_fuel.html for more detail + //This is a little primitive, but is based on the idea that all fuel needs to be delivered before the inlet valve opens. See www.extraefi.co.uk/sequential_fuel.html for more detail if(configPage2.inj1Ang > PWdivTimerPerDegree) { injector1StartAngle = configPage2.inj1Ang - ( PWdivTimerPerDegree ); } else { injector1StartAngle = configPage2.inj1Ang + CRANK_ANGLE_MAX_INJ - PWdivTimerPerDegree; } //Just incase - if(injector1StartAngle > CRANK_ANGLE_MAX_INJ) {injector1StartAngle -= CRANK_ANGLE_MAX_INJ;} + while(injector1StartAngle > CRANK_ANGLE_MAX_INJ) { injector1StartAngle -= CRANK_ANGLE_MAX_INJ; } //Repeat the above for each cylinder switch (configPage2.nCylinders) @@ -488,7 +500,6 @@ void loop() injector3StartAngle = calculateInjector3StartAngle(PWdivTimerPerDegree); injector4StartAngle = injector3StartAngle + (CRANK_ANGLE_MAX_INJ / 2); //Phase this either 180 or 360 degrees out from inj3 (In reality this will always be 180 as you can't have sequential and staged currently) - if(injector4StartAngle < 0) {injector4StartAngle += CRANK_ANGLE_MAX_INJ;} if(injector4StartAngle > (uint16_t)CRANK_ANGLE_MAX_INJ) { injector4StartAngle -= CRANK_ANGLE_MAX_INJ; } } break; @@ -525,7 +536,6 @@ void loop() injector3StartAngle = calculateInjector3StartAngle(PWdivTimerPerDegree); injector4StartAngle = injector3StartAngle + (CRANK_ANGLE_MAX_INJ / 2); //Phase this either 180 or 360 degrees out from inj3 (In reality this will always be 180 as you can't have sequential and staged currently) - if(injector4StartAngle < 0) {injector4StartAngle += CRANK_ANGLE_MAX_INJ;} if(injector4StartAngle > (uint16_t)CRANK_ANGLE_MAX_INJ) { injector4StartAngle -= CRANK_ANGLE_MAX_INJ; } } break; diff --git a/speeduino/src/PID_v1/PID_v1.cpp b/speeduino/src/PID_v1/PID_v1.cpp index 2de4af48..b03e7d0d 100755 --- a/speeduino/src/PID_v1/PID_v1.cpp +++ b/speeduino/src/PID_v1/PID_v1.cpp @@ -82,8 +82,6 @@ bool PID::Compute() ******************************************************************************/ void PID::SetTunings(byte Kp, byte Ki, byte Kd) { - if (Kp<0 || Ki<0 || Kd<0) return; - dispKp = Kp; dispKi = Ki; dispKd = Kd; /* @@ -270,7 +268,6 @@ bool integerPID::Compute() ******************************************************************************/ void integerPID::SetTunings(byte Kp, byte Ki, byte Kd) { - if (Kp<0 || Ki<0 || Kd<0) return; if ( dispKp == Kp && dispKi == Ki && dispKd == Kd ) return; //Only do anything if one of the values has changed dispKp = Kp; dispKi = Ki; dispKd = Kd; @@ -479,7 +476,6 @@ bool integerPID_ideal::Compute() ******************************************************************************/ void integerPID_ideal::SetTunings(byte Kp, byte Ki, byte Kd) { - if (Kp<0 || Ki<0 || Kd<0) return; if ( dispKp == Kp && dispKi == Ki && dispKd == Kd ) return; //Only do anything if one of the values has changed dispKp = Kp; dispKi = Ki; dispKd = Kd; diff --git a/speeduino/storage.ino b/speeduino/storage.ino index 095be0fa..0970bfc4 100644 --- a/speeduino/storage.ino +++ b/speeduino/storage.ino @@ -23,6 +23,7 @@ void writeAllConfig() if (eepromWritesPending == false) { writeConfig(seqFuelPage); } if (eepromWritesPending == false) { writeConfig(canbusPage); } if (eepromWritesPending == false) { writeConfig(warmupPage); } + if (eepromWritesPending == false) { writeConfig(fuelMap2Page); } } @@ -397,15 +398,15 @@ void writeConfig(byte tableNum) { if( (writeCounter > EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. offset = x - EEPROM_CONFIG11_MAP; - EEPROM.update(x, fuelTable2.values[15-(offset/16)][offset%16]); writeCounter++; //Write the 16x16 map + if( EEPROM.read(x) != (fuelTable2.values[15-(offset/16)][offset%16]) ) { EEPROM.write(x, fuelTable2.values[15-(offset/16)][offset%16]); writeCounter++; } //Write the 16x16 map } //RPM bins for(int x=EEPROM_CONFIG11_XBINS; x EEPROM_MAX_WRITE_BLOCK) ) { break; } //This is a safety check to make sure we don't attempt to write too much to the EEPROM at a time. - offset = x - EEPROM_CONFIG1_XBINS; - EEPROM.update(x, byte(fuelTable2.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; //RPM bins are divided by 100 and converted to a byte + offset = x - EEPROM_CONFIG11_XBINS; + if( EEPROM.read(x) != (byte(fuelTable2.axisX[offset]/TABLE_RPM_MULTIPLIER)) ) { EEPROM.write(x, byte(fuelTable2.axisX[offset]/TABLE_RPM_MULTIPLIER)); writeCounter++; } //RPM bins are divided by 100 and converted to a byte } //TPS/MAP bins for(int x=EEPROM_CONFIG11_YBINS; xvalueSize == SIZE_BYTE) { - targetTable->values = (byte *)realloc(targetTable->values, newSize * sizeof(byte)); + //The following lines have MISRA suppressions as realloc is otherwise forbidden. These calls have been verified as unable to be executed from anywhere but controlled areas. + //cppcheck-suppress misra-21.3 + targetTable->values = (byte *)realloc(targetTable->values, newSize * sizeof(byte)); //cppcheck-suppress misra_21.3 targetTable->axisX = (byte *)realloc(targetTable->axisX, newSize * sizeof(byte)); targetTable->xSize = newSize; } @@ -187,7 +189,7 @@ int table2D_getValue(struct table2D *fromTable, int X_in) */ //Non-Float version - int yVal; + uint16_t yVal; if (fromTable->valueSize == SIZE_BYTE) { //Byte version @@ -217,7 +219,7 @@ int table2D_getValue(struct table2D *fromTable, int X_in) //This function pulls a value from a 3D table given a target for X and Y coordinates. -//It performs a 2D linear interpolation as descibred in: http://www.megamanual.com/v22manual/ve_tuner.pdf +//It performs a 2D linear interpolation as descibred in: www.megamanual.com/v22manual/ve_tuner.pdf int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) { int X = X_in; @@ -267,7 +269,7 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) else //If it's not caught by one of the above scenarios, give up and just run the loop { - for (byte x = fromTable->xSize-1; x >= 0; x--) + for (int8_t x = fromTable->xSize-1; x >= 0; x--) { //Checks the case where the X value is exactly what was requested if ( (X == fromTable->axisX[x]) || (x == 0) ) @@ -336,7 +338,7 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) //If it's not caught by one of the above scenarios, give up and just run the loop { - for (byte y = fromTable->ySize-1; y >= 0; y--) + for (int8_t y = fromTable->ySize-1; y >= 0; y--) { //Checks the case where the Y value is exactly what was requested if ( (Y == fromTable->axisY[y]) || (y==0) ) @@ -391,11 +393,11 @@ int get3DTableValue(struct table3D *fromTable, int Y_in, int X_in) //Initial check incase the values were hit straight on - long p = (long)X - xMinValue; + unsigned long p = (long)X - xMinValue; if (xMaxValue == xMinValue) { p = (p << 8); } //This only occurs if the requested X value was equal to one of the X axis bins else { p = ( (p << 8) / (xMaxValue - xMinValue) ); } //This is the standard case - long q; + unsigned long q; if (yMaxValue == yMinValue) { q = (long)Y - yMinValue; diff --git a/speeduino/timers.ino b/speeduino/timers.ino index ade5f589..c1448e1d 100644 --- a/speeduino/timers.ino +++ b/speeduino/timers.ino @@ -84,7 +84,7 @@ void oneMSInterval() //Most ARM chips can simply call a function else if(tachoOutputFlag == ACTIVE) { //If the tacho output is already active, check whether it's reached it's end time - if((uint8_t)ms_counter >= tachoEndTime) + if((uint8_t)ms_counter == tachoEndTime) { TACHO_PULSE_HIGH(); tachoOutputFlag = DEACTIVE; diff --git a/speeduino/updates.ino b/speeduino/updates.ino index 447cd234..8060d037 100644 --- a/speeduino/updates.ino +++ b/speeduino/updates.ino @@ -10,7 +10,7 @@ void doUpdates() { - #define CURRENT_DATA_VERSION 11 + #define CURRENT_DATA_VERSION 12 //May 2017 firmware introduced a -40 offset on the ignition table. Update that table to +40 if(EEPROM.read(EEPROM_DATA_VERSION) == 2) @@ -107,7 +107,7 @@ void doUpdates() configPage10.flexFuelAdj[0] = configPage2.idleUpPin; configPage10.flexAdvBins[0] = 0; - configPage10.flexAdvAdj[0] = configPage2.taeTaperMin; + configPage10.flexAdvAdj[0] = configPage2.aeTaperMin; for (uint8_t x = 1; x < 6; x++) { @@ -122,7 +122,7 @@ void doUpdates() uint8_t fuelAdder = (((configPage2.idleUpAdder - configPage2.idleUpPin) * pct) / 100) + configPage2.idleUpPin; configPage10.flexFuelAdj[x] = fuelAdder; - uint8_t advanceAdder = (((configPage2.taeTaperMax - configPage2.taeTaperMin) * pct) / 100) + configPage2.taeTaperMin; + uint8_t advanceAdder = (((configPage2.aeTaperMax - configPage2.aeTaperMin) * pct) / 100) + configPage2.aeTaperMin; configPage10.flexAdvAdj[x] = advanceAdder; } @@ -133,8 +133,8 @@ void doUpdates() if (EEPROM.read(EEPROM_DATA_VERSION) == 8) { //May 2018 adds separate load sources for fuel and ignition. Copy the existing load alogirthm into Both - configPage2.fuelAlgorithm = configPage2.unused2_38c; - configPage2.ignAlgorithm = configPage2.unused2_38c; + configPage2.fuelAlgorithm = configPage2.legacyMAP; //Was configPage2.unused2_38c + configPage2.ignAlgorithm = configPage2.legacyMAP; //Was configPage2.unused2_38c //Add option back in for open or closed loop boost. For all current configs to use closed configPage4.boostType = 1; @@ -167,7 +167,7 @@ void doUpdates() if(EEPROM.read(EEPROM_DATA_VERSION) == 10) { - //April 2019 version adds the use of a 2D table for the priming pulse rather than a single value. + //May 2019 version adds the use of a 2D table for the priming pulse rather than a single value. //This sets all the values in the 2D table to be the same as the previous single value configPage2.primePulse[0] = configPage2.unused2_39 / 5; //New priming pulse values are in the range 0-127.5 rather than 0-25.5 so they must be divided by 5 configPage2.primePulse[1] = configPage2.unused2_39 / 5; //New priming pulse values are in the range 0-127.5 rather than 0-25.5 so they must be divided by 5 @@ -179,13 +179,75 @@ void doUpdates() configPage2.primeBins[2] = 70; configPage2.primeBins[3] = 100; + //Also added is coolant based ASE for both duration and amount + //All the adder amounts are set to what the single value was previously + configPage2.asePct[0] = configPage2.unused2_2; + configPage2.asePct[1] = configPage2.unused2_2; + configPage2.asePct[2] = configPage2.unused2_2; + configPage2.asePct[3] = configPage2.unused2_2; + //ASE duration is set to 10s for all coolant values + configPage2.aseCount[0] = 10; + configPage2.aseCount[1] = 10; + configPage2.aseCount[2] = 10; + configPage2.aseCount[3] = 10; + //Finally the coolant bins for the above are set to sane values (Rememerbing these are offset values) + configPage2.aseBins[0] = 0; + configPage2.aseBins[1] = 20; + configPage2.aseBins[2] = 60; + configPage2.aseBins[3] = 80; + + //Coolant based ignition advance was added also. Set sane values + configPage4.cltAdvBins[0] = 0; + configPage4.cltAdvBins[1] = 30; + configPage4.cltAdvBins[2] = 60; + configPage4.cltAdvBins[3] = 70; + configPage4.cltAdvBins[4] = 85; + configPage4.cltAdvBins[5] = 100; + configPage4.cltAdvValues[0] = 0; + configPage4.cltAdvValues[1] = 0; + configPage4.cltAdvValues[2] = 0; + configPage4.cltAdvValues[3] = 0; + configPage4.cltAdvValues[4] = 0; + configPage4.cltAdvValues[5] = 0; + + //March 19 added a tacho pulse duration that could default to stupidly high values. Check if this is the case and fix it if found. 6ms is tha maximum allowed value if(configPage2.tachoDuration > 6) { configPage2.tachoDuration = 3; } + //MAP based AE was introduced, force the AE mode to be TPS for all existing tunes + configPage2.aeMode = AE_MODE_TPS; + configPage2.maeThresh = configPage2.taeThresh; + //Set some sane values for the MAP AE curve + configPage4.maeRates[0] = 75; + configPage4.maeRates[1] = 75; + configPage4.maeRates[2] = 75; + configPage4.maeRates[3] = 75; + configPage4.maeBins[0] = 7; + configPage4.maeBins[1] = 12; + configPage4.maeBins[2] = 20; + configPage4.maeBins[3] = 40; + + //The 2nd fuel table was added. To prevent issues, force it to be disabled. + configPage10.fuel2Mode = 0; + + writeAllConfig(); EEPROM.write(EEPROM_DATA_VERSION, 11); } + if(EEPROM.read(EEPROM_DATA_VERSION) == 11) + { + //July 2019 + //A battery calibration offset value was introduced. Set default value to 0 + configPage4.batVoltCorrect = 0; + + //An option was added to select the older method of performing MAP reads with the pullup resistor active + configPage2.legacyMAP = 0; + + writeAllConfig(); + EEPROM.write(EEPROM_DATA_VERSION, 12); + } + //Final check is always for 255 and 0 (Brand new arduino) if( (EEPROM.read(EEPROM_DATA_VERSION) == 0) || (EEPROM.read(EEPROM_DATA_VERSION) == 255) ) { diff --git a/speeduino/utils.ino b/speeduino/utils.ino index b5d9e716..a066a6b8 100644 --- a/speeduino/utils.ino +++ b/speeduino/utils.ino @@ -4,11 +4,6 @@ A full copy of the license may be found in the projects root directory */ - -/* - Returns how much free dynamic memory exists (between heap and stack) - This function is one big MISRA violation. MISRA advisories forbid directly poking at memory addresses, however there is no other way of determining heap size on embedded systems. -*/ #include #include "globals.h" #include "utils.h"