Pages: [1]
Author Topic: ME7.5 DBC + VE Conversion Patch  (Read 1788 times)
_nameless
Hero Member
*****

Karma: +370/-1841
Offline Offline

Posts: 2940



« on: May 11, 2025, 05:19:50 PM »

- Main fueling is based on a VE table (RPM x MAP) located at 0xFF200 (8x8, scaled to 0100%).
- G31 (charge pressure sensor) is physically relocated post-throttle and used as a true MAP.
- MAF (HFM) logic is bypassed entirely; air mass is faked using VE output to mlhfmm_w.
- Injector pulsewidth is now directly driven by this VE logic and wideband O2 correction (if enabled).
- Timing and lambda maps remain stock but can be tuned as needed for VE values and actual load.
Tuning Workflow:
1. Set up VE map using MAP (kPa) and RPM axes in WinOLS
2. Tune VE values by logging AFR with wideband and matching target lambda.
3. Confirm synthetic load (mlhfmm_w) tracks engine torque accurately.
4. Adjust spark advance and AFR targets once VE is dialed in.
5. Disable trims if targeting open-loop-only operation.
Disabled Logic & Checks
EGAS: SY_EGAS logic bypassed, throttle motor logic disabled
TPS Dual Track: Only WDKBA used, WDKS simulated in firmware
Throttle Adaptation: 0x380A000x380A1F cleared every loop
Idle Torque Control: dmllri_w @ 0x382474 zeroed cyclically
Throttle Plausibility: WPED WDK jump NOPd
DTCs Removed: P1545, P1559, P1565, P1579 logic NOPd
MAF Input: Original HFM logic bypassed; input used for MAP
VE-Based Fueling System
VE Table: 0xFF200 - 8x8 grid: RPM MAP (kPa) Load
Runtime Patch: 0xFF300 - Writes synthetic load to mlhfmm_w
Hook Location: 0x1614E - Replaces torque logic with patch call
Load Output: mlhfmm_w @ 0x00F9A2 - Fake air mass to ECU
VE Table Axes
RPM Breakpoints: [1000, 1500, 2000, 2500, 3000, 4000, 5000, 6000]
MAP Breakpoints: [20, 40, 60, 80, 100, 120, 150, 200] (kPa absolute)
Memory Map of Custom Patches
0xFF000 Master hook: Simulate WDKS, call VE patch
0xFF010 Zero idle torque
0xFF030 Clear adaptation RAM
0xFF100 Alpha-N table (legacy)
0xFF200 VE table (RPM MAP)
0xFF300 VE runtime logic
Hardware Notes
- DBC throttle with single-track TPS
- G31 MAP sensor relocated to intake manifold
- No MAF
- No throttle motor required
« Last Edit: May 31, 2025, 06:15:36 PM by _nameless » Logged

If you are broke or expecting free handouts DO NOT message me. I'll probably put you on blast if you do.
_nameless
Hero Member
*****

Karma: +370/-1841
Offline Offline

Posts: 2940



« Reply #1 on: May 11, 2025, 08:55:29 PM »

| TPS Pin    | Connect to ECU     | Notes                                              |
| ---------- | ------------------ | -------------------------------------------------- |
| **5V Ref** | T121/62 or T121/2  | +5V sensor supply from ECU                         |
| **Ground** | T121/1 or T121/5   | Sensor ground (not chassis ground!)                |
| **Signal** | T121/53 or T121/58 | Connect to **WDKBA** input (Throttle Plate Actual) |
Logged

If you are broke or expecting free handouts DO NOT message me. I'll probably put you on blast if you do.
prj
Hero Member
*****

Karma: +1101/-519
Offline Offline

Posts: 6187


« Reply #2 on: May 12, 2025, 01:51:32 AM »

All well and good, but ME7 already has VE tables from factory.

KFURL for the main multiplicative curve.
KFPRG for adders.
KFPBRK and KFPBRKNW for multiplicative correction.

No additional maps are needed.

All you do is dpsfg_w (iirc) = delta MAP, and add a filter to the MAP.
That's all.
Logged

PM's will not be answered, so don't even try.
Log your car properly - WinOLS database - Tools/patches
Blazius
Hero Member
*****

Karma: +95/-41
Offline Offline

Posts: 1288



« Reply #3 on: May 13, 2025, 04:17:19 PM »

Cool! Specially the TB side.

As  for VE/SD yeah,basically everything is already there to do it nicely

ADC channel read to write uhfm_w, new ram location becomes new voltage from MAP sensor
Some software has diagnostics on startup(and some dont) for min and max limits (0 and 5V) on uhfm_w so just change to new RAM location

Where UHFM_W was read and value from MLFHM derived and sampling/counter ram locations are performed(1ms raster), find the call replace with new one to custom code where MAP value is determined directly from voltage via gradient and offset, call it internal map value, write the counter and sampling ram adress

Change mlhfmm_w function(runs crank sync) to output final MAP value from the sampled values / divison , just like OEM does, replace mlhfmm_w with new ram location as final MAP value and exit out from function right after. This way no major filter needed as value comes averaged from 35+ samples at 800rpm to 15 ish (iirc) at 6000 atleast on 1.8T ME7.5.

Being aware that on 0 RPM, aka before engine start this MAP value will be 0 , so Bosch in SD oem file made a map and function where this adress is written directly from the internal conversion without averaging/sampling ending at about 400RPM(switching back to normal operation).

In the major module BGSRM , where ps_w is written , instead of subbing rl_w from rlroh_w with the addition of fvisrm_w and constant conversion, just eliminate it or use it as filter like prj does , and directly sub the final map value from ps_w and you get dpsfg_w properly and so on...

Tune the VE maps and done. Worked well for me Smiley on quite a few projects now.
I guess most of this post should belong to the Speed density thread but oh well. Obviously this needs another MAP sensor wired in the MAF signal unlike this setup which uses the boost sensor as MAP now. And yeah it does need 5120 hack too later if need be...
Logged
vvt18
Full Member
***

Karma: +7/-317
Offline Offline

Posts: 146


« Reply #4 on: June 07, 2025, 06:08:10 AM »

how much?
Logged
BlackT
Hero Member
*****

Karma: +80/-42
Offline Offline

Posts: 1485



« Reply #5 on: June 11, 2025, 04:30:10 AM »

Can you make waste spark sistem on ME7.5?
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.031 seconds with 15 queries. (Pretty URLs adds 0s, 0q)