14CUX Toolkit V1.0

14CUX Toolkit V1.0

Author
Discussion

Workshop15 Ltd

Original Poster:

21 posts

77 months

Tuesday 17th September 2013
quotequote all
Edit......

Latest version here (currently 1.2).... Click me .... 18/09/13 - V1.2 Added display of ID('s) of the rom(s).



******************************************************************************************************************************************************

Please Read 19/09/13

Just to point out, I am not looking to step on anyone's toes with this software, I am not looking to make a new "Rovergauge" just make the process of manipulating roms/images to put onto a 14CUX an easier task, it's all a bit of a pain at the moment wink The more people doing this means we all get better maps and understanding wink

I have no intention of charging for this software, but please understand, I am doing this in my free time and updates may be a bit "sporadic", I know a "nudge" screen comes up every 10 times you run it, you can just click "OK" and off you go again, I won't be offended wink

******************************************************************************************************************************************************





Hello, I am new here, but have been lurking a while wink

I see the manipulation of images, especially checksums is a a bit of a pain, so I have knocked up a small program "14CUX Toolkit" to deal with checksums and Duplicate the image to fit onto a 27C256.

Please Click the link at the top of the post for the latest version wink

Use the top right "Download" link, you may have to try it twice and suffer the advert frown Unless a kind admin can attach it to this message wink(not sure if it's possible on this forum).

You will need .net 4 (this should be on most computers from win7)

I have "Corrected" the checksum by manipulating location 0x0000(first image), and 0x4000(second image), from.....
stevesprint said:
d. Now the trick is to change the first byte in mods.bin so jacksum returns a checksum of 1

If this is incorrect, please let me know and I can re-code it!

I have cross-checked my program by using HxD Click me, it seems to work correctly but please be aware, this is an "as is" program, use at your own risk, and please let me know of any bugs/issues/small fires caused by this wink

I have downloaded this using another computer, as the program needs the registry to "remember" your End User License Agreement (EULA) you need to run the program as an administrator. If you don't you will be nagged every time you start the program, this is NOT an attempt to annoy you, just run as administrator and you will only have to agree to the EULA once.

This link.... Click me... will show you how to allow a program to run as an administrator.

If there is any interest in this program I may expand/improve it to cover maps etc.

Please let me know how you get on!



Regards


Matt smile

stevesprint said:
3. Reset the checksum to 1, Stops the checksum error code
Technically you should reset the checksum to 1 every time you make a change to the chip and therefore I’m going to suggest you do. However I don’t always especially when I’m experimenting with a quick change. I’ve proved the checksum error is NOT the code of death but merely an indication that your tune chip has been altered. I would certainly reset the checksum to 1 once I’ve finished testing my alterations.

To set the checksum to 1 you need to run a program called jacksum on one copy of the code and data in a 16K file which is why I suggest saving the image at the start with RoverGauge.
a. Check mods.bin is still 16,384 bytes long.
b. Download and Install jacksum from http://www.jonelo.de/java/jacksum/
c. Run jacksum from the command line as follows “jacksum -a sum8 mods.bin”, it requires Java runtime that you’ll probably already have installed.
d. Now the trick is to change the first byte in mods.bin so jacksum returns a checksum of 1, you can use Colin’s formula or logical trial and error. If you use trial & error make notes as you guess and you’ll soon see how it works.

4. Duplicate the image
If you remember from step one the code/data is duplicated on the chip so run the following from the command line to duplicate the code/data image:-
copy /b mods.bin+mods.bin mods2.bin


Edited by T2000V8 on Thursday 19th September 09:38


Edited by T2000V8 on Thursday 19th September 09:41

stevesprint

1,025 posts

129 months

Wednesday 18th September 2013
quotequote all
Workshop15 Ltd
What a brilliant little utility, thanks. It will certainly make life much much easier for anyone trying to remap their car or just tweak their idle speed etc.

Sorry, but after my original post the checksum fixer address has now be confirmed to be 0x3FEB and as you know duplicated to 7FEB.

You can see the new confirmed address on Danbourassa post near the bottom of this page.
http://www.pistonheads.com/gassing/topic.asp?h=0&a...

Maybe a future development could be an option to chop a 32k image in half ready for editing or to be more precise remove the top copy. On my first attempt I was making changes to the top copy and wondering why the changes had no effect.

Thank you in anticipation
Steve

Workshop15 Ltd

Original Poster:

21 posts

77 months

Wednesday 18th September 2013
quotequote all
Hello again...

Already onto V1.1 wink

I have updated the checksum locations for both roms to offset 0x3FEB, sorted a few bugs, and added a file name window so that you can see what file you are working with.

The V1.1 can be grabbed here.....Please Click the link at the top of the page on my first post for the latest version wink

I will have a look later this week ref the ability to select top or bottom rom image to save (as a single image).

I also have a little, simple, hardware mod I am working on to give the ability to switch remotely between 4 maps live (i.e. not a resistor mod hack). I will update when I know it works properly and have some pictures.

Regards


Matt smile


stevesprint said:
Workshop15 Ltd
What a brilliant little utility, thanks. It will certainly make life much much easier for anyone trying to remap their car or just tweak their idle speed etc.

Sorry, but after my original post the checksum fixer address has now be confirmed to be 0x3FEB and as you know duplicated to 7FEB.

You can see the new confirmed address on Danbourassa post near the bottom of this page.
http://www.pistonheads.com/gassing/topic.asp?h=0&a...

Maybe a future development could be an option to chop a 32k image in half ready for editing or to be more precise remove the top copy. On my first attempt I was making changes to the top copy and wondering why the changes had no effect.

Thank you in anticipation
Steve
Edited by Workshop15 Ltd on Wednesday 18th September 09:37


Edited by T2000V8 on Thursday 19th September 09:43


Edited by T2000V8 on Thursday 19th September 20:48

Workshop15 Ltd

Original Poster:

21 posts

77 months

Wednesday 18th September 2013
quotequote all
Now onto V1.2! smile

Click here....Please Click the link at the top of the page on my first the post for the latest version wink Have added display of ID('s) of the rom(s).


Regards


Matt smile


Workshop15 Ltd said:
Hello again...

Already onto V1.1 wink

I have updated the checksum locations for both roms to offset 0x3FEB, sorted a few bugs, and added a file name window so that you can see what file you are working with.

Edited by T2000V8 on Thursday 19th September 09:43

danbourassa

242 posts

87 months

Wednesday 18th September 2013
quotequote all
Matt,
I just gave V1.1 a workout and it's a great tool. Thanks for your contribution to this effort.
-Dan

stevesprint

1,025 posts

129 months

Wednesday 18th September 2013
quotequote all
Wow, that was quick and you’ve added the revision ID, well done & thanks. I'll certainly be using your program from now on and I know a few others that will also use it.

Your program will enable less techy people to modify their own settings as your program handles the code/data duplication and checksum issues. You could even add some screen validation to make it safe for people to modify their PROM.

It shows you are serious about adding more functionality like the fuel maps so don’t let me stop you, their are 5 maps with older and newer addresses. You could start with something simple like the idle speed that is at the addresses below.

$0176 - base idle (TVR 900rpm is 0x0320) (Land Rover 700rpm ish 0x0258)
This could have screen validation to limit the first byte 1 to 5.

The following idle adjusters can also be used to change the base idle speed. Mark (Blitzracing) has connected his cooling fan to the screen heater input so his idle increases when his large fan kicks in.

$0159: Neutral gear & Manual gearbox (0x0064)
$015B: A/C compressor (0x0032)
$01E9: Screen heater (0x0000)

Thanks again for your toolkit, it's just what I needed.smile
Cheers Steve
P.S. I hope you don't mind me asking what 14CUX vehicle do you have?

SILICONEKID343HP

14,822 posts

181 months

Wednesday 18th September 2013
quotequote all
The best tool for the 14CUX is a lump hammerlaugh

T2000V8

Original Poster:

21 posts

77 months

Thursday 19th September 2013
quotequote all
SILICONEKID343HP said:
The best tool for the 14CUX is a lump hammerlaugh
Maybe wink But if I had to replace my standard "free" ECU and wiring loom, with say a megasquirt/trigger wheel and sensor install/coil packs and leads/map sensor fitting/teething problems etc etc etc....... it will become an expensive (for me anyway) lump hammer! wink

Don't get me wrong the MS/Emerald are much better ECU's, well supported etc.... but in a way that's part of the problem for me, I like to tinker and disassemble electronics and code, it's all been done with these, not as much adventure/frustration/despair in it for me wink

I need to spend what little spare "play money" I have on keeping my car running, it's 41 years old and is a bit like an old person, it forgets it's supposed to be a car and not a stationary museum piece wink I drive it every day to work (about 40miles round trip) wink

I am in the process of getting everything together for my RV8 (3.9) "upgrade". However my friend has a 3.9 4WD off road trails motor to test my code/theories on wink

Which brings me on to the "correct" place to put these posts, my car is a 1972 Triumph 2000 (MK2), but I am VERY interested in the 14CUX stuff and this seems to be the place it's happening wink Does anyone have any issues with me posting here? If so, where would you recommend I post the 14CUX stuff?

Regards


Matt smile

Edited by T2000V8 on Thursday 19th September 09:27

T2000V8

Original Poster:

21 posts

77 months

Thursday 19th September 2013
quotequote all
Thanks Steve,
I will try and implement some/all of these for you, it will be a couple of days, I have some "work" to do wink

stevesprint said:
P.S. I hope you don't mind me asking what 14CUX vehicle do you have?

Of course not, it's a 1972 Triumph 2000 (MK2), I am in the process of gathering all the RV8 stuff I need, will be fitted soon wink


Regards


Matt smile

stevesprint said:
Wow, that was quick and you’ve added the revision ID, well done & thanks. I'll certainly be using your program from now on and I know a few others that will also use it.

Your program will enable less techy people to modify their own settings as your program handles the code/data duplication and checksum issues. You could even add some screen validation to make it safe for people to modify their PROM.

It shows you are serious about adding more functionality like the fuel maps so don’t let me stop you, their are 5 maps with older and newer addresses. You could start with something simple like the idle speed that is at the addresses below.

$0176 - base idle (TVR 900rpm is 0x0320) (Land Rover 700rpm ish 0x0258)
This could have screen validation to limit the first byte 1 to 5.

The following idle adjusters can also be used to change the base idle speed. Mark (Blitzracing) has connected his cooling fan to the screen heater input so his idle increases when his large fan kicks in.

$0159: Neutral gear & Manual gearbox (0x0064)
$015B: A/C compressor (0x0032)
$01E9: Screen heater (0x0000)

Thanks again for your toolkit, it's just what I needed.smile
Cheers Steve
P.S. I hope you don't mind me asking what 14CUX vehicle do you have?

blitzracing

5,826 posts

170 months

Thursday 19th September 2013
quotequote all
SILICONEKID343HP said:
The best tool for the 14CUX is a lump hammerlaugh
There speaketh a man who had even more trouble with his MS.... nono

stevesprint

1,025 posts

129 months

Thursday 19th September 2013
quotequote all
Matt

You mean something like this? I spotted at Gaydon 10 years ago at a huge Triumph show and I mean hundreds & hundreds of Triumphs, I was there in a Triumph TR7 V8 3.9 with 14cux!!!


Matt, seriously don’t bust a gut adding features to your toolkit on my behalf, but it is a cool idea and you did mention adding fuel tables. I’m just delighted I can now very quickly and easily fix the checksum.

YES, this is certainly is correct place for 14CUX stuff since every Griffith & Chimaerea left the factory with a 14CUX. Also we are all very very grateful for your contribution to this effort.
Cheers Steve

blitzracing

5,826 posts

170 months

Thursday 19th September 2013
quotequote all
This is excellent. Now all I need is a chip with a bad checksum- I know there are a few TIVs out there with this error and I dont mind blowing a new chip if I can get a copy of the .bin. Ive a new programmer now so I have a play thanks to Steve.

T2000V8

Original Poster:

21 posts

77 months

Thursday 19th September 2013
quotequote all
Wow, thanks for that Steve smile a real inspiration! Yes, that's what I am aiming for smile

I have the engine and a 4 speed Jag auto box, just getting the funds together to get it fitted, hopefully will be happening next month (fingers crossed).

I am re-looking at the whole layout, looking at TunerPro (awesome software) I think I would like to create a simple interface for just tweaking a few settings, base idle, software lock, checksum fixer, simple Rom splitter and assembler etc. Again, this is not an attempt to re-invent the wheel, I can't see me trying to replicate/improve on TunerPro. I would like to make a V8 14CUX specific program to make assembling/testing of RV8 Roms easy.

Referring to other posts I tend to agree that messing with maps needs some more understanding than "point and click" software (which is all I am trying to achieve). TunerPro has the Map side of things more than expertly covered, if anyone wants to change these, it looks like that's the way to go wink

If you (or anyone else) have any more setting address you would like me to included, let me know, I will see what I can do wink

Thanks for everyone's encouragement, I think I now have a clearer vision of what I would like to achieve here.


Regards


Matt smile

stevesprint said:
Matt

You mean something like this? I spotted at Gaydon 10 years ago at a huge Triumph show and I mean hundreds & hundreds of Triumphs, I was there in a Triumph TR7 V8 3.9 with 14cux!!!


Matt, seriously don’t bust a gut adding features to your toolkit on my behalf, but it is a cool idea and you did mention adding fuel tables. I’m just delighted I can now very quickly and easily fix the checksum.

YES, this is certainly is correct place for 14CUX stuff since every Griffith & Chimaerea left the factory with a 14CUX. Also we are all very very grateful for your contribution to this effort.
Cheers Steve

stevesprint

1,025 posts

129 months

Thursday 19th September 2013
quotequote all
Matt
I totally agree your toolkit should have a simple and safe interface for the home user to change for example the following:
Idle speed
Rev limit
Road speed limit
Overrun cut off (for increased sound effects)
Copy/paste fuel tables (for example from map 2 to map 5)

We shouldn’t encourage people to tweak individual entries in a fuel table without a rolling road.

I bet you were surprised to see a Triumph 2000 with our favourite V8 on a TVR forum, I hope no one tells me off!!!
Best Wishes with the project and your toolkit and PM me if you want a copy of a TVR bin file.
Cheers, Steve

T2000V8

Original Poster:

21 posts

77 months

Friday 20th September 2013
quotequote all
stevesprint said:
Matt
Road speed limit
Overrun cut off (for increased sound effects)
Copy/paste fuel tables (for example from map 2 to map 5)
Steve
Hello Steve,
Do you have the addresses for these locations? Is there a document that covers all the know ones?

I can't seem to PM yet, I think I read somewhere I have to wait 2 weeks (maybe that's wrong?) frown

Can you please try sending me a PM? I have something I want to mention to you.

Regards


Matt smile

stevesprint

1,025 posts

129 months

Sunday 22nd September 2013
quotequote all
Matt
Robert has now added idle and rev limit to TunerPro so you can see the addresses, plus he has converted them to decimal which is much better. I'm not exactly sure how that large number works on the rev limit but that won't stop me experiencing and learning about it. Your standalone program is very handy.
Thanks & Cheers Steve

stevesprint

1,025 posts

129 months

Wednesday 25th September 2013
quotequote all
Matt
Here's the full fuel map structure & offsets for newer Proms maps 2 & 5

For further information and see where I copied the structure from please see Dans post at
http://www.pistonheads.com/gassing/topic.asp?h=0&a...

Next I'll work out the offsets for maps 2 and 5 on older Proms.

danbourassa said:
I want to mention to Steve and others who may want to experiment, that the tables in
the fuel map are not nearly as complicated as would seem at first glance.
Excluding the main fuel map, the top row is always the coolant sensor count value
and this tells the software what column of data to use. Only one column is
in play at any given engine temperature.
For example, if the coolant temp count reads 0x23 (approx 190 deg F),
only the second column would be in play (the next column to the right of this value).
So, using the example below, if you want to tune a fully warmed engine,
you are now down to just 5 values to be concerned about.

New Map 2 New Map 5
length Offset Offset
Main fuel map row 1 16 379 6AF
Main fuel map row 2 16 389 6BF
Main fuel map row 3 16 399 6CF
Main fuel map row 4 16 3A9 6DF
Main fuel map row 5 16 3B9 6EF
Main fuel map row 6 16 3C9 6FF
Main fuel map row 7 16 3D9 70F
Main fuel map row 8 16 3E9 71F

Fuel multiplier 2 3F9 72F



6 x 10 table is used to calc the throttle pot direction & rate (the 1st derivative)
the resultant value is offset by adding 1024, stored at 0x005D/5E and ultimately used
to dynamically adjust the fueling
coolant temp 10 3FB 731 low is hot, high is cold
Throttle opening 10 405 73B
Throttle closing 10 40F 745
Throttle opening 10 419 74F
Throttle opening 10 423 759
Throttle closing 10 42D 763

3 x 12 table is used by the coolant temperature routine
Coolant temp 12 437 76D low is hot, high is cold
Cranking fueling 12 443 779 above zero deg F
Time fueling 12 44F 785 1 Hz countdown

3 x 8 table calculates an adjustment factor based on engine temperature
Coolant temp 8 45B 791
Multiplier values 8 463 799
Addition value 8 46B 7A1




ADC control list 16 473 7A9

Calc fuel map row 1 483 7B9
RPM safety delta 1 484 7BA (7500000/(1212+15) = 6112 RPM)
RPM safety limit 2 485 7BB (7500000/1212 = 6188 RPM)
Fuel map value 1 487 7BD
Coolant threshold 1 488 7BE
Todo 1 489 7BF Dan when you're ready (only joking)
Multi abs throttle 1 48A 7C0


Edited by stevesprint on Wednesday 25th September 23:33

T2000V8

Original Poster:

21 posts

77 months

Thursday 26th September 2013
quotequote all
Thanks Steve smile

Ok, just so I can be totally clear in my mind about these values can you please confirm what I think this data means....


stevesprint said:
New Map 2 New Map 5
length Offset Offset
Main fuel map row 1 16 379 6AF
So I interpret this as.....

8 bytes starting at location (offset) 0x379 for map 2 or 0x6AF for map5, is that correct?


Assuming map 5, we get the temp from...

danbourassa said:
Excluding the main fuel map, the top row is always the coolant sensor count value
and this tells the software what column of data to use.
Offset for this is not shown, so from "a location", we then compare the temp value to match (or greater than) the value stored in these 16 locations, use this offset 0-16 to decide what fuel map column to use.

For example, if the calc'd offset of the temp is 2, we would use the 8 bytes of the fuel map reading a "Column 2 map 5" from locations, 0x6B1,0x6C1,6D1,0x6E1,0x6F1,0x711 and 0x721

This then gets "manipulated" by a 16bit value stored at 0x731 and 0x732

Is this correct so far?

So looking at the above we only have 8 injector values to play with per "map column in play", I assume the "in between" values are interpolated between the 2 map points, is this correct?

My head is spinning a little now wink

Can you also please explain a bit about the over-run value Steve? What is this and how does it work, I assume it's some sort of delay time for ramping-down the points on the map to push more fuel into the exhaust and give a more "manly" popping noise.... or is there a more "enineeringey" reason for this being here wink

I think that will do for now smile


Regards





Matt smile






stevesprint said:
Matt
Here's the full fuel map structure & offsets for newer Proms maps 2 & 5

For further information and see where I copied the structure from please see Dans post at
http://www.pistonheads.com/gassing/topic.asp?h=0&a...

Next I'll work out the offsets for maps 2 and 5 on older Proms.

danbourassa said:
I want to mention to Steve and others who may want to experiment, that the tables in
the fuel map are not nearly as complicated as would seem at first glance.
Excluding the main fuel map, the top row is always the coolant sensor count value
and this tells the software what column of data to use. Only one column is
in play at any given engine temperature.
For example, if the coolant temp count reads 0x23 (approx 190 deg F),
only the second column would be in play (the next column to the right of this value).
So, using the example below, if you want to tune a fully warmed engine,
you are now down to just 5 values to be concerned about.

New Map 2 New Map 5
length Offset Offset
Main fuel map row 1 16 379 6AF
Main fuel map row 2 16 389 6BF
Main fuel map row 3 16 399 6CF
Main fuel map row 4 16 3A9 6DF
Main fuel map row 5 16 3B9 6EF
Main fuel map row 6 16 3C9 6FF
Main fuel map row 7 16 3D9 70F
Main fuel map row 8 16 3E9 71F

Fuel multiplier 2 3F9 72F



6 x 10 table is used to calc the throttle pot direction & rate (the 1st derivative)
the resultant value is offset by adding 1024, stored at 0x005D/5E and ultimately used
to dynamically adjust the fueling
coolant temp 10 3FB 731 low is hot, high is cold
Throttle opening 10 405 73B
Throttle closing 10 40F 745
Throttle opening 10 419 74F
Throttle opening 10 423 759
Throttle closing 10 42D 763

3 x 12 table is used by the coolant temperature routine
Coolant temp 12 437 76D low is hot, high is cold
Cranking fueling 12 443 779 above zero deg F
Time fueling 12 44F 785 1 Hz countdown

3 x 8 table calculates an adjustment factor based on engine temperature
Coolant temp 8 45B 791
Multiplier values 8 463 799
Addition value 8 46B 7A1




ADC control list 16 473 7A9

Calc fuel map row 1 483 7B9
RPM safety delta 1 484 7BA (7500000/(1212+15) = 6112 RPM)
RPM safety limit 2 485 7BB (7500000/1212 = 6188 RPM)
Fuel map value 1 487 7BD
Coolant threshold 1 488 7BE
Todo 1 489 7BF Dan when you're ready (only joking)
Multi abs throttle 1 48A 7C0


Edited by stevesprint on Wednesday 25th September 23:33

PeteGriff

1,220 posts

107 months

Thursday 26th September 2013
quotequote all
Steve/Dan I have read these threads with much interest. I very much want to start looking at what my ECU is doing and if possible tweak the parameters. Firstly though will need to get myself an old laptop to work with in the garage and upload the Rover Gauge software. My question is, can I use all what you have been showing across these threads with my 4.3 pre-cat? Regards, Pete

danbourassa

242 posts

87 months

Friday 27th September 2013
quotequote all
Matt, if I understand correctly what you are saying, you may be misinterpreting the main 8 x 16 fuel table. This table is based strictly on RPM vs. engine load. There are three other tables in the fuel map data structure (excluding the ADC list). These three tables are all coolant temperature based and the top row of these tables consists of coolant temperature ADC counts. The table below converts the 8-bit coolant sensor reading to temperature in degrees C. This also applies to the fuel temp sensor which is functionally identical. Assume the ADC reading is 0x16. Go down 1 row and over 6 columns to get 100 deg C. As you can see, a lower count equals a higher temperature. Of course, the 14CUX software doesn't bother doing the conversion. It just uses the raw 8-bit reading.


130,129,127,126,124,123,121,120,118,117,115,114,112,111,109,108,
106,105,104,103,102,101,100, 99, 98, 97, 96, 95, 94, 93, 92, 91,
90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75,
74, 73, 72, 71, 70, 70, 69, 68, 67, 66, 65, 64, 63, 63, 62, 61,
60, 59, 59, 58, 58, 57, 56, 56, 55, 55, 54, 54, 53, 52, 52, 51,
51, 50, 50, 49, 49, 48, 48, 47, 47, 46, 46, 45, 45, 44, 44, 43,
43, 42, 42, 41, 41, 40, 40, 39, 39, 38, 38, 37, 37, 36, 36, 35,
35, 35, 34, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29, 29, 28, 28,
28, 28, 27, 27, 26, 26, 26, 25, 25, 24, 24, 23, 23, 23, 22, 22,
22, 21, 21, 20, 20, 19, 19, 18, 18, 17, 17, 16, 16, 15, 15, 14,
14, 14, 13, 13, 12, 12, 11, 11, 10, 10, 9, 9, 8, 8, 7, 7,
7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 3, 3, 3, 2, 2, 2,
2, 1, 1, 0, 0, -1, -1, -2, -2, -3, -3, -4, -4, -5, -5, -6,
-6, -6, -7, -7, -8, -8, -8, -9, -9,-10,-10,-11,-11,-11,-12,-12,
-12,-13,-13,-14,-14,-15,-15,-16,-16,-17,-17,-18,-18,-19,-19,-20,
-20,-20,-21,-21,-22,-22,-22,-23,-23,-23,-24,-24,-24,-25,-25,-25