Page 1 of 3

MS-II/Ignition module set-up how-to?

Posted: Tue Sep 27, 2005 12:14 pm
by Bernard Fife
Jerry,

What sort of hardware are you using for ignition? Is MS-II controlling this as well?

'Range Check Errors' are what happens when you feed an MS-II datalog into MSLVV, you have to use MS-Graph or Excel to look at them.

I don't see the pulse width going off the scale (as viewed in Excel - so I'm just looking at a sampling), it seems to be mostly between 5.5 and 6.6 msec once the afterstart stops.

If the voltage is reported high, this might be due to tolerance 'stack-up' in R3 and R6 on the main board. This usually isn't critical, BUT if you are controlling the ignition, and using dwell voltage compensation, it can result in very low dwell figures. Yours is around 2.2 milliseconds, which might not be enough. So the first thing I would try is increasing the base dwell by about 1.0 milliseconds. (The voltage also affect the injector pulse width, but to a much smaller degree, so I would be concerned about that for now.)

I can't find any decel events in the datalog, so I can't really comment on that. If you want to eliminate the TPS variables, switch to MAPdot accel (on the accel wizard), use a threshold of about 80 to 100 kpa/sec.

Finally, make sure you are using the right INI file for MegaTune (it may be that MT and MS are getting their wires crossed). These a few of them in the MegaTune folder, with names like megasquirt-II.ini.2.0, etc. Find the one that matches your code version, and rename it to: megasquirt-II.ini (I'm sure you know and did this, but I put it in so others reading this thread will check it).

If this were mine, I'd reload the embedded code before trying again, AND I'd put in all the parameters by hand (you can load the VE, spark, and IGN VEX files, though) to make sure you don't have a corrupt or incompatible MSQ file.

None of us knows everything, and none of us are perfect by any means! I certainly have my share of confusing situations, and I suspect even Bruce, Eric and Al do too. So no-one should think that is unusual, it's how we handle them that count. Sharing them here is a good move, I think!

Lance.

Posted: Tue Sep 27, 2005 12:36 pm
by FoundSoul
We're using all factory ignition components, basically I've built a harness adapter using a connector from an old Subaru ECU and made a 6' adapter cable to the MS (allowing us to relocate the ECU in the glovebox where he wanted it). We're pulling the ignition signal input from the optical CAS in the dizzy which required a pullup to 12v to read it properly. It seems RPM input is pretty solid as the RPMs MegaTune was reporting lined right up with what the dyno software reported. The MS is outputting to a tiny little factory 'ignition transistor' ignitor next to the coil. It wouldn't surprise me if I needed a pullup there as well like I did to use the factory ignitor on my MR2 (MSnS-E pullup to 5v on the output)- it's picking up the signal though when we pulled off one plug wire at a time it didn't seem to change how well it ran at all so it seems like it was misfiring anyways... Of course the last option is to fire the coil directly-though I was attempting to use all factory wiring if possible, with the exception of the IAT that we added and tied into the factory MAF connector to bring it back to the ECU.

It was a bit later in the evening when we noticed the PW jumping so high, and on decel at that. I'll try to get some logs of it as I pulled a test log and tried opening it in MSLVV, then didn't log any more after seeing it couldn't read it so I wouldn't have captured the PW jumping. Also thats a good idea to go to 100% MAP based accel enrich and see how that affects it... I'll try that as well.

I'm using the latest MS code 2.1a, and the proper .ini with MegaTune (megasquirt-II.ini.2.1 renamed to megasquirt-II.ini) and I built the current .msq from scratch using this code, MT225b627 and proper .ini.

Thanks for the feedback--

Posted: Tue Sep 27, 2005 2:00 pm
by Bernard Fife
It wouldn't surprise me if I needed a pullup there as well like I did to use the factory ignitor on my MR2 (MSnS-E pullup to 5v on the output)
Jerry,

Yeah, because this set-up isn't on the 'officially supported' list yet, I'd look to the MSnS-E documents as much as possible, while being mindful of the differences to MS-II.

The MS-II ignition pin (when connected direct to the port with the IGN-JS10 jumper in place) has an internal 5 Volt pullup, but it is only capable of 25 milliAmps max or so (10 milliAmps is safer).

This may not be enough current for your coil's transistor, so you might need to use the VB921 high current circuit (JS10-IGBTIN & IGBTOUT-IGN jumpers). This doesn't have a pull up in place, to add one see step #65 here:

http://www.msefi.com/msinfo/ms2/V3assemble.htm#output

which has this:

Image

I figured you would have all the MegaTune and code stuff right. I think this thread is a good example for people to study when converting a new 'unsupported' module, so I'm trying to add more than is necessary (which I hope doesn't seem condescending).

We will get this sorted, and then perhaps you could post your mods and settings.

BTW, I am going to move this to the MS-II forum.

Lance.

Posted: Tue Sep 27, 2005 3:08 pm
by FoundSoul
Should I consider trying to add an additional pullup to the MS2 ignition output or would it be a better idea to scrap using the factory ignitor and to go straight to the coil with the VB921 IGBT output?

Or were you saying that I could use the VB921 output with a pullup to drive the factory ignitor?

Thanks again for the help-- and I'll definitely follow up with documentation on what it took to nail this for others to follow.

Posted: Tue Sep 27, 2005 3:30 pm
by Bernard Fife
Jerry,

You could use the VB921 with a pull up as a 'booster' for the signal to the OEM ignitor.

But if this was mine, I would go to the direct coil control with the VB921, and bypass the factory ignitor altogther. It seems simpler to me (you don't need the pull-up, and the settings are known).

There's more on that here:

http://www.msefi.com/msinfo/ms2/vb921.htm

Lance.

Posted: Wed Oct 05, 2005 2:18 pm
by Bernard Fife
there is a weak pullup to 5v on the MS2 ignition output, can I increase this pullup maybe with a 1k resistor from 5v (by the proto area) to IGN or will this potentially cause any other issues?
Jerry,

I think this should be okay, and might solve some signalling issues. However, I was hoping Bruce or Al might comment - they will have a better handle on whether this is likely to cause any processor issues.

If this were mine, I'd be inclined to use the VB921 as a switch for the ignitor, by adding the pull up to it's input (as above). The I could use a 5 or 12 Volt pull up, and be completely isolated from the processor port.

Bruce has been out of email range for a few days, he's back tonight, so perhaps he'll comment in a day or so.

Lance.

Posted: Wed Oct 05, 2005 9:33 pm
by FoundSoul
I don't think the pull-up on the output is going to be needed after all. I got the car idling great tonight at a perfect 20 degrees of timing. I had to swap the TPS wiring around (my wiring was fine, the suby TPS reads 'backwards' so I had to swap the wiring to compensate) and I also had problem with the MS2 unit we were using so I grabbed another one and I'll troubleshoot the original unit later (even without touching the throttle I was still getting PW spikes without explanation). With the TPS wires swapped on the harness adapter and a new MS2 we got the car started and running 'like OE'.

We're not quite ready to tune yet though... We're running a trigger offset of 86 to get it running the proper base timing of 20btdc which is OE spec for this motor. I played around with different combinations of falling/rising edge 'Ignition Input Capture' and normal/inverted 'Spark Output' trying to find a combination that would idle like OE with the trigger offset at 20 where I believe it should be. We also played with the dizzy in combination with the settings and didn't have any luck though we may just have not hit the right combination.

Any thoughts on what I need to do to find the right combination here? I've tried the trial and error method, and I'm hoping there's a more scientific approach though I'm open to suggestions. I suppose we could tune and run the car the way it is, it seems to be running great but it turns over a few times before it starts, probably due to the excessive timing (adv_offset) that it's using while cranking.

I'm attaching a datalog of session, from ignition off, to starting the car and letting it idle for a minute or so, to tapping the gas a few times and then shutting it down. Ignore the dead o2 reading, we had the factory o2 sensor out and I broke out an LM-1 to make sure the AFR was right. I played with the Req_fuel to get it right about 13.5-14:1 at idle (quick n dirty) so it was fine but I didn't mess with wiring it to the MS for this session.

I just want to get the trigger offset right and we'll have this thing on the dyno... That and we'd really like to be able to log knock.

Posted: Thu Oct 06, 2005 6:44 am
by oddcomp
hmm i wouldn't think you would need to run any offset .
since on the orginal ecu you short 2 wires to put the original ecu in a "limp mode" kinda thing so you can set the base timing

so maybe what the oe ecu considers the base timing range might in fact be 1-3 teeth out of sync with what the megasquirt would consider base timing

using this edis setup on the same motor your arguing with i run 0 offset even though i am at like 12 degbtdc instead of the 10 its supposed to have
for the edis limp
and just adjusted the idle portion of the timing map to bring me up to 19-20 begbtdc and scaled up from there and then started creeping back down just before boost ranges

its a totally gheto way to do it especially with out knock sensing or wideband or even a dyno pull or 2 but so far my tired old motor has not blown apart yet lol

Posted: Thu Oct 06, 2005 8:27 am
by Bernard Fife
I've tried the trial and error method, and I'm hoping there's a more scientific approach though I'm open to suggestions.
Jerry,

'Input Capture' and 'Trigger Offset' are related. Here's diagram:

Image

You *could* use either edge IF both event are fixed with respect to the crank position (TDC). This is true for optical sensors, and may be for Hall sensors as well (I *think* it is, but haven't actually had one on a 'scope to do extensive testing).

With a VR sensor, both of these event are definitely NOT fixed, only one is (it correspnds to the 'zero-crossing'), so you have to be sure to get it right.

Spark Ouput is much the same, you are telling MegaSquirt which edge of the output wave to send as the spark timing. However, 'spark output' also has another function: it sends the dwell info. Often if you get both the input capture and spark output wrong, the timing will be close, but vary with dwell (and hence rpm).

If your module relies on MegaSquirt to set the dwell, the 'Spark Output' should be set so the the coil does NOT charge when the engine is off.

You can test this by looking for:

- a voltage drop across the coil (which means current is flowing, which it shouldn't be if the engine isn't running), or
- by hooking a test light in place of the coil (it shouldn't ight if the engine isn't running).

However, in some cases the module, and/or wiring will prevent charging when the engine is off, even if the spark ouput is incorrect. So knowing what sort of signal the module expects is very helpful, and this info can sometimes be found in the sevice manual, etc.

Failing that, I think what I would try is setting the dwell to 0.3 milliseconds while idling. If the engine runs rough or dies, the spark ouput setting is likely correct (since the coil doesn't have enough current to make a reasonable spark). Note that extended running with the Spark Output set incorrectly can burn out the coil and/or the module.

Then, get out a timing light and compare the timing as reported by MegaTune to that seen on the timing light, after you have set the trigger offset ('Tools/Trigger Wizard' in MegaTune).

The indicated and observed advance should be very close over a wide range of rpms (I usually test at idle, ~1500 rpm, ~2000 rpm, and ~3000 rpm, with a 4 cylinder, I'd also check ~4000 rpm) . If the indicated and observed timing values aren't the same at these rpms, then either:

- the edge you are triggering from isn't constant with respect to crank position,
OR
- you are triggering the module off the wrong edge of the out signal (spark output setting is incorrect, causing the dwell to become part of the timing).

Note that if you change the 'Input Capture' setting, you MUST recalibrate the trigger offset.

The 'easiest' way to do all of this is on oscilloscope, but most peole don't have one of those.

Lance.

Posted: Thu Oct 06, 2005 8:53 am
by FoundSoul
So the opto inverts the input signal so I've got to invert my thinking... so my current setting of 'falling edge' with a trigger offset of 86 degrees btdc is is reality triggering on the rising edge of the signal if I scoped it right?

This is an optical sensor in-the-dizzy, so I should be able to use falling or rising edge, and if I know the duration of the pulse in degrees I should be able to set it to 'rising edge' and subtract the duration of the pulse from the current 86 degrees and use this new trigger offset and get it idling exactly as it is now, correct?

If so this would get the trigger offset MUCH closer to 20, maybe close enough I could adjust the dizzy to do the rest.

So how do I determine the duration of the pulse? Do I have a good excuse to go buy an oscilloscope (not that I need to spend the cash)?