90-97 MS3

How to build a full plug and play MS3-Extra for a 1.6 or 1.8 NA Miata

Parts needed:
1x MegaSquirt-III w/PCB V3.0 - UnAssembled Kit
1x MegaSquirt-III MS3X Expansion Card
1x MSPNP and DIYPNP IAT Sensor Kit - Steel Bung


This is a how-to for a full plug and play 90-97 MS3. This build does not use the DB37 connector but the miata specific 48- or 64-pin connector installed inside the case. A minor modification to the MS3 card is necessary to clear the connector.

[shashin type=”photo” id=”3141″  size=”large” columns=”max” order=”user” position=”center”]

For MS3+MS3X, install these components from the kit. One extra resistor is used as a cam input pullup.  I forgot to install the LEDs in this picture.

[shashin type=”photo” id=”2938″ size=”large” columns=”max” order=”user” position=”center”]

All components and jumpers installed.
The only transistor on the heatsink is U5 (no mica insulator needed) on the far left. With a near empty heatsink, there’s enough room to install the miata connector inside the case. It’s ok to drill new holes through the heatsink and mainbord (there’s no copper in that area).


[shashin type=”album” id=”64″ size=”small” crop=”n” columns=”max” caption=”y” order=”date” position=”center”]


[shashin type=”photo” id=”2934″ size=”large” columns=”max” order=”user” position=”center”]

This chart shows all possible in- and outputs on the MS and how we’ll use them.

There’s several unused pins on the miata specific connector, so I wired up several spare wires.
That way I won’t have to take the Megasquirt back out of the car in case I need some extra functions in the future (like COPs for example).


The MS3 release can be found here.
Here’s a starting msq for a 90-93 and for a 94-95 (use with care). Rightclick and ‘save as’.

MS3 main board assembly

Install all components:

Step 1:transistors
– U2, Q2, Q19, Q6 to Q8, Q22 and Q23

Step 2:resistors
– R1, R6, R44, R48, R53, R54 (10K)
– R16, R26, R27, R29, R42, R55 (1K)
– R2, R9, R10 (1K)
– R3 (51K)
– R4, R7 (2K49)
– R5, R8 (2K2)
– R11, R51 (1M)
– R49, R50 (100K)
– R24, R25, R28 (330)
– R40 (1)
– R45, R46 (10K)
– R47 (47K)
– R52 (install a 100K resistor in pin 1 and 3 – no pot needed)
– R56 (10K pot –  when installing this on the board, make sure the setscrew is towards the top!)
– Turn R56 about 12 turns to the fully anticlockwise position (you may or may not feel a “click”) and then turn R56 back about 10½ turns clockwise.
– pullup for the VR circuit: Install a 1k resistor in the left hole of R13 (= 5V). Connect the other end to the right side of R45 just below it (= VRIN)

Step 3: diodes
– D4, D9 to D11, D12, D13, D19, D24

Step 4: capacitors
– C1, C3, C18, C19, C23 (0.1µF)
– C26 to C29 (0.1µF) (**)
– C2, C9, C10 (0.22µF)
– C4, C6, C8, C15, C31 (0.001µF)
– C5, C7 (1.0µF)
– C32 (0.01µF)
 C16, C17 (polarized!)
– C22 (polarized!)

Step 5: coils and fuses
– L1, L2, F1, F2 and MOV1

Step 6: chips
– U6, U7 and the 40-pin socket (actually 3 on top of each other)

Step 7: heatsink
Secure the heatsink by installing U5 and a temporary bolt on the other end. Install U5 with a plastic bolt, some heat paste and no mica insulator. Insert the bolt from the bottom and secure with the short stand-off (provided with the MS3X), no nut needed.

Step 8: leds
– D14 to D16

Step 9: jumpers
– install a wire from S12C to JS9
– jumper VROUT to TSEL

MS3X card modifications

Step 1: preparation
– Remove the DB37.
– Turn both pots (R11 and R32) full anti-clockwise – approx five turns.
– Turn the top one (R11) 3½ turns clockwise.
– Make sure JP3 and JP7 are installed.  JP8 should not be fitted.

Step 2: modification
In order to install the connector inside the case, you need to cut off a corner of the MS3X card. As there’s no copper in that area, you can safely cut it off.

For a 90-95, only a tiny bit must be removed.

[shashin type=”photo” id=”2928″  size=”large” columns=”max” order=”user” position=”center”]

The other years need a bigger part removed, but it’s very safe, the copper layer starts much lower.[shashin type=”photo” id=”3147″ size=”medium” columns=”max” order=”user” position=”center”]

[shashin type=”photo” id=”2929″  size=”large” columns=”max” order=”user” position=”center”]

Step 3: installation of the MS3X card:
[shashin type=”photo” id=”3166″ size=”large” columns=”max” order=”user” position=”center”]
The short stand-off is for U5. Use the longer one in the left bottom corner of the card. Use a plastic bolt with 1 or 2 plastic nuts and some washers to fill up the gaps.

[shashin type=”photo” id=”4003″ size=”small” columns=”max” order=”user” position=”right”]

solder a wire from the ‘C’ end of D1 on the MS3X to s12 on the mainboard.


Step 1: idle valve flyback diode (optional)
For best control, you want idle pwm % to be around 30.  Should idle pwm % go over 60-70, then installing a flyback diode will bring it back down.
Install a 1N4001 with the banded side to 12V and the other side to the idle output of the MS3X (pin 9). Solder it directly onto the Tyco connector to keep high flyback currents out of the pcb.

Step 2: Fuel Pump (ONLY for 90-93)[shashin type=”photo” id=”3898″ size=”large” columns=”max” order=”user” position=”center”]

Bring out the FP1 (pin 37) signal to pin 2O of the ecu connector. Then place a jumper in the airflow meter connector between pin A (LG) and pin F (R) or just connect the 2 wires together at the back of the connector. Ignore the black and yellow wires in the pic.

Step 4: Air temp sensor (ONLY for 90-93)
The air temp sensor has to be connected to pin B (B) and pin G (R/G) of the AFM connector (polarity doesn’t matter).


90-93 MS3+MS3X pinout

[shashin type=”photo” id=”2930″  size=”large” columns=”max” order=”user” position=”center”]

[shashin type=”photo” id=”2931″  size=”large” columns=”max” order=”user” position=”center”]

You need the 48-pin Male Tyco connector, available from onlinecomponents, mouser or digi-key.

[shashin type=”photo” id=”3491″ size=”medium” columns=”max” order=”user” position=”center”]

94-95 MS3+MS3X pinout

[shashin type=”photo” id=”2932″  size=”large” columns=”max” order=”user” position=”center”]

You need the 48- Pin Male connector, available from onlinecomponents, mouser or digi-key.

[shashin type=”photo” id=”3491″ size=”medium” columns=”max” order=”user” position=”center”]

96-97 MS3+MS3X pinout

[shashin type=”photo” id=”2933″  size=”large” columns=”max” order=”user” position=”center”]

You need the 64-pin Male Tyco connector, available from onlinecomponents, mouser or digi-key.

[shashin type=”photo” id=”3492″ size=”medium” columns=”max” order=”user” position=”center”]

Final adjustment

Fine adjustment of the VR circuits:
– For the main board, measure the voltage on the upper leg of R54 while turning R56.
– For the MS3X board, measure the voltage on the lower leg of R17 (close to U7) while turning R11.
In both cases, you want to see about 2.5 to 3 volts at that point, which puts you right in the middle of the actual output range of the sensors.

Remark for 90-93

It’s advised to install a 1K resistor on your tps input wire to ground if you have no variable TPS. This will keep the signal stuck at 0%. Otherwise the input floats and you’ll see the TPS% slowly and constantly increase while you drive. This can screw up things like enrichments and idle activation.

It’s strongly advised to install a variable TPS though, like a BMW/Bosch automatic TPS (part number 0280120402) including plug/tail. An Alfa V6 supposedly has the same one. You can also install the complete throttle body from an auto 90-93 (not just the tps).

Create a website or blog at WordPress.com

Up ↑

Create your website at WordPress.com
Get started
%d bloggers like this: