# Digifant II fuel maps available



## set (Nov 27, 2003)

I have read the 2764 EPROM from my Digifant II controller and located the fuel maps. Is anyone here an expert at deciphering which axis is which? The link shows the map -
http://www.rarefaction.com.au/gti/digi300.png


----------



## Black_cabbie (Jul 16, 2003)

*Re: Digifant II fuel maps available (set)*

interested....... bump!


----------



## MarcoVW (Dec 23, 2003)

*Re: Digifant II fuel maps available (Black_cabbie)*

I've downloaded the demo version of this remapping software:
http://www.alientech.to/dmo/ecm29demo.exe
and the manual:
http://www.alientech.to/dmo/ecm2001demoeng.zip
It comes with a golf 1.6 16 V map, its interesting to study. You can modify fuel injection, rpm limiter, advance, but only if you have the ECU driver file to show where everything is located. 
Hope this will help


----------



## pfcs1 (Jun 7, 2003)

*Re: Digifant II fuel maps available (set)*

set-I emailed you Fri about this post. Please respond, either to the Vortex or my email. Where/how was the file you posted aquired? See many other questions/reasons in my email. Phil


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (pfcs1)*

Hi Phil.

Lets get something going here because I was just about to drop AU$1100 on RR tuning of my ECU. Did you see my posts on Club GTI or Vortex? My car has the following - 1781CC Schrick 276 Hydro, all Schrick valve gear (16 springs, tappets, retainers, clips), big valve P/P head, brospeed tri-y header, high flow cat, Scorpion cat back system, high flow panel filter. The head was done by an expert on this head. He has done numerous Digi 8V heads for 200HP 1600cc Formula racing cars in the past so he knows his stuff. He said he flowed 170HP out of my Mexican head with the porting designed for the street. The valves are Nissan 1.680"/1.375" (42.7mm/34.9mm) with machined down stems.

Problem is it really hits a brick wall at about 6200RPM. It still climbs up to 6500 but very slowly. I wasn't sure if the fuel pressure dropped or it wasn't getting enough air or the chip was limiting fuel. It is a pain because the little 1781CC with that head really wants to boogie above 6000RPM! My Digifant is staying very close to stoich under all conditions (except high revs possibly, I haven't looked).

I have a A/F meter connected to my O2 sensor and I also have a volt meter measuring the average voltage on the injectors which is a nice feature. I have from time to time connected the CRO to the injectors and have measured about 2.8ms at idle and steady revs, 0ms at cutoff and 7.0ms at WOT. It doesn't seem to want to go over 7.0ms which means I am VERY limited for power. My injector duty meter indicated that we never get over 60% flat out. At 205cc/m (assuming 3bar - is that correct?) that is a limit of about 100-120hp. Is the 205cc/m spec calculated at 100% or 85% duty cycle, I'm not sure.

My ECU says -

DF-1 
DIGIFANT II

and has 25pins. I think it has a knock sensor. I connected the CRO to the sensor connected to the bracket on the cam cover bolt and hit the engine with a spanner. The signal pulsated. I think it is a piezo sensor and the baseline noise depends on how close my hand is to the block (capacitive pickup maybe).

I read out the 2764 EPROM and located three similar maps 0x300-0x3FF, 0xE00-0xEFF, 0xF00-0xFFF. Only the first half of the EPROM is coded, the rest is 0xFFs. That EPROM is connected to the 8239 Intel processor. There is also a 68705 controller on the other board. I have not tried to read that out. I don't know if ignition is controlled by the Digi. 

Yes, the map shown is actually 0x310-0x3FF. The first line 0x300-0x30F does not seem to be part of the map. Some sort of checksum perhaps. The left set of number are the hex values out of the chip and the right set are just the same numbers converted to decimal. The numbers enclosed by the blue square are the source data for the plot. The raw 2764 data are at http://www.rarefaction.com.au/gti/digi2eprom.bin

I have been madly trying to decipher the tables. Because Digi is a vane type then the injector duration must be vane position divided by engine speed. This gives power (and fuel rate) proportional to vane opening. I think that is what the table is implementing. Engine speed on one axis and vane opening on the other. Injector duration should be proportional to vane opening and inversely propotional to engine speed. The graph makes sense if vane opening increases from S1->S13 and engine speed increases from 16->1. I reckon the plateau is my 7ms injector limit. I don't know where WOT comes in. My car stays stoich even at WOT!


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (set)*

The region 0x700-0x7FF is full of 1d tabley goodness. I have plotted some examples of my findings at http://www.rarefaction.com.au/gti/digi-1d.png. Some of these tables are transfer functions (eg bottom row, second from right looks like a exponential lookup) and others are calibrations (possibly temperature sensor). There might even be an ignition advance table there somewhere. I'd be reckoning that the top row second from right is something to do with the O2 sensor. Now, is everybody having fun yet? http://****************.com/smile/emthup.gif


----------



## fEEDub v.1.0 (Jun 1, 2003)

*Re: Digifant II fuel maps available (set)*

keep up the good work and interesting Posts WOW!!


----------



## FastLapRSII (Jul 15, 2001)

*Re: Digifant II fuel maps available (fEEDub v.1.0)*

The sensor on the cam cover is ambient air temp. sensor for fan after-run.
The knock sensor is a crystal mic on the front of the block.
Is CRO a multi-meter?
Sounds like you have the same Digi-2 as N. America, the euro version apparently has no O2 sensor.


----------



## GTOBB (Dec 30, 2003)

*Re: Digifant II fuel maps available (set)*

This is shot from DIGI II ....022CT
if you want mod(chipped) file I can send to you for TEST
I have some chip to VW-DIGI 1,DIGI 2, VR6, G60


----------



## Jeramiah (Sep 10, 2003)

*Re: Digifant II fuel maps available (set)*

this is a very interesting post. Always looking for more power.


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (GTOBB)*

Yes, these look like the data tables from 0x300-0x3FF, 0xE00-0xEFF and 0xF00-0xFFF which seem to be the fuel maps. I have begun experimenting with them. Please email me any modified binaries that you have so I can identify other variables such as rev limit, ignition timing etc. That plot is not the standard 8V by the looks of it. The standard 8V plateaus off nowhere near 0xFF. Is that a G60?


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (FastLapRSII)*


_Quote, originally posted by *FastLapRSII* »_The sensor on the cam cover is ambient air temp. sensor for fan after-run.
The knock sensor is a crystal mic on the front of the block.
Is CRO a multi-meter?
Sounds like you have the same Digi-2 as N. America, the euro version apparently has no O2 sensor.

Yes, the Australian deliveries are the same as the N.American ones - O2 sensor included. CRO is oscilloscope. There is no sensor on the front (front of car side) of the block.


----------



## scandalous (Jan 4, 2003)

*Re: Digifant II fuel maps available (set)*

^^
This thread needs to stay on the first page.....


----------



## Black_cabbie (Jul 16, 2003)

*Re: Digifant II fuel maps available (scandalous)*

I have 4 binaries from a modified chip, an under development chip, a standard digifant 2H chip (98ps) and the standard European Digifant with no cat chip (PB engine 112hp).....
Drop me a mail at ma[email protected] to talk eprom.......


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (Black_cabbie)*

I am a long way through disassembling the entire EPROM. I have some info so far. Apparently the three tables are not all used. Only one is used and the one is selected by board loading (different resistors for different variants, Euro/US? Cat/Non-cat?). Mine is a US variant with O2 sensor and uses $300 only. When open loop, it runs real lean, so needs mods to run without O2 sensor. 
This has shone some light on the quality of some tuner's chips. Some tuners increase all the values in all the tables, which is what you would want to do to make a chip for all markets. Problem is some of the $E00 and $F00 tables are executable code (I know exactly which bits). Running one of these chips on anything but the $300 variant simply won't work (car won't run). Someone on one of the German chip tuning forums had this problem. You need to fully understand the code to know this, and obviously at least some chip tuners don't strive for this level of understanding.
4kB is a lot of assembly language. It is going to take a while.


----------



## Digiracer (May 5, 2002)

*Re: Digifant II fuel maps available (set)*

This is a very interesting topic.
Their are alot of things wrong with the stock Digifant II system.
The lean problems with the fueling is a big factor but their are alot of other problems aswell.
1. Lean conditions across the entire rev range but especially after 4,000 rpm.
1a. WOT Enrichment is delayed under certain conditions aka "digi-lag"
2. coolant temp sensor senses above normal coolant temperatures & ECU retards ignition timing. hurting performance
3. ECU advances & retards ignition timing at the wrong times
4. Off idle hesitation, sudden delayed acceleration or flat spot just off idle
5. stock rev limiter is @ 6,200 rpm, could be closer to 7,000 rpm like the AMS unit.
I don't want to sound like a cheerleader for AMS but their Digifant 2 chip fixes many of these problems except the Digi-lag which can be curbed with higher fuel pressure.
Keep up the good work http://****************.com/smile/emthup.gif


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (Digiracer)*

All of this type of info helps with deciphering the code. Thanks. I can see a way out with the rev limit. It seems to be implemented in the fuel tables, which caps the injector duration. So it is really a power limit rather than a rev limit. This can be confirmed by seeing if the rev limit moves down with a larger displacement. My suspictions can also be confirmed if the rev limit goes up with higher fuel pressure.
I increased my injector durations by about 6% across the board the other day just to see what would happen. It pulled _really_ nicely to about 6700 rpm before it leaned out, instead of 6200 rpm. Makes me consider ditching the hydro tappets and converting to solid valve gear. Would be cheaper than increasing displacement, and would sound nice and racey.


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (set)*

LOL. You should try going through 256KB worth of assembly language from my nonDBW 1.8T
This should be cake in comparison









_Quote, originally posted by *set* »_
4kB is a lot of assembly language. It is going to take a while.


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (xr4tic)*

Yes, but chances are your 256k is not connected to a 8039.


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (set)*

I know, who's great idea was it to not have any subtract, multiply, or divide commands?
I'm looking at the bin you posted, and comparing it to my CSW code I've got. Looks like the CSW code is a slightly older version (07F0h gives the version number, I think) V477 vs. V472
How do you know that yours uses only the 0300h tables? Do you have an emulator?
Comparing the CSW and your bin file, 0300 and 0F00 are unchanged, only 0E00 is changed (as far as major maps go)

_Quote, originally posted by *set* »_Yes, but chances are your 256k is not connected to a 8039.


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (xr4tic)*

Yes, it is 477, dated 7/7/87. I know that it uses only one of the tables by inferring it from the code. The selection is based on a read from port 2 bit 7 and port 2 bit 4. These are pulled high or low depending on resistor loading at production. Those two bits also have an effect on program flow, but I am still not sure exatly the nature of the differences, possibly O2/non-O2. The loading probably follows regional differences. I would be interested in getting a diff between 477 and 472. I just discovered that the idle and WOT switches are paralleled and indistinguishable to the software. Software must combine that input with vane opening to work out exactly what is going on. Nice work VW, offloading effort to the softies for the sake of one input.


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (set)*

Like I said, CSW's code only has changes at the 0E00 maps, so I don't the ECU runs on only one map.
I was guessing that one might be a WOT table, and one a part throttle table, and the other idle (or maybe limp?)
The coding is different between the 477 and 472, it's generally the same, but some things are in different order. The maps don't start at the same points (the 3 big ones do though) I wouldn't feel comfortable sendin you CSW's code, but I could blank out the maps, if you just wanted to look at the code itself.
I just found out about the switches today too, after trying to test them, I thought they were separate, but they're not. I'm guessing that the ECU might just use an RPM setpoint to differentiate between the two.
If I have some time tomorrow, I'll pull my ECU and start tracing some of the lines
I ordered some 27C64s, which should be a drop-in replacement for the 2764, and they're reprogrammable. I'll find out for sure once they get here.

_Quote, originally posted by *set* »_Yes, it is 477, dated 7/7/87. I know that it uses only one of the tables by inferring it from the code. The selection is based on a read from port 2 bit 7 and port 2 bit 4. These are pulled high or low depending on resistor loading at production. Those two bits also have an effect on program flow, but I am still not sure exatly the nature of the differences, possibly O2/non-O2. The loading probably follows regional differences. I would be interested in getting a diff between 477 and 472. I just discovered that the idle and WOT switches are paralleled and indistinguishable to the software. Software must combine that input with vane opening to work out exactly what is going on. Nice work VW, offloading effort to the softies for the sake of one input.


----------



## FastLapRSII (Jul 15, 2001)

*Re: Digifant II fuel maps available (xr4tic)*

Sweet! You can hax0r my box anytime!


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (xr4tic)*

I didn't realise you were talking about an aftermarket chip. I was only interested in comparing the original V477 and original V472. Please do _not_ send!


----------



## xr4tic (Dec 10, 2001)

OK, I did a little tracing using my voltmeter, and from what I can tell, P2.0, P2.1, and P2.2 control the A/D converter inputs.
So that means:
[38] = IN0
[34] = IN1
[35] = IN2
[36] = IN3
[37] = IN5
[38] = IN5
If I had to guess, I'd say [23] was RPM, and [32] was load (VAM?) Which are the two variables used in the map you posted, which I'm guessing is an ignition map.
Fuel is probably derived directly from Load, with temp and WOT correction factors added.
My 27C64s arrived today, and I'm going to first make sure they'll work, and do some prodding with a voltmeter on the A/D Inputs to see if I can figure out what is what. Shouldn't be too hard, there aren't that many inputs:
VAM
Intake Temp
Coolant Temp
O2 sensor
Knock Sensor


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (xr4tic)*

Good on you for doing some dirty work. Yes, you are right the P20,1,2 control which input on the ADC chip is being read. And those values are stored at those register file positions. Once we work out what each register represents, it should become much clearer.
The analog inputs are -
VANE POSITION
WOT/IDLE (Yes, I know it is a digital input, but it goes into the ADC)
COOLANT TEMP
AIR TEMP
HALL
I cant remember which channel is which input. I have it written at home.
I also know which P1 pin is which. I'll let you know on Monday.
Some more tips. R5,R6 and R2,R3 are 16 bit values. R5,R6 is some accumulator that gets adjusted through the loop (fuel perhaps) R2,R3 is an intemediate accumulator which is used to work out each adjustment and which is then added to R5,R6. (I think!).
Lets know how you go.


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (set)*

Woops, I'm talking through my 4$$. Don't take too much notice of the inputs I quoted in the last post. One of the analogue inputs is definitely O2. I'd better look at my notes and get back you you.


----------



## pimpinizt1 (Aug 1, 2003)

I have never seen such a conversation on the Vortex before....
keep it coming guys.


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (set)*

OK, let me know what you've got, all I could get was:
IN0 = VAM
IN2 = Coolant Temp
IN3 = Intake Temp
The rest were 0V, except for one which stayed around 2.5V (knock sensor maybe?) while the car was running.
I'm curious if maybe my O2 sensor is dead.
R2:R3 look to be temp 16 bit values used by the maps and also add to R6:R7
[4A:4B] and [4C:4D] store the values from the ignition map, from R2:R3
They're just temp though, because R6:R7 seems to be used for fueling corrections. 
I'm starting to figure out some of the maps too.
Like map 07D3 is the max value for [34] vs. RPM
[32] then gets either [34], or the value from M(07D3) if [34] is too high.
There's also another section that puts:
[36] = IN3
[37] = IN2
Which is different from what I posted above. So much for it being easy trying to decide what is what.
I think I may have found how RPM is calculated, it's the only section I've found that modifies [23], I'm still working on it though.

_Quote, originally posted by *set* »_Woops, I'm talking through my 4$$. Don't take too much notice of the inputs I quoted in the last post. One of the analogue inputs is definitely O2. I'd better look at my notes and get back you you.


----------



## vw1jetta (Sep 9, 2002)

*Re: Digifant II fuel maps available (xr4tic)*

Allz i can sayz iz keep up the good work guys I drive one of these things every day and wish every day i could just rip out that "Darn" Digi II flapper door and just stick in a MAF or Possibly a MAP sensor and be rid of it but it sounds like u guyz iz on da right trackz http://****************.com/smile/emthup.gif


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (xr4tic)*

Yes, that is right, and IN1 is O2 sensor. If you have an O2 sensor, you will see IN1 vary around a bit. Unplug the O2 sensor and it defaults to 2.5V (fools it into thinking it is stoich).
Yes, [4A:4B] store a value from the map and [4C,4D] store the value from the next column (or row, cant remember) of the map. I think they are intermediate vars to be used for linear interpolation.
$23 seems to be one of the table lookup variables (for the 2D tables) and if you think that it has something to do with the engine speed then that is good - it nails down which dimension is engine speed. I hope the other dimension is airflow. Do you see what I mean by P27 and P24 deciding which map to use? I _think_ that these inputs are static, decided by resistor loading on the board because I could not change their state by doing anything to any of the sensors.
Yes, the maps are coming thick and fast. Most of them are 16 byte and some are 8 byte. There are some in the D00-DFF region too. I've just been tracking down the MOVP A,@A statements to locate them.
The coolant temp input is used directly as the index to quite a few of the maps in the code above 800.
P15 is the injector output I think and P13 is the hall input. P16 seems to have heaps of activity but I don't know what it is yet.
That discrepancy in which RAM location is associated with which input is a bit scary. Please double check. Remember that the P2 outputs are set for the _following_ read as I'm sure you know.
I don't have a manual for the 8039 so I'm just trying to figure stuff out from the code. I know nothing about the timer/counter functionality which is a pain because I want to know which variable gets the engine speed.
Keep at it!

_Quote, originally posted by *xr4tic* »_OK, let me know what you've got, all I could get was:
IN0 = VAM
IN2 = Coolant Temp
IN3 = Intake Temp
The rest were 0V, except for one which stayed around 2.5V (knock sensor maybe?) while the car was running.
I'm curious if maybe my O2 sensor is dead.
R2:R3 look to be temp 16 bit values used by the maps and also add to R6:R7
[4A:4B] and [4C:4D] store the values from the ignition map, from R2:R3
They're just temp though, because R6:R7 seems to be used for fueling corrections. 
I'm starting to figure out some of the maps too.
Like map 07D3 is the max value for [34] vs. RPM
[32] then gets either [34], or the value from M(07D3) if [34] is too high.
There's also another section that puts:
[36] = IN3
[37] = IN2
Which is different from what I posted above. So much for it being easy trying to decide what is what.
I think I may have found how RPM is calculated, it's the only section I've found that modifies [23], I'm still working on it though.


----------



## darksideofthemn (Feb 2, 2003)

*Re: Digifant II fuel maps available (set)*

Im not sure if this info will help you guys but there is info about the Vane Aim Meter resistance values. if you guys get this fueling issue sorted out then the mod in this post will also be a good idea. between the 2 we can have our 8v's reving like 16v's. 
http://forums.vwvortex.com/zer...age=1
GREAT WORK GUYS!!


----------



## OhioBenz (Dec 6, 2001)

*Re: Digifant II fuel maps available (darksideofthemn)*

have either of you guys ever visited the DIY_EFI forum?
Its full of guys that do this stuff all the time.
Way over my head!


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (set)*

Yeah, I see what you mean by P27 and P24. I've got an old HP logic analyzer I may have to try and hookup when I have time some weekend.
P27 and P24 also decide some of the initial values for R6:R7, and R2:R3 values to be added to R6:R7
Did you try the idle/WOT switches to see if P24 and P27 moved?
I think I've got all the maps found, and what registers access them
From your code:
[36] is used for:
0725, 0736, 0747, 075B, 07AC, 07BD, 0D6F(8-Byte), 0D96, 0DA7, 0DC4, 0DD5, 0DE6
[23] is used for:
07D3, 0C37, 0C47, 0757, 0767, 0DB4
[37] is used for 0769
[35] is used for 077A
078B is used by R7, and 079C is used by R6
0300, 0E00, and 0F00 are used by [23] and [32]
Now we just need to figure out how they're used








Look at the code at 0100 and see how you interpret it. It looks like it puts IN2, then IN3 into [36], then does something with [37], but I can't quite tell what. As you can see, [36] plays a major role in the maps.


_Quote, originally posted by *set* »_Yes, that is right, and IN1 is O2 sensor. If you have an O2 sensor, you will see IN1 vary around a bit. Unplug the O2 sensor and it defaults to 2.5V (fools it into thinking it is stoich).
Yes, [4A:4B] store a value from the map and [4C,4D] store the value from the next column (or row, cant remember) of the map. I think they are intermediate vars to be used for linear interpolation.
$23 seems to be one of the table lookup variables (for the 2D tables) and if you think that it has something to do with the engine speed then that is good - it nails down which dimension is engine speed. I hope the other dimension is airflow. Do you see what I mean by P27 and P24 deciding which map to use? I _think_ that these inputs are static, decided by resistor loading on the board because I could not change their state by doing anything to any of the sensors.
Yes, the maps are coming thick and fast. Most of them are 16 byte and some are 8 byte. There are some in the D00-DFF region too. I've just been tracking down the MOVP A,@A statements to locate them.
The coolant temp input is used directly as the index to quite a few of the maps in the code above 800.
P15 is the injector output I think and P13 is the hall input. P16 seems to have heaps of activity but I don't know what it is yet.
That discrepancy in which RAM location is associated with which input is a bit scary. Please double check. Remember that the P2 outputs are set for the _following_ read as I'm sure you know.
I don't have a manual for the 8039 so I'm just trying to figure stuff out from the code. I know nothing about the timer/counter functionality which is a pain because I want to know which variable gets the engine speed.
Keep at it!


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (xr4tic)*

Oh yeah, looks like the Intake and Coolant temp senders have the same resistance as the ones used on the Merkur XR4Ti VAM box.
If the Ford and VW ECU use the same pull-up resistors, then the Voltage curve would look something like this:
0.0V = 254F
0.4V = 254F
0.5V = 221F
1.1V = 158F
4.0V = 26F
4.5V = -40F
5.0V = -40F
This is the curve used by the Ford/Merkur ECU for intake temp.
If that's the case, then the axis for the 16-byte temp maps would be:
254F 254F 208F 175F 151F 137F 123F 109F 94F 80F 66F 52F 37F 23F -24F -40F


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (xr4tic)*

Well, I just double-checked something, and realized I made a mistake on the map selection with P24,P27.
You might be right, it could be hard coded. I said that the CSW code only changed on the E00 map, but what CSW did was overwrite the 0E00 map with the map from 0300 (which happens to be the same map as 0F00)
So the stock igntion map at 0E00 is different then the other two, and CSW makes them all the same. I wonder if 0E00 might be the Euro version that handles higher octane gas (more advance) ?
This way, no matter what ECU the chip is used in, you'll always get the same result.
As for RPM, [23], it looks like it's backwards.
it uses a 16 bit timer value, takes the timer difference (time between rpm signals) multiplies it by two, and subtracts 82 or 8D, then puts the value into [26]:[25] Then from there, it assigns a value to [23], based on what range [26]:[25] falls into.
So low values of [23] = high RPM (less time between signals) and high values of [23] = low RPM.
If I knew the frequency the chip operated at, I should be able to tell you exact RPM numbers.


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (xr4tic)*


_Quote, originally posted by *set* »_
The graph makes sense if vane opening increases from S1->S13 and engine speed increases from 16->1.


Ok John, what you say is in line with the weird burst of intuition I had earlier in the thread, but I thought the map was for fuel (At least everything except the last two columns I'm thinking now). 
Good on you for chasing down the way it calculates the pulse inteval. Now if only we can put some scaling to it. I'll look at the xtal freq tonight. When you say [23] gets set to a value based on the value of [26]:[25], is that through a series of 16 bit comparisons? If so, those 16 bit comparison values must represent the rpm upper and lower limits for each row of the table. 
I still think that the bulk of those maps is fuel because of the reciprocating shape of the curve against rpm. For a particular air rate or power, injector duration must go as 1 / rpm because the injector duration is effectively multiplied by rpm because the pulse rate goes with engine speed. The other axis increases directly with the variable (whatever it is) which is what you would expect of a vane input (assuming the vane variable is proportional to the airflow).
Further to that, I've increased all the values (except the two bytes of lookup code (that doesn't matter for the 0300 region anyway) and last two columns) by 6% and the car runs richer. Too rich, but still leans towards stoich as it revs faster.
The plateau of the map at arount the 200 count mark could be the culprit for the "rpm" limit, which would really be a _power_ limit and some people with 2.0L conversions have found that the limit moved down in rpm. Of course I could be completely wrong. More reverse engineering will tell. In any rate, my next mod to the table will be to get rid of the plateau and keep the values increasing as far as they can go (255). If it stops leaning out at 6200 then that is what is causing it.
So the 2D maps may be split into two output variables because if you look at the surface plot it is quite discontinuous in places - where there is bits of executable code obviously, and the last two columns. I'll try to track which bit on port 1 gets affected by the output of the map.


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (set)*

It very well could be for fuel, I was just guessing it was ignition.
The last two columns would be for very low RPM, 0 to 350 or so, so I wouldn't worry about it too much, it's probably high for starting reasons during cranking.
Yes, [23] gets set based on 16-bit comparisons, in 0C87 to 0D60, but they do it a funky way, it definately took some head-scratching to figure it out.
There is an offset figured into [25]:[26], that will dictate your max RPM, since 0000 in [25]:[26] equates to 00 in [23], and that's not infinite RPM, it's around 6200-6500 RPM, depending on frequency of the processor. Changing the comparison values would only change the axis points between 0 and MAX RPM.
This might be how the RPM limit is achieved, they put an offset in the RPM calc. Hmmm......
Part of the reason the 2.0 guys are hitting lower limits, might not be RPM, but airflow vs. RPM, they'll have a higher airflow value vs. RPM, so they'll max the chart out earlier.
I'll start trying to figure out what the [32] variable is.

_Quote, originally posted by *set* »_
Ok John, what you say is in line with the weird burst of intuition I had earlier in the thread, but I thought the map was for fuel (At least everything except the last two columns I'm thinking now). 
Good on you for chasing down the way it calculates the pulse inteval. Now if only we can put some scaling to it. I'll look at the xtal freq tonight. When you say [23] gets set to a value based on the value of [26]:[25], is that through a series of 16 bit comparisons? If so, those 16 bit comparison values must represent the rpm upper and lower limits for each row of the table. 
I still think that the bulk of those maps is fuel because of the reciprocating shape of the curve against rpm. For a particular air rate or power, injector duration must go as 1 / rpm because the injector duration is effectively multiplied by rpm because the pulse rate goes with engine speed. The other axis increases directly with the variable (whatever it is) which is what you would expect of a vane input (assuming the vane variable is proportional to the airflow).
Further to that, I've increased all the values (except the two bytes of lookup code (that doesn't matter for the 0300 region anyway) and last two columns) by 6% and the car runs richer. Too rich, but still leans towards stoich as it revs faster.
The plateau of the map at arount the 200 count mark could be the culprit for the "rpm" limit, which would really be a _power_ limit and some people with 2.0L conversions have found that the limit moved down in rpm. Of course I could be completely wrong. More reverse engineering will tell. In any rate, my next mod to the table will be to get rid of the plateau and keep the values increasing as far as they can go (255). If it stops leaning out at 6200 then that is what is causing it.
So the 2D maps may be split into two output variables because if you look at the surface plot it is quite discontinuous in places - where there is bits of executable code obviously, and the last two columns. I'll try to track which bit on port 1 gets affected by the output of the map.


----------



## [email protected] (Apr 9, 2004)

*Re: Digifant II fuel maps available (xr4tic)*

Freq is 7.372800 MHz


----------



## [email protected] (Apr 9, 2004)

*Re: Digifant II fuel maps available ([email protected])*

I have put my work in progress on my Wiki page at 
http://www.rarefaction.com.au/...embly 
I thought it might be convenient to work on the one file between us few who are reverse engineering.
To edit, click the edit button at the bottom, and make sure each line starts with a SPACE to keep the formatting right.


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available (xr4tic)*

Interesting.....
[32] is calculated off of [34], [34] is IN1, and IN1 is the O2 sensor.
How odd is that?

_Quote, originally posted by *xr4tic* »_
I'll start trying to figure out what the [32] variable is.


----------



## [email protected] (Apr 9, 2004)

*Re: Digifant II fuel maps available (xr4tic)*

But ($34) is ADC0 which is vane.
The call to $05B8 puts the previous result into (r0) and starts a new conversion on the channel given by P2(2..0). So the code starting at $01A3 is
anl	p2,#0f8h ; Select channel 0 for next conversion
call	X05b8 ; start_conv channel 0 and store previous conversion to (r0)
mov	r0,#34h ; r0 = $34
orl	p2,#1 ; Select channel 1 for next conversion
call	X05b8 ; start_conv channel 1 and store result from channel 0 in $34
So it all makes sense. Exactly what does it do when converting raw vane input to the lookup index?


----------



## FastLapRSII (Jul 15, 2001)

*Re: Digifant II fuel maps available ([email protected])*

That makes sense to you?


----------



## xr4tic (Dec 10, 2001)

*Re: Digifant II fuel maps available ([email protected])*

*SMACK* Duh, OK, I got it now.
Basically, [32] = [34] There are some R2:R3 modifiers based on the change in volume flow, but that doesn't affect the MAP lookup.

_Quote, originally posted by *[email protected]* »_But ($34) is ADC0 which is vane.
The call to $05B8 puts the previous result into (r0) and starts a new conversion on the channel given by P2(2..0). 
.....
So it all makes sense. Exactly what does it do when converting raw vane input to the lookup index?


----------



## _Bensonious (Mar 30, 2003)

Wow, great work guys keep it up. I also had some insight to some fueling issues based on this discussion.
set has mentioned that the injectors never get above 60% duty cycle, so doesn't this mean that since the maximun value that can be on the fuel maps is 255, that no matter how much tweaking you do to the map it won't get the injectors going alot higher?
Would it not be safe to assume that the problem lies in the assembly code, specifically the calculations that are used to contol the injectors? 
Correct me if I'm wrong. hopefully soon after finals I'll be able to build a chip reader/burner and join the band wagon.
Ben


----------



## xr4tic (Dec 10, 2001)

*Re: (_Bensonious)*

It's hard to say. I know my Audi A4 has a 16.32ms max injector on-time, but the newer DBW stuff can hit the high 20's. In this case, I think it's a hardware issue.
There is the base fuel map, and then several modifiers for it, so even putting 255 into the base fuel map doesn't mean you will have a max duty cycle, one of the other modifiers could be the limit.

_Quote, originally posted by *_Bensonious* »_
set has mentioned that the injectors never get above 60% duty cycle, so doesn't this mean that since the maximun value that can be on the fuel maps is 255, that no matter how much tweaking you do to the map it won't get the injectors going alot higher?
Would it not be safe to assume that the problem lies in the assembly code, specifically the calculations that are used to contol the injectors? 
Ben


----------



## pfcs (Jun 4, 2003)

*Re: (xr4tic)*

stock ken chip generates 7.2 [email protected] rpm which is 72%. (@6000, each revolution is 10mS) AMS generates 9.6ms=96%. @100%. injector would always be on. phil


----------



## [email protected] (Apr 9, 2004)

*Re: (pfcs)*


_Quote, originally posted by *pfcs* »_stock ken chip generates 7.2 [email protected] rpm which is 72%. (@6000, each revolution is 10mS) AMS generates 9.6ms=96%. @100%. injector would always be on. phil

Yes, I measured it to max out at about 7ms. The thing is, the map plaueaus out at around 200 counts, not 255. That gives us some room to move. Failing that, the next size injector could be utilised.


----------



## pfcs1 (Jun 7, 2003)

John Jeff did you guys get my email Sat nite? I have some answers and many questions. Phil


----------



## _Bensonious (Mar 30, 2003)

hey, I was jsut curious as to what hardware and software is using to read/burn their eproms. I figure that I can build one but it might jsut be easier to buy one, something like the "junior prommer" (although they are hard to find, they have software for linux, which I like).
So if you guys could shed some light, maybe we can get more ppl working on this. I know I'm willing to mess around with my stock chip.
Thanks again, Ben


----------



## set (Nov 27, 2003)

*Re: (_Bensonious)*


_Quote, originally posted by *_Bensonious* »_hey, I was jsut curious as to what hardware and software is using to read/burn their eproms. I figure that I can build one but it might jsut be easier to buy one, something like the "junior prommer" (although they are hard to find, they have software for linux, which I like).
So if you guys could shed some light, maybe we can get more ppl working on this. I know I'm willing to mess around with my stock chip.
Thanks again, Ben

Just buy a cheapie that can handle 27C64 and will work with Linux (or DOS under dosemu). The time you save can be spent tuning.


----------



## xr4tic (Dec 10, 2001)

*Re: (pfcs1)*

Yeah, check your email, and let me know when the best time is for me to call you.

_Quote, originally posted by *pfcs1* »_John Jeff did you guys get my email Sat nite? I have some answers and many questions. Phil


----------



## xr4tic (Dec 10, 2001)

*Re: (_Bensonious)*

I've got the Pocket programmer II fro Xtronics http://www.xtronics.com/
It's a $150, which is probably overkill for this application, but I also use it for my Audi A4.
They also offer an emulator that you can make changes in real-time, for $180.

_Quote, originally posted by *_Bensonious* »_hey, I was jsut curious as to what hardware and software is using to read/burn their eproms.
Thanks again, Ben


----------



## xr4tic (Dec 10, 2001)

Here's the VAM vs. RPM base fuel map:








VAM Voltage on the left axis, RPM on the right axis (the values may not be exact, but pretty close)
Basically, this map is how the base injector pulse is calculated, for any given airflow value, an increase in RPM would mean less injector pulsewidth, so that's why the values decrease in the higher RPMs
If someone wanted to run a MAP sensor, then this is the table that would have to be altered


----------



## _Bensonious (Mar 30, 2003)

I've been doing some research and have read up on the achitechture of the digifant II controller. And it seems to be a dual processor unit, where as we are working with the code for "variable calculations only" code for the intel processor, and another processor (the motorola unit) is used for ignition control. Here is some a list of usufull links that I have used.
So the bottom line looks like the motorola unit is for ignition and the intel is for fuel. From what I'm reading, all the assembly is a big ass lookup table. It might be useful to take a look into disassembling the code on the eprom connected to the motorola unit and see what is going on with the ignition. One problem with this is finding a disassembler for the SC 80984 processor, but it shouldn't be to hard to write one given all the specs and instruction set








http://www.diy-efi.org/diy_efi...um_59
ftp://ftp.comlab.ox.ac.uk/pub/Cards/8048
I should recieve my programmer in the mail in a few days, so my first goal is to mess around with the fuel maps abit, then eventually recalculate the maps to use a higher flow injector (probably g60 ones) if I can find ther correct voltage vs. flowrate graphs..
Anyways, I can't wait to get startd, of yeah, if anyone else wants to do this you can get the programmer on ebay for roughly 66 CND dollars .
Ben 


_Modified by _Bensonious at 9:01 AM 4-26-2004_


----------



## xr4tic (Dec 10, 2001)

*Re: (_Bensonious)*

Yep, two processors, the Intel 8039 and a Motorola MC68705S3.
There's a hitch though, the Motorola is way outdated, the memory is stored in the processor (no external EPROM), and there's a good chance the security bit is set so you might not be able to read the processor, and that's assuming you can find something that can actually read it (short of spending $$$ on some super-duper programmer)
There is the possibility the Motorola receives the RPM signal from the Intel unit. That's what we are looking into now, if that's the case, then the Intel unit could advance/retard that signal (and shut it off for rev limit)
I think the Motorola also handles idle speed.
The Intel isn't a giant lookup table, it's kind of interesting to see how some things are done (interpolation, multiplication) given such limited code.

_Quote, originally posted by *_Bensonious* »_I've been doing some research and have read up on the achitechture of the digifant II controller. And it seems to be a dual processor unit, where as we are working with the code for "variable calculations only" code for the intel processor, and another processor (the motorola unit) is used for ignition control. Here is some a list of usufull links that I have used.
So the bottom line looks like the motorola unit is for ignition and the intel is for fuel. From what I'm reading, all the assembly is a big ass lookup table. It might be useful to take a look into disassembling the code on the eprom connected to the motorola unit and see what is going on with the ignition. One problem with this is finding a disassembler for the SC 80984 processor, but it shouldn't be to hard to write one given all the specs and instruction set


----------



## Digiracer (May 5, 2002)

*Re: Digifant II fuel maps available (set)*

So what happend with this?
Any updates?
What did you find out?


----------



## darksideofthemn (Feb 2, 2003)

*Re: Digifant II fuel maps available (Digiracer)*

bump. any more info here?


----------



## EagleB3 (Jan 27, 2005)

*Re: Digifant II fuel maps available ([email protected])*

to [email protected]:
You have written, that spread result of the work on reverse engineering insertions ECU Digifant-II on the site
http://www.rarefaction.com.au/...embly . Unfortunately this reference does not work or works incorrectly.








Probably, someone incorrectly added something? 
You could not restore your results?


----------



## set (Nov 27, 2003)

*Re: Digifant II fuel maps available (EagleB3)*

Be aware there are probably mistakes and misunderstandings scattered throughout the interpretation, but it is a start.
http://www.rarefaction.com.au/gti/digi_asm.txt


----------



## JediKGB (May 21, 2002)

*Re: Digifant II fuel maps available (set)*

now I'm by no means an expert on this stuff, but if somebody could give me a hand on how they are pulling the values and stuff from their ecu I could probably help out some...used to be pretty smooth programmer and Im always up for a challange







Well that and with the engine I'm building I"m gonna need to make sure it gets enough fuel and want to rev to like 7k+!


----------



## slappynuts (Feb 27, 2005)

*Re: Digifant II fuel maps available (JediKGB)*

I've done some caveman chip tuning on the early motronic stuff and took a look at your chip file.I see 3 maps that are probably a full throttle,part throttle and amybe a limp map.
They all pretty much follow the same pattern so just make a patch and paste it in in three places.It looks like you guys have even figured out the exact values(nice).Time to put a GM map sensor and some G60 injectors in(there is enough info available to calculate this and burn a chip for it).


----------



## slappynuts (Feb 27, 2005)

*Re: Digifant II fuel maps available (slappynuts)*

Has anybody managed to read the processor chip?I have noticed that the 16v knock box has almost the same type of circut layout(and processor arangement)The only difference I can see is the 16v uses a map sensor as an imput and the digi2 gets its signal from the VAM from the ECU.


----------



## Man&Golf (Oct 2, 2001)

*Re: (xr4tic)*









Hey guys is this the part where Neo is able to stop the bullets being shot at him in Matrix?








how did it go?..........
was all this so you can reprogram the chips or make your own?
man I actually read it all,







for me


----------



## secondgen (Jan 9, 2004)

*Re: (Man&Golf)*

one word....

Abuhhhhhhhhhhhhhh


----------



## slappynuts (Feb 27, 2005)

*Re: (secondgen)*

Anybody have any pics of the AMS digiprom add on board?


----------



## mgordon (Jun 25, 2004)

*Re: (slappynuts)*

anyone have .bin or dissassembled images of any of the aftermarket chips for comparision against stock ?


----------



## set_aus (Feb 22, 2005)

*Re: (mgordon)*


_Quote, originally posted by *mgordon* »_anyone have .bin or dissassembled images of any of the aftermarket chips for comparision against stock ?


I have had a look at one of them. All it did was increase fuel by 3%. I won't say what brand.
I have enough knowledge to increase fuel and rev limit. If anyone is interested let me know.


----------



## mgordon (Jun 25, 2004)

*Re: (set_aus)*

most certainly!







Very interested in seeing what these aftermarket chips do in comparision.. but also interested in modding my digifant.. somehow paying someone $200 for a chip just doesnt sit well with me, and also, how to know if i'm getting scammed ?
Cheers!


----------



## slappynuts (Feb 27, 2005)

*Re: (mgordon)*

The chip files I looked at had 3 maps the had similar(maybe the same)maps.If you want to find out what each map does just flatline one of the maps at a very low setting.


----------



## set_aus (Feb 22, 2005)

*Re: (slappynuts)*


_Quote, originally posted by *slappynuts* »_The chip files I looked at had 3 maps the had similar(maybe the same)maps.If you want to find out what each map does just flatline one of the maps at a very low setting.

I'm pretty sure that the map used is defined by permanent logic settings on the board - perhaps a regional thing. In Aus it uses the one at 0x300 and I'm pretty sure the US one uses the same map.


----------



## GTOBB (Dec 30, 2003)

I test on dyno my map to 1.8PF DIGI II, and chips adds 4HP and 10Nm. mods add some fuel on full throttle 3,4 number on + . 
http://www.vw.biaman.pl/wykresy hamownia/



_Modified by GTOBB at 5:28 AM 8-4-2005_


----------



## slappynuts (Feb 27, 2005)

*Re: (GTOBB)*


----------

