MS2-Extra Hardware Manual

Only for use with the MS2-Extra code (HC9S12C64 based microprocessor - MS2 Daughter Board)

NOTE: Please ensure you have one of these daughter boards inside your ECU before continuing. If you have a black microprocessor, then you have an MS1 and these manuals are NOT for MS1 see here for MS1-Extra Manuals

Warning for E-Bay buyers!!
Please see the Official Suppliers list before buying through E-Bay.
This is there for your protection.

Please Note:

All of these instructions / diagrams are to be used at your own risk, like most things there is more than one way to do the same thing, what we have tried to do is to offer a method that we have tested or that others have tested for us. No warranty expressed or implied.

Use at your own risk.
If you do have any suggestions or settings that work please let me know
Philip.Ringwood(at)ntlworld.com


Main Index of MS2-Extra Manuals

Layout of MS PCB's:
V3.0 PCB -- V3.57 PCB

Launch Control -- Switched Maps -- NOS Control -- Programmable Outputs -- Tacho Output -- Idle Valves -- Boost Control

Second O2 input -- Constant Barometric Correction -- Knock Control -- MS2-Extra Pin Usage

Layout of Components -- Suggested Supply points -- List of common components and part numbers

Launch Control

Launch control works when the input (the input can be set to several input pins) is switched low from a switch on the clutch or brake. It retards the ignition to the setpoint when the RPM reaches the first limit, this reduces power and helps to slow the engine down. Then it goes into Hard Limit when the RPM reaches the Hard Limit setpoint. The style of hard rev limit is set by the Limit Methods. For suitable wiring diagrams please see the hardware manual.

The flat shift settings are for use with a clutch switch and allow for different limits when changing gear, so you can keep the throttle wide open. If you press the clutch switch above the flat shift arming limit then the code uses the flat shift limits and retards the ignition and hard limits at the flat shift set points. Any lower than the arming rpm and it uses the launch limits.

These are typically for drag race use. On the line as you edge into stage you are at low rpm. You get into stage, depress the clutch and then push the throttle to the floor. The launch settings will hold the engine at your chosen rpm. When you change gear keep the throttle planted and only use the clutch. Now the flat shift settings come into play and the revs will be limited to those settings. Be sure to also set the normal rev limiter should you miss shift.

Note that if you want to use PE0/JS7 input then the daughter board will require a modification before it will work! See HERE

 

Pin Usage: Select from PE0/JS7, PE1, JS10, PA0/JS11, JS5, JS4 on the V3.0 PCB.
See HERE for more on pin usage.


Table Switching Control

The MS2-Extra code can switch between 2 different Fuel (VE table) and or Spark tables at a specific set point whilst the engine is running. This can be done based on RPM, TPS, MAP KPa or even using an external switch, e.g. when LPG switches on. Once the setpoint has been made the fueling and or spark map will be instantanously swapped over to Fuel VE Table 3 and Spark Table 2 respectively. (Fuel VE Table 2 is reserved for Dual Table)

To use the hardware switched input you must first modify the MS2 daughter board.

* Experts only. Remove R1 on the V3 mainboard and use the non-ground end (bottom of R1) to connect the input circuit to.
On the MS2 card you need to do some EXTREMELY careful soldering.
Run a wire from DIP40 pin15 (by C9) to the unused pin of the MS2 C64 chip itself. This pin is the leftmost one of the top side - be really careful. See yellow wire in diagram below.

(Yellow wire is Switch Tables in on the bottom of R1 of main board, Green wire is Launch use on JS7/PE0)

Next build one of the following circuits:

 

Pin Usage: Remove R1 from the main V3.0 board and connect the above circuit to the bottom hole of R1 on the MS2 V3.0 PCB.
See HERE for more on pin usage.


Nitrous Oxide Control

Note: This can NOT be used on the 2.0 code if you want to run a stepper motor idle valve with MS2-Extra!

The MS2-Extra 2.0 code supports one or two stages of nitrous control in either "wet" or "dry" modes. The operation works as follows.
An arming input signal (ground active) is sent to the Megasquirt CPU when the power is on and the safety switches are closed. Once the arming input is active and the rpm, throttle and temperature conditions are met then the system is activated. (Note! This is different from MS1/Extra.)
Stage 1 outputs in IAC1 and can optionally retard timing and inject additional fuel through the injectors.

MS2/Extra 2.1 code allows different pins to be used for the outputs to allow use at the same time as stepper idle. The first stage is on the "FIDLE" output and the second stage is on the middle LED. These outputs include the driver transistor (equivalent to the 2N2222A below.)


If launch and/or flat shift are used, the nitrous is automatically disabled. You can optionally set a delay from launch to nitrous activation.

Nitrous circuit for Megasquirt-2

DigiKey part numbers:

Farnell part numbers

2N2222A = 497-2598-5-ND
1N4001 = 1N4001/4GICT-ND
2K2 resistor = 2.2KQBK-ND
1K resistor = 1.0KQBK-ND

2N2222A = 920-7120
1N4001 = 352-5326
2K2 resistor = 543-469
1K resistor = 509-164

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.

Nitrous circuit for Microsquirt


    

Pin Usage: JS0 is used for Stage 1, JS2 is used for Stage 2 and either JS4, JS5 or JS10 can be used for the input.
See HERE for more on pin usage.


Programmable Outputs - see here


Tacho Output Pin

The tacho output pin is for use where the car's original tacho signal would have come from the ECU, or it can be used to create a high voltage pulse where a conversion from a single coil setup to a wasted spark setup has been carried out and the original tacho signal came from the switched 12V side of the coil.

Due to the vast amount of tacho's out there it is very difficult to give a suitable diagram, but these have worked for several installation:

 

If the above examples don't work then try fitting a variable resistor in line with the tacho signal and adjust the pot untill it works:

 

Options for High Voltage tacho's (rev counters that were fed from the coils -ve)

Another option for Hi Voltage output to a rev counter (rev counters that were fed from the coils -ve)

DigiKey part numbers:

Farnell part numbers

2N2222A = 497-2598-5-ND
1N4004 = 1N4004/4GICT-ND
1K resistor = 1.0KQBK-ND
Relay = Z2052-ND
1N5355B = 1N5355BMSTR-ND
2N5551A = 2N5551RLRAGOSTR-ND
10K pot = D1AA14-ND

2N2222A = 920-7120
1N4004 = 240-5441
1K resistor = 509-164
Relay = 127-0806
1N5355B = 933-296
2N5551A = 359-105
10K pot = 114-1404

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.

Pin Usage: JS0, JS2. JS10, JS11, D14, D15, D16 and FIdle.
See HERE for more on pin usage.


Idle Valves

Please Note:
Valves with 4 connections are usually stepper motors that MS2-Extra can control using the stepper outputs.
See HERE for those.

The MS2-Extra can control idle valves using PWM (Pulse Width Modulation) this is generally valves that have 2 - 3 connections or it can control a switched valve, i.e. ON or OFF.

The Ford valves and the Bosch valves used for testing have a resistance of just under 1 ohm and pull about 1.2 amps when connected directly to a 12V battery.
As standard the v2.2 Megasquirt uses a 2N2222A and the V3.0 uses a ZTX450. These transistor's are fine as a driver to control a relay, as they have a current rating of 0.8A, which is enough for a relay coil. This type of idle valve would be a single open/closed style valve with no control over how much air it lets in. But to drive a PWM idle valve directly (e.g. bosch or Ford idle valve), you need a more powerful transistor. You have two options. One is to use a ZTX650 or the tougher power darlington TIP122. ( I have tested the ZTX650 and this transistor gets VERY hot as the valve's current is very close to the transistor's limit, so if possible use the TIP122 as this is more than capable)

V2.2 PCB Remove Q5, solder in wires as below to remotely mount the TIP122.
Fit a diode (IN4001) so the banded side is connected to 12V supply and the non-banded side is connected to the collector of the TIP122

DigiKey part numbers:

Farnell part numbers

TIP122 = TIP122FS-ND
Insulation = TO-218-70-ND
(optional) 33R 70W resistor = TEH70M33ROJE-ND
1N4001 = 1N4001/4GICT-ND

TIP122 = 929-4236
Insulation = 520-214
(optional) 33R 50W resistor =
114-1239
1N4001 = 352-5326

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.



V3.0 PCB Remove Q4, Q20, D8 and R39. replace R39 with a wired link or solder the (E) emittor to the right side of position R39 rather than at the Q4 position.

The TIP122 needs to be bolted to the case or the heat bus bar as below, but it MUST be insulated, so make sure you use a mica insulator like on the flyback transistors.

A IN4001 diode needs to be fitted across the output so the banded side of the diode is at 12V and the non-banded side is connected to the FIdle output. To do this either connect it externally at the valve (banded side to 12V supply and non-banded side to FIdle wire) or internally to the MS ECU:

Diagram of TIP122 wired into a V3.0 PCB. Note the Emittor (pink) connected to the right of R39. Also note that the TIP122 is where R37 should be. There's no need to install this and R38 if you wish to use these positions for other components like the TIP122. Simply link out these 2 positions with a wired link. (this can be seen on the above picture)

 

V3.57 PCB, No modifications are required for PWM idle.

2 Wired Valves
These valves are wired between switched 12v and the Megasquirt FIDLE pin. Make sure the 12v is switched off when the megasquirt is off. Many looms contain a protection diode, leave it there.

Some valves will have a spring return to shut them, others have one to open them, so the duty cycle at hi and lo temps depends if the MS ECU has to drive it open against the spring or shut against the spring.
If the ECU has to shut the valve down against the spring to reduce air going through it as temp increases then the duty cycle will need to increase with temp, so the value at low temp will be around 0 and the duty at higher temp will be 100 or so. The opposite if the MS ECU has to force the valve open against the spring to increase air flow.

3 Wired Bosch Valves (0280 140 505)
The bosch valves can also be made to work via the FIdle output, these need the transistor mod as above and they need to be wired as the diagram below. The centre pin goes to +12V, one of the other 2 pins will hold the valve shut when its connected to ground (0V). This pin needs to go to earth via the resistor, the other pin goes to the FIdle output on the DB37 connector.

On a 3 wired valve there are effectively 2 windings that fight against each other, one opens the other closes it. So we put a resistor in line to ground with one winding, this shuts (or opens it depending on what winding you use) the valve, so its like having a spring holding it one way. The MS ECU then forces it either shut or open, it can do this as the resistor in the other winding limits how much it can force it one way.

    

Other Idle Valves

There are valves that need no control other than a 12V supply when the ignition is on. These heat up a bi-metalic strip that rotates a plate inside the valve and shuts the air down as the engine heats up, these are known as Extra Air Valves. They are becoming rare and hard to get old of, they were fitted to various engines, like the Flapper type RV8 EFI's. The Idle Speed has to be controlled with the throttle stop when using these type of valves, as the valve is only used to add air when the engine is cold.
Here is a Bosch example:

 

If you had an FIdle output when using the MS1-Extra code then you will need to set this up as PWM, if you have a stepper motor wired in then you can set this up as a IAC Stepper, but remember the 2 programmable IAC outputs (programmable to switch on at xxRPM, or xxxTPS, etc) can not be used when using them as a stepper controller.

If you have an IAC stepper motor, you will have to choose between 'moving only' and 'always active'. If you set your stepper to 'always on' for 15 min or so and it doesn't feel too hot to you, then you can leave it that way. Apparently this is what General Motors does. But if you want to be safe you can test it on the bench for 15 min or so. It will get right warm, but it shouldn't burn your fingers just touching it. If it gets too hot, use 'moving only' instead.

 

Algorithm (IdleCtl): If you have a:
Fast Idle Valve (FIdle):
For an on/off fast idle valve, set the algorithm to 'Solenoid'. You can also set your Fast Idle Threshold if you have installed a fast idle solenoid. Enter a coolant temperature to turn on the fast idle solenoid. A typical value is 145º Fahrenheit. The Fast Idle valve will be activated below this temperature (145ºF) and turned off above 145ºF. The Fast idle Threshold is independent of any warm-up enrichment. Fast idle valves generally have one or two wires.
PWM Warmup: This is for the Ford or Bosch pulse width modulated idle air valves. Ten temperature dependent levels of PWM are user specifiable if this option is selected (see 'Idle PWM Dutycycle' under 'Tables'). Modifications to the board are required, see this link for more details.
Idle Air Controller (IAC): If you have a stepper motor IAC, you can set the IAC Start position, as well as ten intermediate positions based on the coolant temperature to allow a decreasing amount of "extra air" as the engine warms up. These are set under 'Tables/Idle Steps' in TunerStudio. Stepper motor IACs usually have four wires.
IAC Stepper Moving Only: Powers the stepper only when changes in pintle position are requested. This is the most common type, it holds its position if not powered, and is difficult to turn by hand.
IAC Stepper Always On: Powers the stepper at all times. Required if your stepper 'free wheels' when you spin its pintle un-powered with your hand.
15 Minute IAC: This operates the IAC stepper motor as 'always on' for 15 minutes, then switches to 'moving only'. This can be useful in some situations in which the stepper moves unreliably if moving only at the lower voltages of cranking and warming up, etc.

To select the appropriate 'Idle Control/Algorithm' for stepper motor control in TunerStudio you may need to do some testing. In some cases setting the stepper motor to "IAC Stepper Always On" will cause the IAC to get hot. However setting it to "IAC Stepper Moving Only", might cause a problem with idle speed changing from one start to another.

You can test if your IAC is suitable for 'always on' by leaving your stepper powered on the bench for 15 min or so. If it doesn't feel too hot to you, then set it to "Always On". Apparently this is what GM does. But if you want to be safe they should test it on the bench for 15 min or so, or monitor it closely in the car while not moving for at least 15 minutes, checking the IAC temperature frequently with your fingers. It may get warm, but it shouldn't burn your fingers just touching it.

Leave the other values (below) alone, you can experiment with them when you get the engine running.

 

Time Step Size (ms) (IACtstep): IAC stepper motor nominal time between steps (i.e., 2.5 milliseconds gives pulse frequency of 400 Hz).
Acceleration Step Size (ms) (IACaccstep): not currently used.
Number of Acceleration Steps (IACnaccstep): not currently used.
Start Value (IACStart): The number of steps applied to retract the IAC pintle to 'wide open' at power up.

Cranking Position (IACcrankpos): During cranking, extra air may be useful in the same way as extra fuel in cranking pulses. The table value for the starting temperature may be fine after the engine has started up, but during cranking more power may be needed, especially if the starting temperature is cold. To provide this, you can input a step position that provides a larger than normal air opening during cranking. So, if in cranking and 'Cranking Position' < table value, then the IAC motor position (or PWM%) is set to 'Cranking Position', and when cranking is done, the motor position starts tapering (over the 'crank to run taper time') up to the table value over a user input period, typically a few seconds. (See the diagram below) If this feature is not desired, Just set 'Cranking Position' to a value higher than any table value. Then the table value will always be used since it provides more opening.

Crank-to-Run Taper Time (IACcrankpos): This is the time over which the cranking position of the idle (either the stepper steps or the PWM%) is moved to match the table value (see diagram below). Higher values give a higher idle for longer periods, which can improve starting performance.

Hysteresis (°) (IdleHyst): This input can be used to avoid continuous motor motion (and wear) for small coolant temperature changes. Changes to the motor are only made when new coolant temperature> coolant temperature on the last move, or, new coolant temperature < (coolant temperature on the last move - Hysteresis temperature). What this does is allow constant motor motion while the coolant temperature is rising, but when it peaks, there will be no further motion unless things cool back down - which is unlikely.

Time Based After Start (extended warm-up): You should NOT use the Time Based After Start (extended warmup) option unless you find you need it, and very few will. Disable it by setting the 'cold temperature to -40°F. Then this feature will not be used unless the coolant temperature at startup (ECU first powered on) is below -40°F. This feature is used toward the end of the warmup sequence when the coolant temperature is close to its final operating temperature. In this case, fast idle will normally come off, but SOME cars (very few) may need extended fast idle. An example is a car that uses heavy weight oil, which is nowhere near at operating temp when the coolant gets there, plus a hot cam with not enough idle torque to overcome the oil drag.
This feature is implemented by inputting a 'Cold Position' that is the step position at start of extended warmup, typically about 80% of the final, fully closed step position. The IAC behaves normally until the step position commanded from the table just exceeds this Cold position value (either PWM or stepper). From that point on, the steps are tapered in so as to reach the last step value in the table over the 'cold taper time' period. (see the diagram). This slows the reduction in idle air as the engine continues to warm up (increasing the idle speed for longer than the coolant temperature alone would do).

When using the PWM mode it has a table to set the Duty Cycle.

...........


Boost Control

This system is used to control the boost pressure from a turbo via a fast acting valve on the waste gate, but it is still EXPERIMENTAL and must be used with caution!

DigiKey part numbers:

Farnell part numbers

10K resistor = 10KQBK-ND
100R resistor = 100QBK-ND
IRLZ44 = IRLZ44N-ND

10K resistor = 543-627
100R resistor = 543-147
IRLZ44 = 229-0765

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.

Pin Usage: JS0, JS2, JS11 and FIdle.
See HERE for more on pin usage.

The Solenoid Frequency is the pulse width that is used to control the solenoid, this will need to be experimented with to get your system to react best to the controller.

The Controller Interval is how often the ECU will look at the boost pressure and adjust the setpoint in mSecs.

The Proportional Gain is how hard it seeks the target.

Differential Gain means how it will react to sudden changes, it's roughly a predictive term, but for best results it probably has to be kept to a small value. Tune proportional first, leave differential for later

The Output Polarity is for setting the valve so it operates the right way, generally as PWM Increases the Boost Increases.

    


Second O2 Input

In MS2-Extra you can select to use either 2 wideband or 2 narrow band sensors. If using Widebands ensure they both are configured to give the same output for the AFR range as they MUST have an identical AFR/V output.


When two O2 sensors are in use and EGO correction is active, the first sensor is used to correct 'bank 1' and the second 'bank 2'

DigiKey part numbers:

Farnell part numbers

5.1V Zener = 1N5231BDICT-ND
0.22uF Cap = P10971-ND
1K resistor = 1.0KQBK-ND
1M resistor = 1MQBK-ND

5.1V Zener = 931-767
0.22uF Cap = 389-1215
1K resistor = 543-380
1M resistor = 544-103

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.

Pin Usage: JS4 or JS5
See HERE for more on pin usage.

Under EGO Control select EGO Sensor Type and choose your sensor and then select which pin it is connected to in 2nd EGO sensor port

Like all wideband sensors, ensure you calibrate the MS ECU for your sensor's configuartion, see HERE


Constant Barometric Correction

The MS ECU uses the first reading from the map sensor when it powers up as the barometric reading for correcting barometric pressure. You can gain constant barometric correction by fitting a second map sensor (preferably the standard MS MAP sensor) to inputs JS4 or JS5:

DigiKey part numbers:

Farnell part numbers

0.22uF Cap = P10971-ND
1K resistor = 1.0KQBK-ND

0.22uF Cap = 389-1215
1K resistor = 543-380

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.

Pin Usage: JS4 or JS5
See HERE for more on pin usage.

To set up your ECU to give constant barometic correction go to Basic Setup - General/Lags

Set the Barometric Correction to Two Independant Sensors and then select either JS4 or JS5 for the port depending on where you connected it.

Then under Tools and Sensor Calibration ensure the Barometric Sensor is set up for the type of sensor you used:

MPX4115 use 10.6 and 121.7
MPX4250 use 10.0 and 260.0
MPXH6300 use 1.1 and 315.5
GM 3-BAR use 1.1 and 315.5
MPXH6400 use 3.5 and 416.5

Barometric Correction

Correction for barometric effects is performed using the linear function below.

correction = correction_0 + (rate * barometer) / 100

'At total vacuum' contains the total correction at a barometer reading of 0 kPa (you are on the moon). The 'Rate' contains the percentage per 100 kPa to scale the barometer value. Using the default values of 147 and -47, we see that for a barometer of 100 kPa, we have 100% correction.

correction = 147 + (-47*100) / 100 = 100%


Knock Control

Note: the knock sensing feedback system has been tested on the bench, but not in a vehicle. Use with caution and test your settings on the bench first.

Spark knock is the sound of abnormal combustion in an engine. Once combustion in a spark-ignition internal combustion engine is initiated by a spark, the flame front is designed to spread from the spark plug and travel across the combustion chamber rapidly and smoothly. As the flame front propagates across the chamber, the remaining unburnt air-fuel mixture can ignite spontaneously (auto-ignites) before the flame front arrives, due to the increasing pressure and temperature in the combustion chamber. When this occurs, there is a sudden jump in the pressure in the cylinder. This causes in the characteristic knocking or pinging sound. Prolonged heavy knock can cause severe and permanent engine damage. Knocking often results from ignition timing that is too advanced for the fuel octane rating and operating conditions at that moment.

A knock sensor can be used in conjunction with electronic spark control to optimize the ignition advance for the fuel being used. One limiting factor in ignition timing control is 'knocking', which is uncontrolled burning of the fuel in the combustion chamber. This can be affected by intake air temperature, coolant temperature, engine age and condition, air/fuel ratios, air density, altitude and humidity, among others.

The knock sensor is tuned to a specify frequency, like a tuning fork. When this frequency is applied to the sensor (through its connection to the engine), a piezoelectric crystal inside the sensor generates a small voltage (~1 volt), much like a microphone. As an example, some Corvette knock sensors (GM PN 1997562, 1997699, OR Standard Motor Products KS45, KS46, KS49, or KS117) have a design frequency of 5200 hertz, and they produce a signal between 4800 rpm and 5600 rpm.

The sensor should be mounted near the top of the engine block, as close to the center as practical. Do not mount it close to noisy components such as the fuel pump or cam shaft lifters. Mounting the knock sensor in the cylinder head is not a good idea because of valve train noise.

Finding a suitable location of the sensor is crucial. Wherever possible, use the location specified by the manufacturer for that engine family. Bear in mind that knock sensing is not a magic bullet. If the compression ratio, boost pressure, or oil contamination is too high for your fuel quality, either knock will occur or you will lose power by having to retard timing to prevent it. Sustained severe knocking (detonation) WILL destroy your engine, sometimes within a few seconds.

Ideally, you will be able to find a suitable threaded hole in your block to which you can mount the sensor. If not, an alternative is to drill and tap the block, or thread a steel adapter to accommodate the sensor on one end and a stub with the thread to match those in an existing pre­tapped boss in your block. Note that it may be necessary to change the sensor location if you cannot isolate engine noise while allowing MegaSquirt-II to identify knock.

If you choose to drill and tap your block, choose a thick area of the block with a boss that is at least ¾" (19 mm) thick. Drill a ½" (13mm) hole. The hole should be 0.500" to 0.625" (13 mm to 16 mm) deep. Make absolutely sure that it is safe to drill a hole this size - YOU CAN RUIN YOUR ENGINE'S BLOCK WITH A POORLY PLACED HOLE!

The GM knock sensors have a 3/8" NPT thread. Tap the hole with a 9/16" UNF starter tap. Go in 4 turns of the tap to begin with, clean out the chips and try the sensor for fit. Keep tapping one turn at a time until the sensor threads in 4 to 5 turns with hand pressure. Stop tapping when the sensor will screw into the hole 6 to 7 threads with a wrench. Note that the thread on the knock sensor is a tapered thread.

Above approximately 5000 rpm, however, this knock may be masked by mechanical noise. MegaSquirt-II's tuning software allows you to set an upper rpm limit on the knock sensor feedback.

On the Corvette L83/L98/LT1/LT4 engines, this sensor is usually screwed (with a specified torque value) into the coolant drain hole near the center of the block side, just above the oil pan rail. This location has been chosen as optimum for this sensor and engine family. On the LS1 engine, the sensors (there are two) are located in the center valley on top of the engine.

A conditioning module is also required, such as GM's Electronic Spark Control (ESC) module (PN 16022621, 16052401), see above. These are also available as Standard Motor Products LXE6, LXE7, and LXE9. These are very common in recycling yards, they were used all virtually all GM vehicles from the mid-1980s to the late 1990s. You should match the sensor and module by application to ensure they will work together properly.

Note that you can get a KnockSenseMS kit designed to work with MegaSquirt from this site.

Wiring the Knock Sensor and Module

The ESC module sends a voltage signal (8 to 10 volts) when NO knock is detected by the knock sensor. If knock occurs, this signal is pulled low.

This signal is fed to the MS2-Extra ECU via either Pin 3,4,5 or 6 of the db37 connector (SPR1,2,3 and 4 respectively) and linking that pin to either JS4 or JS5. However you need to reduce the module signal voltage since it is too high for the processor port directly. You can use the proto area on the V3 main board, a 1K Ohm resistor (1/4 or 1/8 watt), and a 4.7 Volt Zener 1W diode (Digi-Key 1N4732ADICT-ND, 36¢) to do this, as shown below:


You can use other through holes in the proto area, these are shown only as an example.

However the knock signal by itself is not sufficient for detonation feedback ignition timing control for MS2-Extra. You need to set up the settings in the tuning software:

Go to Extended -- Knock Sensor Settings:


MS2-Extra Pin Usage chart for MS2.

Note: Any function in the same row (A B C D E F or G) can NOT be used together!
(e.g. if you are using 6 spark outputs you cannot use the second O2 input as it requires the same pads, etc)

Pad

A

B

C

D

E

F

G

JS0
(IAC1A)

Stepper Motor

(JS0 - JS3) †

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 1) (3)

Boost Control PWM Output (2)

...

...

JS1
(IAC1B)

Stepper Motor

(JS0 - JS3) †

...

...

...

...

...

...

JS2
(IAC2A)

Stepper Motor

(JS0 - JS3) †

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 2) (3)

Boost Control PWM Output (2)

...

...

JS3
(IAC2B)

Stepper Motor

(JS0 - JS3) †

...

...

...

...

...

...

JS4
(AD7)

Constant Barometric Correction (1)

Knock Input (4)

Launch Control Input (4)

Second O2 input (1)

NOS Input (4)

Spark F

Tacho Output

JS5
(AD6)

Constant Barometric Correction (1)

Knock Input (4)

Launch Control Input (4)

Second O2 input (1)

NOS Input (4)

Spark E

Tacho Output

pin15#
(PE1)

...

...

Launch Control Input (4)

...

NOS Input (4)

Switch VE and or Ignition map Tables

...

JS7#
(PE0)

...

...

Launch Control Input (4)

...

NOS Input (4)

...

...

JS10

Second Trigger Input

Launch Control Input (4)

Tacho Output

...

NOS Input (4)

Spark A

(always for EDIS, optional for other)

...

JS11
(PA0)

Spark D
(8cyl wasted, 4+cyl COP)

Launch Control Input (4)

Tacho Output

Programmable Output (3)

Boost Control PWM Output (2)

NOS Input (4)

...

D14
(InjLED)

Spark A
(Virtually all ignition setups, except EDIS)

Programmable Output (3)

Tacho Output

...

...

...

...

D15
(WLED)

Spark C
(3+cyl COP, 6+cyl wasted spark)

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 2) (3)

...

...

...

D16
(ALED)

Spark B
(any COP, 4+cyl wasted spark)

Programmable Output (3)

Tacho Output

...

...

...

...

FIdle

PWM Idle Valve Control (2 or 3 wired valves) (2)

Tacho output

Programmable Output (3)

NOS Relay Output

(Stage 1) (3)

Boost Control PWM Output (2)

...

...

All 4 (JS0-JS3) pads are used for the stepper motor if selected!

# A modification is required on the MS2 card to use this pin! See here

(1), (2), (3), (4) These functions can also use the I/Os on a remote CAN bus enabled device:

(1) analog input (ADC), (2) PWM output, (3) digital output, (4) digital input


MS2-Extra Pin Usage chart for MicroSquirt (cased)

Note: Any function in the same row (A B C D E or F) can NOT be used together!
(e.g. if you are using the stepper motor you cannot use the additional injector channels as they require the same pads, etc)

...

Pad

A

B

C

D

E

F

PT7

Not available

...

...

...

...

...

PT6

Not available.

...

...

...

...

...

IACEnbl

Not available.

...

...

...

...

...

SPAREADC
(AD6)

Constant Barometric Correction (1)

Knock Input (4)

Launch Control Input (4)

Second O2 input (1)

NOS Input (4)

...

SPAREADC_2
(AD7)

...

Knock Input (4)

...

...

...

...

PE1

Not available.

...

...

...

...

...

FLEX

...

...

Launch Control Input (4)

...

NOS Input (4)

...

TACHOUT

...

Programmable Output (3)

Tacho Output

...

...

...

PA0

Not available

...

...

...

...

...

IGNOUT
(IGN)

Spark A
(All ignition setups)

...

Tacho Output

...

...

...

IGNOUT2

Spark B
(any COP, 4+cyl wasted spark)

...

...

...

...

...

WLED

Spark C
(3+cyl COP, 6+cyl wasted spark)

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 2) (3)

...

...

ALED

Spark D
(4cyl COP, 8cyl wasted spark)

Programmable Output (3)

Tacho Output

...

...

...

IDL
(FIdle)

PWM Idle Valve Control (2 or 3 wired valves) (2)

Tacho output

Programmable Output (3)

NOS Relay Output

(Stage 1) (3)

Boost Control PWM Output (2)

...

(1), (2), (3), (4) These functions can also use the I/Os on a remote CAN bus enabled device:

(1) analog input (ADC), (2) PWM output, (3) digital output, (4) digital input


MS2-Extra Pin Usage chart for MicroSquirt module

Note: Any function in the same row (A B C D E or F) can NOT be used together!
(e.g. if you are using the stepper motor you cannot use the additional injector channels as they require the same pads, etc)

Pad

A

B

C

D

E

F

PT7

Stepper Motor †

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 1) (3)

Boost Control PWM Output (2)

Injector channel 4

PT6

Stepper Motor †

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 2) (3)

Boost Control PWM Output (2)

Injector channel 3

IACEnbl

Stepper Motor †

...

...

...

...

...

SPAREADC
(AD6)

Constant Barometric Correction (1)

Knock Input (4)

Launch Control Input (4)

Second O2 input (1)

NOS Input (4)

...

SPAREADC_2
(AD7)

Constant Barometric Correction (1)

Knock Input (4)

Launch Control Input (4)

Second O2 input (1)

NOS Input (4)

...

PE1

...

...

Launch Control Input (4)

...

NOS Input (4)

Switch VE and or Ignition map Tables

FLEX

...

...

Launch Control Input (4)

...

NOS Input (4)

...

TACHOUT

...

Programmable Output (3)

Tacho Output

...

...

...

PA0

...

Launch Control Input (4)

Tacho Output

Programmable Output (3)

Boost Control PWM Output (2)

NOS Input (4)

IGNOUT
(IGN)

Spark A
(All ignition setups)

...

Tacho Output

...

...

...

IGNOUT2

Spark B
(any COP, 4+cyl wasted spark)

...

...

...

...

...

WLED

Spark C
(3+cyl COP, 6+cyl wasted spark)

Programmable Output (3)

Tacho Output

NOS Relay Output

(Stage 2) (3)

...

...

ALED

Spark D
(4cyl COP, 8cyl wasted spark)

Programmable Output (3)

Tacho Output

...

...

...

IDL
(FIdle)

PWM Idle Valve Control (2 or 3 wired valves) (2)

Tacho output

Programmable Output (3)

NOS Relay Output

(Stage 1) (3)

Boost Control PWM Output (2)

...

All 3 (PT6-7, IACEnbl) pads are used for the stepper motor if selected! This also requires an external stepper motor controller

(1), (2), (3), (4) These functions can also use the I/Os on a remote CAN bus enabled device:

(1) analog input (ADC), (2) PWM output, (3) digital output, (4) digital input


 

V3.57 PCB

As can be seen, theres no proto area on the V3.57 and the components are very small. So soldering wires onto the board for spark outputs, hardware options, etc, is going to need a great deal of care. You may even have to remove some parts, which is not easily done to surface mount components, so I don't feel these manuals should cover doing this, as damage is very easy to do. Also a daughter board will need to be built if you want some of the hardware options as theres no proto area to build on. I have therefore assumed if you bought a V3.57 that you will not be modifying it to use the hardware functions such as Tacho out, PWM Idle valves, Boost control, Launch input, etc, etc. If you do wish to use these then you will have to build a daughter board of some form to mount the components on. If you use more than 2 spark outputs youll need to use the db15 connector, but ensure you strengthen the traces on the board with copper wire or solder to the pin directly, also connect the outputs in pairs of pins, as per the instructions HERE.

Note that the JS0 - JS11 pads are all electrically the same as the V3.0 PCB as are the SPR1 - 4 pads, so they can be used in the same way as the V3.0 PCB. The addition is JS12 wich is the same as the bottom of R1 on the V3.0 pcb, but R1 will still need to be removed to use it on the V3.57, so be very very carefull !!!


The table below is a chart representation of the card above.

DB37pin

Function

Name

 

 

DIP40 pins and MS2 CPU ports

 

 

Name

Function

DB37 pin

 

 

 

.

---

------------------------------

------------------------------

---

.

 

 

 

32,33

inj 1

PWM0

|

21:

IOC1,2 via AND gate

VCC

:20

|

VDD

+5v

-

34,35

inj 2

PWM1

|

22:

IOC3,4 via AND gate

VSS pins

:19

|

VSS

gnd

-

-

MAP sensor

AD0

|

23:

AN00

PA0

:18

|

JS11

flex fuel, launch, tach out, SparkD (2.0)

-

20

MAT

AD1

|

24:

AN01

IOC5

:17

|

JS10

IGN, SparkA, SparkD (1.0), tacho out, 2nd trig in (2.0)

typ 36

21

CLT

AD2

|

25:

AN02

stepper chip

:16

|

JS9

+12v

-

22

TPS

AD3

|

26:

AN03

* (PE1)

:15

|

on R1

Table Switching

DB37 pin

-

Batt

AD4

|

27:

AN04

IOC0

:14

|

IRQ

tach in

typ 24

23

O2

AD5

|

28:

AN05

RXD

:13

|

RXD

Serial RX

DB9

-

baro,ego2,knock,launch,SparkE

JS5

|

29:

AN06

TXD

:12

|

TXD

Serial TX

DB9

-

baro,ego2,knock,launch,SparkF

JS4

|

30:

AN07

CAN chip

:11

|

JS8

CANLout

typ 4

-

+5v

-

|

31:

VRH

* (PE0)

:10

|

JS7

launch, flex, 2nd trigger(1.0)

-

-

gnd

-

|

32:

VSS pins

PM5

:9

|

Warm LED

LED15, SparkC, tacho out

-

37

Fuel pump

FP1

|

33:

PE4

PM4

:8

|

Acc LED

LED16, SparkB, tacho out

-

30

Idle control, tach out

Idle1

|

34:

PM2

PM3

:7

|

Inj LED

LED14, SparkA, tach out

-

typ 31

IAC2B, tacho out

JS3

|

35:

stepper chip

CAN chip

:6

|

JS6

CANHout

typ 3

typ 29

IAC2A, tacho out

JS2

|

36:

stepper chip

-

:5

|

-

crystal unused

-

typ 27

IAC1B, tacho out

JS1

|

37:

stepper chip

-

:4

|

-

crystal unused

-

typ 25

IAC1A, tacho out

JS0

|

38:

stepper chip

-

:3

|

-

crystal unused

-

-

flyback

fb inj2

|

39:

IOC3

VSS pins

:2

|

VSSA

gnd

-

-

flyback

fb inj1

|

40:

IOC1

VDDA

:1

|

VDDA

+5v

-

 

 

 

.

--

-----------------------------/

\-----------------------------

--

.

 

 

 

Note: ports is braces () indicates not a normal connection - see * below.

See also the schematics and external wiring diagrams


Spare ports

For configuration details, see Spare Ports

PE0/1 / JS7

* JS7 can be used as an input with a small mod on the MS2 card itself. VERY carefully solder a small wire from the DIP40 pin10 (by C10)
The Green wire in the diagram shows it being used for Launch on JP4

* Experts only. DIP40 pin15 can also be used as an input. Remove R1 on the V3 mainboard and use the non-ground end (bottom hole of R1).

For Switch Maps youll need to do some EXTREMELY careful soldering. Run a wire from DIP40 pin15 (by C9) to the unused pin of the MS2 C64 chip itself. This pin is the leftmost one of the top side - be really careful.

mods to MS2 board




Suggested points for Supplies inside the V3.0 ECU

 

 

Component Pinouts

Pull up circuit diagram

List of component part numbers used in the ignition section:

DigiKey part numbers:

Farnell part numbers

2N2222A = 497-2598-5-ND
1N4001 = 1N4001/4GICT-ND
1K resistor = 1.0KQBK-ND
470R resistor = 470QBK-ND
2K resistor = 2.0KQBK-NB
330R resistor = 330QBK-ND
680R resistor = 680QBK-ND
200R resistor = 200QBK-ND
270R resistor = 270QBK-ND
1K5 resistor = 1.5KQBK-ND
4K7 resistor = 4.7KQBK-ND
0.01uF Cap = P3103-ND
4N25 (opto) = 4N25ASHORT-ND

2N2222A = 920-7120
1N4001 = 352-5326
1K resistor = 509-164
470R resistor = 543-305
2K resistor = 543-457
330R resistor = 543-263
680R resistor = 543-342
200R resistor = 543-214
270R resistor = 543-240
1K5 resistor = 543-421
4K7 resistor = 543-548
0.01uF Cap = 389-0995
4N25 (opto) = 102-1090

Please note: Above part numbers will need checking, some components will come with a minimum order in multiples of 5 and 10.


If you have a question, comment, or suggestion for this FAQ please post it on the forum.

No part of this manual may be reproduced or changed without written permission from James Murray, Ken Culver and Philip Ringwood.