Some technical information about EDIS, and how to connect to GenBoard
See also EdisIgnition/SoftwareModule page.
It is very rare to connect EDIS to VEMS, because most users
- connect the 36-1 VR trigger directly
- and drive the coils directly
- and throw away (or sell) the EDIS module
The advantage of this:
- bigger ignition window (eg. for ALS and launch ignition retard )
- better control over dwell.
The reason for EDIS in old times was to drive multiple coils with the limited number of outputs (genboard v2). Genboard v3 has many outputs.
However, the code to drive EDIS (quite simple, much simpler than directly driving coils) has been there for several years.
Th most important configuration variable (from global.h):
uint8_t ign_out; // EDIS:0x0? dummy: 0x7? disable:0xff bit1: ign_dual_out bit0: invertout
That is, ign_out=00 (or 01 for inverted SAW output polarity) needed instead of ign_out=70 (that is dummy ignition)
The rest is same,
- ignchmax=03 (for 4 cyls)
- ignchmax=05 (for 6 cyls)
- set all ignition outputs to the same, digitaloutput where you connect SAW GenBoard/Manual/DigitalOut/Table
- h=20 20 20 20 20 20 20 20
- ign_dwell variables shouldn't matter, maybe set 2 msec
- [EDIS diagram from mjlj site]
- all of Ford's electronic ignition systems with lots of stuff about EDIS. You must subscribe to that Yahoo group in order to access it. [Ignition.doc]
Kenny Bauman writes:
The ford EDIS is a standalone microprocessor based ignition. It handles all timing calculations and trigger wheel processing internally. MS AVR only has to deal with a SAW and PIP signal to make the EDIS setup work.
What happens is the EDIS sends out a PIP signal (falling edge is interesting) that will tell GenBoard it needs a SAW in return. The length of this SAW signal tells EDIS what timing is desired.
If EDIS looses the SAW signal it defaults to 10 deg timing as a base value. Nice as a built in limp home mode.
Makes a nice setup as it is proven and hardened for the underhood environment.
Regarding the 36-1 trigger wheel. This has to be a Crank trigger not a cam trigger. You can use a cam trigger, but it needs to be 36-1 and 36-1 on the same wheel for a total of 72-2 teeth. The missing teeth would be 180 degs apart. This is for EDIS.
Here are some AC Delco part numbers for the EDIS-4 module and the coil. The US model vehicle is: '93 Escort LX w/1.9L 116CID L4 MFI (J) engine.
EDIS Module - AC Delco F1945
Coil AC - Delco F510
NAPA ONLINE lists:
Echlin Ignition Ignition Control Module ECHTP500
I haven't found a part number for the VR pickup and then there is the toothed wheel.
How to connect EDIS to GenBoard?
- PIP goes from EDIS => GenBoard primary_trigger
- no other signals go from EDIS => GenBoard (TACH, COIL, whatever)
- SAW command signal goes from GenBoard => EDIS
- configuration (ign_out) must enable EDIS and match the polarity of PIP and SAW
- what output is normally used for SAW ?
- s259 (stepper) ??
- or i259 logiclevel ??
- or i259 power IGBT output ??
PIP signal from EDIS => GenBoard primary_trigger
There are several good ways to route the PIP signal to the primary_trigger.
primary_trigger is IC3 on GenBoard/VerTwo (available on a header) and IC1 on GenBoard/VerThree. On GenBoard/VerThree you don't need any hack, you just put in an SMD 5.1V zener (not in the rescue kit, ask for it in your WebShop order - it's free ) to D14 place, short SJ2 jumper, open SJ6.
For GenBoard/VerTwo here is the recommended method, it is based on a simple voltage divider, dividing PIP to about 33..40% level (this method bypasses the optocoupler circuitry on GenBoard/VerTwo, but there is nothing to do about the optocoupler, it will not interfere):
Connecting the PIP to primary_trigger:
- 15k (..max 20k) Ohm (protecting) resistor between PIP and the primary_trigger
- 10k Ohm resistor between primary_trigger and GND
- diode (basically any type, eg. 1n4148) between primary_trigger and VCC (5V). The cathode (- mark on the diode) is at 5V, and the anode connected to primary_trigger. This prevents the primary_trigger voltage level going above 5.7V (should the PIP go above 14.3(with 15k) or 17.1V (with 20k), which it should never).
- this is a noninverting setup, configure falling edge in (bit0=0)
- and coil type trigger (bit1=1)
- set the unused bits to 1 in primary_trigger variable
Note that only EDIS sees the multitooth VR cranksignal. The PIP what GenBoard sees from EDIS is NOT a multitooth signal, but a coil-type 1 pulse/event signal. You can set tooth_wheel=24 (24 hexadecimal is 36 decimal), but this variable is not used in this setup.
This GenBoard/VerTwo picture does not show the diode orientation: cathode with the ring is at the right side, connected to 5V (DB37 pin4):
And here's a picture
Alternatively you can try the (GenBoard/VerTwo only) optocoupler circuit (the 5v1 zener is a little high for this, connect a 2k7 resistor in parallel with the zener). Note that this optocoupler setup inverts the signal, so in that case you will need to configure rising edge in config.trigger(bit0=1), eg: primary_trigger=FF. This is more complex, and not better, so not recommended.
SAW command signal goes from GenBoard => EDIS
- AVR emits the SAW command (on GenBoard/VerTwo) on PORTB7 (unless you define otherwise in my_make: see IGN_PORT,IGN_DDR,IGN_OUT in edis.h)
- this pin will drive the base of an NPN (transistor, 3 pin device). Let's call this the SAW NPN, no matter what it's called on the sch.
- the emitter of the SAW NPN is connected to ground
- the collector of the SAW NPN is connected to a DB37 pin. Connect this pin to EDIS SAW, so let's call it SAW signal. This way the NPN can pull the SAW signal to GND when the base of the NPN is pulled high (effectively inverting!).
- at some point the NPN base and NPN collector (=DB37 pin) naming on the v2.2 sch was confusing: if you see this, just curse the developers and neglect it.
- Connect a 4k7 from the SAW pin to +5V (inside the GenBoard), this is called a pullup resistor (remember: the NPN itself can only pull down towards GND). Maybe the EDIS has an internal pullup on the SAW pin, so this is not needed. Check the EDIS documents. But it doesn't hurt.
For the NPN-inverted SAW signal:
- in my_make define IGN_OUT_INVERTED (the obsolete EDIS_SAW_INVERTED works too). This is for the bootloader, not critical, since EDIS will not go crazy if it sees a continuous SAW signal.
- in config.txt set ign_out=01
Bended end of zener goes to resistors and the other to the gnd (pin2 on J8 connector).
- For OffEngineTesting? (which you can do with MS-AVR without complicated trigger wheel) you can enable the internal stimulator from menu with mst63mst63msp05msp05 (number after p is the freq: 01..ff, where 01 is highest). Connect stim output (PORTA3 = AVR pin48 = cathode of U1 panel LED on GenBoard v2.2) through a 220nF cap (someone gave a harmless but bad advice on irc regarding this) to VR+, and pull VR+ to GND with a 10k. This will ensure that signal will go below 0V (EDIS needs -300mV). Connect VR- to GND
- EDIS is not needed in my_make, became configurable with config.txt ign_out (see global.h), except the IGN_OUT_INVERTED is still recommended in my_make because bootloader does not know the config structure. (maybe compilation should read it from etc/config.txt later?). Not critical for EDIS, since EDIS won't accidentally leave the coils under current until frying on a not running engine.
See also: EdisIgnition
Q: I have genboard v2.2 with EDIS setup...genboard is getting PIP signal from EDIS (it counts revs), but I think that EDIS is not geting SAW signal from v2.2 since my engine's advance is always at 10btdc.
You can test if genboard is sending saw signal the same way as on TimingLight. You just apply a LED (needs proper polarity to light) through a (say) 270 Ohm resistor from NPN output (SAW signal) to +5V. You can ground the SAW output (this is valid with open collector outputs, while it would be invalid for push-pull outputs, like the stepper driver) signal (while the engine is not running), and the LED will light. Most likely you probably forgot the pullup resistor. You can also try the LED experiment directly from the AVR PORTB7 pin, but be careful in that case (apply 510 Ohm or higher series R, don't use long wires and don't short the AVR's output cause it will not like it). Measure voltage with DVM, that's always safe.
You put EDIS and IGN_OUT_INVERTED in my_make, but that makes no difference. ign_out=01 in config.txt is important. You want to post (on your page) both your commented config and the config read back with mcd so others can double-check.
I've put pullup resistor (4k7). I am just back from the garage, I've been playing with it. It somtimes starts to work but then it stops. I've check all vires on EDIS and they are OK they are all connected good, and have a good contact. Maybe the problem is because pip and saw wires are not shielded? Maybe EDIS's input is not OK.
Please do the TimingLight test (on the SAW output) and provide more useful info, eg. if you have correct RPM reading and injectors are firing well. Otherwise noone can help you. Point to your page which has the config.