How to MegaSquirt Your Chevy LT1, LT4 or L99 with Opti-Spark Ignition


Getting MegaSquirt to work with the Optispark

Updated 3/27/2020

Thanks to “Mobythevan” on hybridz.org for his notes on the settings for MS2!

Application(s): All Chevrolet LT1, LT4, and L99 engines with the Optispark distributor. This includes Camaro, Trans Am, Corvette, and B-body (Caprice, Roadmaster, Fleetwood) applications.

Level of control:  Full Standalone EMS– Fuel and Ignition Control

When GM went looking for a new ignition design for the LT1, they went with a somewhat unlikely source – Mitsubishi. They bought an optical distributor system that was already in use in many Mitsubishi, Chrysler, Subaru, and Nissan applications. The stock ECU uses the 360 slot ring to determine crank angle and the inner ring of eight slots to identify the cylinders.  If you’re using MegaSquirt-II, the ECU does not use the information provided by the second ring of 360 slits or the length of the inner slits, so you just need to obtain a signal from the trailing edge of the ring of 8 slits.   This writeup covers using the stock ignition module for controlling the coil.

MegaSquirt-III has a new, dedicated Optispark mode. This uses both sets of slots.

If you would prefer not to use the Optispark, check out our page on crank triggered ignitions. This can be used for either a distributorless ignition or using the Opti strictly as a distributor.

MS3Pro wiring

Applies to MS3Pro Gen 1, MS3Pro EVO, and MS3Pro Ultimate. These ECUs will need a few resistors in the wiring, but no internal modifications.

Optispark pin out

PinPurpose
ALow Resolution Signal (White connector pin 6)
BHigh Resolution Signal (Gray connector pin 17)
C12 volt power
DSensor ground

You will also need to connect 1K ohm, 1/4 watt resistors from TPS VREF (white connector pin 8) to both the low resolution signal and the high resolution signal to provide a pull-up in the wiring harness. Wire spark output A (gray connector pin 27) to the stock ignition module trigger wire. Alternatively, MS3 allows you to use the Optispark to trigger a distributorless ignition, such as a set of LS1 coils or IGN-1As.

For the injector outputs, use the following pins.

Gray connector pinInjector letterCylinder
1A1
2B8
4C4
6D3
8E6
10F5
11G7
12H2

ECU Modifications (V3.0 or V3.57 main board)

We recommend running this engine on MegaSquirt-III or MegaSquirt-II, depending on your needs. These have a stepper IAC motor control that can drive the stock idle air control valve, which is one feature MegaSquirt-I does not have. For those looking to build this on a budget and who want to figure out another route to control your idle speed, we also have a write-up covering MegaSquirt-I.

Using the MS-III PCBv3.0 or V3.57 ECU with MS3X

  • In step 22, install the stepper IAC jumpers (all of our assembled MS3 units are by default configured this way).
  • Build the ECU up to trigger for inverted VR output. On a V3.0, wire TachSelect to VRIN and TSEL to VROUTINV. On a V3.57, put main board JP1 in the 1-2 position and J1 in the 5-6 position.

That’s it!

Using the MS-II PCBv3.0 or V3.57 ECU

  • In step 22, install the stepper IAC jumpers (all of our assembled MS230-C and MS2357-C units are by default configured this way).
  • Build the ECU up to trigger from the Hall/Optical Input (all of our MS230-C and MS2357-C units are by default configured this way, too.).
  • We will need a 12 volt pull up on the ignition input. Solder a 1K resistor between S12 and TachSelect (for a V3.0 board) or pin 3 of the JP1 jumper (for a V3.57 board). It’s best to wrap this resistor in heat shrink tubing and put it on the underside of the board.
  • To use the stock ignition module, you just need a jumper from JS10 to IGN (on a V3.0 board) or the center hole of Q16 (for a V3.57 board).

That’s it.

Using the MS-I PCBv3 with MSnS-E firmware

Note the separate instructions for v3.0 and v3.57 PCBs

This will let you control fuel and ignition, but not the IAC valve.

MegaSquirt-I PCBv3.0 Mods Required: 

  • This is assuming you are starting with an ECU built up like I build my assembled MS130-C MegaSquirt-I PCB3.0 units.  If you are building your unit up from a kit you can implement these changes during assembly.
  • Flash ECU with MS1/Extra version 029v or later.
  • Install the Hall / optical input circuit (step 50A)
  • We will need a 12 volt pull up on the ignition input. Solder a 1K resistor between S12 and TachSelect. Wrapping the resistor in heat shrink tubing will protect it from accidental shorts.
  • Cut out C12 and C30.  (Only needed when triggering from the – terminal of the coil, which you are not)
  • Remove D1 and jumper it, or just install a jumper wire across it’s leads.  (Only needed when triggering from the – terminal of the coil, which you are not)
  • Cut out R57 if fitted (this won’t be there on my units though).
  • Connect a 1 k resistor from the +5V source in the proto area to the negative lead of D14. The negative LED leads are marked with small minus signs on the board.
  • Run a jumper wire from the negative lead of D14 to the IGN jumper hole.

MegaSquirt-I PCBv3.57 Mods Required:  

  • We will need a 12 volt pull up on the ignition input. Solder a 1K resistor between S12 and pin 3 of the JP1 jumper (for a V3.57 board). It’s best to wrap this resistor in heat shrink tubing and put it on the underside of the board.
  • Run a wire from PAD1 to the center hole of Q16.

That’s it!

Wiring – MS3X

On most ignitions, the MS3X uses pin 32 for the cam input signal. Because of the high frequency of the Optispark, you’ll be using PT4 (pin 31) instead.

Optispark pin out

PinPurpose
ALow Resolution Signal (MS Pin 24)
BHigh Resolution Signal (MS3X pin 31)
C12 volt power
DGround

You will also need to connect 330 ohm, 1/4 watt resistors from TPS VREF (pin 26) to both the low resolution signal and the high resolution signal to provide a pull-up in the wiring harness. Wire spark output A (MS3X pin 14) to the stock ignition module trigger wire. Alternatively, MS3 allows you to use the Optispark to trigger a distributorless ignition.

For the injector outputs, use the following pins.

MS3X pinInjector letterCylinder
19A1
16B8
13C4
10D3
7E6
4F5
1G7
20H2

Wiring – MS2 or MS1

The output is quite straightforward – you will just need to connect the “B” terminal of the stock ignition module to pin 36, leaving all the other coil and ignition module wiring connected to the stock locations. For the ignition input side (tach signal into the ECU), wire the low resolution input signal from the Optispark pin A (this is usually either black with a red stripe, or red with a black stripe) to the MegaSquirt pin 24.

Optispark pin out

PinPurpose
ALow Resolution Signal (MS Pin 24)
BHigh Resolution Signal (Not used with MS2 or MS1)
C12 volt power
DGround

Idle Air Control

LT1s used a stepper idle air control motor. If you have a MegaSquirt-II or III with the V3.0 / V3.57 board, you can drive it from the MegaSquirt pins 25, 27, 29, and 31. MS3Pro units use pins 30, 31, 32, and 33 on the gray connector. GM used several different idle air control valves on the LT1 series; they don’t all have the same connector design.

Other Things the ECU Controls

The stock ECU controls a couple other devices in these cars besides the injectors, ignition, and IAC valve. Here’s what to do about the ones you will need to control.

Fuel pump: Fuel pump output is standard on all MegaSquirt versions, but the GM fuel pumps used a high side driver while the MegaSquirt output is ground triggered. You will need to rewire the fuel pump relay coil so it connects to a switched 12V source and the MegaSquirt fuel pump output pin.

Cooling fans: These cars generally had two cooling fan control outputs. MS3Pro can control these with a PWM or high current output. MS3X can use any of its medium current outputs on the MS3X for fan control. If you have an MS2, you can use the on/off IAC output on pin 30 for one of the fan controls, and use just one MK-RelayCtrl mod kit for the other fan output. We recommend using PA0 – Knock Enable for the output, wiring the input of the transistor to pin JS11, and using SPR3 to bring the output out to pin 3 of the DB37 cable. See here for a picture of an installed relay control mod kit.

Vehicle speed output: Some Corvettes use this for features like active suspension control, and it is linked to the cruise control. MS3 has a vehicle speed output option you can use. If you’re not using MS3, the easiest way to keep this active, if you want to use these features, would be to leave the stock ECU in place, just disconnected from what you have the Megasquirt controlling.

Air conditioning: MS3 can use a spare digital input and a spare medium current output (MS3X) or PWM or high current output (MS3Pro) to run the A/C and provide an idle up. Current MS2/Extra firmware also allows using a switched input to trigger A/C idle up and allows using a relay control output mod to activate the A/C compressor.

Automatic transmission: The Megasquirt itself does not control the 4L60E, but the GPIO board has this capability with a MegaShift mod kit, or you can run a MicroSquirt loaded with transmission control firmware. Otherwise, if you have an automatic you will need to either control it with the stock GM ECU or a stand alone transmission controller.

If you’re doing a parallel installation to keep the stock ECU in control of the transmission, see this article for tips on parallel installs.

TunerStudio Configuration for MS-III (including MS3Pro)

Under the ignition setup menu, set the following.

  • Spark mode: Optispark
  • Trigger Angle / Offset: 0 (adjust as needed if your timing doesn’t line up)
  • Ignition input capture:
    • Rising edge (MS3X)
    • Falling edge (MS3Pro)
  • Spark output: Going High / Inverted if using stock ignition module
  • Number of coils: Single coil
  • Spark hardware in use:
    • MS3X spark (MS3X)
    • Spark (MS3Pro)
  • Cam input:
    • MS3X cam in (MS3X)
    • Digital Switched In 2 (MS3Pro)
    • Note that some Optispark distributors, particularly ones not made by GM, may require turning on the Flip Polarity on High Res Tach signal.

TunerStudio Configuration for MS-II

  • Spark mode: Basic trigger
  • Trigger Angle / Offset: 90 (adjust as needed if your timing doesn’t line up)
  • Ignition input capture: Falling edge
  • Spark output: Going High / Inverted if using stock ignition module
  • Number of coils: Single coil
  • Spark hardware in use: JS10

Set ignition capture to “Falling Edge,” and coil charging to Standard Coil Charging. Dwell will depend on exactly which coil you are using. Cranking trigger time must be set to Calculated. If using MS2/Extra, set the ignition type to Basic Trigger. Trigger angle is in the 90 degree range; this may vary depending on production tolerances, so confirm this with a timing light.

If you use someone else’s .msq file, check the firmware version the .msq file was built on as you cannot always use a file built on one firmware version with an ECU running a different version. It’s best to use the .msq files with the same version of the firmware that the file was built on.  Alternately, you can manually copy the settings over from the borrowed file.

TunerStudio Configuration for MS1/Extra

On the ‘Spark’ menu choose ‘Spark Settings’ and set ‘Spark Output Inverted’ to No when using the stock ignition module.  It is critical to get the Spark Output Inverted setting correct, as setting this wrong can result in damage to the ignition module or coil. For Trigger Angle, start with 68 degrees with a Trigger Angle Addition setting of 22.5 degrees. This may vary a little depending on production tolerances, so check this with a timing light. Dwell settings will depend on the coil used.  A typical rule of thumb is to back off the dwell until you can just barely detect a misfire under lean cruising conditions, then add 0.2 ms of dwell time.

If you use someone else’s .msq file, check the firmware version the .msq file was built on, as you cannot always use a file built on one firmware version with an ECU running a different version. It’s best to use the .msq files with the same version of the firmware that the file was built on.  Alternately, you can manually copy the settings over from the borrowed file.

Suggested parts

You will be able to use your existing sensors, except for the MAP sensor which is built into the MegaSquirt.

MS3Pro:

MS2 options:

MS3 V3.0 or V3.57:

Transmission control:

or

Feedback welcome

If you have any further information, contributions, or questions about this article, please contact us.