Pages: [1] 2 3 ... 5
Author Topic: Suggestions on how to fix Golf 4 Neuspeed supercharger tune  (Read 41776 times)
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« on: October 15, 2015, 12:14:40 PM »

A client brought me a Golf4 he just bought. No ideas who mapped it or what chip/injectors are in it. It has a neuspeed supercharger kit in it. I took it for a short drive and it was detonating like crazy. I pulled the ECU and dumped the ROM.

It's a 06A906032FQ. I've been hunting for a stock ROM for comparison. No luck yet. I searched high and low to find a ROM/DAMOS/A2L pair that was similar. There is lots of 1.8t stuff but nothing for the little NA cars.

So I got a 06A906032MT from the local breaking yard and set about comparing them. I then used a 1.8t ROM and imported and translated the A2L for table descriptions and math. There many changes and I'm not sure which are from tuning and which are just year to year differences. I'm still waiting to find a 06A906032FQ ROM/ECU.

Some of the tables are proving very difficult to find in the two and I don't want to invest weeks of work reverse engineering both in IDA Pro.

Does anyone have other suggestions on how to attack this problem?
Logged
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #1 on: October 16, 2015, 05:49:08 PM »

There is a stock file attached.

I have re-tuned one of these cars. I will say it was in the upper 2/3rs as far as difficult jobs I've done.

It is terrible software to work with, and I can't even imagine tackling it as a noob.
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #2 on: October 16, 2015, 06:47:36 PM »

Thanks, that is incredibly helpful. The firmware appears to be only slightly modified. Since I don't often work with the ST processor I didn't pull them into IDA but it looks like a few small changes were made and a small routine was added to the end with the firmware checksum being updated too. I'll spent some time and see if I can identify what items were changed. Are you aware of any A2L or mappack available for this software? The thing I appreciate about Bosch is that there is often factory data available so the entire mapping and explanations of the strategy are known.

Are you aware of a way to read/clone the EEPROM on this type of hardware without removing the chip? Not the end of the world if I have to but the easy path is always better.
Logged
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #3 on: October 16, 2015, 07:01:11 PM »

You can read the eeprom in bootmode with argdubs tool. As for the changes Neuspeed made, they are absolutely terrible. It's amazing any of these cars ran to begin with. You would be best advised to start from scratch (or,something I VERY RARELY ADVISE) hire someone with some (extensive) experience.

I wish I could tell you "Here is a link for the damos", but as I commented in your other thread, that's not going to be possible.
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #4 on: October 16, 2015, 09:08:54 PM »

I didn't realize that their tune was _that_ bad. The firmware changes seem very small. Perhaps they've just prevented the ECU from being read via OBD2. I see 1 extra routine and a few bytes patched which I assume are probably a function call. I don't know ST assembly well enough to recognize the byte codes in a hex editor.
Logged
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #5 on: October 16, 2015, 09:22:31 PM »

Considering that this file is all but hardcoded to lambda 1, I wish you luck.

I spent days on it. You will likely need years.
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #6 on: October 16, 2015, 11:08:13 PM »

So I spent a bit of time on it. Found a number of the maps. For ones with external axes they seem to be a bit harder to find so please excuse the errors in 2h of work so far.

I think with fuel they're using an adjustment table like VE and making sure it kicks out of closed loop at higher loads. I have to read the functions definition file to get more acquainted with the bosch way of doing things.

Their ignition maps make no sense. The stockers make sense for an NA engine but why would you add a ton of timing at the top end where the blower is going to heat the crap out of the charge? (ignore bad axes). I'm thinking of just fixing the timing and making sure the fuel is reasonable. I have no idea what injectors they put in this thing but the injector scale KRKTE seems untouched.
« Last Edit: October 16, 2015, 11:12:45 PM by hackish » Logged
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #7 on: October 17, 2015, 12:17:38 AM »

Their file is very, very bad. It can and will melt the engine.

You will learn nothing looking at it.

Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #8 on: October 17, 2015, 12:22:01 AM »

The axis for KFZW are:

0x130B6 rpm
0x1310C olad
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #9 on: October 17, 2015, 09:01:30 AM »

The customer is the son of a friend. I don't normally do bosch but I'm balls deep in it now. This is his second engine since buying the car 3 weeks ago. I said I'd help because well... kids are kids.

Thanks for the axes. What method did you use? Just a binary search? Compare against a known rom and look at offset or some other means? With some maps the dimensions are stored in the struct with the axes, others must come from the code. The second part is a bit harder to find and guarantee.

Logged
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #10 on: October 18, 2015, 05:03:19 AM »

Spent a little time on the axes. Since I started digging into this I found a TT map where the calibration data isn't all that different. This Bosch stuff is significantly easier than what I'm used to.

Looking for KFZWOP, KFZWOP2.
I believe the air charge is at 16438 and the nmot is at 130B6.

The air charge is easier to find because its neighbours are identical and there aren't too many axes of size 0x0b. The RPM is a bit more of a challenge.

Here is how I did it. Since the axis structure starts with the size, I knew that I was looking for a 16 item axis. 16 bit also. So the axis needs to start with 0x0010. I located it on the TT map and tried to find the correct offset. The TT map has more axes but looking at it visually I think I got it right.

I'm assuming on this the air charge goes up to 100% since it's an NA engine and the TT goes up to 160 because of boost. Once I make the timing a bit more sane I'll stick it in the car and see if I can log what it's actually doing. The map doesn't need to be perfect, just stop the kid's engine from throwing another rod.
Logged
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #11 on: October 18, 2015, 05:05:31 AM »

Retarding timing is going to drive EGT's through the roof. You might find you trade thrown rods for melted pistons. You should probably look into fueling. Mine wouldn't request richer than lambda1 under WOT......But then again I started from scratch. Have you even confirmed you can checksum the neuspeed file?
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #12 on: October 19, 2015, 07:50:24 AM »

Retarding timing is going to drive EGT's through the roof. You might find you trade thrown rods for melted pistons. You should probably look into fueling. Mine wouldn't request richer than lambda1 under WOT......But then again I started from scratch. Have you even confirmed you can checksum the neuspeed file?

If it were my time at the rodeo the topic on how to tune and engine might be a concern.

Back on topic.

The checksums are not an issue.

The LAMFA table is messed in stock form both for the TT and the stock Golf. I've verified the axes in several ways. The axis is documented as mrfa_w. That comes from the larger of KFPED or FGR (cruise control request). The table itself doesn't make sense because it appears to request a slightly rich condition at low throttle but not high throttle. The Neuspeed map sort of tried to remap it but the axis is again wrong since you expect it to be searched in a strictly ascending fashion.

Below the single map image is what neuspeed did. The double map image is the stock golf and the TT file I'm comparing against.

The S4Wiki says: When requested lambda is <1 (richer than stoichiometric), the fueling system will go "open loop".
This makes sense but if the description were complete then the car would almost always run open loop.

Can anyone point out the main tables needed to get it into open loop?

« Last Edit: October 19, 2015, 07:52:43 AM by hackish » Logged
ddillenger
Hero Member
*****

Karma: +639/-21
Offline Offline

Posts: 5640


« Reply #13 on: October 19, 2015, 09:20:31 AM »

You're the one asking for help. Judging by some of the things you're asking for, you don't know what's relevant and what isn't yet. My assistance will occasionally come with some comments that seem relevant to me. If you're not ok with that, I'll bow out and you can go back to doing it yourself.

Continuing onto lamfa, the definition files are wrong. The maps are fine. Before tackling something like this you should probably learn to recognize these things in order to prevent unintended side effects.

LAMFA: 0x1CAD2
%: 0x1CAC6
RPM: 0x1CAB6

You still haven't addressed the issue from the very first reply. What are you going to do when changing lamfa doesn't do anything? When the file stays at lambda1 the entire WOT run?
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
hackish
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 56


« Reply #14 on: October 19, 2015, 12:05:42 PM »

You're the one asking for help. Judging by some of the things you're asking for, you don't know what's relevant and what isn't yet. My assistance will occasionally come with some comments that seem relevant to me. If you're not ok with that, I'll bow out and you can go back to doing it yourself.

Continuing onto lamfa, the definition files are wrong. The maps are fine. Before tackling something like this you should probably learn to recognize these things in order to prevent unintended side effects.

LAMFA: 0x1CAD2
%: 0x1CAC6
RPM: 0x1CAB6

You still haven't addressed the issue from the very first reply. What are you going to do when changing lamfa doesn't do anything? When the file stays at lambda1 the entire WOT run?

Thanks for the correction. The A2L data is in fact wrong and the offset for the axis is off by 1. Correcting it shows valid info now.

To address your first point. The target lambda has to have come from somewhere. Understanding how target lambda is derived and how open loop is selected should give the ability to change it. I'd be surprised if they hard coded all the targets to 1 but if I have to I'll patch the firmware I can.

It could be possible to push it to component protection enrichments when under boost. I could probably even disable closed loop entirely and fatten it through the MAF function. Or using their VE table. There are many ugly ways to accomplish the result. The first order is to pull some timing so it stops detonating then look at the fuel and see if there even is an issue.
Logged
Pages: [1] 2 3 ... 5
  Print  
 
Jump to:  

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