GenBoard V3.0 serial #19.

The GenBoard/Manual/PowerFlyback is effectively a high current diode, with a voltage drop of 5 diodes (appr. 4V). The cathode side connected to the injector-common (switched +12V) signal. The anode side to the onboard flyback rail. (note: which side EC36pin23 is connected depends on if the flyback board is inside the ECM box or outside).


I investigated the Ford ECU's and found that they use 20K pullup with their sensors. I took 5 sensors and wired them up and stuck them first in the freezer and then in the oven, then room temp. Used thermocouple thermometer to measure actual sensor temp. The wires got around the freezer and oven door seals no problem. I plugged a consensus of values into easytherm and then perl inc2tbl. Plugged the .c files into my IAR C compiler and made airXfactor.hex and cltfactor.hex files. I can now compile or patch with equal ease. I use 4x16 LCD. I will need to compile. See SubVersionSvn for the format (username, md5summed pw, choose repository) of svn access request.

Compiled 1.0.23 with new therm data, verified correct data in hex file.

I ran the upload-firmware.bat . It seems that DOS on my machine (with Win98 and DOS ver 4.10.2222) does not recognise the if()else() construct. It just runs everything, like this:

16:53 C:\sq\F1030\VemsMT1.0.30rc3>upload-firmware
Remember to save your config + tables.txt with mcd/mct
_before_ running this program, press ctrl-c to abort
also run make mtt and upload these after this upgrade
Precompiled version: 12x12 Standard boost
Press any key to continue . . .

Bad command or file name
Down loading flash file:firmware\vems.hex
LoAddr =  0    HiAddr =  b526
Translation complete!
AVR said Hello : Hello>
Flash erased
Flash Download finished
Verify Flash.
Start terminal emulation - ESC to exit

Normal Exit
Bad command or file name
Something went really wrong with your package )
Press any key to continue . . .

I edited the bat file to be like this: it now works as expected.

@echo off
echo Remember to save your config + tables.txt with mcd/mct
echo _before_ running this program, press ctrl-c to abort
echo also run make mtt and upload these after this upgrade
echo Precompiled version: 12x12 Standard boost 
echo -----------------------------------------------------
if not exist firmware\vems.hex goto else
tools\megaloader.exe firmware\vems.hex -wtE
goto end
echo Something went really wrong with your package


Looking at air and coolant temperature tables. The Ford sensors that I have are much higher in value than standard.

degrees C    ohms
120          1180
110          1550
100          2070
90           2800
80           3840
70           5370
60           7600
50          10970
40          16150
30          24270
25          30785 (interpolated!)
20          37300
10          58750

These are about 13 times higher than the standard thermistor.

Mar-2-06 PM

Successfully re-complied 1.0.23 for 4x16 LCD. After being away from genbd stuff for a year and now having a different computer, getting the compile setup correct is a good step towards getting back up to speed. I may need more changes, they can be made later. I'll have to study own notes. I read them now and it is as though I'm reading them for the first time!

Mar-2-2006 AM

tried to compile ver 1.0.30 so I can get 4x16 LCD support. timing.c file missing. will try to compile 1.0.23 later.

Is 4x16 the only change in my_make or you have some other special setting as well ? We should have it in the release script so a vems.hex for the given settings is always compiled and included in the release.

Torque curve approximation (initial VE table)

Q. I can't get the VE table generator to work at . I enter in all of the information and click on the button, nothing happens. I have tried turning off the Norton pop-up blocker, no difference. Is there another way to get this information or could someone run it for me?

A.Check bin/

When you have the torque-curve from 2 points:

it's a trivial to get the (a,b,c) coefficients of the second-order approximation function:

M(RPM) = a + b * RPM + c * RPM^2

hint: the derivate is 0 at the max-torque point:

dM / dRPM = 0 = b + 2*c*RPMmaxTorque?

( I once had it in 10 lines of perl, dunno where ). Yes, I remember, it gets even easier - say trivial - if written this way:

M(RPM) = Mmax - z * (RPM-RPMmaxTorque?)^2

Increasing ign_tdcdelay issues

Q. looks like I will need more ign_tdcdelay than what is presently available. My engine produces a single trigger at 10 degrees BTDC. I will need 190 degrees delay. Re-clocking the 'rotor phase' of the distributor is not an option as this is supposed to be 'plug and play'. It seems the easiest way to get more range would be to add an entry to my_make that would change the ign_tdcdelay units from 0.5 degrees to 1 degree. I grep'd thru the code, that value is only used in a couple of places. Before I go editing in some IFDEF's, does anybody have a better idea of how to get more range for ign_tdcdelay?

A. It's only used in trig2spark IIRC, but there are problems with that. With the improved EventQueue we can time to max 131 msec to the future (not 262msec), which is down to 127 RPM with reasonable timing to max 100 crankdegrees. You'd have starting problems timing to about 180 degrees if your engine cranks at low RPM in cold.

The events could be stored in userspace first, of course; and entered into the heap later.


ordered connectors for keyboard and serial connection from digi-key.

installed barrel inductor.

soldered thin strand of wire for a fuse.

removed about 8mm from the to220 end of the board with a hacksaw. I can shoehorn it into a Ford EEC-IV case now! I can easily patch around the damage with a few pieces of wire. The pictures I see show nothing mounted in those end holes anyway.

I need to go thru GenBoard/VerThree/Installation and GenBoard/Manual/InitialTesting/VerThree to get everything installed.

I assume that DDFlyBack, low voltage 0.7+0.7 is what I want to use. Because the typical failure mode of diodes is to short, putting 2 in series will help reliability. The stock ECU(and car) is wired for 2 injector drivers.(4cyl, 2 injectors per driver) I will wire the car for 4 injector drivers later. For now, I want to be able to switch back easily to the stock ECU.

I can drive 2 LowZ injectors in the same fashion from GenBoard.

I will want to mount the MAP sensor off the board. Looks like I need to make a small PC board to hold the sensor, some filter caps and a connector. Will go to my local electronics supply store and see what they have for off-the-shelf boxes.

GenBoard/VerThree/Installation says "solder the other 2 FETdrivers (from rescue1 kit)." My board came with no FETdrivers installed and 2 34151's in kit. If I was planning on running a V8, I would be 2 FETDrivers short.

I was wondering if there was a 3.0 assembly drawing available. I know it is more fun to use the wrong rev documents, but I'm in the mood to be bored!!! Seems like the docs at the top of GenBoard/Manual/InitialTesting/VerThree are all that I get.

Question: My board seems to have more components installed for WideBand channel 2 than it does for WideBand channel 1. Is it a better idea to use channel 2?

A: No, it's just because in the early times noone helped completing the instructions, so it stayed that way. Especially in the early days, when there were not enough confidence in the best values, the wbo2 section was meant to be completed by the user.

Question: Is there a bill of materials available? For instance there is nothing on the schematic to show the mfg. part numbers of the heater transistors or the injector FETs

(A: if you have the Eagle Sch, you go into FILE RUN BOM.ulp It is not complet with all the part # but its a start.) - I will have to download Eagle I guess.

Went to add the r-c on the input of the WB opa. The 1uF and 2.2uF caps in the rescue kit are identical in size. I received 4 of each in my rescue kit. (note: they are keyed by their number in the GenBoard/VerThree/RescueKit). Will measure value (that's the safest way, true. Either will do for the 0..5V lowpass filter though. The only place it matters is the 14V traces, where the 2u2 is not suitable.)

I am wiring a 9 pin d-sub connector for the LCD, same as for GenBoard2. Also again using a 3.5mm audio cable for the serial port. Tip of the audio cable is GenBoard transmitted data.

Installed FETdrivers at U3 and U6. Put in 33ohm for FET gates. Figured out that the injector FET's are the ones with no exposed metal on the mounting tab.

Finished the install of the r-c input of the WB opa. Did both channels. Put parts on the back side, needed a little trimming of the ground plane to keep things from shorting.

Downloaded eagle. Can't read either the sch or the brd file. Get an error 289 in both cases.

trying to build firmware. Using MembersPage/JohanEriksson/VerThreeFirmForDummies. get error messages with paths to another compiler I have on my computer. Made a .bat file that clears all of the environment variables used by the other compiler.

Compile with NO_IGN is not supported (but ign can be disabled runtime).

Loaded the correct version of Eagle. loaded schematic OK. Guess I need to find a tutorial. I think I saw one on the CadSoft site. Will look into that later.

Installed D9.

Soldered a piece of wire across SJ1 to put +12V to FETdriver power rail. Added C20 and C24.

Can't find SIL-5 pin resistor packs in my parts kit. Soldered 0805 10K's to backside of board. Earlier SIL5 were only in PWMing kit, now 2xSIL5 are in the rescue1 kit.