From e75953ca37fe3f884588537840e9eace216266d5 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:35:45 +0000 Subject: [PATCH 01/56] docs: update configuration/Engine_Constants --- configuration/Engine_Constants.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/Engine_Constants.md b/configuration/Engine_Constants.md index efb5504..0212330 100644 --- a/configuration/Engine_Constants.md +++ b/configuration/Engine_Constants.md @@ -2,7 +2,7 @@ title: Engine Constants description: published: true -date: 2020-01-16T11:22:51.218Z +date: 2020-01-16T11:35:42.148Z tags: TunerStudio --- @@ -10,7 +10,7 @@ tags: TunerStudio From the Settings menu, select Constants -![TS_8.png](/img/TS_8.png){.align-center width=300} +![TS_8.png](/img/TunerStudio/TS_8.png){.align-center width=300} Here you need to setup the engine constants. Fill out the fields in the bottom section before calculating the Required Fuel. From c48369d5855b2c8534e49a4654c630c0ff9a0314 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:37:09 +0000 Subject: [PATCH 02/56] docs: update configuration/Flex_Fuel --- configuration/Flex_Fuel.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/Flex_Fuel.md b/configuration/Flex_Fuel.md index 9fcfb62..7b8a16e 100644 --- a/configuration/Flex_Fuel.md +++ b/configuration/Flex_Fuel.md @@ -2,7 +2,7 @@ title: Flex Fuel description: Setting up the flex fuel / ethanol content sensor published: true -date: 2020-01-07T01:46:18.138Z +date: 2020-01-16T11:37:06.161Z tags: --- @@ -40,7 +40,7 @@ On boards earlier to these, you will need to add a pullup resistor of between 2k Tuning ------ -![flex_settings.png](/img/flex/flex_settings.png =80%x){.align-center} +![flex_settings.png](/img/flex/flex_settings.png){.align-center width=450} - **Sensor frequency -** The minimum and maximum frequency of the sensor that represent 0% and 100% ethanol respectively. For standard GM/Continental flex sensors, these values are 50 and 150 - **Fuel multiplier% -** This is the additional fuel that should be added as ethanol content increases. The Low value on the left represents the adjustment to the fuel map at 0% ethanol and will typically be 100% if the base tune was performed with E0 fuel. If the base tune was made with E10 or E15 however, this value can be adjusted below 100%. The high value represents the fuel multiplier at 100% ethanol (E100) and the default value of 163% is based on the theoretical difference in energy density between E0 and E100. Tuning of this value may be required From 5332ee2c9fffec035b07b2598ee1ee124ce63fe4 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:38:20 +0000 Subject: [PATCH 03/56] docs: update configuration/Staged_Injection --- configuration/Staged_Injection.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Staged_Injection.md b/configuration/Staged_Injection.md index 4b274ec..b8545d7 100644 --- a/configuration/Staged_Injection.md +++ b/configuration/Staged_Injection.md @@ -2,7 +2,7 @@ title: Staged Injection description: Configuring multi-stage fuel injection published: true -date: 2020-01-07T01:47:42.658Z +date: 2020-01-16T11:38:17.245Z tags: --- @@ -25,8 +25,8 @@ No matter which control strategy is chosen, you must enter the sizing of the pri **Secondary Injectors :** 700cc **Value entered into the req_fuel calculator :** 1000cc -![staging_settings.PNG](/img/staging/staging_settings.PNG =60%x){.align-center} -![staging_settings.PNG](/img/staging/staged_reqfuel.PNG =60%x){.align-center} +![staging_settings.PNG](/img/staging/staging_settings.PNG){.align-center width=400} +![staging_settings.PNG](/img/staging/staged_reqfuel.PNG){.align-center width=400} ### Control methods From 12ff02cecf324b150b1a4230f15a46e9e84871b7 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:39:19 +0000 Subject: [PATCH 04/56] docs: update configuration/Spark_Settings --- configuration/Spark_Settings.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Spark_Settings.md b/configuration/Spark_Settings.md index 048bef6..722eb4c 100644 --- a/configuration/Spark_Settings.md +++ b/configuration/Spark_Settings.md @@ -2,7 +2,7 @@ title: Spark Settings description: Configuration options for the ignition outputs published: true -date: 2020-01-07T00:24:16.790Z +date: 2020-01-16T11:39:15.628Z tags: --- @@ -16,7 +16,7 @@ Please ensure you have reviewed these settings prior to attempting to start your Settings -------- -![spark_settings.png](/img/ignition/spark_settings.png){.align-center} +![spark_settings.png](/img/ignition/spark_settings.png){.align-center width=500} - **Spark Output mode** - Determines how the ignition pulses will be outputted and is very specific to your ignition wiring. **Note that no matter which option is selected here, ignition signals ALWAYS fire in numerical order (ie 1->2->3->4) up to the maximum number of outputs**. The firing order of the engine is accounted for in the wiring order. - **Wasted Spark** - Number of ignition outputs is equal to half the number of cylinders and each output will fire once every crank revolution. One spark will therefore take place during the compression stroke and the other on the exhaust stroke (aka the 'wasted' spark). This method is common on many 80s and 90s vehicles that came with specific wasted spark coils, but can also be used with individual coils that are wired in pairs. Wasted spark will function with only a crank angle reference (Eg a missing tooth crank wheel with no cam signal) - **Single Channel** - This mode sends all ignition pulses to IGN1 output and is used when the engine contains a distributor (Typically with a single coil). The number of output pulses per (crank) revolution is equal to half the number of cylinders. @@ -29,7 +29,7 @@ Settings ### Rotary modes -![rotary_settings.png](/img/ignition/rotary_settings.png){.align-center} +![rotary_settings.png](/img/ignition/rotary_settings.png){.align-center width=450} Speeduino currently only supports the ignition configuration used on FC RX7 engines. Support for FD and RX8 ignition setups is in development. The leading / trailing split angle can be set as a function of the current engine load. - **FC** - Outputs are configured for the Leading/Trailing setup that was used on FC RX7s. Wiring is: From 87a5ee839430d05dbbc3bf89a12d7ba90fdcd191 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:40:03 +0000 Subject: [PATCH 05/56] docs: update configuration/Dwell --- configuration/Dwell.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Dwell.md b/configuration/Dwell.md index e548c80..b4e986d 100644 --- a/configuration/Dwell.md +++ b/configuration/Dwell.md @@ -2,7 +2,7 @@ title: Dwell description: published: true -date: 2020-01-07T01:48:38.837Z +date: 2020-01-16T11:40:00.504Z tags: --- @@ -16,7 +16,7 @@ From the April 2017 firmware onwards, dwell will automatically reduce when the c Settings ======== -![dwell.png](/img/ignition/dwell.png =60%x){.align-center} +![dwell.png](/img/ignition/dwell.png){.align-center width=400} **Note:** Both the running and cranking dwell times are nominal values, assumed to be at a constant voltage (Usually 12v). Actual dwell time used will depend on the current system voltage with higher voltages having lower dwell times and vice versa. See section below on voltage correction - Cranking dwell - The nominal dwell time that will be used during cranking. Cranking is defined as being whenever the RPM is above 0, but below the 'Cranking RPM' values in the [Cranking](Cranking "wikilink") dialog @@ -31,4 +31,4 @@ As the system voltage rises and falls, the dwell time needs to reduce and increa The correction curve in the base tune file should be suitable for most coils / igniters, but can be altered if required. -![dwell_correction.png](/img/ignition/dwell_correction.png =60%x){.align-center} +![dwell_correction.png](/img/ignition/dwell_correction.png){.align-center width=450} From 731118c4d97bf986441dbf9835d2c96fffd59ff7 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:40:30 +0000 Subject: [PATCH 06/56] docs: update configuration/IAT_Retard --- configuration/IAT_Retard.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/IAT_Retard.md b/configuration/IAT_Retard.md index 264d3f4..5e5f800 100644 --- a/configuration/IAT_Retard.md +++ b/configuration/IAT_Retard.md @@ -2,7 +2,7 @@ title: Temperature based timing changes description: published: true -date: 2020-01-14T00:30:56.331Z +date: 2020-01-16T11:40:27.486Z tags: tuning --- @@ -11,4 +11,4 @@ Changes in Inlet Air Temperature (IAT), in particular significant increases whil ## Example Exact settings will be engine dependant, but pulling of ignition timing beyond 100\*C is a common scenario. -![iat_retard.png](/img/ignition/iat_retard.png =500x){.align-center} \ No newline at end of file +![iat_retard.png](/img/ignition/iat_retard.png){.align-center width=500} \ No newline at end of file From 0dd480b169f13f6b1650ab6ad3c17bc68436a0f0 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:40:59 +0000 Subject: [PATCH 07/56] docs: update configuration/Cranking --- configuration/Cranking.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/Cranking.md b/configuration/Cranking.md index c73f38f..8b7f1e7 100644 --- a/configuration/Cranking.md +++ b/configuration/Cranking.md @@ -2,7 +2,7 @@ title: Cranking description: published: true -date: 2020-01-07T01:57:30.177Z +date: 2020-01-16T11:40:55.664Z tags: --- @@ -15,7 +15,7 @@ Settings -------- -![cranking.png](/img/warmup/cranking.png =70%x){.align-center} +![cranking.png](/img/warmup/cranking.png){.align-center width=450} - **Cranking RPM** - This sets the threshold for whether Speeduino will set its status to be cranking or running. Any RPM above 0 and below this value will be considered cranking and all cranking related adjustments will be applied. It's generally best to set this to be around 100rpm higher than your typical cranking speed to account for spikes and to provide a smoother transition to normal idle - **Flood Clear level** - Flood clear is used to assist in removing excess fuel that has entered the cylinder/s. Whilst flood clear is active, all fuel and ignition events will be stopped and the engine can be cranked for a few seconds without risk of starting or further flooding. To trigger flood clear, the RPM must be **below** the above Cranking RPM setting and the TPS must be **above** the threshold of this setting. From 36021fcb85ac89f8237d7e733b55891f97af0e2b Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:41:28 +0000 Subject: [PATCH 08/56] docs: update configuration/Warmup --- configuration/Warmup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/Warmup.md b/configuration/Warmup.md index 713f5a0..89681d4 100644 --- a/configuration/Warmup.md +++ b/configuration/Warmup.md @@ -2,7 +2,7 @@ title: Warmup description: published: true -date: 2020-01-07T01:58:36.229Z +date: 2020-01-16T11:41:25.336Z tags: --- @@ -11,7 +11,7 @@ tags: The Warm Up Enrichment (WUE) dialog contains settings related to the period after start (ie not cranking) but before the engine has reached normal operating temperature. It allows for modifications to fueling during this time to ## Settings -![warmup.PNG](/img/warmup/warmup.PNG =80%x){.align-center} +![warmup.PNG](/img/warmup/warmup.PNG){.align-center width=450} ### Warmup curve This curve represents the additional fuel amount to be added whilst the engine is coming up to temperature (Based on the coolant sensor). The final value in this curve should represent the normal running temperature of the engine and have a value of 100% (Representing no modification of the fuel from that point onwards). From f86f9e9e5a63b041bb993aaa4cad474297e5c83b Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:42:07 +0000 Subject: [PATCH 09/56] docs: update configuration/Thermo_fan --- configuration/Thermo_fan.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Thermo_fan.md b/configuration/Thermo_fan.md index 5aeca62..8b497ad 100644 --- a/configuration/Thermo_fan.md +++ b/configuration/Thermo_fan.md @@ -2,8 +2,8 @@ title: Thermo fan description: Control of a cooling fan relay published: true -date: 2020-01-14T02:17:03.743Z -tags: tuning, aux outputs +date: 2020-01-16T11:42:04.261Z +tags: aux outputs, tuning --- # Thermo fan @@ -13,7 +13,7 @@ Control of a cooling (thermo) fan is available through the Thermo fan dialog. {.is-info} ## Settings -![fan.png](/img/accessories/fan.png =500x){.align-center} +![fan.png](/img/accessories/fan.png){.align-center width=450} * **Fan mode** - Currently only `On/Off` mode is supported * **Output pin** - The arduino pin that the fan control will use. In most cases this should be left as `Board Default` From 42a6af31ee9c16ee39eb0028e8da49413e869334 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:42:40 +0000 Subject: [PATCH 10/56] docs: update configuration/Fuel_pump --- configuration/Fuel_pump.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/Fuel_pump.md b/configuration/Fuel_pump.md index 218eb22..f20e356 100644 --- a/configuration/Fuel_pump.md +++ b/configuration/Fuel_pump.md @@ -2,7 +2,7 @@ title: Fuel pump description: Setting the on/off conditions of the fuel pump published: true -date: 2020-01-14T06:24:04.641Z +date: 2020-01-16T11:42:37.440Z tags: aux outputs, tuning --- @@ -10,7 +10,7 @@ tags: aux outputs, tuning Fuel pump ontrol is a simple but important function performed by the ECU. Currently Speeduino does not perform variable (PWM) pump control, but ## Settings -![fuel_pump.png](/img/accessories/fuel_pump.png =500x){.align-center} +![fuel_pump.png](/img/accessories/fuel_pump.png){.align-center width=480} * **Fuel pump pin** - The Arduino pin that the fuel pump output is on. In most cases this should be left to `Board Default` unless you have a specific reason to change this. * **Prime duration** - How long (In seconds) the fuel pump should run when the system is first powered up. Note that this is triggered **when the ECU is powered on**, which will not always be the same as when the ignition is turned out. If you have a USB cable connected then the ECU is already powered up. \ No newline at end of file From 93949b35137b6f32308329c213e552b69b06d40d Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:43:22 +0000 Subject: [PATCH 11/56] docs: update configuration/Boost_Control --- configuration/Boost_Control.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Boost_Control.md b/configuration/Boost_Control.md index 95dcc47..d5bbebf 100644 --- a/configuration/Boost_Control.md +++ b/configuration/Boost_Control.md @@ -2,7 +2,7 @@ title: Boost Control description: Open and closed loop boost control settings published: true -date: 2020-01-07T03:05:38.368Z +date: 2020-01-16T11:43:18.702Z tags: --- @@ -17,11 +17,11 @@ Settings -------- Speeduino's boost control uses a PID algorithm with 2 modes of operation, Simple and Full. Each has their own advantages and disadvantages, as outlined below -![boost_settings.png](/img/accessories/boost_settings.png =80%x){.align-center} +![boost_settings.png](/img/accessories/boost_settings.png){.align-center width=400} In Simple mode, the PID values themselves are controlled by the ECU itself and a sensitivity slider is used to adjust how aggressive the output duty cycle will be set. The simple mode can be easy and fast to setup, however has the downside that to avoid overboost, the sensitivity may need to be set low, which can increase lag. ### Target table -![boost_map.png](/img/accessories/boost_map.png){.align-center} +![boost_map.png](/img/accessories/boost_map.png){.align-center width=450} The boost map function varies depending on whether open or closed loop boost control has been selected. From 412c54cb9823a98b5f6433f398d18292634e1b2f Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:45:07 +0000 Subject: [PATCH 12/56] docs: update configuration/Sensor_Calibration --- configuration/Sensor_Calibration.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/configuration/Sensor_Calibration.md b/configuration/Sensor_Calibration.md index 44840b9..5f04d43 100644 --- a/configuration/Sensor_Calibration.md +++ b/configuration/Sensor_Calibration.md @@ -2,7 +2,7 @@ title: Sensor Calibration description: Steps for calibrating all analog sensor inputs published: true -date: 2020-01-07T03:13:01.249Z +date: 2020-01-16T11:45:03.850Z tags: --- @@ -16,11 +16,11 @@ This should be completed after completing the Settings for your engine. Your com Open the **Tools** menu: tools_menu -![tools_menu.png](/img/tuning/tools_menu.png =50%x){.align-center} +![tools_menu.png](/img/tuning/tools_menu.png){.align-center width=400} Select **Calibrate Pressure Sensors**, the window below will open: -![MAP_calibration.png](/img/tuning/MAP_calibration.png =60%x){.align-center} +![MAP_calibration.png](/img/tuning/MAP_calibration.png){.align-center width=400} Select your MAP Sensor from the drop down list. If you used the MAP sensor in the bill of materials, this will be the MPX4250A. If you are using another MAP or one from the engine manufacturer, select it from the list. Click **Burn** to send the information to your Speeduino. @@ -35,11 +35,11 @@ The sensor selected will be the **Coolant Temperature Sensor**. Select your sens Note that the standard Speeduino build is to have a 2490 ohm bias resistor, which is standard for sensors used by most manufacturers. If your sensor requires another value, you may need to change resistor R3 to the correct value for your sensor. You can try overriding the Bias Resistor Value with 2490 ohms, but check to be sure your sensor reads correctly in TS. -![CLT_calibration.png](/img/tuning/CLT_calibration.png =70%x){.align-center} +![CLT_calibration.png](/img/tuning/CLT_calibration.png){.align-center width=450} The same calibration can then be performed for the Inlet Air Temperature (IAT) sensor by changing the **Sensor Table** to **Air Temperature Sensor**: -![IAT_calibration.png](/img/tuning/IAT_calibration.png =70%x){.align-center} +![IAT_calibration.png](/img/tuning/IAT_calibration.png){.align-center width=450} Select your sensor from the **Common Sensor Values** drop-down list. This will place the correct values into the temperature and resistance charts and the Bias resistor value. Click **Write to Controller** to send this information to your Speeduino. If your sensor is not listed, see [Entering Custom Values](#Entering_Custom_Values "wikilink") below. @@ -59,7 +59,7 @@ Note that his procedure can also be used to enter the values of resistance on si Open the **Tools** menu again and select **Calibrate AFR Table**: -![O2_calibration.png](/img/tuning/O2_calibration.png =60%x){.align-center} +![O2_calibration.png](/img/tuning/O2_calibration.png){.align-center width=400} Select your **Oxygen Sensor sensor** from the **Common Sensor Values** drop-down list. If you are using a custom Oxygen Sensor controller, select **Custom Linear WB** and then you can enter the values for **Volts** and **AFR** at two points (should be published in the controller manual). @@ -73,7 +73,7 @@ This will set up your Speeduino so that you can also run simulations to check yo Before Speeduino can work correctly with your engine, you will also need to Calibrate the Throttle Position Sensor. This must be done using the throttle body and TPS used on the engine. It is best to do this while the throttle body is installed on the engine. Open the **Tools** menu and select **Calibrate TPS**: -![TPS_calibration.png](/img/tuning/TPS_calibration.png =50%x){.align-center} +![TPS_calibration.png](/img/tuning/TPS_calibration.png){.align-center width=480} With the throttle closed, click the **Get Current** button beside the Closed Throttle ADC count field. Then move the throttle to full open and hold it there. Then click the **Get Current** button beside the Full Throttle ADC count field. Click **Accept** to save the information to Speeduino. \ No newline at end of file From 33256138d57b4520f7134a56a11dc61a115a25b9 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:46:44 +0000 Subject: [PATCH 13/56] docs: update decoders/Missing_Tooth_(cam) --- decoders/Missing_Tooth_(cam).md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/decoders/Missing_Tooth_(cam).md b/decoders/Missing_Tooth_(cam).md index d0273bd..89c47a4 100644 --- a/decoders/Missing_Tooth_(cam).md +++ b/decoders/Missing_Tooth_(cam).md @@ -2,7 +2,7 @@ title: Missing Tooth (Cam speed) description: published: true -date: 2020-01-07T05:01:47.638Z +date: 2020-01-16T11:46:41.284Z tags: decoder --- @@ -18,7 +18,7 @@ Missing tooth cam or distributor wheels can be used with cam or distributor whee Due to typically limited teeth, only half the teeth being read on each revolution, and the potential for reduced accuracy due to timing drive wear; the timing accuracy may be reduced in comparison to crank wheel systems. A figure of error cannot be predicted here as the wear or 'slop' of a given engine will be unique. However, it should be reasonable to assume the timing error will not exceed the accuracy of an OEM-equivalent cam-driven system such as typical distributor systems, or possibly better due to more sensor targets. ## Tuner Studio Configuration -![missingtooth_cam_triggerconfig.png](/img/decoders/missingtooth_cam_triggerconfig.png =80%x){.align-center} +![missingtooth_cam_triggerconfig.png](/img/decoders/missingtooth_cam_triggerconfig.png){.align-center width=450} **Fields:** - Primary base teeth: This is the number of teeth the wheel would have if there were none missing, e.g. a 36-1 wheel has only 35 actual teeth, but you would enter 36 into this field. @@ -32,4 +32,4 @@ The trigger angle is set in CRANK degrees, not cam. ## Trigger Pattern -![missingtooth_cam_trace.jpg](/img/decoders/missingtooth_cam_trace.jpg =75%x){.align-center} +![missingtooth_cam_trace.jpg](/img/decoders/missingtooth_cam_trace.jpg){.align-center width75%} From b11be71fc94f46625dceb8f334d1a93ac45d3f9b Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:48:05 +0000 Subject: [PATCH 14/56] docs: update decoders/Daihatsu_+1 --- decoders/Daihatsu_+1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/decoders/Daihatsu_+1.md b/decoders/Daihatsu_+1.md index a2e89c0..90b3124 100644 --- a/decoders/Daihatsu_+1.md +++ b/decoders/Daihatsu_+1.md @@ -2,7 +2,7 @@ title: Daihatsu +1 trigger description: published: true -date: 2020-01-07T03:54:13.568Z +date: 2020-01-16T11:48:01.703Z tags: --- @@ -29,4 +29,4 @@ In 3 cylinder engines, there are 3 evenly spaced teeth at 0, 240 and 480 crank d The 4 cylinder is the same, except with 4 evenly spaced teeth. The 5 teeth are therefore located at 0, 30, 180, 360 & 540 (Crank degrees, ATDC) -![daihatsu_3_1.png](/img/decoders/daihatsu_3_1.png =75%x){.align-center} +![daihatsu_3_1.png](/img/decoders/daihatsu_3_1.png){.align-center width=80%} From fd63a923b9a90ddd61986a6f344f1b7d40bfde38 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:48:56 +0000 Subject: [PATCH 15/56] docs: update decoders/Subaru_36-2-2-2 --- decoders/Subaru_36-2-2-2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/decoders/Subaru_36-2-2-2.md b/decoders/Subaru_36-2-2-2.md index acc0ee9..f81e8f2 100644 --- a/decoders/Subaru_36-2-2-2.md +++ b/decoders/Subaru_36-2-2-2.md @@ -2,7 +2,7 @@ title: Subaru 36-2-2-2 description: published: true -date: 2020-01-07T03:52:13.677Z +date: 2020-01-16T11:48:52.741Z tags: --- @@ -17,6 +17,6 @@ The 3 sets of 2 missing teeth are located such that one group is on its own and Cylinder 1 TDC compression happens on the fourth tooth after the single gap. Speeduino watches for any missing tooth period, then waits to confirm whether it is followed by another. Sync can therefore be determined in this manner at 2 points in a single crank revolution. -![36-2-2-2.png](/img/decoders/36-2-2-2.png =90%x){.align-center} +![36-2-2-2.png](/img/decoders/36-2-2-2.png){.align-center width=90%} **Note:** Many diagrams and trigger wheel images available online show the wheel from the backside, making it show as rotating counter clockwise. For the correct orientation, when looking at the front of the engine, the wheel spins clockwise. \ No newline at end of file From 5917dbf04200a283ac4423c6dfc5827899255182 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:50:27 +0000 Subject: [PATCH 16/56] docs: update boards/V04 --- boards/V04.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/boards/V04.md b/boards/V04.md index 217f850..90b7e00 100644 --- a/boards/V04.md +++ b/boards/V04.md @@ -2,7 +2,7 @@ title: V04 description: published: true -date: 2020-01-14T14:47:05.616Z +date: 2020-01-16T11:50:24.252Z tags: --- @@ -40,7 +40,7 @@ Physical Layout Note that there are some differences between the various versions of the board, however the pinouts on the main IDC40 connector remain the same. -![v0_4_board_annotated_1.jpg](/img/boards/v0_4_board_annotated_1.jpg =50%x){.align-left} +![v0_4_board_annotated_1.jpg](/img/boards/v0_4_board_annotated_1.jpg){.align-left width=50%} | Pin \# | Function | @@ -97,7 +97,7 @@ Assembly of a complete board is virtually identical to the v0.3 and remains rela > Take note that C14 and C16 are polarised capacitors, meaning that they must be put in the correct way around. The capacitors should be marked with a + sign on one side. On the PCB, the positive side is indicated by a line on the capacitor symbol. {.is-warning} -![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center} +![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center width=180} 1. All jumper headers (JP\*) 2. Arduino pins: @@ -147,7 +147,7 @@ If using a VR crank sensor, the board will require the addition of a VR conditio #### SP721 Over-voltage Protection -For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate) page. +For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate width=200) page. ### Jumper Configs From 038a223bc7850f5f04616afb90937890ebd09e3d Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:50:55 +0000 Subject: [PATCH 17/56] docs: update boards/V04 --- boards/V04.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/V04.md b/boards/V04.md index 90b7e00..98bf3b2 100644 --- a/boards/V04.md +++ b/boards/V04.md @@ -2,7 +2,7 @@ title: V04 description: published: true -date: 2020-01-16T11:50:24.252Z +date: 2020-01-16T11:50:52.205Z tags: --- @@ -147,7 +147,7 @@ If using a VR crank sensor, the board will require the addition of a VR conditio #### SP721 Over-voltage Protection -For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate width=200) page. +For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate){width=200 .align-center page. ### Jumper Configs From 3ee9bd3ec474daf55d5d63f89cca079258373a64 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:52:20 +0000 Subject: [PATCH 18/56] docs: update boards/V04 --- boards/V04.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/V04.md b/boards/V04.md index 98bf3b2..db03b05 100644 --- a/boards/V04.md +++ b/boards/V04.md @@ -2,7 +2,7 @@ title: V04 description: published: true -date: 2020-01-16T11:50:52.205Z +date: 2020-01-16T11:52:16.617Z tags: --- @@ -147,7 +147,7 @@ If using a VR crank sensor, the board will require the addition of a VR conditio #### SP721 Over-voltage Protection -For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate){width=200 .align-center page. +For users having difficulty obtaining the SP721 used in some versions, see info on the [SP721 Diode Alternate](/wiring/SP721_Diode_Alternate) page ### Jumper Configs From ee752bf4790d420c375c36dcd296af898823d763 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:53:27 +0000 Subject: [PATCH 19/56] docs: update boards/V03 --- boards/V03.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/boards/V03.md b/boards/V03.md index d9da310..231bc16 100644 --- a/boards/V03.md +++ b/boards/V03.md @@ -2,7 +2,7 @@ title: V0.3 Board description: Usage and details of the v0.3 series of boards published: true -date: 2020-01-14T07:02:06.686Z +date: 2020-01-16T11:53:24.022Z tags: --- @@ -27,7 +27,7 @@ The v0.3 boards includes the following features: ## Physical Layout -![v0_3_2_board_annotated.jpg](/img/boards/v0_3_2_board_annotated.jpg =60%x){.align-center} +![v0_3_2_board_annotated.jpg](/img/boards/v0_3_2_board_annotated.jpg){.align-center width=450} ## Proto area @@ -38,7 +38,7 @@ The proto area can be used for adding your own circuits on to Speeduino if requi - SPI pins (MOSI, MISO, SCK and SS). Alternatively these can be used as generic digital IO (Arduino pins 50-53) - 3 generic analog inputs (13-15) -![v0_3_2_proto_annotated.jpg](/img/boards/v0_3_2_proto_annotated.jpg =60%x){.align-center} +![v0_3_2_proto_annotated.jpg](/img/boards/v0_3_2_proto_annotated.jpg){.align-center width=460} ## Board Assembly @@ -50,7 +50,7 @@ Assembly of a complete board is relatively straightforward with all components b 2. All diodes (Including LEDS) 3. All capacitors * Take note that C14 and C16 are polarised capacitors, meaning that they must be put in the correct way around. The capacitors should be marked with a + sign on one side. On the PCB, the positive side is indicated by a line on the capacitor symbol. - * ![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center} + * ![capacitor_orientation.png](/img/hardware/capacitor_orientation.png){.align-center width=180} Correct capacitor orientation 4. All jumper headers (JP\*) From eb9fb584d9872f78a0586cbb069a1779ed748b2f Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:54:42 +0000 Subject: [PATCH 20/56] docs: update boards/MX5_PNP --- boards/MX5_PNP.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/boards/MX5_PNP.md b/boards/MX5_PNP.md index 3e66a23..212ab8e 100644 --- a/boards/MX5_PNP.md +++ b/boards/MX5_PNP.md @@ -2,7 +2,7 @@ title: Miata/MX5 89-95 NA6 PNP description: Plug and Play board for the NA Miata/MX5 model years '89 through to early '95 published: true -date: 2020-01-08T01:53:01.609Z +date: 2020-01-16T11:54:38.899Z tags: boards, PNP --- @@ -13,7 +13,7 @@ The Speeduino Miata / MX5 Plug N Play (PNP) box is designed for easy installatio The stock ECU for these vehicles have a 2 plug loom connection and look like the below: -![OEM_ECU.png](/img/MX5/OEM_ECU.png =600x){.align-center} +![OEM_ECU.png](/img/MX5/OEM_ECU.png){.align-center width=500} > **WARNING:** Note that some changes to the stock hardware configuration are required with this unit. In particular, please see below in the fuel pump section for details that must be understood prior to starting {.is-danger} @@ -33,7 +33,7 @@ For a load reference, it is strongly recommended to run a manifold pressure line The 1.6L cars typically come with a suitable MAP port near the throttle body that is capped off in stock form and is generally the easiest place to take the manifold pressure reference. -![MAP_orig.png](/img/MX5/MAP_orig.png =600x){.align-center} +![MAP_orig.png](/img/MX5/MAP_orig.png){.align-center width=500} 5mm or 6mm vacuum hose should be used and there are multiple original holes in the firewall where this can be run. @@ -41,7 +41,7 @@ The 1.6L cars typically come with a suitable MAP port near the throttle body tha Manual NA6s come with a switch only TPS that provides limited feedback to the ECU. It is highly recommended to replace this with a Variable TPS (VTPS) that provides a signal indicating the current throttle position. The original wiring can be used with any 3 wire VTPS -![TPS_wiring.png](/img/MX5/TPS_wiring.png =600x){.align-center} +![TPS_wiring.png](/img/MX5/TPS_wiring.png){.align-center width=500} > **Note:** If a VTPS is **NOT** being fitted, the stock TPS should be disconnected and a 1k resistor placed between the signal line and ground to prevent erratic acceleration enrichment at full throttle. {.is-warning} @@ -53,7 +53,7 @@ In the stock configuration, inlet air temperature is provided by a sensor in the The 2 wires from this sensor can be pinned directly into the AFM connector on pins 1 and 6 (It does not matter which wire goes to which pin): -![IAT_connector.png](/img/MX5/IAT_connector.png =600x){.align-center} +![IAT_connector.png](/img/MX5/IAT_connector.png){.align-center width=500} ### Wideband O2 Sensor @@ -67,7 +67,7 @@ The stock ECU does not perform any fuel pump control as this is taken care of by The fuse to be removed is found in the engine bay fuse block: -![ST_SIG_fuse.png](/img/MX5/ST_SIG_fuse.png =600x){.align-center} +![ST_SIG_fuse.png](/img/MX5/ST_SIG_fuse.png){.align-center width=500} #### Alternative control methods @@ -75,7 +75,7 @@ If the above method of fuel pump control is either not desirable or not availabl To do this, a jumper wire is required on the AFM connector per the below: -![AFM_fuel_pump.png](/img/MX5/AFM_fuel_pump.png =600x){.align-center} +![AFM_fuel_pump.png](/img/MX5/AFM_fuel_pump.png){.align-center width=500} Once the above jumper is in place, the fuel pump pin in TunerStudio should be set to A9. @@ -97,4 +97,4 @@ The stock sensors can use preset calibrations within TunerStudio. The following **Stock Coolant Sensor (CLT)** - RX-7_CLT(S4 & S5) **Stock inlet air sensor (IAT)** - RX-7_AFM(S5 in AFM) -![sensor_calibrations.PNG](/img/MX5/sensor_calibrations.PNG =500x){.align-center} +![sensor_calibrations.PNG](/img/MX5/sensor_calibrations.PNG){.align-center width=420} From 5ebc456c7698e3a4082cd7293ff254b255cf585f Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 11:59:36 +0000 Subject: [PATCH 21/56] docs: update configuration/Acceleration_Wizard --- configuration/Acceleration_Wizard.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/configuration/Acceleration_Wizard.md b/configuration/Acceleration_Wizard.md index cf96552..a699c4d 100644 --- a/configuration/Acceleration_Wizard.md +++ b/configuration/Acceleration_Wizard.md @@ -2,12 +2,11 @@ title: Acceleration Wizard description: Tuning the acceleration enrichment published: true -date: 2020-01-16T11:33:20.998Z +date: 2020-01-16T11:59:33.257Z tags: TunerStudio --- -Overview --------- +# Acceleration Enrichment Acceleration Enrichment (AE) is used to add extra fuel during the short transient period following a rapid increase in throttle. It performs much the same function as an accelerator pump on a carbureted engine, increasing the amount of fuel delivered until the manifold pressure reading adjusts based on the new load. From 26f4e70166aa3419e98b179235e30ce8436070f4 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:00:23 +0000 Subject: [PATCH 22/56] docs: update configuration/O2 --- configuration/O2.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/configuration/O2.md b/configuration/O2.md index bbd5a5b..80a028f 100644 --- a/configuration/O2.md +++ b/configuration/O2.md @@ -2,12 +2,11 @@ title: O2 description: published: true -date: 2020-01-07T01:37:08.065Z +date: 2020-01-16T12:00:19.681Z tags: --- -AFR/O2 ------- +# AFR/O2 (Closed loop fuel) AFR/O2 (for **A**ir:**F**uel **R**atio), dialog controls the closed loop fuel control, used for adjusting injector load based on input from an exhaust oxygen sensor (O2 sensor). In conjunction with the AFR Table, the closed loop AFR system will compare the actual O2 reading with the current target fuel ratio and make adjustments accordingly. @@ -15,8 +14,7 @@ Use of a wideband sensor and controller is **strongly** recommended, however bas Note that closed loop fuel control is not a replacement for a poor tune. Many good configurations do not used closed loop control at all or only allow it very small adjustment authority. -Settings --------- +## Settings Speeduino supports 2 closed loop algorithms, each intended for different configurations: From 1ca84b4b24cbcabf010a9484fdf4fa6408a6a78b Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:03:10 +0000 Subject: [PATCH 23/56] docs: update configuration/O2 --- configuration/O2.md | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/configuration/O2.md b/configuration/O2.md index 80a028f..d347038 100644 --- a/configuration/O2.md +++ b/configuration/O2.md @@ -2,7 +2,7 @@ title: O2 description: published: true -date: 2020-01-16T12:00:19.681Z +date: 2020-01-16T12:03:06.667Z tags: --- @@ -18,23 +18,24 @@ Note that closed loop fuel control is not a replacement for a poor tune. Many go Speeduino supports 2 closed loop algorithms, each intended for different configurations: -1. Simple - A time based 'target chasing' algorithm where the amount of fuel adjustment is dependant on how long the reading has been lean or rich compared to the current target. This algorithm is best suited to narrowband sensors where only basic rich/lean information is available. In particular, this algorithm performs poorly if you have a fuel map that is not close to complete. If you have this enabled and are seeing oscillations in the pulse width and/or AFRs, even when cruising, then you should disabled closed loop control until the base fuel MAP is better tuned. -2. PID - This is the preferred closed loop algorithm and will provide better results when combined with a wideband sensor and tuned correctly. +1. **Simple** - A time based 'target chasing' algorithm where the amount of fuel adjustment is dependant on how long the reading has been lean or rich compared to the current target. This algorithm is best suited to narrowband sensors where only basic rich/lean information is available. In particular, this algorithm performs poorly if you have a fuel map that is not close to complete. If you have this enabled and are seeing oscillations in the pulse width and/or AFRs, even when cruising, then you should disabled closed loop control until the base fuel MAP is better tuned. +2. **PID** - This is the preferred closed loop algorithm and will provide better results when combined with a wideband sensor and tuned correctly. ### Common variables ![o2_simple.png](/img/tuning/o2_simple.png){.align-center} -- **Sensor type** - Narrowband or wideband, depending on hardware configuration. Narrowband sensor should be of the 0-1v type, wideband sensors should have a 0-5v signal. Wideband sensors need to be calibrated in the Tools->Calibrate AFR Table dialog -- **Algorithm** - See above for description of each algorithm available -- **Ignition events per step** - The AFR adjustment calculation will be performed every this many ignition cycles. Changes to closed loop adjustment typically have some lag before their impact is registered by the O2 sensor and increasing this value can take this lag into account. Typical values are 2-5. -- **Controller step size** - -- **Controller Auth** - The maximum % that the pulse width can be changed through this closed loop adjustment. Recommended value is no more than 20%. -- **Correct above/below AFR** - The AFR range that closed loop adjustments will be applied within. This range is typically limited by the sensor and controller in use. -- **Active above Coolant** - Closed loop should only operate once engine is up to operating temperature. This value should be set to match the engines standard operating temp. -- **Active above RPM** - Closed loop adjustments should genrally not be made at idle. Use this value to specify when adjustment should begin being made. -- **Active below TPS** - Above this TPS value, closed loops adjustments will be disabled -- **EGO delay after start** - All O2 sensors require a warmup period before their readings are valid. This varies based on the sensor in use, but 15s is a safe value in most cases. + +* **Sensor type** - Narrowband or wideband, depending on hardware configuration. Narrowband sensor should be of the 0-1v type, wideband sensors should have a 0-5v signal. Wideband sensors need to be calibrated in the Tools->Calibrate AFR Table dialog +* **Algorithm** - See above for description of each algorithm available +* **Ignition events per step** - The AFR adjustment calculation will be performed every this many ignition cycles. Changes to closed loop adjustment typically have some lag before their impact is registered by the O2 sensor and increasing this value can take this lag into account. Typical values are 2-5. +* **Controller step size** - +* **Controller Auth** - The maximum % that the pulse width can be changed through this closed loop adjustment. Recommended value is no more than 20%. +* **Correct above/below AFR** - The AFR range that closed loop adjustments will be applied within. This range is typically limited by the sensor and controller in use. +* **Active above Coolant** - Closed loop should only operate once engine is up to operating temperature. This value should be set to match the engines standard operating temp. +* **Active above RPM** - Closed loop adjustments should genrally not be made at idle. Use this value to specify when adjustment should begin being made. +* **Active below TPS** - Above this TPS value, closed loops adjustments will be disabled +* **EGO delay after start** - All O2 sensors require a warmup period before their readings are valid. This varies based on the sensor in use, but 15s is a safe value in most cases. ### PID only variables ![o2_pid.png](/img/tuning/o2_pid.png){.align-center} -- **P/I/D** - PID Proportional Gain, Integral and Derivative percentages. +* **P/I/D** - PID Proportional Gain, Integral and Derivative percentages. From f68e7c725e57f4fc5f71debcd7d452c888ceb446 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:09:33 +0000 Subject: [PATCH 24/56] docs: update configuration/Flex_Fuel --- configuration/Flex_Fuel.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/configuration/Flex_Fuel.md b/configuration/Flex_Fuel.md index 7b8a16e..59f863f 100644 --- a/configuration/Flex_Fuel.md +++ b/configuration/Flex_Fuel.md @@ -2,19 +2,19 @@ title: Flex Fuel description: Setting up the flex fuel / ethanol content sensor published: true -date: 2020-01-16T11:37:06.161Z +date: 2020-01-16T12:09:30.179Z tags: --- -Overview --------- +# Flex Fuel + +## Overview Speeduino has the ability to modify fuel and ignition settings based on the ethanol content of the fuel being used, a practice typically known as flex fuelling. A flex fuel sensor is installed in the feed or return fuel lines and a signal wire is used as an input on the Speeduino board. As ethanol is less energy dense, but also has a higher equivalent octane rating, adjustments to the fuel load and ignition timing are required. -Hardware --------- +## Hardware Speeduino uses any of the standard GM/Continental Flex fuel sensors that are widely available and were used across a wide range of vehicles. These were available in 3 different units, all of which are functionally identical, with the main difference being only the physical size and connector. The part numbers for these are: @@ -38,8 +38,7 @@ All units are wired identically and have markings on the housing indicating what On boards earlier to these, you will need to add a pullup resistor of between 2k and 3.5k Ohm. Recommended value is 3.3k, however any resistor in this range will work. Note that this is a relatively strict range, more generic values such as 1k or 10k DO NOT WORK with these sensors. -Tuning ------- +## Tuning ![flex_settings.png](/img/flex/flex_settings.png){.align-center width=450} - **Sensor frequency -** The minimum and maximum frequency of the sensor that represent 0% and 100% ethanol respectively. For standard GM/Continental flex sensors, these values are 50 and 150 From 86b4ce9ee3cc40c048b38226ea649d5220b48a52 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:10:41 +0000 Subject: [PATCH 25/56] docs: update configuration/Staged_Injection --- configuration/Staged_Injection.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/configuration/Staged_Injection.md b/configuration/Staged_Injection.md index b8545d7..d8cce85 100644 --- a/configuration/Staged_Injection.md +++ b/configuration/Staged_Injection.md @@ -2,24 +2,21 @@ title: Staged Injection description: Configuring multi-stage fuel injection published: true -date: 2020-01-16T11:38:17.245Z +date: 2020-01-16T12:10:38.125Z tags: --- -Staged Injection ----------------- - +# Staged Injection +## Overview Speeduino has the ability to control a secondary fuel stage for engines that have 2 sets of injectors, typically of different capacities. There are few stock engines that come with secondary injectors, the notable exception being many Mazda rotaries. Secondary staged injection is also a common modification, used whenever large injectors are required, but where it is desirable to keep smaller injectors for smoother low RPM performance. ### Configuration - No matter which control strategy is chosen, you must enter the sizing of the primary and secondary injectors in order to allow Speeduino to know the split in the overall fuelling. > **CRITICAL** - The req-Fuel value in the [Engine Constants](Engine_Constants "wikilink") MUST be updated when staged injection is turned on. **When staging is in use, the value entered in the req_fuel calculator MUST be equal to the sum of both the primary and secondary injector sizes** > Failure to set these values correctly will result in excessive rich or lean conditions. {.is-danger} - **Eg:** **Primary Injectors :** 300cc **Secondary Injectors :** 700cc @@ -29,11 +26,9 @@ No matter which control strategy is chosen, you must enter the sizing of the pri ![staging_settings.PNG](/img/staging/staged_reqfuel.PNG){.align-center width=400} ### Control methods - Speeduino provides 2 staging control modes, each with their own strengths and weaknesses. In most cases it is recommended to start with the Automatic mode, which only requires tuning of the standard VE table, and reviewing to see if you get the desired outcome. Only if this can't be tuned to give a satisfactory fuel split would changing to the manual table tuning be recommended. #### Table control - Table control allows the use of a manual 8x8 map that indicates what percentage of the fuel load will be performed by the **secondary** injectors - 0% = Secondary injectors disabled - 100% = Primary injectors disabled @@ -43,7 +38,6 @@ It is important to note that the values in this table do NOT correspond directly One disadvantage of the table tuning method is that it does not allow for the full fuel load of the primary and secondary injectors to be used simultaneously. As the table is a split of the total fuel load, as one set of injectors performs more, the other will perform less. #### Automatic staging - Speeduino has an automatic staging method that takes into account the full capacity of the injectors (ie the sum of the 2 injector stages) and will perform a split of these itself. With this method, the user can simply tune the VE table in the same manner as if only a single set of injectors were used and the system takes care of the rest. In this mode, Speeduino will attempt to use the primary injectors up to their 'Injector Duty Limit' (As configured in the [Injector Characteristics](Injector_Characteristics "wikilink") dialog. When staging is being used, it is recommend that this limit should be no higher than 85%. Once the primary injectors reach this duty limit, Speeduino will begin to perform any further fueling from the secondary injectors. In this way, the VE table is all that is required for tuning as the system will take care of allocating the current fuel load to the best injectors. From afa67d99a789974364294d2449262a124e66c91e Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:12:21 +0000 Subject: [PATCH 26/56] docs: update configuration/Spark_Settings --- configuration/Spark_Settings.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/configuration/Spark_Settings.md b/configuration/Spark_Settings.md index 722eb4c..81f9948 100644 --- a/configuration/Spark_Settings.md +++ b/configuration/Spark_Settings.md @@ -2,33 +2,30 @@ title: Spark Settings description: Configuration options for the ignition outputs published: true -date: 2020-01-16T11:39:15.628Z +date: 2020-01-16T12:12:17.724Z tags: --- -Overview --------- - +# Spark Settings +## Overview The Spark settings dialog contains the options for how the ignition outputs will function, including which of the 4 IGN outputs are used and how. They are critical and incorrect values will result in an engine not starting and in some cases damage to hardware is possible. This dialog also contains a number of options for fixing the ignition timing for testing and diagnosis. Please ensure you have reviewed these settings prior to attempting to start your engine. -Settings --------- - +## Settings ![spark_settings.png](/img/ignition/spark_settings.png){.align-center width=500} -- **Spark Output mode** - Determines how the ignition pulses will be outputted and is very specific to your ignition wiring. **Note that no matter which option is selected here, ignition signals ALWAYS fire in numerical order (ie 1->2->3->4) up to the maximum number of outputs**. The firing order of the engine is accounted for in the wiring order. - - **Wasted Spark** - Number of ignition outputs is equal to half the number of cylinders and each output will fire once every crank revolution. One spark will therefore take place during the compression stroke and the other on the exhaust stroke (aka the 'wasted' spark). This method is common on many 80s and 90s vehicles that came with specific wasted spark coils, but can also be used with individual coils that are wired in pairs. Wasted spark will function with only a crank angle reference (Eg a missing tooth crank wheel with no cam signal) - - **Single Channel** - This mode sends all ignition pulses to IGN1 output and is used when the engine contains a distributor (Typically with a single coil). The number of output pulses per (crank) revolution is equal to half the number of cylinders. - - **Wasted COP** - This is a convenience mode that uses the same timing as the 'Wasted Spark' option, however each pulse is sent to 2 ignition outputs rather than one. These are paired IGN1/IGN3 and IGN2/IGN4 (ie When IGN1 is high, IGN3 will also be high). As this is still a wasted spark timing mode, only crank position is required and there will be 1 pulse per pair, per crank revolution. This mode can be useful in cases where there are 4 individual coils, but running full sequential is either not desired or not possible (Eg when no cam reference is available). - - **Sequential** - This mode is only functional on engines with 4 or fewer cylinders. - - **Rotary** - See below for full detail -- **Cranking advance** - The number of absolute degrees (BTDC) that the timing will be set to when cranking. This overrides all other timing advance modifiers during cranking. + +- **Spark Output mode** - Determines how the ignition pulses will be outputted and is very specific to your ignition wiring. **Note that no matter which option is selected here, ignition signals ALWAYS fire in numerical order (ie 1->2->3->4) up to the maximum number of outputs**. The firing order of the engine is accounted for in the wiring order. + - **Wasted Spark** - Number of ignition outputs is equal to half the number of cylinders and each output will fire once every crank revolution. One spark will therefore take place during the compression stroke and the other on the exhaust stroke (aka the 'wasted' spark). This method is common on many 80s and 90s vehicles that came with specific wasted spark coils, but can also be used with individual coils that are wired in pairs. Wasted spark will function with only a crank angle reference (Eg a missing tooth crank wheel with no cam signal) + - **Single Channel** - This mode sends all ignition pulses to IGN1 output and is used when the engine contains a distributor (Typically with a single coil). The number of output pulses per (crank) revolution is equal to half the number of cylinders. + - **Wasted COP** - This is a convenience mode that uses the same timing as the 'Wasted Spark' option, however each pulse is sent to 2 ignition outputs rather than one. These are paired IGN1/IGN3 and IGN2/IGN4 (ie When IGN1 is high, IGN3 will also be high). As this is still a wasted spark timing mode, only crank position is required and there will be 1 pulse per pair, per crank revolution. This mode can be useful in cases where there are 4 individual coils, but running full sequential is either not desired or not possible (Eg when no cam reference is available). + - **Sequential** - This mode is only functional on engines with 4 or fewer cylinders. + - **Rotary** - See below for full detail +- **Cranking advance** - The number of absolute degrees (BTDC) that the timing will be set to when cranking. This overrides all other timing advance modifiers during cranking. - **Spark output triggers** - **THIS IS A CRITICAL SETTING!**. Selecting the incorrect option here can cause damage to your igniters or coils. Specifies whether the coil will fire when the ignition output from Speeduino goes HIGH or goes LOW. The VAST majority of ignition setups will require this to be set **GOING LOW** (ie the coil charges/dwells when the signal is high and will **fire** when that signal goes low). Whilst GOING LOW is required for most ignition setups, there are some configurations that perform the dwell timing on the ignition module and fire the coil only when they receive a HIGH signal from the ECU. - **Fixed Angle** - This is used to lock the ignition timing to a specific angle for testing. Setting this to any value other than 0 will result in that exact angle being used (ie overriding any other settings) at all RPMs/load points, except during cranking (Cranking always uses the above Cranking Advance setting). This setting should be set to 0 for normal operation. ### Rotary modes - ![rotary_settings.png](/img/ignition/rotary_settings.png){.align-center width=450} Speeduino currently only supports the ignition configuration used on FC RX7 engines. Support for FD and RX8 ignition setups is in development. The leading / trailing split angle can be set as a function of the current engine load. From 196c95d5da9dd18432181884530d112e55048f46 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:12:53 +0000 Subject: [PATCH 27/56] docs: update configuration/Spark_Settings --- configuration/Spark_Settings.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configuration/Spark_Settings.md b/configuration/Spark_Settings.md index 81f9948..8820810 100644 --- a/configuration/Spark_Settings.md +++ b/configuration/Spark_Settings.md @@ -2,7 +2,7 @@ title: Spark Settings description: Configuration options for the ignition outputs published: true -date: 2020-01-16T12:12:17.724Z +date: 2020-01-16T12:12:49.688Z tags: --- @@ -27,6 +27,7 @@ Please ensure you have reviewed these settings prior to attempting to start your ### Rotary modes ![rotary_settings.png](/img/ignition/rotary_settings.png){.align-center width=450} + Speeduino currently only supports the ignition configuration used on FC RX7 engines. Support for FD and RX8 ignition setups is in development. The leading / trailing split angle can be set as a function of the current engine load. - **FC** - Outputs are configured for the Leading/Trailing setup that was used on FC RX7s. Wiring is: From 3787173eb2b76369b9ebaf6979d1e953ce260de2 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:14:10 +0000 Subject: [PATCH 28/56] docs: update configuration/Dwell --- configuration/Dwell.md | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/configuration/Dwell.md b/configuration/Dwell.md index b4e986d..ebac1f7 100644 --- a/configuration/Dwell.md +++ b/configuration/Dwell.md @@ -2,31 +2,27 @@ title: Dwell description: published: true -date: 2020-01-16T11:40:00.504Z +date: 2020-01-16T12:14:06.860Z tags: --- -Overview -======== - +# Dwell Control +## Overview The dwell control dialog alters the coil charging time (dwell) for Speeduino's ignition outputs. Care should be taken with these settings as igniters and coils can be permanently damaged if dwelled for excessive periods of time. From the April 2017 firmware onwards, dwell will automatically reduce when the configured duration is longer than the available time at the current RPM. This is common in single channel ignition configurations (Eg 1 coil with a distributor) and in particular on higher cylinder count engines. -Settings -======== - +## Settings ![dwell.png](/img/ignition/dwell.png){.align-center width=400} + **Note:** Both the running and cranking dwell times are nominal values, assumed to be at a constant voltage (Usually 12v). Actual dwell time used will depend on the current system voltage with higher voltages having lower dwell times and vice versa. See section below on voltage correction -- Cranking dwell - The nominal dwell time that will be used during cranking. Cranking is defined as being whenever the RPM is above 0, but below the 'Cranking RPM' values in the [Cranking](Cranking "wikilink") dialog -- Running dwell - The nominal dwell that will be used when the engine is running normally. -- Spark duration - The approximate time the coil takes to fully discharge. This time is used in calculating a reduced dwell when in time limited conditions, such as mentioned above on single coil, high cylinder count engines. The limited dwell time is calculated by taking the maximum revolution time at the given RPM, dividing by the number of spark outputs required per revolution and subtracting the spark duration. Outside of those conditions, this setting is not used. -- Over dwell protection - The over dwell protection system runs independently of the standard ignition schedules and monitors the time that each ignition output has been active. If the active time exceeds this amount, the output will be ended to prevent damage to coils. This value should typically be at least 3ms higher than the nominal dwell times configured above in order to allow overhead for voltage correction. - -Voltage correction ------------------- +- Cranking dwell - The nominal dwell time that will be used during cranking. Cranking is defined as being whenever the RPM is above 0, but below the 'Cranking RPM' values in the [Cranking](Cranking "wikilink") dialog +- Running dwell - The nominal dwell that will be used when the engine is running normally. +- Spark duration - The approximate time the coil takes to fully discharge. This time is used in calculating a reduced dwell when in time limited conditions, such as mentioned above on single coil, high cylinder count engines. The limited dwell time is calculated by taking the maximum revolution time at the given RPM, dividing by the number of spark outputs required per revolution and subtracting the spark duration. Outside of those conditions, this setting is not used. +- Over dwell protection - The over dwell protection system runs independently of the standard ignition schedules and monitors the time that each ignition output has been active. If the active time exceeds this amount, the output will be ended to prevent damage to coils. This value should typically be at least 3ms higher than the nominal dwell times configured above in order to allow overhead for voltage correction. +## Voltage correction As the system voltage rises and falls, the dwell time needs to reduce and increase respectively. This allows for a consistent spark strength without damaging the coil/s during high system voltage conditions. It is recommended that 12v be used as the 'nominal' voltage, meaning that the Dwell % figure at 12v should be 100%. The correction curve in the base tune file should be suitable for most coils / igniters, but can be altered if required. From 3af389d315e64c83c1682fdc70a6a67aae292227 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:36:29 +0000 Subject: [PATCH 29/56] docs: update configuration/Staged_Injection --- configuration/Staged_Injection.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/configuration/Staged_Injection.md b/configuration/Staged_Injection.md index d8cce85..1c8126d 100644 --- a/configuration/Staged_Injection.md +++ b/configuration/Staged_Injection.md @@ -2,7 +2,7 @@ title: Staged Injection description: Configuring multi-stage fuel injection published: true -date: 2020-01-16T12:10:38.125Z +date: 2020-01-16T12:36:25.977Z tags: --- @@ -18,9 +18,9 @@ No matter which control strategy is chosen, you must enter the sizing of the pri {.is-danger} **Eg:** -**Primary Injectors :** 300cc -**Secondary Injectors :** 700cc -**Value entered into the req_fuel calculator :** 1000cc +* **Primary Injectors :** 300cc +* **Secondary Injectors :** 700cc +* **Value entered into the req_fuel calculator :** 1000cc ![staging_settings.PNG](/img/staging/staging_settings.PNG){.align-center width=400} ![staging_settings.PNG](/img/staging/staged_reqfuel.PNG){.align-center width=400} @@ -40,6 +40,6 @@ One disadvantage of the table tuning method is that it does not allow for the fu #### Automatic staging Speeduino has an automatic staging method that takes into account the full capacity of the injectors (ie the sum of the 2 injector stages) and will perform a split of these itself. With this method, the user can simply tune the VE table in the same manner as if only a single set of injectors were used and the system takes care of the rest. -In this mode, Speeduino will attempt to use the primary injectors up to their 'Injector Duty Limit' (As configured in the [Injector Characteristics](Injector_Characteristics "wikilink") dialog. When staging is being used, it is recommend that this limit should be no higher than 85%. Once the primary injectors reach this duty limit, Speeduino will begin to perform any further fueling from the secondary injectors. In this way, the VE table is all that is required for tuning as the system will take care of allocating the current fuel load to the best injectors. +In this mode, Speeduino will attempt to use the primary injectors up to their 'Injector Duty Limit' (As configured in the [Injector Characteristics](Injector_Characteristics) dialog. When staging is being used, it is recommend that this limit should be no higher than 85%. Once the primary injectors reach this duty limit, Speeduino will begin to perform any further fueling from the secondary injectors. In this way, the VE table is all that is required for tuning as the system will take care of allocating the current fuel load to the best injectors. Note that the dead time of the 2 sets of injectors is currently assumed to be the same. This may be altered in future firmwares if required (Post a feature request if needed). \ No newline at end of file From d31d3e37ac5c5e05d376c2a234b443d4440ad03d Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:37:23 +0000 Subject: [PATCH 30/56] docs: update wiring/system --- wiring/system.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/wiring/system.md b/wiring/system.md index 1086eda..dbd86de 100644 --- a/wiring/system.md +++ b/wiring/system.md @@ -2,18 +2,11 @@ title: System Wiring Diagram description: A high level master system wiring diagram published: true -date: 2020-01-16T06:11:54.153Z +date: 2020-01-16T12:37:19.880Z tags: --- # High level wiring guide Speeduino can be configured in many ways depending on the engine, sensors, ignition and fuel hardware being used. For this reason it is impossible to provide 1 single diagram that will cover all scenarios, however the below is provided as a high level guide that can be used as a starting point. -![wiring_overview.png](/img/wiring/wiring_overview.png){.align-center} - -# Function specific diagrams -More detailed wiring guides for specific areas can be found below - -- [Injector Wiring](/wiring/Injector_wiring) -- [Ignition Wiring](/wiring/Ignition_wiring) -- [Sensor Wiring](/wiring/Sensor_wiring) \ No newline at end of file +![wiring_overview.png](/img/wiring/wiring_overview.png){.align-center} \ No newline at end of file From 8ec23241b2117101d02024abb2911725b6dfc885 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:41:10 +0000 Subject: [PATCH 31/56] docs: update wiring/Injector_wiring --- wiring/Injector_wiring.md | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/wiring/Injector_wiring.md b/wiring/Injector_wiring.md index 10fc3a2..d052dab 100644 --- a/wiring/Injector_wiring.md +++ b/wiring/Injector_wiring.md @@ -2,25 +2,20 @@ title: Injector wiring description: Wiring description and diagrams for fuel injectors published: true -date: 2020-01-16T07:24:23.488Z +date: 2020-01-16T12:41:06.829Z tags: wiring --- -Introduction ------------- - +# Injector wiring +## Overview Speeduino contains 4 injector control circuits and is capable of supporting up to 8 injectors (and cylinders) with these. -Supported Injectors -------------------- - +## Supported Injectors Speeduino supports High-Z (aka 'high-impedance' or 'saturated') injectors natively. Low-Z injectors are supported with the addition of resistors wired in series with the signal wires. High-Z injectors are typically those with a resistance greater than 8 Ohms. If "Low-Z" ("peak and hold" or PWM-controlled) injectors that are lower impedance are used, the wiring will require series resistors on each injector to avoid damaging the board with excessive current. The resistor ohms and watt rating can be calculated by Ohm's Law, or use an Internet calculator page such as the [Speeduino Injector Resistor Calculator](http://efistuff.orgfree.com/InjectorResistorCalculator.html). -Layout ------- - +## Layouts There are a number of ways that the injectors can be wired depending on your configuration and preference. ### 1, 2 and 3 injectors @@ -53,13 +48,10 @@ This method is only available on 4 cylinder / 4 injector applications and allows For setups with more than 4 injectors, the number of outputs used will be equal to half the number of injectors. -**Examples:** - -**6 Cylinder** +#### 6 Cylinder ![inj_6Cyl_semi-seq.png](/img/wiring/inj_6Cyl_semi-seq.png){.align-center width=75%} -**8 Cylinder** - +#### 8 Cylinder ![inj_8Cyl_semi-seq.png](/img/wiring/inj_8Cyl_semi-seq.png){.align-center width=75%} Inline with the above, this configuration requires each injector output to be connected to 2 injectors. From f1afa21108a062cc0187f5cac8c016d0ff955ce3 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:41:46 +0000 Subject: [PATCH 32/56] docs: update wiring/Ignition_wiring --- wiring/Ignition_wiring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wiring/Ignition_wiring.md b/wiring/Ignition_wiring.md index 0d10b52..847f1b8 100644 --- a/wiring/Ignition_wiring.md +++ b/wiring/Ignition_wiring.md @@ -2,11 +2,11 @@ title: Ignition Wiring description: published: true -date: 2020-01-16T11:21:51.013Z +date: 2020-01-16T12:41:42.574Z tags: ignition, wiring --- -# Header +# Ignition Wiring ## Overview Ignition output configuration can be one of the most difficult areas of ECU wiring and one that often causes the most confusion. A large part of this complexity comes from the huge number of different ignition types that are available, with there being significant changes in the hardware used in the late 80s and throughout the 90s compared to newer designs. From e9ca23bfbb602a0413950955897ae2a4f62f0fd6 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:42:36 +0000 Subject: [PATCH 33/56] docs: update wiring/Ignition_wiring --- wiring/Ignition_wiring.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wiring/Ignition_wiring.md b/wiring/Ignition_wiring.md index 847f1b8..f5906bc 100644 --- a/wiring/Ignition_wiring.md +++ b/wiring/Ignition_wiring.md @@ -2,7 +2,7 @@ title: Ignition Wiring description: published: true -date: 2020-01-16T12:41:42.574Z +date: 2020-01-16T12:42:32.994Z tags: ignition, wiring --- @@ -31,8 +31,8 @@ There are many dual pole, wasted spark coil packs available both with and withou ### Coil on Plug As an alternative to a dual pole wasted spark coil, individual coil on plug units can be used in a wasted spark configuration. -![ign_4Cyl_COP_wasted-spark.png](/img/wiring/ign_4Cyl_COP_wasted-COP.png){.align-center width=500} +![ign_4Cyl_COP_wasted-spark.png](/img/wiring/ign_4Cyl_COP_wasted-COP.png){.align-center width=500} > Note: The above examples use 'smart' coils with built in igniters. Do NOT attach dumb COPs (2 pins) without adding an igniter {.is-warning} From 34784f58c874ab252efbe11dd35387be95c39d92 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 12:45:34 +0000 Subject: [PATCH 34/56] docs: update wiring/system --- wiring/system.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wiring/system.md b/wiring/system.md index dbd86de..64d6309 100644 --- a/wiring/system.md +++ b/wiring/system.md @@ -2,11 +2,12 @@ title: System Wiring Diagram description: A high level master system wiring diagram published: true -date: 2020-01-16T12:37:19.880Z +date: 2020-01-16T12:45:31.555Z tags: --- # High level wiring guide + Speeduino can be configured in many ways depending on the engine, sensors, ignition and fuel hardware being used. For this reason it is impossible to provide 1 single diagram that will cover all scenarios, however the below is provided as a high level guide that can be used as a starting point. ![wiring_overview.png](/img/wiring/wiring_overview.png){.align-center} \ No newline at end of file From 3dd9c863e10719580bdc41db818d1af35b8b64f2 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 13:15:50 +0000 Subject: [PATCH 35/56] docs: update configuration/Acceleration_Wizard --- configuration/Acceleration_Wizard.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Acceleration_Wizard.md b/configuration/Acceleration_Wizard.md index a699c4d..0c8f965 100644 --- a/configuration/Acceleration_Wizard.md +++ b/configuration/Acceleration_Wizard.md @@ -2,7 +2,7 @@ title: Acceleration Wizard description: Tuning the acceleration enrichment published: true -date: 2020-01-16T11:59:33.257Z +date: 2020-01-16T13:15:47.463Z tags: TunerStudio --- @@ -18,8 +18,8 @@ Acceleration Enrichment (AE) is used to add extra fuel during the short transien Tuning of acceleration enrichment is based on the rate of change of the throttle position, a variable known as TPSdot (TPS delta over time). This is measured in %/second, with higher values representing faster presses of the throttle and values in the range 50%/s to 1000%/s are normal. Eg: -- 100%/s = pressing the throttle from 0% to 100% in 1 second -- 1000%/s = pressing the throttle from 0% to 100% in 0.1s +- 100%/s = pressing the throttle from 0% to 100% in 1 second +- 1000%/s = pressing the throttle from 0% to 100% in 0.1s TPSdot forms the X axis of the acceleration curve, with the Y axis value representing the % increase in fuel. From 5429f6c465706331c05fee07564327c1b75f73ce Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 13:16:47 +0000 Subject: [PATCH 36/56] docs: update configuration/Warmup --- configuration/Warmup.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/configuration/Warmup.md b/configuration/Warmup.md index 89681d4..ef262a9 100644 --- a/configuration/Warmup.md +++ b/configuration/Warmup.md @@ -2,16 +2,17 @@ title: Warmup description: published: true -date: 2020-01-16T11:41:25.336Z +date: 2020-01-16T13:16:44.197Z tags: --- +# Warmup Enrichment ## Overview - The Warm Up Enrichment (WUE) dialog contains settings related to the period after start (ie not cranking) but before the engine has reached normal operating temperature. It allows for modifications to fueling during this time to ## Settings ![warmup.PNG](/img/warmup/warmup.PNG){.align-center width=450} + ### Warmup curve This curve represents the additional fuel amount to be added whilst the engine is coming up to temperature (Based on the coolant sensor). The final value in this curve should represent the normal running temperature of the engine and have a value of 100% (Representing no modification of the fuel from that point onwards). From cde60892b07ca21bb5c23fe8d7f045e589978014 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 13:18:41 +0000 Subject: [PATCH 37/56] docs: update configuration/Idle --- configuration/Idle.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/configuration/Idle.md b/configuration/Idle.md index 745367e..53045c8 100644 --- a/configuration/Idle.md +++ b/configuration/Idle.md @@ -2,12 +2,13 @@ title: Idle description: published: true -date: 2020-01-07T02:56:36.908Z +date: 2020-01-16T13:18:37.502Z tags: --- -Overview --------- +# Idle Control +## Overview +The idle control outputs are used to alter the state of an idle control valve to increase the amount of air entering the engine at idle. These come in multiple types (Described below) and each is configured and tuned differently. ### Compatible Idle Valve Types From 0f4cfe92d018330cb91292b4fcd58a597a087b1a Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 14:17:11 +0000 Subject: [PATCH 38/56] docs: update configuration/Fuel_pump --- configuration/Fuel_pump.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configuration/Fuel_pump.md b/configuration/Fuel_pump.md index f20e356..17f45e0 100644 --- a/configuration/Fuel_pump.md +++ b/configuration/Fuel_pump.md @@ -2,12 +2,12 @@ title: Fuel pump description: Setting the on/off conditions of the fuel pump published: true -date: 2020-01-16T11:42:37.440Z +date: 2020-01-16T14:17:07.764Z tags: aux outputs, tuning --- -# Header -Fuel pump ontrol is a simple but important function performed by the ECU. Currently Speeduino does not perform variable (PWM) pump control, but +# Fuel pump +Fuel pump control is a simple but important function performed by the ECU. Currently Speeduino does not perform variable (PWM) pump control, but ## Settings ![fuel_pump.png](/img/accessories/fuel_pump.png){.align-center width=480} From 30e83580d3bf28d653daf739f5847d2f5b898799 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 15:14:41 +0000 Subject: [PATCH 39/56] docs: update Connecting_to_TunerStudio --- Connecting_to_TunerStudio.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Connecting_to_TunerStudio.md b/Connecting_to_TunerStudio.md index bb7c2ad..1ffb147 100644 --- a/Connecting_to_TunerStudio.md +++ b/Connecting_to_TunerStudio.md @@ -2,7 +2,7 @@ title: Setting up TunerStudio description: How to create and connect to your ECU within TunerStudio published: true -date: 2020-01-16T11:32:43.137Z +date: 2020-01-16T15:14:37.835Z tags: --- @@ -59,8 +59,4 @@ In the Speeduino reference directory, you will find the base tune file to be ope ![TS_7.png](/img/TunerStudio/TS_7.png){.align-center width=400} -And that's it! Tuner Studio should now attempt to connect to the Arduino and show a realtime display of the ECU. - ------------------------------------------------------------------------- - ------------------------------------------------------------------------- \ No newline at end of file +And that's it! Tuner Studio should now attempt to connect to the Arduino and show a realtime display of the ECU. \ No newline at end of file From 6f4697496595b03f68628786d4b78eab7c08f5f1 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 15:21:13 +0000 Subject: [PATCH 40/56] docs: update Configuring_TunerStudio --- Configuring_TunerStudio.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Configuring_TunerStudio.md b/Configuring_TunerStudio.md index 903fa0a..3885954 100644 --- a/Configuring_TunerStudio.md +++ b/Configuring_TunerStudio.md @@ -2,7 +2,7 @@ title: Configuring TunerStudio project options description: published: true -date: 2020-01-16T11:08:57.820Z +date: 2020-01-16T15:21:09.539Z tags: TunerStudio --- @@ -52,3 +52,5 @@ An optional Speeduino specific boot loader is available that has different metho CAN options are currently under development, but settings are available on this tab for testing if you have supported hardware. ![CAN Devices](/img/TunerStudio/TS_CAN_settings.png){.align-center width=400} + +Configuration of CAN devices is currently unsupported \ No newline at end of file From 1b853acf84ed9692ce72c09d9b20584071a44378 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 15:28:05 +0000 Subject: [PATCH 41/56] docs: update Connecting_to_TunerStudio --- Connecting_to_TunerStudio.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Connecting_to_TunerStudio.md b/Connecting_to_TunerStudio.md index 1ffb147..908a059 100644 --- a/Connecting_to_TunerStudio.md +++ b/Connecting_to_TunerStudio.md @@ -2,10 +2,12 @@ title: Setting up TunerStudio description: How to create and connect to your ECU within TunerStudio published: true -date: 2020-01-16T15:14:37.835Z +date: 2020-01-16T15:28:01.635Z tags: --- +# Connecting to Tuner Studio + Tuner Studio is the tuning interface software used by Speeduino. It runs on Windows, Mac and linux and provides configuration, tuning and logging capabilities. Once you have the firmware compiled and uploaded to your Arduino, you're ready to setup Tuner Studio in order to configure and monitor it. If you haven't yet compiled and uploaded the firmware, refer to the [Installing Firmware](/Installing_Firmware) page. From 2723415b9cb37b7965b1016287ff5b91767bce2f Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 15:32:16 +0000 Subject: [PATCH 42/56] docs: update Installing_Firmware --- Installing_Firmware.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Installing_Firmware.md b/Installing_Firmware.md index f6897c5..c3ec01d 100644 --- a/Installing_Firmware.md +++ b/Installing_Firmware.md @@ -2,10 +2,11 @@ title: Speeduino Firmware setup description: Setting up the Speeduino firmware on your board published: true -date: 2020-01-14T14:06:47.340Z +date: 2020-01-16T15:32:11.799Z tags: --- +# Loading the Speeduino firmware ## Overview The Speeduino firmware is the code that powers the hardware and must be installed onto your board prior to using the ECU. New firmware releases are made regularly (Approximately every 2 months) that bring new features, bug fixes and performance improvements so staying up to date is highly recommended. @@ -148,4 +149,6 @@ The following can occur if you have only opened the speeduino.ino file rather th Make sure all the files are contained within the same directory, then select File->Open and find the speeduino.ino file. If you have opened the project correctly, you should have multiple tabs along the top: - \ No newline at end of file +![speeduinoIDE.png](/img/TunerStudio/speeduinoIDE.png){.align-center width=500} + +If you see only a single file or a small number of files then you haven't opened the entire project. \ No newline at end of file From 034d8cc06fad68b4b164f2b7e76844db324d52c2 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 15:47:02 +0000 Subject: [PATCH 43/56] docs: update Installing_Firmware --- Installing_Firmware.md | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/Installing_Firmware.md b/Installing_Firmware.md index c3ec01d..2eeef74 100644 --- a/Installing_Firmware.md +++ b/Installing_Firmware.md @@ -2,7 +2,7 @@ title: Speeduino Firmware setup description: Setting up the Speeduino firmware on your board published: true -date: 2020-01-16T15:32:11.799Z +date: 2020-01-16T15:46:57.263Z tags: --- @@ -53,7 +53,7 @@ There are two methods for obtaining the Speeduino firmware: - Start the IDE, select *File > Open*, navigate to the location you downloaded Speeduino to and open the **speeduino.ino** file. - Set the board type: *Tools > Board > Arduino Mega 2560* or Mega ADK (This is the only board currently supported) -- Click the **Verify** icon in the top left corner (Looks like a tick) +- Click the **Verify** icon in the top left corner (Looks like a tick) At this point you should have a compiled firmware! If you experienced a problem during the compile, see the [Troubleshooting](http://speeduino.com/wiki/index.php?title=Compiling_and_Installing_Firmware&action=edit§ion=4#Troubleshooting) section below. @@ -87,29 +87,15 @@ Once you've successfully compiled the firmware, installation on the board is tri - Plug in your Mega 2560 to a free USB port - If you're running an older version of **Windows** and this is the first time you've used an Arduino, you may need to install drivers for the Arduino serial chip (USB-UART or "USB adapter chip"). - - Most official boards and many non-official versions use the ATMega16U2 or 8U2, whereas many of the Mega2560 clone boards utilize the CH340G IC. Both types work well. The serial chips can generally be identified by appearance: -ATMega16U (square IC) - drivers included in Windows, MacOS and Linux: - - - -or - -WCH CH340G (Rectangular IC) - uses "CH341" drivers from [WCH](http://www.wch.cn/downloads/file/65.html) for Windows: - - - -WCH-original CH340/CH341 drivers for other systems (Mac, Linux, Android, etc) may be found [here](http://www.wch.cn/downloads/CH341SER_ZIP.html). +* **ATMega16U** - This has a square IC near the USB connector - drivers are included in Windows 7+, MacOS and Linux. +* **WCH CH340G** - This has a rectangular IC near the USB connector- uses "CH341" drivers from [WCH](http://www.wch.cn/downloads/file/65.html) for Windows + * WCH-original CH340/CH341 drivers for other systems (Mac, Linux, Android, etc) may be found [here](http://www.wch.cn/downloads/CH341SER_ZIP.html). - In Arduino IDE; select the Mega2560: *Tools > Board* - Select your system's serial port to upload: *Tools > Serial Port* -- Hit the *Upload* button from the top left corner (Looks like an arrow point to the right) - -Assuming all goes well, you should see the IDE message that avrdude is done, similar to this: - - +- Hit the *Upload* button from the top left corner ### Older firmware releases From 4557ea35217b227c3ee441a92838ac61ca77896d Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 16:03:55 +0000 Subject: [PATCH 44/56] docs: update configuration/O2 --- configuration/O2.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configuration/O2.md b/configuration/O2.md index d347038..d754538 100644 --- a/configuration/O2.md +++ b/configuration/O2.md @@ -2,7 +2,7 @@ title: O2 description: published: true -date: 2020-01-16T12:03:06.667Z +date: 2020-01-16T16:03:52.330Z tags: --- @@ -39,3 +39,5 @@ Speeduino supports 2 closed loop algorithms, each intended for different configu ![o2_pid.png](/img/tuning/o2_pid.png){.align-center} * **P/I/D** - PID Proportional Gain, Integral and Derivative percentages. + +These options are in addition to the Simple conditions and specify the parameters of the closed loop operation From 50df885c2fabcfdf3fca5b0a4739f073ecc4ea77 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 16:04:45 +0000 Subject: [PATCH 45/56] docs: update configuration/IAT_Density --- configuration/IAT_Density.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/configuration/IAT_Density.md b/configuration/IAT_Density.md index 36ddb77..159df8b 100644 --- a/configuration/IAT_Density.md +++ b/configuration/IAT_Density.md @@ -2,14 +2,16 @@ title: IAT Density description: published: true -date: 2020-01-16T11:26:59.803Z +date: 2020-01-16T16:04:41.945Z tags: --- Overview -------- -The IAT density curve represents the change in oxygen density of the inlet charge as temperature rises. The default curve approximately follows the ideal gas law and is suitable for most installations, however if you are seeing very high inlet temperatures (Either due to heat soak in the engine bay or from turbocharging) the you may need to adjust the hot end of this curve. +The IAT density curve represents the change in oxygen density of the inlet charge as temperature rises. ## Curve ![iatDensity.png](/img/constants/iatDensity.png){.align-center width=400} + +This default curve approximately follows the ideal gas law and is suitable for most installations, however if you are seeing very high inlet temperatures (Either due to heat soak in the engine bay or from turbocharging) the you may need to adjust the hot end of this curve. \ No newline at end of file From 3dab8de02ba6689c78b3a753c94265d94555c025 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 16:05:12 +0000 Subject: [PATCH 46/56] docs: update configuration/IAT_Density --- configuration/IAT_Density.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/configuration/IAT_Density.md b/configuration/IAT_Density.md index 159df8b..f8cf3f9 100644 --- a/configuration/IAT_Density.md +++ b/configuration/IAT_Density.md @@ -2,16 +2,16 @@ title: IAT Density description: published: true -date: 2020-01-16T16:04:41.945Z +date: 2020-01-16T16:05:09.541Z tags: --- -Overview --------- +# IAT Density +## Overview The IAT density curve represents the change in oxygen density of the inlet charge as temperature rises. -## Curve +## Example Curve ![iatDensity.png](/img/constants/iatDensity.png){.align-center width=400} This default curve approximately follows the ideal gas law and is suitable for most installations, however if you are seeing very high inlet temperatures (Either due to heat soak in the engine bay or from turbocharging) the you may need to adjust the hot end of this curve. \ No newline at end of file From 0ad63290a2435fb2adf4bdccea992f84f4736a62 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 16:07:17 +0000 Subject: [PATCH 47/56] docs: update configuration/Engine_Constants --- configuration/Engine_Constants.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configuration/Engine_Constants.md b/configuration/Engine_Constants.md index 0212330..06337bc 100644 --- a/configuration/Engine_Constants.md +++ b/configuration/Engine_Constants.md @@ -2,10 +2,11 @@ title: Engine Constants description: published: true -date: 2020-01-16T11:35:42.148Z +date: 2020-01-16T16:07:13.772Z tags: TunerStudio --- +# Engine Constants ## Overview From the Settings menu, select Constants @@ -37,4 +38,6 @@ Here you need to setup the engine constants. Fill out the fields in the bottom s - **Instantaneous:** Every reading is used as it is taken. Makes for a highly fluctuating signal, but can be useful for testing - **Cycle Average:** The average sensor reading across 720 crank degrees is used. This is of Event average are the recommended options for 4 of more cylinders - **Cycle Minimum:** The lowest value detected across 720 degrees is used. This is the recommended method for less than 4 cylinders or ITBs - - **Event Average:** Similar to Cycle Average, however performs the averaging once per ignition event rather than once per cycle. Generally offers faster response with a similar level of accuracy. \ No newline at end of file + - **Event Average:** Similar to Cycle Average, however performs the averaging once per ignition event rather than once per cycle. Generally offers faster response with a similar level of accuracy. + +The Oddfire angles should only be used on oddfire engines (Primarily some specifica V6s) \ No newline at end of file From 13510b5312240a83a55c623caab930017c3e806e Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 16 Jan 2020 16:10:03 +0000 Subject: [PATCH 48/56] docs: update configuration/Engine_Constants --- configuration/Engine_Constants.md | 45 ++++++++++++++++--------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/configuration/Engine_Constants.md b/configuration/Engine_Constants.md index 06337bc..2ecdfd0 100644 --- a/configuration/Engine_Constants.md +++ b/configuration/Engine_Constants.md @@ -2,7 +2,7 @@ title: Engine Constants description: published: true -date: 2020-01-16T16:07:13.772Z +date: 2020-01-16T16:09:59.854Z tags: TunerStudio --- @@ -18,26 +18,27 @@ Here you need to setup the engine constants. Fill out the fields in the bottom s ## Settings Description ![engine.png](/img/constants/engine.png){.align-center width=400} -- **Control Algorithm:** The load source that will be used for the fuel table -- **Squirts per Engine Cycle:** How many squirts will be performed over the duration of the engine cycle (Eg 720 degrees for a 4 stroke). most engines will not require values greater than 4. For sequential installations, this should be set to 2 with the injector staging set to 'Alternating'(Internally Speeduino will adjust the squirts to 1) - - Note that for 3 and 5 squirts, you must have a cam signal in addition to the crank. -- **Injector Staging:** This configures the timing strategy used for the injectors - - Alternating (Recommended for most installs) - Injectors are timed around each cylinders TDC. The exact closing angle can be specific in the Injector Characteristics dialog. - - Simultaneous - All injectors are fired together, based on the TDC of cylinder 1. -- **Engine stroke:** Whether the engine is 2 stroke or 4 stroke -- **Number of cylinders:** Number of cylinders in the engine. For rotary engines, select 4. -- **Injector Port Type:** Option isn't used by firmware. Selection currently does not matter -- **Number of injectors:** Usually the same as number of cylinders (For port injection) -- **Engine Type:** Whether the crank angle between firings is the same for all cylinders. If using an Odd fire engine (Eg Some V-Twins and Buick V6s), the angle for each output channel must be specific. -- **Injector Layout:** Specifies how the injectors are wired in - - **Paired:** 2 injectors are wired to each channel. The number of channels used is therefore equal to half the number of cylinders. - - **Semi-Sequential:** Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less. - - **Sequential**: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. Only available for engines with 4 or fewer cylinders. -- **Board Layout:** Specifies the input/output pin layout based on which Speeduino board you're using. For specific details of these pin mappings, see the utils.ino file -- **MAP Sample Method:** How the MAP sensor readings will be processed: - - **Instantaneous:** Every reading is used as it is taken. Makes for a highly fluctuating signal, but can be useful for testing - - **Cycle Average:** The average sensor reading across 720 crank degrees is used. This is of Event average are the recommended options for 4 of more cylinders - - **Cycle Minimum:** The lowest value detected across 720 degrees is used. This is the recommended method for less than 4 cylinders or ITBs - - **Event Average:** Similar to Cycle Average, however performs the averaging once per ignition event rather than once per cycle. Generally offers faster response with a similar level of accuracy. + +- **Control Algorithm:** The load source that will be used for the fuel table +- **Squirts per Engine Cycle:** How many squirts will be performed over the duration of the engine cycle (Eg 720 degrees for a 4 stroke). most engines will not require values greater than 4. For sequential installations, this should be set to 2 with the injector staging set to 'Alternating'(Internally Speeduino will adjust the squirts to 1) + - Note that for 3 and 5 squirts, you must have a cam signal in addition to the crank. +- **Injector Staging:** This configures the timing strategy used for the injectors + - **Alternating** (Recommended for most installs) - Injectors are timed around each cylinders TDC. The exact closing angle can be specific in the Injector Characteristics dialog. + - **Simultaneous** - All injectors are fired together, based on the TDC of cylinder 1. +- **Engine stroke:** Whether the engine is 2 stroke or 4 stroke +- **Number of cylinders:** Number of cylinders in the engine. For rotary engines, select 4. +- **Injector Port Type:** Option isn't used by firmware. Selection currently does not matter +- **Number of injectors:** Usually the same as number of cylinders (For port injection) +- **Engine Type:** Whether the crank angle between firings is the same for all cylinders. If using an Odd fire engine (Eg Some V-Twins and Buick V6s), the angle for each output channel must be specific. +- **Injector Layout:** Specifies how the injectors are wired in + - **Paired:** 2 injectors are wired to each channel. The number of channels used is therefore equal to half the number of cylinders. + - **Semi-Sequential:** Semi-sequential: Same as paired except that injector channels are mirrored (1&4, 2&3) meaning the number of outputs used are equal to the number of cylinders. Only valid for 4 cylinders or less. + - **Sequential**: 1 injector per output and outputs used equals the number of cylinders. Injection is timed over full cycle. Only available for engines with 4 or fewer cylinders. +- **Board Layout:** Specifies the input/output pin layout based on which Speeduino board you're using. For specific details of these pin mappings, see the utils.ino file +- **MAP Sample Method:** How the MAP sensor readings will be processed: + - **Instantaneous:** Every reading is used as it is taken. Makes for a highly fluctuating signal, but can be useful for testing + - **Cycle Average:** The average sensor reading across 720 crank degrees is used. This is of Event average are the recommended options for 4 of more cylinders + - **Cycle Minimum:** The lowest value detected across 720 degrees is used. This is the recommended method for less than 4 cylinders or ITBs + - **Event Average:** Similar to Cycle Average, however performs the averaging once per ignition event rather than once per cycle. Generally offers faster response with a similar level of accuracy. The Oddfire angles should only be used on oddfire engines (Primarily some specifica V6s) \ No newline at end of file From cf09cb2a9351dcced4314f07d94d3dd6f53d123d Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 17 Jan 2020 00:39:01 +0000 Subject: [PATCH 49/56] Mostly working complete PDF build script --- make_pdf.sh | 44 ++++++++++++++++++++++++++++---------- offline/wiki.js.css | 51 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 11 deletions(-) create mode 100644 offline/wiki.js.css diff --git a/make_pdf.sh b/make_pdf.sh index b3d0da4..cc00a38 100755 --- a/make_pdf.sh +++ b/make_pdf.sh @@ -1,25 +1,47 @@ #!/bin/bash - -BUILD=build +PANDOC_PATH=/home/pi/pandoc_src/bin/ MAKEFILE=Makefile OUTPUT_FILENAME='offline/Speeduino_manual.pdf' -METADATA=metadata.yml +METADATA='offline/metadata.yaml' DEFINITION='offline/std_manual.md' -CHAPTERS=`cat ${DEFINITION}` +BUILD='/home/pi/book/tmp' +CHAPTERS=`tail -n +8 ${DEFINITION}` IMAGES_FOLDER="img" IMAGES=${IMAGES_FOLDER}/* COVER_IMAGE=${IMAGES_FOLDER}/Speeduino\ logo.png TEMPLATE=offline/eisvogel.tex -TEMPLATE_OPTIONS='--top-level-division=chapter --listings --toc' -#METADATA_ARG=--metadata-file=${METADATA} -ARGS="${TEMPLATE_OPTIONS} --template=${TEMPLATE} ${METADATA_ARG}" -PDF_ARGS="-V book --pdf-engine=xelatex" +TEMPLATE_OPTIONS='--listings --toc --toc-depth=2' +METADATA_ARG=--metadata-file=${METADATA} +ARGS="${TEMPLATE_OPTIONS} --template=${TEMPLATE}" +#ARGS="${TEMPLATE_OPTIONS}" +#PDF_ARGS="--pdf-engine=xelatex" +PDF_ARGS="-f markdown-markdown_in_html_blocks --pdf-engine=xelatex" #This contains all the fonts that might be needed #sudo apt-get install texlive-fonts-extra -mkdir -p ${BUILD}/pdf -echo pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS} -pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS} +CUR_PATH=`pwd` +mkdir -p ${BUILD} +cd ${BUILD} +git clone --depth=1 https://github.com/speeduino/wiki.js.git +cd wiki.js + +#Add a blank line on the top of each file to prevent issues with pandoc concatenation +for f in ${CHAPTERS} +do + sed -s -i '1i\\' $f +done + + +echo ${PANDOC_PATH}pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS} +${PANDOC_PATH}pandoc ${ARGS} ${PDF_ARGS} -o ${OUTPUT_FILENAME} ${CHAPTERS} + +#Copy the produced PDF back to the main directory +cp ${OUTPUT_FILENAME} ${CUR_PATH}/offline # @echo "$@ was built" + +#Cleanup +cd ${BUILD}/.. +rm -rf ./tmp +cd ${CUR_PATH} diff --git a/offline/wiki.js.css b/offline/wiki.js.css new file mode 100644 index 0000000..cd8231f --- /dev/null +++ b/offline/wiki.js.css @@ -0,0 +1,51 @@ +.v-content .contents blockquote.is-info { + background-color:#e3f2fd; + border-color:#64b5f6; + color:#0d47a1 +} +.v-content .contents blockquote.is-info code { + background-color:#e3f2fd; + color:#1565c0 +} +.theme--dark .v-content .contents blockquote.is-info { + background-color:#0d47a1; + color:#e3f2fd; + border-color:#2196f3 +} +.is-warning { + background-color:#fff3e0; + border-color:#ffb74d; + color:#b33f00 +} +.v-content .contents blockquote.is-warning code { + background-color:#fff3e0; + color:#ef6c00 +} +.v-content .contents blockquote.is-danger { + background-color:#ffebee; + border-color:#e57373; + color:#b71c1c +} +.v-content .contents blockquote.is-danger code { + background-color:#ffebee; + color:#c62828 +} +.theme--dark .v-content .contents blockquote.is-danger { + background-color:#b71c1c; + color:#ffcdd2; + border-color:#f44336 +} +.v-content .contents blockquote.is-success { + background-color:#e8f5e9; + border-color:#81c784; + color:#1b5e20 +} +.v-content .contents blockquote.is-success code { + background-color:#e8f5e9; + color:#2e7d32 +} +.theme--dark .v-content .contents blockquote.is-success { + background-color:#1b5e20; + color:#e8f5e9; + border-color:#4caf50 +} From 9de1198fb48ce24809f972f83fa594fd416d6909 Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 17 Jan 2020 00:41:30 +0000 Subject: [PATCH 50/56] docs: update decoders/Missing_Tooth --- decoders/Missing_Tooth.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/decoders/Missing_Tooth.md b/decoders/Missing_Tooth.md index 80c1999..36fd0e1 100644 --- a/decoders/Missing_Tooth.md +++ b/decoders/Missing_Tooth.md @@ -2,12 +2,13 @@ title: Missing Tooth description: Information about the missing tooth decoder pattern published: true -date: 2020-01-07T04:53:01.240Z +date: 2020-01-17T00:41:27.503Z tags: --- -# Missing Tooth Pattern -## Overview +# Supported trigger patterns +## Missing Tooth Pattern +### Overview A missing tooth crank trigger is used as standard equipment by a number of OEMs, most notably Ford, but is also very popular as an aftermarket fitment. @@ -17,11 +18,11 @@ It is comprised of crank wheel with a given number of evenly spaced teeth, and o {.is-warning} -## Applications +### Applications Missing tooth crank wheels can be used on virtually any engine and is one of the more popular aftermarket options. It provides very good resolution in the higher tooth count versions (Eg 36-1 and 60-2) without being CPU intensive to decode. -## Tuner Studio Configuration +### Tuner Studio Configuration ![missingtooth_triggerconfig.png](/img/decoders/missingtooth_triggerconfig.png){.align-center} **Fields:** @@ -40,5 +41,5 @@ The missing tooth decoder supports sequential operation if an additional cam inp This cam signal should take the form of a single pulse every complete cycle. This can be a short tooth or a half moon type arrangement, provided that electrically there is only a single rising (or falling) pulse per cycle. -## Trigger Pattern +### Trigger Diagram ![missingtooth_trace1.png](/img/decoders/missingtooth_trace1.png){.align-center} From 971f96587732f53a63cd10925705b60d4193ac4c Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 17 Jan 2020 00:43:02 +0000 Subject: [PATCH 51/56] docs: update decoders/Missing_Tooth_(cam) --- decoders/Missing_Tooth_(cam).md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/decoders/Missing_Tooth_(cam).md b/decoders/Missing_Tooth_(cam).md index 89c47a4..50c183a 100644 --- a/decoders/Missing_Tooth_(cam).md +++ b/decoders/Missing_Tooth_(cam).md @@ -2,22 +2,22 @@ title: Missing Tooth (Cam speed) description: published: true -date: 2020-01-16T11:46:41.284Z +date: 2020-01-17T00:42:59.489Z tags: decoder --- -## Overview +## Missing tooth (Cam speed) The missing tooth cam-speed trigger is a Speeduino innovation, that permits function similar to a dual-wheel setup, thereby allowing sequential or wasted spark operation from cam-mounted or distributor wheels. The operation is based on both [Missing Tooth](Missing_Tooth "wikilink") and [Dual Wheel](Dual_Wheel "wikilink"). It is suggested to read those sections first for familiarization as this section will only highlight the fundamental differences to those common decoders. This decoder is comprised of a single cam-speed wheel in the same configuration as a crank-mounted missing-tooth wheel. The number of teeth ***must*** be evenly divisible into 720°. As it rotates at half crank speed, the sensor reads half the wheel teeth on each 360° crank revolution, and the remaining teeth on the next crank rotation. A single missing tooth will appear on only one of the two crank rotations, and is then used as a phase indicator, much as the dual-wheel system uses the cam signal. -## Applications +### Applications Missing tooth cam or distributor wheels can be used with cam or distributor wheel modification or fabrication as no OEM systems use it originally. The wheel ***must*** have at least as many teeth as cylinders, ***not*** including the missing tooth. This generally requires double the number of teeth as cylinders or more. As many teeth, slots, or other readable features (sensor targets) as possible in the limited space is recommended in order to satisfy this requirement, and to maximize resolution. The sensor must be capable of reliably reading smaller or closely-spaced teeth. Due to typically limited teeth, only half the teeth being read on each revolution, and the potential for reduced accuracy due to timing drive wear; the timing accuracy may be reduced in comparison to crank wheel systems. A figure of error cannot be predicted here as the wear or 'slop' of a given engine will be unique. However, it should be reasonable to assume the timing error will not exceed the accuracy of an OEM-equivalent cam-driven system such as typical distributor systems, or possibly better due to more sensor targets. -## Tuner Studio Configuration +### Tuner Studio Configuration ![missingtooth_cam_triggerconfig.png](/img/decoders/missingtooth_cam_triggerconfig.png){.align-center width=450} **Fields:** @@ -30,6 +30,6 @@ Due to typically limited teeth, only half the teeth being read on each revolutio The trigger angle is set in CRANK degrees, not cam. -## Trigger Pattern +### Trigger Pattern ![missingtooth_cam_trace.jpg](/img/decoders/missingtooth_cam_trace.jpg){.align-center width75%} From 3ece26a40de37a39d5c3f03863179fb371717292 Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 17 Jan 2020 00:44:12 +0000 Subject: [PATCH 52/56] docs: update decoders/Dual_Wheel --- decoders/Dual_Wheel.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/decoders/Dual_Wheel.md b/decoders/Dual_Wheel.md index fee5769..6dc5e82 100644 --- a/decoders/Dual_Wheel.md +++ b/decoders/Dual_Wheel.md @@ -1,5 +1,12 @@ -Overview --------- +--- +title: Dual Wheel +description: +published: true +date: 2020-01-17T00:44:09.513Z +tags: trigger +--- + +## Dual Wheel A dual wheel trigger is one where there is a primary multi-tooth wheel combined with a secondary single pulse to provide location information. The primary input should contain no missing teeth. Both pulses can run at either cam or crank speed, but sequential operations requires that the secondary pulse is located on the cam. The design of the secondary trigger can vary (Eg a single short tooth, half-moon wheel etc), provided it only provides a single pulse per revolution. @@ -7,13 +14,12 @@ As with other arbitrary tooth count wheels, the number of teeth must evenly divi Tooth \#1 is defined to be the first tooth on the primary wheel AFTER the pulse on the secondary wheel. -Applications ------------- +### Applications Dual wheel triggers are standard fitment on a number of Euro make cars, particularly those from VW and Audi. They are also a popular aftermarket fitment due to their simplicity and ease of fitment. -Tuner Studio Configuration --------------------------- +### Tuner Studio Configuration +
@@ -31,7 +37,7 @@ Fields: The trigger angle can be found by placing the engine at TDC, then calculating how far it must be rotated until the first primary tooth after the secondary pulse. -### Sequential operation +#### Sequential operation The missing tooth decoder supports sequential operation if the secondary input is running at cam speed. If Sequential mode is selected for either the fuel timing or spark timing, the system will expect that the secondary input is running at cam speed and will only provide half the output pulses if this is not the case. From 9c08b54bee68bc99724c721fd0407996ae84e56f Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 17 Jan 2020 01:03:50 +0000 Subject: [PATCH 53/56] docs: update offline/std_manual --- offline/std_manual.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/offline/std_manual.md b/offline/std_manual.md index 7ea4198..a101cad 100644 --- a/offline/std_manual.md +++ b/offline/std_manual.md @@ -2,11 +2,11 @@ title: std_manual description: published: true -date: 2020-01-16T06:28:52.838Z +date: 2020-01-17T01:03:46.600Z tags: --- -./Overview.md +./home.md ./Installing_Firmware.md ./Connecting_to_TunerStudio.md ./Configuring_TunerStudio.md From 0c36ab02c44b1575bc9cf36ddf72f7e247e40b91 Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 17 Jan 2020 01:12:57 +0000 Subject: [PATCH 54/56] Attempt to add frontpage to PDF --- home.md | 14 ++++++--- offline/background1.pdf | 70 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 offline/background1.pdf diff --git a/home.md b/home.md index ea0d7a4..be77031 100644 --- a/home.md +++ b/home.md @@ -1,9 +1,15 @@ --- -title: Speeduino wiki -description: The Speeduino documentation wiki +title: Speeduino Manual +description: The Speeduino documentation manual published: true date: 2020-01-10T06:08:13.463Z -tags: +tags: home +titlepage: true +titlepage-rule-height: 2 +titlepage-rule-color: "360049" +titlepage-background: "offline/background1.pdf" +logo: "img/Speeduino logo_med.png" +logo-width: 120 --- # Speeduino Manual @@ -24,4 +30,4 @@ As a starting point, it is generally recommended to first upload the firmware to As an open source project, this documentation is growing continually and this means that you may come across gaps in the documentation where little information is currently provided. Please do not hesitate to post on the forum if there is something missing that you need critically (or even not so critically). -Additionally, if you would like to contribute to the Speeduino documentation, we would love to hear from you! The preferred method to request wiki access is either via Slack (https://speeduino.com/forum/app.php/page/slack) \ No newline at end of file +Additionally, if you would like to contribute to the Speeduino documentation, we would love to hear from you! The preferred method to request wiki access is either via Slack (https://speeduino.com/forum/app.php/page/slack) diff --git a/offline/background1.pdf b/offline/background1.pdf new file mode 100644 index 0000000..c0850b1 --- /dev/null +++ b/offline/background1.pdf @@ -0,0 +1,70 @@ +%PDF-1.5 +%µí®û +3 0 obj +<< /Length 4 0 R + /Filter /FlateDecode +>> +stream +xœeŽAÂ@E÷s +. Ã#¸°í¢.¬÷OœÑ¤©iØÏÿïó* c¶®w‚ù]B#XŠ;\~‚Ãö€©JMá„îbš}‰j’: {¦1±mB +endstream +endobj +4 0 obj + 162 +endobj +2 0 obj +<< + /ExtGState << + /a0 << /CA 1 /ca 1 >> + >> +>> +endobj +5 0 obj +<< /Type /Page + /Parent 1 0 R + /MediaBox [ 0 0 595.275574 841.889771 ] + /Contents 3 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 2 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 5 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Creator (cairo 1.14.8 (http://cairographics.org)) + /Producer (cairo 1.14.8 (http://cairographics.org)) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000576 00000 n +0000000276 00000 n +0000000015 00000 n +0000000254 00000 n +0000000348 00000 n +0000000641 00000 n +0000000768 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +820 +%%EOF From ec2b12ea0f749d89b2c3fa43f1fca5e2dd628f20 Mon Sep 17 00:00:00 2001 From: Josh Date: Fri, 17 Jan 2020 01:56:38 +0000 Subject: [PATCH 55/56] Dynamic header page for PDF --- home.md | 14 ++++++++------ make_pdf.sh | 4 ++-- offline/eisvogel.tex | 15 ++++++++++----- offline/logo.png | Bin 0 -> 168400 bytes 4 files changed, 20 insertions(+), 13 deletions(-) create mode 100644 offline/logo.png diff --git a/home.md b/home.md index be77031..1f3759d 100644 --- a/home.md +++ b/home.md @@ -1,3 +1,4 @@ + --- title: Speeduino Manual description: The Speeduino documentation manual @@ -8,11 +9,11 @@ titlepage: true titlepage-rule-height: 2 titlepage-rule-color: "360049" titlepage-background: "offline/background1.pdf" -logo: "img/Speeduino logo_med.png" -logo-width: 120 +logo: "offline/logo.png" +logo-width: 350 --- -# Speeduino Manual +# Introduction This manual covers the hardware (sensors, wiring etc), software configuration and tuning elements related to running a Speeduino unit. When beginning with Speeduino, particularly if it is your first time installing and configuring an engine management system, this manual will assist in understanding Speeduino's capabilities and how it should be installed, both in terms of hardware and software/firmware. Whilst this document will assist in providing information related to Speeduino's configuration, it does not cover advanced engine tuning, fuel / ignition strategies etc. As with any changes to engine management, the possibility of damage to hardware is very real should a system be configured incorrectly. @@ -20,9 +21,10 @@ Whilst this document will assist in providing information related to Speeduino's ### Getting Started In terms of starting out with Speeduino, it can help to understand the various compnents that make up the system: -1. **A Speeduino board** - This is the muscle of the Speeduino ECU and contains all the drivers and IO circuits. This maybe one of the generic boards (Such as the v0.4) or a PNP board for a specific model car -2. **An Arduino** - This is the brains of Speeduino and contains the processor, memory and storage. It plugs into the Speeduino board in order to interface with the vehicle wiring -3. **Firmware** - This is the system software that runs on the Arduino board and powers its operation. New firmware is released regularly with updates, performance improvements and bug fixes. + +1. **A Speeduino board** - This is the muscle of the Speeduino ECU and contains all the drivers and IO circuits. This maybe one of the generic boards (Such as the v0.4) or a PNP board for a specific model car +2. **An Arduino** - This is the brains of Speeduino and contains the processor, memory and storage. It plugs into the Speeduino board in order to interface with the vehicle wiring +3. **Firmware** - This is the system software that runs on the Arduino board and powers its operation. New firmware is released regularly with updates, performance improvements and bug fixes. As a starting point, it is generally recommended to first upload the firmware to your Arduino and get it connecting to the tuning software (Tuner Studio) before moving on to hardware assembly or wiring etc. Software setup and configuration on Speeduino can be completed without the need for any additional hardware to be present (Beyond the arduino itself) and this allows exploration of the software and options available before either an outlay of significant funds or a significant investment of time. diff --git a/make_pdf.sh b/make_pdf.sh index cc00a38..63a3b01 100755 --- a/make_pdf.sh +++ b/make_pdf.sh @@ -15,7 +15,7 @@ METADATA_ARG=--metadata-file=${METADATA} ARGS="${TEMPLATE_OPTIONS} --template=${TEMPLATE}" #ARGS="${TEMPLATE_OPTIONS}" #PDF_ARGS="--pdf-engine=xelatex" -PDF_ARGS="-f markdown-markdown_in_html_blocks --pdf-engine=xelatex" +PDF_ARGS="-f markdown-markdown_in_html_blocks --pdf-engine=xelatex --metadata date=`date +%D`" #This contains all the fonts that might be needed #sudo apt-get install texlive-fonts-extra @@ -43,5 +43,5 @@ cp ${OUTPUT_FILENAME} ${CUR_PATH}/offline #Cleanup cd ${BUILD}/.. -rm -rf ./tmp +#rm -rf ./tmp cd ${CUR_PATH} diff --git a/offline/eisvogel.tex b/offline/eisvogel.tex index 0db6c5f..1f505f1 100644 --- a/offline/eisvogel.tex +++ b/offline/eisvogel.tex @@ -871,6 +871,12 @@ $if(titlepage-background)$ \setstretch{2} \vfill \vskip -8em + + $if(logo)$ + \noindent + \includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$} + $endif$ + \vskip 2em \noindent {\huge \textbf{\textsf{$title$}}} $if(subtitle)$ \vskip 1em @@ -892,14 +898,13 @@ $else$ \vskip 2em \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}} \vfill + $if(logo)$ + \noindent + \includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$} + $endif$ } $endif$ -$if(logo)$ -\noindent -\includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$} -$endif$ - $if(titlepage-background)$ $else$ \textsf{$date$} diff --git a/offline/logo.png b/offline/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7408481e2338b2617fcb13e5e04e2676020686dd GIT binary patch literal 168400 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%0D4|=&6^vd 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
NR@M@dTv=YT_kd&|#^$FK=Zj(z?8~Q2YGs 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 Date: Fri, 17 Jan 2020 21:12:25 +1000 Subject: [PATCH 56/56] Update home.md --- home.md | 1 - 1 file changed, 1 deletion(-) diff --git a/home.md b/home.md index 1f3759d..7ba0e6d 100644 --- a/home.md +++ b/home.md @@ -1,4 +1,3 @@ - --- title: Speeduino Manual description: The Speeduino documentation manual