![]() |
Very nice work ztan. I don't understand anything about the coding but I love your dedication with this car.
send using the coffeemaker |
You are a pro!
Sent from my HTC One_M8 using Tapatalk |
@ztan
would it be possible to use the "Cranking Fuel IPW Compensation (IAT) " table instead looks like the temps could be rescaled its currently not used all 0% compensation shiv used it in the F10G E85 roms in 2.07 tunes as the cranking IPW tables were not defined correctly so could not be changed. |
Cranking Compensation v.2
*** Cranking code updated - my inferences from my logs to make v.2 code were wrong due to the delay in the Arduino Ethanol sensor controller starting to read a value ***
I tried to apply cranking compensation for E% applied to E0 fuelling and it didn't work - I think there was something in the code which does not allow positive compensation. To use compensations < 1.0, I have scaled cranking fuel to E85 and down-compensated for smaller E%. This one seems to work. I've multiplied E0 cranking tables by the following to get E85 cranking: Code:
ECTCode:
000B9870 FlexFuel_Cranking_Comp: ; CODE XREF: Cranking_CompensationsSeems to work. Cranking with Flex sender plugged and unplugged: Code:
MAF_V MAP ECT Port_IPW Direct_IPW Throttle MAF Load Accel Ethanol FF_Mult FF_Cranking |
Have no idea about all this teck stuff but thanks for all the great work you have done for this E85 OFT project Ztan.
We all appreciate it . |
Updated Arduino Flex sender code
There is a delay of around 1500 ms before the Arduino initializes and begins to run the frequency.measure code. There is a small delay in getting an ethanol value out to the ECU whilst the arduino is waiting for a number of frequency.measure periods to pass (at 100Hz, 100 cycles take 1 sec or 1000ms).
To minimise this, I've written an average voltage sender value to EEPROM which is restored as soon as the Arduino boots and then gets updated with a moving average value every time the frequency.measure value gets updated. Code (I've commented off PLX code which I am happy just logging now): Code:
//Flex Fuel sensor code |
Cranking Compensation v.3
1 Attachment(s)
The delay in the Arduino sensor had me cranking with ethanol in the tank with the unit sending E0 for a short while (usually whilst cranking). This made me think that the IAT compensation was unable to generate a positive compensation. I found the error in the logs and have modified the Arduino code to boot with a value restored.
I have changed the cranking compensation code v.1 to work off E0 cranking tables and apply correction that are close to Wayno's cranking values (FF_Multiplier is squared so that at E85, at E85 FF_Multiplier of 1.4 becomes a FF_Cranking of 2). This code works well with the changes to the Arduino code. Cranking with Arduino Flex unplugged (E0) Cranking with Arduino Flex plugged (E75 in tank) Code:
000B9870 FlexFuel_Cranking_Comp: ; CODE XREF: Cranking_Compensations |
Fuel Consumption Display
This code simply multiplies the value that is returned from the Display multiplier table by the FlexFuel Multiplier (E0=0, E85=1.4).
Stock code A01G: Code:
ROM:0003F6D2 FF 9E fmac fr0, fr9, fr15Code:
0003F6D2 FF 9E fmac fr0, fr9, fr15 ; PI volume + GDI volume |
Updated Arduino Circuit and Flex sender code
1 Attachment(s)
A couple of issues sorted out:
1. PLX display died and I didn't figure out for a while until I read the iMFD serial chain notes again carefully - the two data bytes only use the first 6 bits of each and the last 2 need to be "00". Arduino code has been updated to send data in this format and the display works properly. 2. Occasionally, the traction control would switch back on again, usually under hard acceleration. I suspect due to noise on the circuit; went back and made the power supply more robust (caps not shown on circuit below), added filtering to the NPN transistor, and reduced the B-E current to reduce the chance of false noise switching it on. Now traction control stays off at all times. 3. Increased filtering capacitance on the output line to the ECU to reduce sender noise. 4. Ethanol moving average gets stored in EEPROM every 5 minutes rather than every cycle and is the first thing to get sent out when booting the arduino in order to reduce the time a flex signal is available to the ECU. Code:
//Flex Fuel sensor code |
I'm testing ztan's FlexFuel and Speed Density code in my our turbocharged shop car right now. It works brilliantly. You guys are going to be pumped.
|
Just wanted to give ztan a big thank you for all the great work he has done for shiv and all of the OFT boosted users.Ztan has put a lot of work into developing the soft wear for us to use.Awsume job
|
|
So, just to confirm if people are buying commercial flex kits, they should go with the evap option, not rear 02?
Since I have all 10 cranking tables defined in the AU roms, my example roms have these values. 60 x1.05 50 x1.1 40 x1.2 30 x1.3 20 x1.7 10 x1.9 <= 0 x1.5 |
Wow amazing job! I wish I could know the E lvl of our fuel here. I can't wait =D
|
| All times are GMT -4. The time now is 07:32 PM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
User Alert System provided by
Advanced User Tagging v3.3.0 (Lite) -
vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.