# Arduino and Ford EDIS Ignition

Hey all

I'm currently contemplating a arduino based project, and would like to know if the arduino board will work...

Basically I wish to use an arduino to create an ICU (Ignition control unit) for ford EDIS based ignitions.

Using a signal input from the EDIS, and another input from a pressure sensor the Arduino need to look up a value in an ignition map and send out a 5v pulse back to the EDIS.

Input from Pressure sensor is a voltage between 0,4 and 3 volts (analogue) Input from EDIS is a 12v digital frequency ranging from 40Hz to 600Hz

The output is a 5 volt digital pulse that need to come right after the input signal from the EDIS goes to 0v. Based on the two input signals the output pulse duration should be between 200us and 1500us long.

Output signal is decided following a 12*12 ignition map like this one http://www.mgexperience.net/pictures/31561.jpg

it will not be a problem if the output signal comes one Hz to late compared to the input signal (if this will make it easier to send the output right after the input signal goes to 0v) This way the arduino can use this one Hz to register the two input values, and find the right output value, commit this to memory and then send the output following the next input signal.

Like I said, what I need to know first off is if the arduino can handle this application

Input from Pressure sensor is a voltage between 0,4 and 3 volts (analogue)

No problem (except you misspelled analog).

Input from EDIS is a 12v digital frequency ranging from 40Hz to 600Hz

Step this down to 5V max, using a voltage divider, and use pulseIn() to determine the time between peaks.

The output is a 5 volt digital pulse that need to come right after the input signal from the EDIS goes to 0v.

Will need to perform a very quick lookup, then. Pre-calculate the row based on the first reading, so that it is a matter of finding the column containing the value of interest.

Based on the two input signals the output pulse duration should be between 200us and 1500us long.

I presume that the vertical axis is related to the pressure value, and the horizontal axis is related to the EDIS signal. If so, I don't see where you get 200 to 1500.

it will not be a problem if the output signal comes one Hz

I'll bet it will. 1 Hz is one cycle per second. If the output signal is one second late, I'll bet that will cause problems.

Like I said, what I need to know first off is if the arduino can handle this application

Certainly worth a shot.

No problem (except you misspelled analog).

Sorry about that :) I am not a native english speaker (from Denmark)

Step this down to 5V max, using a voltage divider, and use pulseIn() to determine the time between peaks.

Sounds simple

I presume that the vertical axis is related to the pressure value, and the horizontal axis is related to the EDIS signal. If so, I don't see where you get 200 to 1500.

Yeah sorry about that, the values in the ignition map is advance timings (measured in degrees before top dead center) I have converted these values to signal duration times, using a specific equation for the EDIS, thus resulting in values 200 to 1500.

I'll bet it will. 1 Hz is one cycle per second. If the output signal is one second late, I'll bet that will cause problems.

Naturally i should have written 1 cycle and not 1 Hz. Sorry about that

ThePoulsen: Hey all

..........

Hi I have got some idea ...

inspiration on freescale procesor.. http://www.autosportlabs.net/Megajolt_Lite_Jr.

Hi folks,

This is something I would also like to try. One thing I am confused about is how frequently the EDIS controller needs to see the timing signal. This is the signal that ranges from 200us to 1500us in the above posts. To clarify for those reading, the EDIS controller is looking for a pulse that it uses to determine the timing advance of the ignition sequence. This signal would normally come from the vehicles ECU, the width of the signal being proportional to the timing advance.

So does anyone know what kind of period the EDIS control is looking for this pulse? Will it recognize the signal at any timing interval?

Thanks

Did you made any progress ? I'm currently working on my version of Aruino controller EDIS module.

Currently I have some success - including plaing with real engine: https://www.youtube.com/playlist?list=PLPJm6S23utHkRbFnOFemsuizS4BDVBa2W

If you want - we can share some information.