Megasquirt-3 MS3 DIY board assembly manual


Introduction - Build choices - Version 2.2 - Version 3.0 - Version 3.57 - MS3X setup


This manual page is primarily intended to help you through the DIY soldering together of the V3.0 mainboard. If you bought a pre-assembled Megasquirt, then this should all be covered. This may also be of use if you are changing the installation of a Megasquirt and need to alter the tach input.


Before starting assembly it is important to make some decisions regarding the build. While these can be altered later, it makes life easier if you are able to get it right first time and saves desoldering parts you already added.

MS3X or no MS3X ?

With MS3X
The MS3X card provides cam input, 8 logic spark outputs, 8 outputs for high impedance injectors, 6 mid current PWM outputs, 3 analogue inputs and 4 switch inputs.
When using the MS3X you will typically not be installing additional spark drivers on the mainboard (using logic COPs or an external spark box) and you do not need to make modifications for PWM idle.
The mainboard injector channels are spare and could even be omitted if you won't use them. They can be used for staging, dual fuel or high-current outputs like nitrous solenoids.
Typically though, it is worth installing all major components from the kit for completeness.

Without MS3X
In this case, you do need to consider the mainboard customisation. You might need to add spark drivers.
PWM idle - If you are running PWM idle then you will need to add the additional drive transistor.
Low-z injectors - If you are running low-z injectors then installing the current limiting sense resistors R37 and R38 is strongly recommended. If you are running hi-z injectors, then you could choose to omit these resistors and install a link jumper instead to free up two spaces on the heatsink, but generally just install them.
Cam input - if you need a cam input you will likely have to add a DIY circuit for one.

Mainboard version 2.2

The v2.2 is now technically obsolete, but is still supplied due to user demand.
It was designed for fuel-only control triggering from coil-negative, which it does fine. However, it does not include support for VR (magnetic) type crank sensors which are now widely used for fuel and ignition control. But more importantly, there are no provisions to physically mount the MS3 card and if you were to drill the PCB you would break through some traces.
Thus, it is not recommended for MS3 installs and will not be covered.

Mainboard version 3.0

The v3.0 is the current DIY assembly mainboard.

Please note: You can simply fit all of the components if you wish. The explanation below is to save you fitting more than is needed, or having to remove components you've already soldered in because they need swapping for another value, need to be removed or simply aren't used.

1) It is assumed you can already solder, if not then there are lots of good articles that explain how to do that on the internet already, so we won't cover that here.
If you are inexperienced at soldering then assembling the Megasquirt simulator (stim) or another electronics kit first is strongly advised. Some components on the board are quite fiddly and one small solder-bridge is enough to cause big problems.

For self assembly it is expected that you will have bought a kit from one of the recommended suppliers. The description below assumes all of the same valued components are in bags (e.g. R39 and R40 are the same value, so would be in one bag, C16 and C17 are the same values, so would be in another bag, etc) as they would be from a MegaSquirt kit supplier.
(While it is possible to buy all the parts individually, for a single Megasquirt build this is likely to be extremely time consuming and not worth the effort - just buy a complete kit, really.)

2) Clear space on a work bench with good lighting. Get your tools together - soldering iron, solder, stand, wire snippers etc.

3) Start the build by soldering in the 2 connectors (37 pinned and 9 pinned items)

4) Next get all the bags of resistors together, keeping them in the bags. (R1, etc)
    Find R12, R37, R38, R43, R39 and R57. Put them out of the way for the moment as you don’t need them yet. R57 is never needed and should not actually be part of the kit.

5) Now solder all of the rest of the ordinary resistors in place - soldering from the top. Note: There is no polarity for resistors, so they can fit in either way round.

6) Now solder in the two variable resistors R52 and R56 ensure the adjusting screw matches the legend on the silkscreen. Even though these look identical, they are different values so do not mix them up. Solder from below.

7) Next get all the bags of diodes together, keeping them in the bags. (D1, etc) Note, ALL of the diodes have a strip on them that MUST go the same side as the strip marked on the board!

8) Remove D1 and D2 from the bags and put them to one side. Keep both these diodes as you may need them (FIdle output mods). Note, D1 may need installing if your using a coil -ve triggering setup.

9) Find D8 and remove it from the bag. (Keep this to one side as you may need it later, it's a 22V Zener)

10) -

11) Next you can fit all the rest of the diodes.



12) Next get all the bags of capacitors together, keeping them in the bags (C1, etc).
      If you’re using the coil –ve as the trigger input go to step 15 (This is rare now.) Note that you CANNOT trigger from coil negative if you are trying to run ignition or sequential fuel - you need a trigger-wheel arrangement.

13) As long as you’re NOT using the coil –ve as the trigger input (Fuel only) find C30 and instead install it in H1/Boot (This adds smoothing to the battery voltage measurement and reduces the chance of noise getting injected into the CPU from the 12V line.)

14) Find C22 and C14, C16 and C17. Solder these in. Note, these are polarised, ensure the lead with the “+” next to it on the component goes into the square pad on the board, this is also labelled with a ”+” on the board.

15) Now solder all the rest of the capacitors in. Solder from above.


15B) Solder in the two polyfuses F1 and F2. Solder in the two inductors L1 and L2, leave a little gap underneath. Solder in MOV1 (looks like a big round capacitor.) (Not shown installed in this photo.)

16) Now find the bag with all the chips in it, U6, U3, U7, U4 and the 40 pin socket for U1. Solder these in place, be careful to get them the correct way round! Also, be sure not to mix up U4 (IXDI404) and U7 (MC33072)
U7 could be one of two parts, the LM2904 works in 99% of cases though is being phased out and replaced with a substitute (MC33072) that has been shown to solve problems that a very small number of vehicles (e.g. LS1) may experience.
      Note, the notch in the component must line up with the notch shown on the board. For the chips it usually works well to solder one leg in from above (to hold the part in place) then turn the board over and solder in all legs from below for a better joint and less heat into the chip.

17) Find Q16, (Ignition Transistor), D14, D15 and D16 (LEDs) Q4 and Q20 (small transistors) and MS3 CPU card. Put these to one side but don’t lose them!!

18) Now place the metal strip (heatsink) in place and start fitting the main power components (U5, Q12, Q11, Q5, R38, Q9, Q3, Q1, R37), remembering Q9 and Q12 have a piece of mica insulation under them to stop them touching the heatsink!
      Note, you can temporarily fit a couple of screws to hold the heatsink in place whilst you put the parts in. All power components should be fitted with a smear of thermal grease.

See step 28 before installing Q16.
Without micano mica
With micamica

19) Find Y1 (crystal) this is very very small. This is not needed for MS3, but for completeness you can fit it so that the body of the crystal lays on the metal pad above the holes. You should glue this to the board or very carefully solder it so it doesn't move about.

20) You can now fit all the other components (polyfuses, MOV etc), except for those that you put to one side! I fit the MAP sensor last, don’t forget to bolt it in place with the plastic screws then solder it in once it's secure. It mounts on the underside of the board. Note, if using metal screws, don’t tighten them up too much or the sensor case will distort and read incorrectly. This is installed with the writing facing you, the 'round' side goes towards the board. One of the pins has a small notch out of it which goes in the hole with 'notch' next to it.
When installing the small transistors, the rounded side of the package aligns with the rounded symbol on the circuit board. To reduce the change of the leads becoming bridged, bend the leads outwards slightly and solder the middle lead first. Double check for solder-bridges with a magnifiying glass after assembly.
Note, if using the SPR1-4 connections you should install the jumper wires before the MAP sensor.

21) R37 and R38 are 'sense' resistors for the current limiting circuits on the injector drivers. Normally these should be installed.
(If, however, you prefer to do without the current limiting and want to make two spaces on the heatsink bar, then you can instead link out R37 and R38 by soldering a copper wire between the 2 holes in each. Ensure the link is flat to the board as you may need a component on the heat sink later on in the build. Remember that without these current sense resistors, there is no over-current protection on the injector circuits.)

22) R43 is intended to allow coil current to be measured if you are using the Q16 high current coil driver. Unless you have access to an oscilloscope and plan on performing this test you won't need it. Either install R43 or link it out.

23) Solder a wire between s12c and JS9, this feeds the stepper motor driver on the MS3 CPU card. Even if you are not going to use a stepper idle valve, it is needed to use those outputs for other purposes and for the MS3X switch inputs. Do install it.
(Note that this link is for Megasquirt-2 and Megasquirt-3 only, not the older Megasquirt-1)

Testing Stage:

24) The board is now built to a basic level and is ready for a few tests:


a) Start by looking at ALL of the diodes and ensure they are the right way round.
b) Check that you fitted the mica insulators under Q9 and Q12 on the heatsink and that they look ok.
c) Now you can plug it into your Stim (in the absence of a stim, you need a loom-pigtail and a 12V DC supply with a low value fuse e.g. 1A. Check the external wiring diagram, +12V goes to pin 28 and ground to any of pins 1,2,7-19 ) and measure the voltage on the 40 pin connector U1:
    Put the -ve probe of you're voltmeter on pin 32 of the 40pin connector (U1) Note, this is WITHOUT the CPU card in place!
 Put the +ve probe onto pin 20 (Top pin right side)
    Ensure you read 5V (+- 0.1V)
d) Keep the +ve probe on pin 20 and move the -ve probe to pin 19 and pin 2, ensure you have 5V on the meter for both measurments. If its OK go to the next step (25).
e) If you don't get 5V then put the -ve probe on the 0V on the proto area and put the +ve probe onto the left pin of U5 (top left hand side on heatsink) check the voltage     on the meter, it should be 12V (9V if using a battery) if this isn't there then you have a stim/battery problem as the ECU isn't getting any power. It could also be a diode     in the wrong way round, so check D10, D11, D12 and D13!
f) If they are all OK then check the mica insulation on Q9 and Q12, with an ohmmeter (mulitmeter) put one probe on the metal heatsink and another on the metal tab of     Q9 and Q12, you should read 300+ Ohms. If you read less then you have a short, remove the insulator and fix the issue with a new one.

If you have any smoke then its likely you’ve put a diode in the wrong way round, this will mean finding it and fitting a new component. Once any component smokes it is no longer any use!

25) LEDs. For most installs, you can proceed and install the LEDs. Only in situations where you are DIYing many spark outputs and want to fit an additional connector should they be omitted.
Temporarily fit the case end-plate to the DB9 connector - this gives you the correct alignment for the LEDs.
Take each LED and find the shorter leg, this goes to the hole marked (-) Ensuring correction orientation, bend the legs so that the LED fits through the hole in the case and the legs go into the holes in the board. Apply a little solder from above, then turn over and fully solder.

26) Idle valves:
The MS3 card has support for a 4 wire stepper idle valve built-in, just requiring 5 jumpers on the mainboard.
When using the MS3X card in addition it is suggested that you install these jumper wires and use the standard 'FIDLE' components.
If using 2 wire PWM idle without the MS3X card, you will need to upgrade the 'FIDLE' circuit on the V3.0 board. Note, the PWM Idle Valve circuit upgrade can also be used to drive other solenoids such as boost control.


i)Stepper Idle Valve: If using a 4 wired idle valve (or using as two spare outputs) then solder wires from:
a) JS0 to IAC1A
b) JS1 to IAC1B
c) JS2 to IAC2A
d) JS3 to IAC2B
e) Solder components Q4, Q20, R39 and D8 in place. Note, this gives you a programmable output that can drive a relay e.g. cooling fan on FIdle (Pin 30 of the db37)

ii) PWM Idle Valve:
Note! This is not required with the MS3X card - use one of the mid-current outputs on the MS3X card for you idle valve and fit the standard components Q4, Q20, R39, D8.
2, 3 wired devices need a TIP122 (not supplied in kit) and mica insulation.
a) Cut the legs of the TIP122 so they are half the length they were as new.
b) Fit a piece of mica insulation under it and using plastic screws bolt it to the heatsink in a spare position, or bolt onto the case.
c) Solder a wire from the centre pin of Q4 to the pin 1 of the TIP122.
d) Solder a wire from the right of R39 to the pin 3 of the TIP122
(Some installs might connect pin 3 to the bottom of R43, that's fine too.)
e) Ensure D8 is not fitted or remove it if it is.
f) Get an IN4001 (you should have a spare from D2) and install the non banded end into the right hole of D8 and the banded end to S12.
g) Solder a wire from the non-banded side of the 1N4001 diode to pin 2 of the TIP122.

TIP122 idle

iii) No Idle Valve:
a) Solder components Q4, Q20, R39 and D8 in place. Note, this gives you a programmable output that can drive a relay e.g. cooling fan relay on FIdle (Pin 30 of the db37)


27) Trigger input:
See the Ignition page for selecting and wiring your tach inputs.

28) Spark outputs:
See the Ignition page for selecting and wiring your spark outputs.
For a single high current spark output, install Q16 as follows
a) Install the BIP373 into Q16, ensuring you use a mica insulator and thermal grease between the transistor and heatsink
b) Run a jumper wire from the top of R26, install a 330R resistor in series. Use heatshrink over the resistor
c) Jumper the other side of the resistor to IGBTIN.
d) Jumper IGBTOUT to IGN
e) Ensure R43 or a jumper is fitted in place
f) The coil can be connected to pin 36 on the DB37 as shown in the MS3 external wiring diagram.
g) Ensure your spark settings are for LEDs, D14 and Inverted.

29) Next we need to check that everything is OK before we plug in the microprocessor. Plug the board into your stim (or 12V supply as in step 24c) and power it up.
      Ensure you have 0-5V on TSEL, if you get any more than 5V you have a wiring issue with the trigger input side which would likely destroy the MS3 CPU card. As long as you have 0-5V you can proceed to step 30.
30) Now your ready to test the board with the microprocessor in place. Fit the MS3 CPU card into socket U1.
Note that it is normal for some of the pins on the large square chip on the MS3 card to appear 'bridged'.

  • Noting orientation, install the MS3 card onto the mainboard (V357 shown, V3.0 works the same) noting the two 40pin socket/spacers that fit between the mainboard and the card. These ensure that the card sits at the right height to align with the end-plate.
    MS3 spacers

    Installing bolts

  • If fitted, carefully unscrew and remove the mounting bolt and nuts from U5 and Q11.
  • Install the mounting kit on U5 and Q11. The long bolt and a washer install from below. The short bolt and washer from above.
  • If required, additional washers may be installed between the standoff and the MS3 card to fine-tune the height.
    MS3 spacersSide view of completed assembly
    MS3 spacers lower viewLower view
    MS3 spacers upper viewTop view

          Plug the ECU into your stim and turn the power on.
          Feel the top row of power transistors, if they get hot at all turn the power off and check for faults.
          If the microprocessor gets hot then turn it off. Slightly warm is OK, if any part is too hot to touch then there is a fault!

    31) MS3X and ribbon cables
    If you are not using the MS3X, skip this step. However - ensure that nothing can touch or short the exposed pin headers on the MS3 card. If in doubt fit a dummy ribbon cable plug.

    MS3X card headers and jumpers

    JP3 is jumper for a pullup on the "Tacho" output. This gives a 0-12V signal which is compatible with most recent aftermarket tachometers. Should normally be installed.

    JP7 is a jumper for a pullup on the "Cam" input. This is typically required with hall or optical sensor inputs. It should not be used with VR sensor inputs.
    When using hall or optical sensors inputs, the cam input adjustment potentiometers should be set as follows. Turn both pots (R11 and R32) full anti-clockwise - approx five turns. Then turn the top one (R11) two turns clockwise.
    When using a VR (magnetic) sensor input, the cam input adjustment potentiometers should be set as follows. Turn both pots (R11 and R32) full anti-clockwise - approx five turns. This is usually the right setting.

    JP8 is jumper for a pullup on the "Nitrous in" input. Normally the nitrous system expects a 12V input here and the jumper should be omitted. If re-using this input for a ground-swiching input then install the jumper.

    R65,R66,R67 are optional 'bias' resistors on the analogue inputs EXT_MAP, EGO2, SPARE_ADC respectively. These would be typically used when connecting a resistive temperature sensor to one of the inputs. For standard calibration, use a 2.49K resistor with a GM style coolant or air temperature sensor.

    H1,H2,H3,H4,H5,H6 are not presently used and should not be jumpered or otherwise connected.

    Optional If you plan on running an idle valve or VVT solenoids from the MS3X outputs, install a jumper wire now.
    Solder a wire into the S12 hole on the mainboard and solder the other end onto the 'C' end of D1 on the MS3X card. This gives all of the MS3X mid-current outputs a 12V flyback clamp and makes them suitable for high-frequency valves.

  • At this stage the only critical items are JP7 and the VR pots.
  • Remove the hex mountings from the mainboard DB37 connector and the MS3X DB37 connector.
  • Fold the wide ribbon cable as shown (lower down) and plug in the two ribbon cables to the MS3X card.
  • Loosely screw on the end plate to the mainboard connector and then hold the MS3X card in place while loosely screwing it to the end plate.
  • Plug the ribbon cables into the MS3X card.
    Pay particular attention to the red stripe and orientation. Double check that ribbon cable plugs are aligned correctly.
    Incorrect installation will almost certainly destroy the MS3 and MS3X card.
    MS3 ribbons

    Fitting into case
    When used with the MS3X, the mainboard, endplate and MS3X assembly needs to be slid into the case as one unit. If the MS3X is not used, the case lid may be fitted independently. For a first start attempt, it makes sense to leave off the case lid in case you need to make a re-adjustment to the VR pots.
    To make it easier to install the end-plate screws, use a 2.5mm drill to open up the hole in the case body.
    MS3X slotting into case

  • Having slotted the assembly into the case, screw in the four endplate to case retaining screws. The connector hex bolts may now be tightened up.
    MS3 case connector end
  • The USB-end end-plate may now be fitted, screwed onto the case and the connector hex bolts fitted.
    MS3 case USB end

    Next steps

    Now continue working through the Quick Start Guide

    Mainboard version 3.57

    The v3.57 mainboard is a factory assembled surface-mount circuit board.
    As supplied to the end-user it is be supplied complete. You need to confirm the tach input jumper and may need some customisation for spark outputs.

    Jumpers to check

    0) 12V feed to card: (required)
    Ensure the following jumper wire is fitted:
    a) JS9 to S12C

    i) 4 wire Stepper Idle Valve or spare outputs: (optional)
    Ensure the following jumper wires are fitted:
    a) JS0 to IAC1A
    b) JS1 to IAC1B
    c) JS2 to IAC2A
    d) JS3 to IAC2B

    ii) CAN communications (optional)
    To use CAN the following jumper wires are required:
    a) JS6 to SPR1
    b) JS8 to SPR2

    iii) Tach input (Required)
    See the Ignition page for selecting and wiring your tach inputs.

    iv) Spark output (Optional)
    See the Ignition page for selecting and wiring your spark outputs. For a single high current spark output, install Q16 as follows
    a) Install the BIP373 into Q16, ensuring you use a mica insulator and thermal grease between the transistor and heatsink
    b) Run a jumper wire from U1 pin 7 (equivalent to the right of R26), install a 330R resistor in series. Use heatshrink over the resistor
    c) Jumper the other side of the resistor to IGBTIN.
    d) The coil can be connected to pin 36 on the DB37 as shown in the MS3 external wiring diagram.
    e) Ensure your spark settings are for LEDs, D14 and Inverted.

    Assembling the MS3 card, MS3X card and case - see steps 26 onwards for the V3.0 board above.

    Next steps

    Now continue working through the Quick Start Guide

    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.