FAQFAQ SearchSearch MemberlistMemberlist UsergroupsUsergroups RegisterRegister
ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in

 
Extend tables size

 
Post new topic   Reply to topic    TunerPro User Forum Forum Index -> Bosch
 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Sat Aug 26, 2017 11:28 am    Post subject: Extend tables size Reply with quote

Hi guys
Did someone ever experienced extending tables size?
I tried with success To rescale rpm axis on WOT tables up to 7000rpm, now I would like to extend TPS and RPM axis on the alpha-n table (maf limp mode) To have a better definition on low throttle opening.
It seems that it needs To modify something in the code , and move the table in an empty zone, but I really dont know how to do it πŸ˜…
Back to top
View user's profile Send private message
 

 
aboutton



Joined: 09 Mar 2011
Posts: 168
Location: Lebanon

PostPosted: Sat Aug 26, 2017 11:04 pm    Post subject: Reply with quote

I think Hakkent can help you more with this cz he did it before on the 173 ecu
_________________
HyperBoost Tuning
Tony Ouneissy
Lebanon
Back to top
View user's profile Send private message Send e-mail Visit poster's website
 

 
Hairyscreech



Joined: 20 Jun 2017
Posts: 38

PostPosted: Sun Aug 27, 2017 12:41 pm    Post subject: Reply with quote

From what I know on the subject (a little gathered from HTT and others) the ECU uses the "table of tables" to address the correct maps\tables.
If you know how the motronic headers work then it is a simple case of moving the table to a new location, increasing the table size by editing the header and then changing the "table of tables" to reflect the new location.

This comes with some major buts, if you try this you need to understand a few things;
- I have not yet tried this, big point as it may not be as simple as it has been made out to be.
- You need to fully understand how the motronic headers work as you will have to edit the header to have more rows/columns and add the load/rpm values for each row/column.
- You need to know where the table of tables is and how the addresses are formatted in that table
- The motronic may only be able to do a 256 cell table at most, this means 16x16 at the most.

I know I have been a bit vague but the method should be clear if you understand the above, just until it is proven to work I don't want a noob doing it, destroying something and blaming me.
Back to top
View user's profile Send private message
 

 
aboutton



Joined: 09 Mar 2011
Posts: 168
Location: Lebanon

PostPosted: Sun Aug 27, 2017 11:56 pm    Post subject: Reply with quote

i will try to do it and test
what DME number are you working on ?
_________________
HyperBoost Tuning
Tony Ouneissy
Lebanon
Back to top
View user's profile Send private message Send e-mail Visit poster's website
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Sun Aug 27, 2017 11:59 pm    Post subject: Reply with quote

Hi Aboutton , I'm using 403 dme πŸ˜‰
Back to top
View user's profile Send private message
 

 
aboutton



Joined: 09 Mar 2011
Posts: 168
Location: Lebanon

PostPosted: Mon Aug 28, 2017 12:01 am    Post subject: Reply with quote

ill do it tonight and post results tomorrow
_________________
HyperBoost Tuning
Tony Ouneissy
Lebanon
Back to top
View user's profile Send private message Send e-mail Visit poster's website
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Mon Aug 28, 2017 12:20 am    Post subject: Reply with quote

Hi Hairyscreech,
You're absolutely right, there is a table in the code who tells all the tables adresses, but I couldnt find it, I dont know how adresses are.
A 16x16 table would be more than Perfect, the original alpha n table is 7x6. With that I could tune perfectly at low loads with ITBs and have more consistant AFRs, for the moment on some points AFR can vary of 0.5 because throttle position (and then airflow) can change a little without switching cell.
Back to top
View user's profile Send private message
 

 
Hairyscreech



Joined: 20 Jun 2017
Posts: 38

PostPosted: Mon Aug 28, 2017 8:06 am    Post subject: Reply with quote

As far as I am aware the table is in little-endian format. So the hex is backwards, eg for the 403 fuel map at 0x711C in the XDF, adding on the headers it actually starts at 0x71FC so the table will contain FC 71.Have to say though, after a quick look I cannot find the table in the 403 bin I have.

Somewhere in the code there is a table that lists every table address, there is one in the 173 e30 ecu and one in the 413/506 e36 ecu so it must also exist in the 402/403/405.

In the 413 it is 0xE67E to 0xE7A9. The first value in that table is the location of the table itself.

The 32 bit files are a touch different as they are for an 8bit processor, I know less about how they work for that side of things.

Given some time I am sure I can find them but I think Aboutton may know where they are already.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Mon Aug 28, 2017 9:39 am    Post subject: Reply with quote

I did the same things last week but I found nothing too, the funny fact is that I was searching about wot fuel table like you did πŸ˜„
Back to top
View user's profile Send private message
 

 
Hairyscreech



Joined: 20 Jun 2017
Posts: 38

PostPosted: Mon Aug 28, 2017 3:11 pm    Post subject: Reply with quote

Just want to verify the 402 and 403 ECU should have 32kb bins right?

The 64kb bin I have for the 405 has the table as expected.

I though the non vanos ECUs were all 8 bit 8051 processor based with the 413/506 taking the leap to 16 bit and 80196 processor?

If they are 8 bit then the table is going to work slightly differently, more like the old 173 E30 ECU, I will check that out later on.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Mon Aug 28, 2017 7:10 pm    Post subject: Reply with quote

That's correct, 402/403 are 32bit and 404/405 64bit.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Mon Aug 28, 2017 7:49 pm    Post subject: Reply with quote

I have a 404 bin and the table seems To start in D040, am I right? Just To be sure I have understand πŸ˜„
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Wed Sep 06, 2017 2:36 pm    Post subject: Reply with quote

I think I found it!
The table begins in 78D0, 100x1 in 16bit, lsb first.
Just replace "E" by "6" and "F" by "7" at the beginning of each "data" adress and here we go!
I.e.: EEFC = 6EFC.

I will try in the next few days to create a 16x16 table with rescaled headers and place it in a free location (a big empty location starts at 79A0).
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Thu Sep 07, 2017 8:39 am    Post subject: Reply with quote

i did a first try without success, the car starts but the new table is not recog,nized so stalls as I press throttle.
I've put the new adress in the table list in order, maybe it is the problem, I will try again by writing the new adress at the same place that the old one was in the list.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Thu Sep 07, 2017 9:13 am    Post subject: Reply with quote

Hurrah it works!!!!!!!
So as I Said the new adress in the "table list" MUST be at the exact same place than the old one.
Now all cells are traced, at all throttle positions and rpm in the new 16x16 table.
Will made a better explanation this week with screenshots of what I did.
Now I have to do the same for IAT correction, but first2I have To find which table corrects load with IAT. I found 3 or 4 tables that are IAT related but I dont know already which is the good one.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Fri Sep 08, 2017 7:59 am    Post subject: Reply with quote

As promised, here is how to extend the size of an existing table. (In my case that was for the "maf limp mode" table aka alpha-n.
For that you need to fully understand how descriptors and headers of a table are working.

first here is the "table list" in a 403 DME in hex code:




this table is a list af all the data tables you can find in your DME.
here it is after creating the table in the XDF:




to make a bigger table you need to put it in an empty zone , that's a zone with FF FF FF FF everywhere, in a 403 you can find it near the end of the code, there is a part of the code with more than 1000 free bytes.

Here is the new table in his new location:



you can see the first descriptor "CD" (rpm) in 7C9C.this is the new adress you have to put in the table list, at the EXACT same place than the old one was.
if you put it in the hex, you will have to write 9C FC , the bytes are switched.
Dont forget that 7=F and 6=E.

Now its done, you just have now to tune your new table and enjoy it!
Don't forget that you will have to modify your XDF to read the new table!!!
This works perfectly on my 403, I was on the road all this morning to tune it.
here are the new table and his graph:






I hope everything is clear and easy to understand, I'm not a boss in english, if you need more explanations tell me!
Back to top
View user's profile Send private message
 

 
Hairyscreech



Joined: 20 Jun 2017
Posts: 38

PostPosted: Wed Sep 13, 2017 11:36 pm    Post subject: Reply with quote

Good to confirm it works as suggested. It almost seemed too simple to be true. Very Happy

I am tempted to have a fiddle with the Vanos ECU and see if the fuel and spark tables can be expanded as it would give more resolution for the turbo tunes.

I might see if I can point the ECU to just one table for both vanos advanced and retarded as I have transplanted it onto the M20 so no vanos. Would save having to make sure both tables are the same all the time. (If a vanos issue is detected then the ECU starts switching between the two tables as an average so they have to be the same or it throws off the tune).

I guess this same trick can be used for anything where more resolution is needed.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Fri Sep 15, 2017 11:53 am    Post subject: Reply with quote

Hi,
Yes it would be a very good thing to extend the size of these tables Very Happy
To tell the ECU to point only one table I really dont know how to do, It certainly needs to re_write some code but I dont know a F*** about it Laughing

I think you already knows but you can also tune identically the 2 tables Wink
And also use the Vanos output to command something elsse (like a shiftlight or anything), and change the descriptors to make it "react" with anything you want, i.e. with ECT to make a temperature warning. I will try something like this with the canister valve output Very Happy
Back to top
View user's profile Send private message
 

 
Hairyscreech



Joined: 20 Jun 2017
Posts: 38

PostPosted: Mon Sep 18, 2017 6:28 am    Post subject: Reply with quote

Evil wrote:
Hi,
Yes it would be a very good thing to extend the size of these tables Very Happy
To tell the ECU to point only one table I really dont know how to do, It certainly needs to re_write some code but I dont know a F*** about it Laughing

I think you already knows but you can also tune identically the 2 tables Wink
And also use the Vanos output to command something elsse (like a shiftlight or anything), and change the descriptors to make it "react" with anything you want, i.e. with ECT to make a temperature warning. I will try something like this with the canister valve output Very Happy


Yep, I have both of them copy/paste set to the same values, I also have the Vanos solenoid on its own powered up and hidden under the dash so it stays in only one table.
Long term plan is to use it to switch a variable length manifold.

Would have thought switching the address of the retarded map with the address for the advanced map would trick it into only running off one actual map. Still thinking it is looking at 2 maps and averaging them but only one actual map being read?

This is slightly speculation as I have not done any looking into it yet, but....
I would have thought the tables are arranged in a specific order, they are not randomly placed in the data section, there clearly seems to be some rules to how they laid out the tables.
Might give us some clues to how the code for the ECU works.

My understanding is that the "table of tables" is used to find the required maps and provided the location of the required map in that table is in the correct place in the table then the ECU does not mind where the map is in the actual BIN.
Which is why you can put a bigger map in the free space and then point to it in the table of tables, as long as you put the maps location in the correct place.

Bosch laid the map locations out in the table of tables in what looks to be just numerical order, however they were quite specific with the order of the actual maps, they were not just chucked in in any old order.
The order the maps were put into the BIN was no accident as the structure is similar in the 1.3, 3.1 and 3.3.
The maps were clearly put into that order and then the table was constructed giving their start addresses.

I will sit down this week and see if I can gather any more info than is commonly available on the web from the structure and order of the table of tables.
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Mon Sep 18, 2017 9:32 am    Post subject: Reply with quote

Like you said I think that switching one adress in the table list would work. I think that the DME is looking at thΓ© 2 tables and averaging only in case of failure in the vanos solenoid circuit.

For thΓ© variable intake I was thinking doing a simuler thing with variable lenght velocity stocks, something like this: https://youtu.be/go3YPfhnr2k
Using a 413 would be a Perfect solution for that πŸ˜€

For the table list I agree with you, the vital thing je the position of the table in the table list. In the original file they are alphabetic ordered in the list but it is not important.
But you're right that the original position should follow a specific order (I.e. load calculation/ fuel correction/ignition/ temp correction..... just an exemple).
I dont know anything about disassembling but I will follow with interest your results!
Back to top
View user's profile Send private message
 

 
Evil



Joined: 18 Jul 2017
Posts: 56
Location: France

PostPosted: Sat Sep 23, 2017 8:25 am    Post subject: Reply with quote

Just a little update:

I extended the WOT fuel table with success, she's got now 28 rpm steps. All cells are traced at the good RPM so now just need to tune it.


free image hosting

Not a big upgrade, but it's just to confirm the method works.
I will do it the same with WOT ignition, and maybe extend the load scale on PT tables .
I'm waiting for a potentiometer to do some tests with IAT and try to extend the related table.
Back to top
View user's profile Send private message
 

Display posts from previous:   
View previous topic :: View next topic  
Post new topic   Reply to topic    TunerPro User Forum Forum Index -> Bosch All times are GMT - 9 Hours
 
Page 1 of 1
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
 


Powered by phpBB © 2001, 2002 phpBB Group
RedSquare theme 1.0.3 © DoubleJ(Jan Jaap)