Segment Swap utility

They go by many names, P01, P59, VPW, '0411 etc . Circa 1999 to 2006. All VPW OBD2 PCMs.
User avatar
Posts: 306
Joined: Tue Dec 17, 2019 3:27 am

Re: Segment Swap utility

Postby joukoy » Thu Dec 03, 2020 2:37 am

0.15.40

Some bugs fixed
Added Categories to TableSeek + xdf export
Added checkbox "Force if same size" to "Create Patch" tab (Name ok?)

For "000440 bug" I need a failing file for testing.

Posts: 315
Joined: Sun Apr 10, 2016 9:20 pm

Re: Segment Swap utility

Postby kur4o » Thu Dec 03, 2020 7:29 am

I figured the 000440 bug. I had a saved v6-seektabe.xml in the xml folder, while trying to save some new math it. When I removed it the 440 bug disappeared.

There is still some math bug from the v6info tables. The ve needs to be 16 bit. and on the maf the decimals after the . are zeroed and you got some 1.000 and so on.

Interesting when I opened the same tables from the db file they all seems with good math.

Some small bugs also. In the database there is scaling of 1500, by125. This "by" can be interpreted as add 125 to next cell, till end of scaling. Something like 1500,1500+125,1500+125+125,1500+125+125+125 and so on.

Also the drawing of the tables is reversed. Just switch the column and rows.
On ls1 and v6 usually the drawing starts horizontally. You draw first line of the table by the value number we use as rows. So if it is 16 rows, you draw

1 ,2 ,3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 , 14, 15 ,16
17, 18, 19 , 20 ,21 ,22 ,23, 24 ,25, 26, 27, 28 , 29 ,30, 31 ,32
33, 34 and so on till you hit the number of columns,

It is still some confusing so dialing it will take some time. I got big troubles with ls1 on this till I figured the correct orientation.

Can we also add table`s values units. like ms,%,multiplier and so on.


That category list is great, I think it is time for some search button to find tables quickly. We can improve the category by labeling the segment category with seg-XXX, to differentiate with user added category. For example fuel segments is usually related with tank calibration, but usually fuel is related with all the fueling tables.

Tried the new patch search force checkbox and works great, will save tons of time.

I am getting some good progress on ls1 and e38 seek tables xmls. It is slow and tedious work but is looking good. At least the big tables are easier to work, not sure about the 2d and scalars yet.

It will be nice if someone having free enough time and good enough table data for different OSs to create databases for other type of bins like e38, e92. Maybe some empty database template or some script file for compiling will give a headstart for the enthusiast.

User avatar
Posts: 306
Joined: Tue Dec 17, 2019 3:27 am

Re: Segment Swap utility

Postby joukoy » Fri Dec 04, 2020 3:26 am

0.15.41

Lot of modifications to TableEditor
(internal handling switched from DataTable to direct DataGridView)

Edit: 0.15.42
TableSeek Search added

Posts: 315
Joined: Sun Apr 10, 2016 9:20 pm

Re: Segment Swap utility

Postby kur4o » Fri Dec 04, 2020 7:28 am

I figured how tinytuner is set to draw tables.

It draws vertical and the rows is the number of rows. That was what I missed in the first post.

Maybe we can set a default settings for that and than the switch x/y will work as expected. A switch x/y checkbox can be set in the xml too, I think there is a setting in the xdfs too for table orientation.

So the default will be per v6 database.

Draw vertical and rows is rows. Change x/y will change the axis along with drawing.

Posts: 195
Joined: Wed Dec 06, 2017 1:02 pm

Re: Segment Swap utility

Postby Vampyre » Fri Dec 04, 2020 1:44 pm

how did you figure out what row and column labels were.( ex: 2000, 3000rpm, 0, 10, 20 kpa)

ive been looking through dif os bins and they dont all use the same scales for rpm kpa in ve and other tables differ also.

User avatar
Posts: 306
Joined: Tue Dec 17, 2019 3:27 am

Re: Segment Swap utility

Postby joukoy » Fri Dec 04, 2020 7:48 pm

0.15.43

If I understand correctly, V6 have Major order: Columns
Ls1 have Major order: Rows (Tunerpro terms)

Added boolean "RowMajor" to TableSeek config, and it is always false for V6 tables.

Posts: 315
Joined: Sun Apr 10, 2016 9:20 pm

Re: Segment Swap utility

Postby kur4o » Sat Dec 05, 2020 12:35 am

It is getting really good with each version.

If I understand correctly, V6 have Major order: Columns


Actually it is tinytuner database major order. V6 and ls1 codewise are the same, regarding table lookup.

New version seems to fix the v6 table drawing. On v6-info maf table the value should be 16 bit. Somehow it got to 8bits now.

Is it possible to make a separate math conversion, per row, per column, or per row and column mid point. ALso specify the Sign.

Something like that r1:S:X*... , r2:U:X*
or c5:S:X*..., c4:U:X*

or R2:C5:S:X*

c=column
r=row
S=signed
U=unsigned

I am having trouble with some coeffecient display, because they use different math.
Not sure how tunerpro can handle it.

I think the categories can be extended to SEG category, taken by the segment name. User defined Category, for example AIRFLOW, subcategory, for example VE.

Posts: 315
Joined: Sun Apr 10, 2016 9:20 pm

Re: Segment Swap utility

Postby kur4o » Sat Dec 05, 2020 9:43 am

Vampyre wrote:how did you figure out what row and column labels were.( ex: 2000, 3000rpm, 0, 10, 20 kpa)

ive been looking through dif os bins and they dont all use the same scales for rpm kpa in ve and other tables differ also.


For v6 there is 2 different VE tables used, 1st is 13 rows, second is 15 rows. Others might differ also. Didn`t look that deep.

Now about the table labelling. It is taken from value rescaling right before the table lookup routine. Each x or y value, for example map and rpm is rescaled to 0-ffff range or something like that. Than the processor divides ffff to 16 rows or example, which is $1000 per row. Each $1000 of value increment, the row is changed .There could be also an offset added at both sides. It can be rescaled non linear also. A little more compex. The way I see it is using the same principle as 68hc11 processor but it is 32 bit and lot more complex.

First you have to figure the conversion factor of the RAMvalues[map,rpm and so on] before they are rescaled. Than you have to manually calculate the scaling. Figure the rescale factor and than divide by the columns or rows to get the label. If it is non linear label, there is 2-3 more steps to figure, the breakpoint, and rescaling between each breakpoint. An example for nonlinear label is 0-3000rpm by 200 increment and 3000-6000rpm by 400 increment.

Actually that is the hardest part to figure in the disassembly so don`t get too confused. It could take you months before you even have a slight clue how it works. Usually the scaling is the code between loading the values for table lookup and the actual table lookup.

Posts: 195
Joined: Wed Dec 06, 2017 1:02 pm

Re: Segment Swap utility

Postby Vampyre » Sat Dec 05, 2020 11:50 am

Thanks kur now my brain hurts

User avatar
Posts: 306
Joined: Tue Dec 17, 2019 3:27 am

Re: Segment Swap utility

Postby joukoy » Sat Dec 05, 2020 11:39 pm

0.15.50

Added "Tuner" button to "Modify Bin" -tab
New tuning window with XDF import, TinyTuner DB import, TableSeek import and DTC import.
Still in early state, need UI planning and other fixes.
XDF Flags import need MASK handling, etc.

Edit:
0.15.51
Quick cleanup to tuner UI, buttons -> menu.

PreviousNext

Return to GM LS1 512Kbyte and 1Mbyte

Who is online

Users browsing this forum: No registered users and 2 guests