Loads of little updates and FSIO work (#68)

* Fix for Home page and future features page added

* Update Acceleration_Compensation.md

* Update Fuel_Overview.md

* More fuel info

* More X-tau

* Ongoing Tasks list

Free for all list for people to update as they change track

* Update Ongoing_Tasks

* Hidden names on pages and multi-spark page

* Update X-tau_Wall_Wetting.md

* Update

* Update AlphaN.md

* Update Speed_Density.md

* Fuel control overview improvement, added wide band page

* Update Wide_Band_Sensors.md

* Update Fuel_Overview.md

* Update MAF.md

* Update MAF.md

* Update rusEFI_console_directory.png

* Delete rusEFI_console_directory.png

* Delete wall_wetting.md

* Fuel Index + Formats

Also old wall wetting page kill

* Update Pages_Fuel.md

* Update Pages_Fuel.md

* Create Pages_Hardware.md

* Update Pages_Hardware.md

* Sensor and Actuators index

* Start of Ignition Index

* Create Fuel_Injectors.md

* Moved file

* Added PNP72 jumper info

* More updates + Software pages

* Update MREAdapter72.md

* Create Roadmap_Fuel.md

* Created Kit Instruction link

* Dev_Hardware_Guidelines

* Images and links update

* Update Dev_Hardware_Guidelines.md

* Update Dev_Hardware_Guidelines.md

* Update .gitignore

* Ignition FAQ and start of what we cannot do

* found by **Serching the forum** update

* Searching at top of side bar

* Photo fixes

* Create Vault_Of_Ignition_Parts.md

* Update Pages_Ignition.md

* Update FAQ_Ignition.md

* D is for DISTRACTION

* stuff

* Added Pages_FAQ_and_HOWTO

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* Update Dev_Status.md

* FSIO

* Labeled A/C Fan to Low-side, Labeled IAC Feed as 12v, Labeled 3A/3B GNDs as Power grounds, Labeled VVT Feed as 12v, Labeled EGR boost sensor as AV/MAP, Labeled TPS

* Added in VVT control row, Added in IDLE valve control row, ensured alphabetical sorting excellence

* Updated MREAdapter72 (markdown)

* Added in TPS 5v power.

* Added pin for

* Added in instructions for making use of aux low-side.

* Updated Proteus (markdown)

* Updated Proteus (markdown)

* Updated Proteus (markdown)

* stuff

* online

* stepper idle

* Create Vault_BMW_Info.md

* Updated Proteus (markdown)

* docs

* docs

* more checks

* Update FSIO.md

* Update FSIO.md

* Update FSIO.md

* docs

* Update FSIO.md

* Correction to Fuel Overview.

* updates

* Created TS-Plugin (markdown)

* STM32 working units update

* Update Hardware_Proteus_Wiring_v03.md

* updates

* Update D_is_for_DISTRACTION.md

Co-authored-by: ByteVenom <5294819+ByteVenom@users.noreply.github.com>
Co-authored-by: Matthew Kennedy <matthewkennedy@outlook.com>
Co-authored-by: rusefi <rusefillc@gmail.com>
Co-authored-by: rusefi <rusefi@users.noreply.github.com>
This commit is contained in:
OrchardPerformance 2020-06-19 14:33:41 +01:00 committed by GitHub
parent c4e5df2432
commit 72f27fa0bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 140 additions and 58 deletions

View File

@ -12,4 +12,6 @@ What this means is we politely request that people try not to ask easily answere
There are details of our plans for fuel strategy improvements [at this link](Roadmap_Fuel) as well as a comprehensive list of existing features and ones that are in development [here](Dev_Status)
If your idea does not already appear there then consider making a Github ticket but please have a think if that feature would really add to rusEFI and if it needs to be done ASAP. If not then please tag the ticket as a future feature and low priority.
Most simple questions can be answered by [searching the wiki](HOWTO-Search-on-rusEFI-wiki) or by [searching the forum](https://rusefi.com/forum/search.php)
Most simple questions can be answered by [searching the wiki](HOWTO-Search-on-rusEFI-wiki) or by [searching the forum](https://rusefi.com/forum/search.php)
![img](Images/ATdistraction.png)

View File

@ -53,3 +53,5 @@ Here are some features where AndreiKA is probably the primary SME
triggerCompCenterVolt/triggerCompHystMin/triggerCompHystMax/triggerCompSensorSatRpm
https://github.com/rusefi/rusefi/commit/2a39c69f518ff44c34bbf83b7f7f213394b74c2b
- IdleIncrementalPidCic
The idea was to replace "ITerm Min" and "ITerm Max" with a running average, so that the ITerm won't overflow

97
FSIO.md
View File

@ -1,38 +1,109 @@
# FSIO
The content below is from 2018 and is in the process of being updated.
## The content below is mostly from 2018 and is in the process of being updated. This wiki article needs to be viewed as a work in progress at this time and may contain contradictory information.
Flexible Logic is the fanciest-schmanciest feature of rusEfi.
For FSIO, rusEfi console provides a better user experience due to automated human to RPN conversion.
Flexible Logic is the fanciest-schmanciest feature of rusEfi. Using the FSIO a user can quickly add a logical function directly into the program of the ECU.
Flexible Logic allows advanced users to get unprecedented level of configurability for custom outputs and engine control. rusEfi supports up to 16 flexible outputs, each of these could be either an on/off or PWM signal. In case of a PWM signal the frequency is defined in the configuration and the duty cycle is dynamically controlled by the evaluated expression.
For FSIO, rusEfi console provides a better user experience due to automated human to RPN conversion.
---
# RPN notation
At the moment FSIO uses Reverse Polish Notation for technical reasons, so you would need to convert human-readable popular Infix notation to RPN using relevant rusEfi console features.
Because the FSIO is like coding a new function directly into the ECU from TunerStudio (or console) it comes with an additional difficulty step and that is understanding "reverse Polish Notation"
This is a form of "postfix" mathematical notation that is particularly suited to computer use and allows a processor to work directly with an equation.
If differs from the common mathematical notation as instead of having the operators (+ - < * ) between the numbers it puts all of them at the end of the expression.
Standard notation -> A + B * C
RPN notation -> A B C * +
At first look this is very confusing to read and understand but it is actually quite simple and very effective.
**The two videos below explain this very well and we strongly recommend watching them.**
https://www.youtube.com/watch?v=7ha78yWRDlE
https://www.youtube.com/watch?v=TrfcJCulsF4
![img](overview/FSIO/FSIO_for_idle_target.png)
The TLDR is that the processor is critical to how this notation works, if a value is a number it loads it onto its "stack" if a value is an operator it performs an operation on the numbers in the stack.
rusEFI console now has build-in decoder of RPN form, for example:
A simple example of how this works is as follows:
A B +
| Stack | Value |
| ------------- |:-------------:|
| + | Operand |
| B | Number |
| A | Number |
How the processor interprets this is: *"Add, Number B, to Number A."*
A B C * +
| Stack | Value |
| ------------- |:-------------:|
| * | Operand |
| C | Number |
| B | Number |
| A | Number |
The Processor hits the * operator first so performs a multiplication on the B and C. *"Multiply, by Number C, Number B"*
The result of B*C would then be put back on the stack, for our example we will call this D. At which point the processor would continue the calculation. "A, B, C and *" have already been taken care of so the result would be as shown below.
| Stack | Value |
| ------------- |:-------------:|
| + | Operand |
| D | Number |
| A | Number |
As previously shown this would be *"add, Number D, to Number A"*
The clever part of this notation is that it does not need to have parenthesis in order to conform to correct calculation order [See here for deeper understanding of the importance of calculation order in maths](https://en.wikipedia.org/wiki/Order_of_operations)
Taking a simple calculation to prevent a starter button working above cranking speed (as used on the Prometheus ECU):
Standard notation -> RPM < Cranking_RPM
RPN -> RPM Cranking_RPM <
| Stack | Value |
| ------------- |:-------------:|
| < | Operand |
| Cranking_RPM | Number |
| RPM | Number |
Resulting in the processor reading the < operand and performing a "less than" assessment of Cranking_RPM and RPM.
*"Less than check for, Cranking_RPM, being less than RPM"*
RPN is not easy at first but hopefully this short guide and the examples shown below in a similar format will make this as easy as possible while giving a little bit of understanding of how an ECU processes the FSIO.
----
## rusEFI console now has build-in decoder of RPN form.
For example entering the formula below into the command window:
```decode_rpn "0 fsio_analog_input 20 > 0 10 if"```
Would return "Human form is "if((fsio_analog_input(0) > 20), 0, 10)"
"
Would return
```"Human form is "if((fsio_analog_input(0) > 20), 0, 10)"```
and
```decode_rpn "0 fsio_input 20 > 0 10 if"```
```"decode_rpn "0 fsio_input 20 > 0 10 if"```
It would show a filing to parse message with a list of some known functions.
---
# Examples
----------------------
## Rev limit logic
![img](overview/FSIO/FSIO_for_idle_target.png)
![img](Images/RevFSIO.png)
@ -169,9 +240,9 @@ here 3 is the index of the output pin
A configurable version of same would be
set_fsio_expression 3 "rpm > fsio_setting(3)"
*set_fsio_expression 3 "rpm > fsio_setting(3)"*
set_fsio_setting 3 4500
*set_fsio_setting 3 4500*
---
@ -190,7 +261,7 @@ Configure output #3 to use 200Hz PWM
And finally set the expression:
'set_fsio_expression 3 "0 80 rpm 1200 > ac_on_switch AND IF"'
*'set_fsio_expression 3 "0 80 rpm 1200 > ac_on_switch AND IF"'*
Which is RPN for if(rpm > 1200 AND ac_on_switch, 80, 0)

View File

@ -13,12 +13,14 @@ Most people who are installing tune-able ECU's like rusEFI are looking for more
# Supported fuel control algorithms
rusEFI supports mono, individual/sequential and batched fuel injection using one of the following fuel control algorithms:
1) MAF-based or MAP-based table fuel lookup with interpolation - these algorithms are pretty rough since they do not account for ambient air temperature but not many sensor are required to run.
1) MAF-based or MAP-based table fuel lookup with interpolation - these algorithms only use the raw sensor output and thus they do not account for ambient air temperature, this is only intended as a minimum viable hardware configuration and we would suggest using the AlphaN, Speed Density or MAF air charge methods instead.
2) TPS-based table fuel lookup with interpolation (Alpha-N)
3) MAP-based Speed Density model, with fuel auto-tune provided by a fully registered copy of TunerStudio
4) MAF based air charge model that computed the air mass in the cylinder and thus the required fuel quantity from the direct measurement of the mass air flow.
Wideband Oxygen Sensor is pretty much a requirement for both manual and auto-tuning.

View File

@ -65,13 +65,6 @@ If a different air/fuel ratio is desired at a specific load or RPM then the AFR
[//]: # "Add VE table picture"
# Obsolete information below
MAF-based table fuel lookup with interpolation
fuel_squirt_duration = injector_lag_curve_lookup(V_BATT) + warm_up_curve_lookup(COOLANT_TEMPERATURE) * intake_air_correction_curve_lookup(INTAKE_AIR_TEMP) * fuel_table_lookup(RPM, MAF)
where MAF is the reading at the start of engine cycle
Some useful MAF sensor maths in [this link](https://www.efunda.com/designstandards/sensors/hot_wires/hot_wires_theory.cfm)
[//]: # "OrchardPerformance"

View File

@ -8,8 +8,8 @@ As of March 2020 Frankenso board is sold as mostly as a DIY kit.
| Board | Features | Released in | Maximum recommended engine |
| ------------- | ------------- | ---- | ---- |
| [Frankenso](https://rusefi.com/forum/viewtopic.php?f=4&t=569) | Most customizable board | 2014 | Flexible - probably 8 cylinder max recommended |
| [Prometheus](https://rusefi.com/forum/viewtopic.php?f=4&t=1215) | The only rusEfi board with on-board wide band controller | 2017 | 4 cylinder |
| [Frankenstein](https://rusefi.com/forum/viewtopic.php?f=4&t=359) | Simplest rusEfi board | 2014 | Flexible - probably 8 cylinder max recommended |
| [Prometheus](https://rusefi.com/forum/viewtopic.php?f=4&t=1215) | The only rusEfi board with on-board wide band controller. | 2017 | 4 cylinder. No plans to offer assembled units. |
| [Frankenstein](https://rusefi.com/forum/viewtopic.php?f=4&t=359) | Simplest rusEfi board | 2014 | Flexible - probably 8 cylinder max recommended. No plans to offer assembled units. |
| [microRusEfi](Hardware_microRusEfi) | Available fully assembled! | 2019 | 4 cylinder, single electronic throttle |
| [Hellen](https://rusefi.com/forum/viewtopic.php?f=4&t=1682) | Coming soon! | 2020 | TBD cylinder, single electronic throttle |
| [Proteus](Proteus) | rusEfi if you have lots of hardware or cylinders | 2020 | 12 cylinder, dual electronic throttles |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 2.2 MiB

View File

@ -17,11 +17,14 @@ If in double of your SMD skills please consider fully assembled version.
For component placement please use interactive BOM
[0.4.7](https://rusefi.com/docs/ibom/microRusEfi_R0.4.7.html)
[0.5.0](https://rusefi.com/docs/ibom/micro_rusEFI_0.5.0.html)
[0.4.8](https://rusefi.com/docs/ibom/microRusEfi_R0.4.8.html)
[0.5.0](https://rusefi.com/docs/ibom/micro_rusEFI_0.5.0.html)
[0.4.7](https://rusefi.com/docs/ibom/microRusEfi_R0.4.7.html)
[Some checkpoints](Hardware/microrusefi/Hardware_microRusEfi_0_4_7_front_checks.jpg)
All microRusEfi kits use [MRE F4 rusEfi firmware - DOWNLOAD LATEST BUNDLE HERE](https://rusefi.com/build_server/rusefi_bundle_mre-f4.zip)
@ -31,11 +34,11 @@ All microRusEfi kits use [MRE F4 rusEfi firmware - DOWNLOAD LATEST BUNDLE HERE](
[Wiring Diagram](Hardware_microRusEfi_wiring)
[0.4.7 schematics PDF](https://github.com/rusefi/hw_microRusEfi/blob/master/microRusEfi_Schematic_0_4_7.pdf)
[0.5.0 schematics PDF](https://github.com/rusefi/hw_microRusEfi/blob/master/micro_rusEFI_Schematic_0_5_0.pdf)
[0.4.8 schematics PDF](https://github.com/rusefi/hw_microRusEfi/blob/master/microRusEfi_Schematic_0_4_8.pdf)
[0.5.0 schematics PDF](https://github.com/rusefi/hw_microRusEfi/blob/master/micro_rusEFI_Schematic_0_5_0.pdf)
[0.4.7 schematics PDF](https://github.com/rusefi/hw_microRusEfi/blob/master/microRusEfi_Schematic_0_4_7.pdf)
[rusEfi Slack channel](https://rusefi.com/forum/viewtopic.php?f=13&t=1198) is the primary support channel.

View File

@ -22,25 +22,25 @@
| 14 |Highside #4 | hs | output |
| 15 |**Lowside #2** | ls | Injector #2 |
| 16 |**Lowside #4** | ls | Injector #4 |
| 17 | **GND** | y | Power GND |
| 18 | **GND** | y | Power GND |
| 19 |**Lowside #8** | y | Injector #8 |
| 20 |**Lowside #10**| y | Injector #10 |
| 21 |**Lowside #12**| y | Injector #12 |
| 22 | Ignition 3 | y | Ignition cylinder 3 |
| 23 |**Lowside #16**| y | low-side output: fuel pump |
| 24 | **GND** | y | Power GND |
| 25 | Ignition 12 | y | Ignition cylinder 12 |
| 26 | Ignition 11 | y | Ignition cylinder 11 |
| 27 | Ignition 10 | y | Ignition cylinder 10 |
| 28 | Ignition 9 | y | Ignition cylinder 9 |
| 29 | Ignition 8 | y | Ignition cylinder 8 |
| 30 | Ignition 7 | y | Ignition cylinder 7 |
| 31 | Ignition 6 | y | Ignition cylinder 6 |
| 32 | Ignition 5 | y | Ignition cylinder 5 |
| 33 | Ignition 4 | y | Ignition cylinder 4 |
| 34 | Ignition 2 | y | Ignition cylinder 2 |
| 35 | Ignition 1 | y | Ignition cylinder 1 |
| 17 | **GND** | gnd | Power GND |
| 18 | **GND** | gnd | Power GND |
| 19 |**Lowside #8** | ls | Injector #8 |
| 20 |**Lowside #10**| ls | Injector #10 |
| 21 |**Lowside #12**| ls | Injector #12 |
| 22 | Ignition 3 | hl | Ignition cylinder 3 |
| 23 |**Lowside #16**| ls | low-side output: fuel pump |
| 24 | **GND** | gnd | Power GND |
| 25 | Ignition 12 | hl | Ignition cylinder 12 |
| 26 | Ignition 11 | hl | Ignition cylinder 11 |
| 27 | Ignition 10 | hl | Ignition cylinder 10 |
| 28 | Ignition 9 | hl | Ignition cylinder 9 |
| 29 | Ignition 8 | hl | Ignition cylinder 8 |
| 30 | Ignition 7 | hl | Ignition cylinder 7 |
| 31 | Ignition 6 | hl | Ignition cylinder 6 |
| 32 | Ignition 5 | hl | Ignition cylinder 5 |
| 33 | Ignition 4 | hl | Ignition cylinder 4 |
| 34 | Ignition 2 | hl | Ignition cylinder 2 |
| 35 | Ignition 1 | hl | Ignition cylinder 1 |
## Black 23 Pin 776228-1
|Pin Number|Name | Type ID | Default function |
@ -53,9 +53,9 @@
| 6 | ETB1- | etb | ETB 1 negative |
| 7 | ETB1+ | etb | ETB 1 positive |
| 8 | ETB2- | etb | ETB 2 negative |
| 9 | DIGITAL 5 | y | Digital trigger/switch input |
| 10 | DIGITAL 1 | y | Digital trigger/switch input |
| 11 | DIGITAL 6 | y | Digital trigger/switch input |
| 9 | DIGITAL 5 | din | Digital trigger/switch input |
| 10 | DIGITAL 1 | din | Digital trigger/switch input |
| 11 | DIGITAL 6 | din | Digital trigger/switch input |
| 12 | VR2 neg | vr | Variable Reluctance #2 negative |
| 13 | VR1 neg | vr | Variable Reluctance #1 negative |
| 14 | USB D- | usb | USB |
@ -63,8 +63,8 @@
| 16 | CAN- | can | CAN bus low |
| 17 | CAN+ | can | CAN bus high |
| 18 | +12 raw | 12v | ignition power / ECU power source |
| 19 | **GND** | y | Power GND |
| 20 | **GND** | nc | Power GND |
| 19 | **GND** | gnd | Power GND |
| 20 | **GND** | gnd | Power GND |
| 21 | USB D+ | usb | USB |
| 22 | USB Shield | usb | USB - connect to cable shield |
| 23 | +12V mr | 12v | ETB/high-side power supply from main relay |

BIN
Images/ATdistraction.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

View File

@ -14,4 +14,6 @@ Source & production files at: https://github.com/mck1117/proteus/
### TE Ampseal Connectors
[Ampseal application specification](https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Specification+Or+Standard%7F114-16016%7FM%7Fpdf%7FEnglish%7FENG_SS_114-16016_M.pdf%7FN-A): This document includes how to crimp connectors, how to install them in to headers, and how to remove pins from a header.
[Ampseal tutorial video](https://www.youtube.com/watch?v=24bNFu7a9lc)
[Ampseal application specification (instruction manual)](https://www.te.com/commerce/DocumentDelivery/DDEController?Action=showdoc&DocId=Specification+Or+Standard%7F114-16016%7FM%7Fpdf%7FEnglish%7FENG_SS_114-16016_M.pdf%7FN-A): This document includes how to crimp connectors, how to install them in to headers, and how to remove pins from a header.

3
TS-Plugin.md Normal file
View File

@ -0,0 +1,3 @@
rusEFI TunerStudio plugin is part of [Online](rusEFI Online) suite.
rusEFI TunerStudio plugin facilitates tune & logs upload.

View File

@ -21,4 +21,9 @@ We get a lot of questions along the lines of "Can rusEFI run on XYZ processor?"
##
## STM32 Chips
There are many possible STM32 chips and development boards available on Ebay and Aliexpress that might in theory work with rusEFI.
In reality there is absolutely no guarantee that any one of these will work as there are so many small variations of pinout, ram spec, processor speed, IO configurations, etc that it is impossible to support them all.
This is without considering the problems that come with fake/poor quality chips or the GD32 series.
For these reasons rusEFI only officially supports the chips listed [here](stm32_readme) we cannot provide assistance to get rusEFI working on any other chip set.

View File

@ -6,8 +6,8 @@ rusEfi is known to work on these stm32 chips:
|------|-----------|-----|-------|-------|---|---|
| F407 | 168 MHz | 192 Kb | 1M | most popular rusEfi chip | | |
| F469 | 180 MHz | 384 KB | two banks of flash should allow storing settings without execution pauses. | Prometheus board. | | |
| | | | | | | |
| | | | | | | |
| F767 | 216MHz | 512 KB | 1M | Used on MicroRusEFI | | |
| F429 | 180MHz | 256 KB | 2MB | 144 pin used on Proteus | [pinout](https://os.mbed.com/platforms/ST-Nucleo-F767ZI/#board-pinout) | |
| | | | | | | |
Trying to get rusEfi running on:
@ -15,7 +15,6 @@ Trying to get rusEfi running on:
| chip | Frequency | Ram | Flash | Notes | Package notes | |
|------|-----------|-----|-------|-------|---|---|
| F746 | 216 MHz | 320 Kb | 1M | . | | [pinout](https://os.mbed.com/platforms/ST-Nucleo-F746ZG/#board-pinout) |
| F767 | 216 MHz | 512 KB | 2M | .. | | [pinout](https://os.mbed.com/platforms/ST-Nucleo-F767ZI/#board-pinout) |
| F767 | 400 MHz | 1024 KB | 2M | .. | | [pinout](https://os.mbed.com/platforms/ST-Nucleo-H743ZI/#board-pinout) |