Thanks for checking in Chuck. So was no machining required with this trigger wheel? Did you get the sensor mount sorted out, or didn't you get that far? I'm assuming the center of the missing tooth gets clocked on the timing mark, yes?
Making the Cologne 2.9 Distributor-less using 4L OHV parts - TFI to EDIS Conversion
- DPDISXR4Ti
- Site Admin
- Posts: 14840
- Joined: Wed Jan 08, 2003 11:40 pm
- Location: New York
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Brad
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
There was machining required, as mentioned in the linked old post you sent me from TF. I machined the pulley down and left like 1/8" of material around the rubber damper. I machined just as deep as the trigger wheel was thick. Then I machined the wheel to just under that diameter for a press-fit. I put the pulley in the freezer and heated up the trigger wheel and pressed them together. I don't recall if I did the 4 small spot welds that were discussed.
Here are a couple pics of the sensor bracket that I evidently cobbled together.
Nick B (mysticfireXR) on here was the one who bought the car when I sold it. You might see if he still has any of this stuff. (I know he's on FB too)
Here are a couple pics of the sensor bracket that I evidently cobbled together.
Nick B (mysticfireXR) on here was the one who bought the car when I sold it. You might see if he still has any of this stuff. (I know he's on FB too)
"Strange women, lying in ponds distributing swords is no basis for a system of government. Supreme executive power is derived from a mandate from the masses, not from some farsical aquatic ceremony."
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Still a a bit confusing as to how to interface Mega Jolt to a distributor based EECIV on the Scorpio.
Seems like it should be possible...
https://forum.autosportlabs.com/viewtopic.php?t=592
Need to do more research...
The EECIV needs the PIP signal that normally came from the distributor. It would have been nice if the Mega Jolt had a PIP/SPOUT interface that could easily allow this conversion. Preferably this would give you the option to select either the EECIV to control advance curve or you could use the Mega-Jolts programable advance curve. Maybe it does but I am just not aware of how to do this..
Assuming it is possible to interface, I guess the only concern is that the Mega Jolt would want to run the advance curve itself, but the EECIV has it's own idea of how the advance curve should be. Probably not a big deal, but I can imagine the EECIV might advance/retard under special circumstances for emission reasons.
Seems like it should be possible...
https://forum.autosportlabs.com/viewtopic.php?t=592
Need to do more research...
The EECIV needs the PIP signal that normally came from the distributor. It would have been nice if the Mega Jolt had a PIP/SPOUT interface that could easily allow this conversion. Preferably this would give you the option to select either the EECIV to control advance curve or you could use the Mega-Jolts programable advance curve. Maybe it does but I am just not aware of how to do this..
Assuming it is possible to interface, I guess the only concern is that the Mega Jolt would want to run the advance curve itself, but the EECIV has it's own idea of how the advance curve should be. Probably not a big deal, but I can imagine the EECIV might advance/retard under special circumstances for emission reasons.
Specialization is for Insects
- DPDISXR4Ti
- Site Admin
- Posts: 14840
- Joined: Wed Jan 08, 2003 11:40 pm
- Location: New York
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
It might very well be easier to just use the EEC-IV PCM from the '90 - '94 4L OHV Ranger which uses EDIS natively. I imagine the timing curve is very similar as the burn characteristics should be very similar between the 2.9 and 4L engines. The Ranger PCM is MAF, so directly measuring the air mass intake should take care of fueling. The hardest part might be figuring out the 2 > 1 > MAF intake plumbing, but I may already have a solution for that using an intake hose from a '96 F-150 4.9.brokencase wrote: ↑Sat Sep 16, 2023 9:50 am Still a a bit confusing as to how to interface Mega Jolt to a distributor based EECIV on the Scorpio.
Brad
- DPDISXR4Ti
- Site Admin
- Posts: 14840
- Joined: Wed Jan 08, 2003 11:40 pm
- Location: New York
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Thanks for the pics Chuck! I'll touch base with Nick.
Brad
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
The problem with that is adapting all the plumbing for the MAF and throttle body stuff, harnessing, etc.., potentially creating more problems than I'd be trying to solve.DPDISXR4Ti wrote: ↑Sat Sep 16, 2023 10:33 amIt might very well be easier to just use the EEC-IV PCM from the '90 - '94 4L OHV Ranger which uses EDIS natively. I imagine the timing curve is very similar as the burn characteristics should be very similar between the 2.9 and 4L engines. The Ranger PCM is MAF, so directly measuring the air mass intake should take care of fueling. The hardest part might be figuring out the 2 > 1 > MAF intake plumbing, but I may already have a solution for that using an intake hose from a '96 F-150 4.9.brokencase wrote: ↑Sat Sep 16, 2023 9:50 am Still a a bit confusing as to how to interface Mega Jolt to a distributor based EECIV on the Scorpio.
Unless you are specifically looking for MAF and associated performance improvements associated with it.
Specialization is for Insects
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
More stuff to read...
http://www.megamanual.com/ms2/EDIS.htm
http://www.megamanual.com/ms2/EDIS.htm
Specialization is for Insects
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
OK after a little more study...
On the stock Scorpio the EECIV gets a PIP signal from the Hall sensor in the distributor. There is no advance mechanism in the distributor like old school distributors. The EECIV then processes this pulse and either retards or advances it's output pulse to the TFI (SPOUT) to fire the single coil.
On an EDIS system PIP comes out of the EDIS module to the EECIV and the EECIV sends back SAW (Spark angle word).
Seems to me one could make a circuit to convert PIP/SPOUT to PIP/SAW. Thus allowing a distributor based EECIV to drive an EDIS module directly.
The attached PDF describes EDIS signals in great detail. I just need to see what PIP/SPOUT signals look like on the distributored 2.9L
The issue may be that the PIP signal with the distributor is based on distributor six pulses per rev of the rotor but with EDIS, PIP is generated on one crank revolution only. This means on a distributor car there are three PIPs per crank rev, but on EDIS there is only one PIP per rev. This has to be fudged so the old EECIV knows what the actual engine RPM is.
So a converter would be a micro that takes the EDIS PIP and simulates the missing two pulses between sequential crank pulses. It then takes SPOUT and does what is needed to make it look like SAW. I suspect SAW timing is also crank degree based as opposed to distributor timing based.
I am surprised nobody offers a converter like this already.
On the stock Scorpio the EECIV gets a PIP signal from the Hall sensor in the distributor. There is no advance mechanism in the distributor like old school distributors. The EECIV then processes this pulse and either retards or advances it's output pulse to the TFI (SPOUT) to fire the single coil.
On an EDIS system PIP comes out of the EDIS module to the EECIV and the EECIV sends back SAW (Spark angle word).
Seems to me one could make a circuit to convert PIP/SPOUT to PIP/SAW. Thus allowing a distributor based EECIV to drive an EDIS module directly.
The attached PDF describes EDIS signals in great detail. I just need to see what PIP/SPOUT signals look like on the distributored 2.9L
The issue may be that the PIP signal with the distributor is based on distributor six pulses per rev of the rotor but with EDIS, PIP is generated on one crank revolution only. This means on a distributor car there are three PIPs per crank rev, but on EDIS there is only one PIP per rev. This has to be fudged so the old EECIV knows what the actual engine RPM is.
So a converter would be a micro that takes the EDIS PIP and simulates the missing two pulses between sequential crank pulses. It then takes SPOUT and does what is needed to make it look like SAW. I suspect SAW timing is also crank degree based as opposed to distributor timing based.
I am surprised nobody offers a converter like this already.
- Attachments
-
- Ford EDIS Ignition.pdf
- (673.32 KiB) Downloaded 474 times
Specialization is for Insects
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
I see Brad has been dream-storming on this EDIS conversion for some time now...
https://www.therangerstation.com/forums ... 926/page-3
https://www.therangerstation.com/forums ... 926/page-3
Specialization is for Insects
- DPDISXR4Ti
- Site Admin
- Posts: 14840
- Joined: Wed Jan 08, 2003 11:40 pm
- Location: New York
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
No real compelling reason to go MAF except it does solve the potential issue you'd have running a 4L PCM on a 2.9 engine. And since I already have a couple 4L PCM's from Explorers and Rangers, that part is essentially free.brokencase wrote: ↑Sat Sep 16, 2023 6:18 pm The problem with that is adapting all the plumbing for the MAF and throttle body stuff, harnessing, etc.., potentially creating more problems than I'd be trying to solve.
Unless you are specifically looking for MAF and associated performance improvements associated with it.
Re-doing the intake plumbing is more annoying than it would be in most cases because of the dual TB used on the Scorpio vs. the more conventional single TB of the Ranger. If I can pull it off the way I'm thinking it won't be too bad.
The wiring harness is a big hassle, no doubt. Fortunately I do already have a 4L harness pulled from a Ranger. I've had some concerns about the aging of the Scorpio harness, so it could be a "win" to replace it.
It's a pretty big project however you slice it. At least with what we've proposed you get to keep the v-belts and everything is reversible.
Brad
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Well...all I think has to be done is to convert the SPOUT signal to the SAW signal.
The Bowling document I posted describes the SAW signal precisely, and it seems to indicate the PIP might not need to be fudged.
In other words the EDIS module may output a PIP pulse 3 times per crank rev, just like the distributor.
So the converter microprocessor that I propose measures and passes the PIP signal to the Scorpio EECIV and it then measures the SPOUT signal that the EECIV sends out,
The difference between PIP and SPOUT is the advance that the EECIV is commanding. But this is with respect to angular rotation of the rotor in the distributor. So we do some math and convert this to crank degrees of advance. Then use the formula described in the Bowling document and send a proper SAW square wave to the EDIS module.
There are some minor issues. You can't convert SPOUT to SAW unless you know the instantaneous RPM. So it may take a few samples of PIP before the converter can determine this so it just outputs the default 10 degree advance SAW pulse during this time. This would happen while starting the car.
That should be it. No mega jolt needed. Really surprised nobody has done this already. I guess most folks at this point just do the whole megasquirt conversion.
I would have to acquire an EDIS6 module, a reluctor sensor, and a toothed wheel and set this all up on the bench to make sure the code works.
The Bowling document I posted describes the SAW signal precisely, and it seems to indicate the PIP might not need to be fudged.
In other words the EDIS module may output a PIP pulse 3 times per crank rev, just like the distributor.
So the converter microprocessor that I propose measures and passes the PIP signal to the Scorpio EECIV and it then measures the SPOUT signal that the EECIV sends out,
The difference between PIP and SPOUT is the advance that the EECIV is commanding. But this is with respect to angular rotation of the rotor in the distributor. So we do some math and convert this to crank degrees of advance. Then use the formula described in the Bowling document and send a proper SAW square wave to the EDIS module.
There are some minor issues. You can't convert SPOUT to SAW unless you know the instantaneous RPM. So it may take a few samples of PIP before the converter can determine this so it just outputs the default 10 degree advance SAW pulse during this time. This would happen while starting the car.
That should be it. No mega jolt needed. Really surprised nobody has done this already. I guess most folks at this point just do the whole megasquirt conversion.
I would have to acquire an EDIS6 module, a reluctor sensor, and a toothed wheel and set this all up on the bench to make sure the code works.
Specialization is for Insects
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Brad, your initial image in this thread shows the "insider the distributor hole" position sensor. I don't think you need that in an EDIS system, there is just the crank wheel sensor.
Specialization is for Insects
- DPDISXR4Ti
- Site Admin
- Posts: 14840
- Joined: Wed Jan 08, 2003 11:40 pm
- Location: New York
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Correct, the one shown is just a "dummy plug" to drive the oil pump. The later vehicles with SEFI (mostly EEC5) got a cam sensor there. Either one would work to just drive the oil pump, as would the original distributor. The ones from the 4L require some sort of machining which I haven't quite figured out yet.brokencase wrote: ↑Sun Sep 17, 2023 9:50 am Brad, your initial image in this thread shows the "insider the distributor hole" position sensor. I don't think you need that in an EDIS system, there is just the crank wheel sensor.
Brad
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
So how does our "converter" determine the degrees of advance from looking at the Scorpio's SPOUT and the EDIS PIP signals?
I believe it would work as shown in the diagram below. Basically our converter would measure the time interval between the leading edge of four PIP pulses (a V6 fires 3 times per revolution). This interval represents 360 degrees of crank revolution. It then takes the delta between the leading edge of SPOUT and PIP and this is the advance time. So then advance time interval / interval between four PIPs * 360 give us advance in degrees.
We then take degrees advance and plug it into the Bowling formula SAW (microseconds) = 1536 - (25.6 * Commanded_degrees).
This is the pulse duration our "converter's" SAW signal sends to the EDIS module.
In actual implementation the microcontroller only has to measure the interval between the leading edge of two pips and multiply by 3.
Naturally this can easily be adapted to work for 4 and 8 cylinder engines.
I believe it would work as shown in the diagram below. Basically our converter would measure the time interval between the leading edge of four PIP pulses (a V6 fires 3 times per revolution). This interval represents 360 degrees of crank revolution. It then takes the delta between the leading edge of SPOUT and PIP and this is the advance time. So then advance time interval / interval between four PIPs * 360 give us advance in degrees.
We then take degrees advance and plug it into the Bowling formula SAW (microseconds) = 1536 - (25.6 * Commanded_degrees).
This is the pulse duration our "converter's" SAW signal sends to the EDIS module.
In actual implementation the microcontroller only has to measure the interval between the leading edge of two pips and multiply by 3.
Naturally this can easily be adapted to work for 4 and 8 cylinder engines.
- Attachments
-
- Scorpio_PIP_SPOUT.jpg (77.92 KiB) Viewed 16444 times
Specialization is for Insects
- brokencase
- Level 7
- Posts: 1610
- Joined: Sun Dec 06, 2015 12:18 pm
- Location: PA
Re: Making the Cologne 2.9 Distributor-less using 4L OHV parts
Code would look something like below. This is untested but it compiles with the Arduino IDE.
Probably could use some boundary checks on the SAW output.
I would use an ESP32 S2 board like this:
https://www.amazon.com/HiLetgo-ESP32-S2 ... B0B291LZ99
It's fast and you have the option to connect with Wifi to maybe get fancy later on (like connect your tablet to alter advance curves).
//Decide which pins you want to use
//Note that SPOUT is split to two different pins.
#define SAW_OUTPUT_PIN 10
#define PIP_INPUT_PIN 2
#define SPOUT_INPUT_PINR 3
#define SPOUT_INPUT_PINF 4
volatile unsigned long Previous_PIP_Rise_time=0;
volatile unsigned long PIP_Rise_time=0;
volatile unsigned long SPOUT_Rise_time=0;
volatile bool SAW_On=false;
volatile unsigned long Advance_interval=0;
volatile unsigned long Interval_360=0;
volatile unsigned long Advance_Degrees=0;
volatile unsigned long SAW_Pulse_Time=0;
volatile unsigned long SAW_Off_Time_Later=0;
void setup()
{
pinMode(SAW_OUTPUT_PIN,OUTPUT); //Simulated SAW output
attachInterrupt(digitalPinToInterrupt(PIP_INPUT_PIN),PIP_Rising,RISING);
//we connect SPOUT to two seperate pins
attachInterrupt(digitalPinToInterrupt(SPOUT_INPUT_PINF),SPOUT_Falling,FALLING);
attachInterrupt(digitalPinToInterrupt(SPOUT_INPUT_PINR),SPOUT_Rising,RISING);
}
void loop()
{
if (SAW_On)
{
if (micros() >= SAW_Off_Time_Later)
{
digitalWrite(SAW_OUTPUT_PIN ,LOW);
SAW_On=false;
}
}
}
void PIP_Rising() //ISR function executes on rising edge of PIP
{
Previous_PIP_Rise_time=PIP_Rise_time;
PIP_Rise_time=micros();
}
void SPOUT_Rising() //ISR function executes on rising edge of SPOUT
{
SPOUT_Rise_time=micros();
}
void SPOUT_Falling() //ISR function executes on falling edge of SPOUT
{
digitalWrite(SAW_OUTPUT_PIN ,HIGH); //Start the SAW Pulse on falling edge of SPOUT, loop() turns it off
//calculate how long SAW pulse is
Advance_interval=SPOUT_Rise_time-PIP_Rise_time;
Interval_360=(PIP_Rise_time-Previous_PIP_Rise_time) * 3;
if (Interval_360==0) //no divide by zero allowed!
Advance_Degrees=0;
else
Advance_Degrees=(Advance_interval / Interval_360) * 360;
SAW_Pulse_Time=1536 - (25.6 * Advance_Degrees);
//Should probably do a range sanity check on SAW pulse time here.
SAW_Off_Time_Later=micros() + SAW_Pulse_Time;
SAW_On=true;
}
Probably could use some boundary checks on the SAW output.
I would use an ESP32 S2 board like this:
https://www.amazon.com/HiLetgo-ESP32-S2 ... B0B291LZ99
It's fast and you have the option to connect with Wifi to maybe get fancy later on (like connect your tablet to alter advance curves).
//Decide which pins you want to use
//Note that SPOUT is split to two different pins.
#define SAW_OUTPUT_PIN 10
#define PIP_INPUT_PIN 2
#define SPOUT_INPUT_PINR 3
#define SPOUT_INPUT_PINF 4
volatile unsigned long Previous_PIP_Rise_time=0;
volatile unsigned long PIP_Rise_time=0;
volatile unsigned long SPOUT_Rise_time=0;
volatile bool SAW_On=false;
volatile unsigned long Advance_interval=0;
volatile unsigned long Interval_360=0;
volatile unsigned long Advance_Degrees=0;
volatile unsigned long SAW_Pulse_Time=0;
volatile unsigned long SAW_Off_Time_Later=0;
void setup()
{
pinMode(SAW_OUTPUT_PIN,OUTPUT); //Simulated SAW output
attachInterrupt(digitalPinToInterrupt(PIP_INPUT_PIN),PIP_Rising,RISING);
//we connect SPOUT to two seperate pins
attachInterrupt(digitalPinToInterrupt(SPOUT_INPUT_PINF),SPOUT_Falling,FALLING);
attachInterrupt(digitalPinToInterrupt(SPOUT_INPUT_PINR),SPOUT_Rising,RISING);
}
void loop()
{
if (SAW_On)
{
if (micros() >= SAW_Off_Time_Later)
{
digitalWrite(SAW_OUTPUT_PIN ,LOW);
SAW_On=false;
}
}
}
void PIP_Rising() //ISR function executes on rising edge of PIP
{
Previous_PIP_Rise_time=PIP_Rise_time;
PIP_Rise_time=micros();
}
void SPOUT_Rising() //ISR function executes on rising edge of SPOUT
{
SPOUT_Rise_time=micros();
}
void SPOUT_Falling() //ISR function executes on falling edge of SPOUT
{
digitalWrite(SAW_OUTPUT_PIN ,HIGH); //Start the SAW Pulse on falling edge of SPOUT, loop() turns it off
//calculate how long SAW pulse is
Advance_interval=SPOUT_Rise_time-PIP_Rise_time;
Interval_360=(PIP_Rise_time-Previous_PIP_Rise_time) * 3;
if (Interval_360==0) //no divide by zero allowed!
Advance_Degrees=0;
else
Advance_Degrees=(Advance_interval / Interval_360) * 360;
SAW_Pulse_Time=1536 - (25.6 * Advance_Degrees);
//Should probably do a range sanity check on SAW pulse time here.
SAW_Off_Time_Later=micros() + SAW_Pulse_Time;
SAW_On=true;
}
Specialization is for Insects