SUB2 stock bin - '95 4.9L E4OD

A1C calibration can be modified and configured to operate all EFI-SD4x ECUs in 4 cylinder, 6 cylinder and 8 cylinder configurations.
wwhite
Posts: 327
Joined: 2021 Feb 16, 15:53
Location: Victoria, BC, Canada
Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by wwhite »

SUBx, KIDx, and LADx are super similar in code.
I’ve been racking my brain with how to create a tool that takes all named symbols, functions and tables, then mapped to different calibrations entering the correct hex address for each.
KIDx is what I worked on since that’s what I got.
SUB2 is missing code that isn’t in KID2, and LAD. And I haven’t broken out enough of LAD to know it’s differences, other than the LAD code is to me the latest/most recent/mature calibration developed and deployed from ford (1996 I believe vs 1994 for SUB and KID),

Maybe another git repository with just these three ?
wwhite
Posts: 327
Joined: 2021 Feb 16, 15:53
Location: Victoria, BC, Canada
Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by wwhite »

efloth wrote: 2023 Mar 09, 11:36 So do you guys want to focus on Sub2 then or adapting LADx? We could add the extended VE patch/datalogging to either one. SUB2 would take longer. Either way we should get a copy of your A1C tune that was only editied by Michael
We could create patch tables for 6cyl and 8cyl, taken from stock maps as starting points, keeping it all in the adx/xdf
efloth
Posts: 319
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by efloth »

wwhite wrote: 2023 Mar 09, 13:19
efloth wrote: 2023 Mar 09, 11:36 So do you guys want to focus on Sub2 then or adapting LADx? We could add the extended VE patch/datalogging to either one. SUB2 would take longer. Either way we should get a copy of your A1C tune that was only editied by Michael
We could create patch tables for 6cyl and 8cyl, taken from stock maps as starting points, keeping it all in the adx/xdf
I've noticed many undefined(in xdf) parameters are quite different when dealing with I6 calibrations vs v8. I'd focus on sub2 since that is what we are working with but if most of the code is the same then it should be quick to port over to ladx.
efloth
Posts: 319
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by efloth »

wwhite wrote: 2023 Mar 09, 13:08 SUBx, KIDx, and LADx are super similar in code.
I’ve been racking my brain with how to create a tool that takes all named symbols, functions and tables, then mapped to different calibrations entering the correct hex address for each.
KIDx is what I worked on since that’s what I got.
SUB2 is missing code that isn’t in KID2, and LAD. And I haven’t broken out enough of LAD to know it’s differences, other than the LAD code is to me the latest/most recent/mature calibration developed and deployed from ford (1996 I believe vs 1994 for SUB and KID),

Maybe another git repository with just these three ?
I've done this with text parsing the xdf xml and updating the addresses manually. If we created a table that lists the A1C address and then the SUB2 address we could save an hour or two and do it automatically

Something like this(in csv):

Code: Select all

title,A1C mmedaddress,SUB2 mmedaddress
ROM_TO - (Checksum),0x200A,
Ignition Degrees Per PIP - DEGPIP (Unactual),0x2E68,
RATIV - Ratch Initial Value (Max CT TP) (1 of 5),0x3DFE,
FMEM MAP Default Value,0x3F91,
Fuel Pump Prime Time (Return Style),0x57E4,
DELHYST - ISCMOD_TPREL Hyst (DELRAT),0xA40A,
ISCMOD_MAX - Idle Modulation Max,0xA40C,
ISCMOD_MIN - Idle Modulation Min,0xA40E,
KDNDT - Idle Modulation Gain,0xA410,
TC_OVER - IPSIBR Delay Idle Over,0xA412,
ISCMOD_RPM - Idle Fuel Modulator RPM,0xA416,
PSIBRM - IPSIBR Correction Max,0xA418,
A/C Max DSDRPM Added ???,0xA418,
PSIBRN - IPSIBR Correction Min,0xA41C,
ITHBMA - Throttle Body Airmass,0xA41E,
DEBYCP - IAC Min Calc Flow Limit,0xA420,
DASCTL - Daspot Max to allow Idle Control,0xA422,
DASPTK - Dashpot Gain,0xA424,
DELHYS - Dashpot TP,0xA426,
RPMCTL - Idle ISC RPM Control (FBS Startup) (ISCFLG),0xA428,
NDIF - Decel / Idle RPM Limit,0xA42A,
DELRAT - Idle Fuel Modulator TPREL,0xA42E,
~ISCTM - Decel RPM Update Time,0xA430,
ACLOD - A/C Load,0xA431,
UPDATM - ISCKAM Correction Rate,0xA434,
MINMPH - Idle Control Max MPH,0xA435,
IDCMUL - Global ISCDC Multiplier,0xA436,
IDCOFS - Global ISCDC Offset,0xA438,
ATMR1 Min Time to Fault ?,0xA43C,
~IS_NUBASE - NEUTRAL IDLE RPM (NUBASE),0xA440,
~IS_DRBASE - DRIVE IDLE RPM (DRBASE),0xA442,
~ISCLPD - Max RPM Drive (DRBASE),0xA44E,
TKDTN - Kick Down Time (FN826B) (TKDTM),0xA454,
BZZTM - Startup RPM Adder Time,0xA455,
NDDELT - N/D Engagement Delay,0xA456,
Failure Default RPM (NUBASE),0xA458,
BZZRPM - Startup RPM Adder,0xA446,
~DNAC_NEUT - A/C DSDRPM Adder Park/Neutral,0xA448,
PACPER - PIP Acceleration Period,0xA46C,
LOWVOL_SL - Low Voltage Discharging Threshold (Min V to Increment Timer),0xA470,
LOWVOL_CH - Battery Charging Threshold Voltage,0xA471,
IPSIDLY - IPSIBR Update Crank Delay,0xA81C,
SETLNG_TM - Idle Disturbance Delay (Dashpot Settling Time),0xA820,
AHISL - Injector High Slope (K-Constant),0xA822,
OPCLT3 - CL Delay Hot,0xA826,
OPCLT2 - CL Delay Warm,0xA827,
OPCLT1 - CL Delay Cold,0xA828,
EGOCL1 - HEGO Min Switches Before Warm,0xA829,
TP_HYS_OL - OL TPREL Hyst,0xA82A,
OPCLT4 - CL Delay Cold 2,0xA831,
OPCLT5 - CL Delay Warm 2,0xA832,
LAMRICH - OL Lambse Threshold (FN1360),0xA835,
LAMRHYS - OL Lambse Thres Hyst (LAMRICH),0xA836,
OLINEUT - OL Lambse Multiplier Neutral,0xA837,
OLIDRV - OL Lambse Multiplier Drive,0xA838,
MPMNBP - MPG Mode BP Min,0xA84E,
VSMPG - MPG Mode MPH Min,0xA852,
Lambse Base in OL ?,0xA856,
MINPW - Injector Min PW Clip,0xA858,
PIPOUT - Number of Pips Between Injector Outputs,0xA85A,
INJOUT - Injectors Per Output Port,0xA85C,
NUMOUT - Number of Injector Output Ports,0xA85D,
NLMT - Rev Limiter,0xA868,
Rev Limiter Hyst,0xA86A,
VSLIM - Vehicle Speed Limiter,0xA86C,
MPH for Fuel Cut OFF Hyst,0xA86D,
FN1362LX Base OL ACT to ECT Factor,0xA86F,
WOTRPL - WOT Lambse Time Modifier RPM Min,0xA87A,
WOTRPH - WOT Lambse Time Modifier RPM Max,0xA87C,
? KFT - Transient Fuel Multiplier,0xA880,
TFCTM - TFC Startup Delay,0xA881,
MTEISF - TFC EISF Multiplier (Tip-In Modifier),0xA882,
? KFTMPG - Transient Fuel Multiplier MPG Mode,0xA883,
MEFTRD - Transient Fuel Decel Multiplier,0xA885,
MEFTRA - Transient Fuel Accel Multiplier,0xA886,
TFCBITS - TSEIF Min Change,0xA888,
TFCDED - Transient Fuel Deadband,0xA88A,
AISFM - DFSO Transient Fuel Multiplier,0xA88D,
DFNOVS - DFSO NOVS Max,0xA88E,
DFSECT - DFSO ECT Min,0xA890,
ISCMOD MPH Max,0xA899,
ISCMOD MPH Hyst,0xA89C,
ACT to ECT Blend Factor FN005,0xA89D,
Idle Spark Min Something (maybe tq),0xA89E,
~SPK_FBS_MIN - Idle Spark Min Clip (1 of 2),0xA8A2,
Idle Spark Max Something,0xA8A4,
Idle Spark Min Something,0xA8A6,
KSPKDO - SPK_FBS Gain Overspeed Drive (subtractor),0xA8A8,
KSPKDU - SPK_FBS Gain Undspd Drive (adder),0xA8AA,
KSPKNO - SPK_FBS Gain Overspeed Neutral (subtractor),0xA8AC,
KSPKNU - SPK_FBS Gain Undspd Neutral (adder),0xA8AE,
SPKCTL - SPK_FBS DSDRPM Adder Max Clip (Idle Spark),0xA8B0,
SPKIDU - SPK_FBS Drive Target Idle SpkAdv,0xA8B2,
SPKINU - SPK_FBS Neutral Target Idle SpkAdv,0xA8B4,
Idle Spark Base Something,0xA8BA,
CTHIGH - Hot Start ECT Min (OPCLT3),0xAC3E,
CTLOW - ECT Threshold Cold (2 of 2) (OPCLT),0xAC3F,
ENGCYL - # Pips Per Rev (NUMCYL),0xAC41,
SPKSWH - Spark Min PIP RPM,0xAC42,
SPKSWL - Spark Max PIP RPM,0xAC44,
~MHPFD - Signature PIP Difference Value,0xAC46,
wrong address ITOT Fault Min Volts,0xAC4E,
ITOT Fault Max Volts,0xAC50,
BASEMD - Engine Volume Liters (SARCHG) (cubic inches) (Idle Stability),0xAC52,
KVEFF - VE Table Multiplier,0xAC54,
DELTA - PT Threshold,0xAC58,
HYST2 - TP WOT Threshold Hyst,0xAC5A,
HYSTS - TP PT Hyst Threshold,0xAC5C,
THBP2 - WOT Threshold,0xAC5E,
NDDELTA - N/D / D/N Engagement Delay,0xAC66,
ISCDTY Default,0xAC76,
ACT Default FMEM,0xAC78,
MAPFMM - Failure Default MAP,0xAC7B,
TCBPA - IPSIBR Update Rate,0xADDA,
TCFBS - FBS_SPK Gain RPMERR Time Constant,0xADDC,
TCDASD - Dashpot Decel Time Constant,0xADE4,
TCDASU - Dashpot Accel Time Constant,0xADE6,
ECT Offset Temp Transfer?,0xADEC,
TCDESN - DSDRPM Filter TC,0xADF0,
FKSKAY - Signature PIP Half Period Multiplier Filter Constant,0xAE08,
SIGKLL - Signature PIP Multiplier Lowest Value,0xAE0A,
SIGKLU - Signature PIP Multiplier Highest Value,0xAE0C,
TIPMAX - Spark Tip In Retard,0xAED9,
SPUCLP - Spark Max Clip (1 of 7),0xAEAE,
IDCOFS - Global ISCDC Offset,0xB03A,
TQMAX1 - TQ Max Limiter 1,0xB3B0,
TQMAX2 - TQ Max Limiter 2,0xB3B2,
TQMAX_Hyst - TQ Max Limiter Hyst,0xB3B4,
GRRAT1 - 1st Gear Ratio Auto,0xB3BA,
GRRAT2 - 2nd Gear Ratio Auto,0xB3BC,
GRRAT3 - 3rd Gear Ratio Auto,0xB3BE,
GRRAT4 - 4th Gear Ratio Auto,0xB3C0,
SARCHG CID - Engine Size (Updated based on NUMCYL_0),0xB41E,
DASMPH - Daspot Min Clip VS,0xB454,
PDL Voltage Max for Park ?,0xB480,
NOVCNT - N/V KAM Update Rate,0xB4A2,
RTNVMN - N/V KAM Min (NOV_MIN),0xB4A4,
RTNVMX - N/V KAM Max (NOV_MAX),0xB4A6,
CTDLY - TCC CT Relock Delay (Tip-In),0xB4B3,
NIOLD - OL Delay CTNTMR (OLITD1),0xB4BE,
SRLK2 - TCC Slip 2nd Min to Lock,0xB4C6,
SRLK3 - TCC Slip 3rd Min to Lock,0xB4C8,
SRLK4 - TCC Slip 4th Min to Lock,0xB4CA,
CTEDSO - DFSO Extended,0xB4E3,
DFSVS - DFSO MPH Min,0xB4E7,
DFSVSH - DFSO MPH Min Hyst,0xB4EA,
PDL Voltage Max for Fault ?,0xB58C,
MAP_CYCLE -,0xBC61,
AEM - Accel Enrichment Global Multiplier,0xBC62,
ACT to ECT factor for FN020C,0xBC68,
AETAR - Accel Enrichment Min Throttle Rate,0xBC6A,
PFEHP - EGR Type SW (Speed Density Note),0xBC7E,
TSTRAT - Transmission Strategy Type,0xBC80,
TRLOAD - Transmission Load Switch,0xBC81,
IGN_TYPE - Ignition Type (CCD_SW),0xBC85,
?? DELAMB - Adaptive Deadband,0xBC8D,
~MINADP -  KAMRF Min Clip (1 of 2),0xBC93,
~MAXADP - KAMRF Max Clip,0xBC94,
KWUCNT - Fast Adaptive Run Cycles,0xBC99,
MULTM - Cold Engine Fuel Multiplier Update Time Limit (FN393F),0xBC9C,
SpkAdv for KOER Test,0xBCA0,
Lambse Min Check for KOER,0xBCA2,
Lambse Max Check for KOER,0xBCA4,
Lambse for KOER Test,0xBCAE,
ACT Valid Min Volts (FMEM),0xBCBE,
ACT Valid Max Volts (FMEM),0xBCC0,
TP Valid Max Volts (FMEM),0xBCC4,
TP Valid Min Volts (FMEM),0xBCC6,
VMPMAX - MAP Sensor Max Time to Fault,0xBD78,
V820A - ISC Self Test Dutycycle Multiplier,0xBD56,
(not used) SP** Actual Injector High Slope **SEE COMMENTS**,0xFFFE,
wwhite
Posts: 327
Joined: 2021 Feb 16, 15:53
Location: Victoria, BC, Canada
Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by wwhite »

Isn’t it binary editor that uses spreadsheets?
How about a database backend, with web interface available publicly?
The moment a spreadsheet is shared it becomes out of date, and having more than one person working on the spreadsheet can easily get bad / outdated data
efloth
Posts: 319
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by efloth »

We can do that, it's just easier to use excel to do the hex address calculations. Check this xl spreadsheet out. I noted there are some major code differences in the IAC code between A1C and SUB2
Attachments
A1C-SUB2 Parameters.xlsx
(53.41 KiB) Downloaded 467 times
efloth
Posts: 319
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by efloth »

Updated. I am 25% through the parameters. Still have functions and tables to do in a separate spreadsheet.
Attachments
A1C-SUB2 Parameters.xlsx
(53.53 KiB) Downloaded 434 times
wwhite
Posts: 327
Joined: 2021 Feb 16, 15:53
Location: Victoria, BC, Canada
Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by wwhite »

That’s very good. I can easily create a web app for that.
I can also populate another column with KID2.
SUB2 is so similar to KID2, and can probably populate the rest of SUB2 fairly quickly.
efloth
Posts: 319
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by efloth »

Cool that would be awesome. Once completed we just run a batch replace (Column B to Column C) on the decrypted xdf and you have your new xdf.
wwhite
Posts: 327
Joined: 2021 Feb 16, 15:53
Location: Victoria, BC, Canada
Vehicle Information: 1994 Flarside, XLT, 351w E4OD
SD48b, Quarter Horse, Burn2

Re: SUB2 stock bin - '95 4.9L E4OD

Unread post by wwhite »

It's always more work than it seems.
I'm using Google Sheets: View Only: If you want edit, pm me.

https://docs.google.com/spreadsheets/d/ ... ue&sd=true

Added a bunch of stuff, head hurts. Not complete.
Text in RED can be an error, incorrect information or non-calibratable constants (ie. hard coded values in if statements).
Text in YELLOW needs to be verified.
Text in GREEN is corrections and additions.
Post Reply