DIYPNP Documentation for 1999-2000 Mazda Miata

1999-2000 Mazda Miata USDM 1.8L BP MT


Test Vehicle Details:

The vehicle used for drawing up these application docs was a USDM 1999 Mazda Miata 1.8L with a manual transmission.  All factory electronics/ignition system components are in place and the factory wiring harness is in perfect condition.

Other notes:
MAF in place
DIYPNP Sequential module installed
Jackson Racing supercharger installed
330cc fuel injectors installed
GM IAT sensor used

What to buy:

1- DIYPNPN76-K Kit.  This is the main DIYPNP Kit including the Nippon Denso style 76-pin connector and all components, case, etc.

1- Tuning Cable  This is the same DB9 serial tuning cable used in other MegaSquirt applications.
1- USB Adapter  This is a DB9 serial to USB adapter.  The adapter is needed when the laptop or PC you are using does not have a built in DB9 serial port.
1- StimPower  This is a power supply that is normally sold to power a stimulator, but another use is it can be plugged directly into the DIYPNP mainboard to power the ECU directly, allowing you to load the base maps and do limited testing on the ECU prior to installing the ECU in your vehicle.  It is particularly nice to be able to flash the firmware and load your configuration on the bench instead of in the vehicle, and allows for less risk of damaging something on the vehicle due to incorrect settings.
1- PNP_IAT-A or PNP_IAT-S AFM/MAF Delete kit. This is a simple kit with an IAT sensor, wire pigtail, crimp pins to poke into the AFM Connector to run the signal back to the ECU, and a steel or aluminum bung (hence the -A and -S in the part numbers).  Perfect for getting rid of a restrictive AFM/MAF with your DIYPNP install.

What tools you’ll need: Soldering Iron, Solder, maybe some desoldering braid in case you make a mistake.  Small phillips screwdriver.  That’s about it.

Startup Maps

Base Configuration .msq files to help you get your car fired up safely and quickly.  Ready to tune.

We’re including these maps prior to showing you how to jumper your DIYPNP up.  There’s a reason for that.  The base ignition settings contained in these maps should be loaded on your DIYPNP before you power your car up (with the key) with the DIYPNP installed.  This is to prevent damage to your ignition system in case the default settings are not correct for your vehicle. Note that you can power up the DIYPNP off the vehicle on a power supply connected to the power jack next to the DB15 connector.

So here’s our recommendation — After you complete basic assembly, Power up your DIYPNP one of two ways.  Either plug a Stimulator Power Supply into the front panel of the box (the easiest way), or, start the Jumper Section below, but only connect the power and ground wires to start with.  That way you can plug the DIYPNP into your factory wiring harness and safely power it from your car.  The third option, if you’ve fully assembled and jumpered your DIYPNP already, is to unplug your coils from their power connectors before plugging the DIYPNP into your factory harness and powering it from there.

Then and only then, you can flash the firmware on your DIYPNP to the MS2/Extra firmware if you haven’t already, and then load the startup map provided to help you get your vehicle started.

Click Here to Download Startup Maps for this Vehicle

Once the vehicle is started, you will need to use the MS2/Extra manuals to set the base timing and begin to tune the vehicle!  This is critical!  Do not drive an untuned vehicle!

DIYPNP Jumper Configuration

This section will cover the standard, basic jumper configuration required to get the vehicle running using your DIYPNP.

Vehicle Information

Market: USDM
Make: Mazda
Model: Miata
Year: 1999
Engine: 1.8L BP
Transmission: Manual

System Information

Main Board: DIYPNP v1.1
Minimum Code Version MS2/Extra 3.0.3 � 20090912

Edge Pin Connections

Main Adapter
VR2 IN + 3H
INJ1 (batch) 4W, 4Z
INJ2 (batch) 4Y, 4X
12V 1B
12V 4O

Pull Ups

Connection Resistance Voltage
OPTO+ 470 ohm 12v (5v if using VVTuner)
VR2 470 ohm 5v
IAC Flyback Diode Banded end to 12V

High Current Drivers

Output Enabled To Pin

Knock Circuit

Enabled Sensor + Sensor –

I/O Circuits

Circuit Input From Out Pin To Purpose
Relay 1 PA0 1R Fan
Relay 2
Input 1 1P (remove R14) 1S, 1I A/C Relay & Fan
Input 2

Miscellaneous Jumpers

On Off


Click: Alternator Field � 1OALED to Connectorboard 4Q � VICS control
* European models with immobilizer use 4P.
Sequential Injection Wiring
(by firing order, not cylinder order)
INJ output #1 � 4W
INJ output #2 � 4Y
INJ output #3 � 4Z
INJ output #4 � 4X

Ignition Settings

Spark Mode Miata 99-00
Trigger Angle 10
Oddfire Angle
Use Cam Signal Off
Ignition Input Capture Rising Edge
Spark Output Going High (Inverted)
Number of Coils Wasted Spark
Dwell type Standard Dwell
Cranking Dwell 7.5
Cranking Advance 10
Maximum Dwell 4.5
Maximum Spark Duration 0.7
Trigger wheel arrangement
Trigger wheel teeth
Missing teeth
Tooth #1 angle
Wheel speed
Second trigger active on
and every rotation of

Other Changes/Considerations

This section will cover changes that need to be made to the DIYPNP that go beyond the standard I/O jumpering, such as intake valve butterfly activation, on/off VVT activation, or other customizations to address the specific needs of a vehicle.

Radiator Fan

In the Jumper Notes above we’ve included a pair of jumpers for radiator fan activation using the ‘Relay 1’ circuit.  You’ll notice we suggested using PA0 on the mainboard to drive the fan, and run the output from ‘Relay 1’ over to 1R on the ConnectorBoard to drive the fan relay.  You can configure the fan activation in TunerStudio from the ‘Extended > Output Ports Settings’ Menu.  More information on configuration can be found in the MS2/Extra Documentation here.

A/C Controls

In the Jumper Notes above we’ve included jumpers for A/C clutch and fan activation using the ‘Input 1’ circuit.  The Input for the AC system comes in from the A/C switch on ConnectorBoard pin 1P.  The output of the “Input 1” circuit gets jumpered to both 1S and 1I on the ConnectorBoard.  These two pins will activate the A/C compressor clutch relay and the A/C condensor fan relay.  You will need to leave R14 out of this circuit or cut out R14 if you installed it.


In the Jumper Notes above we’ve included jumpers for the VICS variable induction system.  The VICS actuator should have vacuum at idle and changes state at 5000 RPM.  We have used ALED as the output to control the VICS system at Connectorboard 4Q with RPM as a single output condition, a threshold of > 5000, a hysterisys of 300, “power on” set to 0, and “trigger value” set to 1.  This all means that the output will activate at 5000 RPMs, won’t turn back off until 4700 RPMs, is off when the MS is powred and the engine is started, and is activated when triggered.  If your VICS appears to be opposite and has no vacuum to the actuator after the DIYPNP install at idle, you may need to swap the “power on” and “trigger value” numbers.

Sequential or Batch Injection

You have a choice here.  You can go with the conventional batch fire of the fuel injectors or you could go full 4 cylinder sequential injection using the DIYPNP sequential module.  Click here as for the full sequential documentation.



The injector outputs are numbered as they appear in the firing order when using the sequential injection mode.  1-3-4-2.  Injector one remains the first injector, while injector two is actually cylinder three.  Injector three is from cylinder four and injector four is from cylinder two.

If you choose batch mode continue to wire the injectors as you normally would by following the jumper configuration above.

Alternator Voltage Regulation

The voltage regulator for the 1999 Miata alternator is built into the factory engine computer.  We have successfully used this circuit below to regulate the alternator’s voltage. This circuit has been passed around on Miata forums for a while and we believe it was originally designed by Jason Cuadra. We’ve modified it to fit the DIYPNP proto area.



Click on the picture for a larger view. This circuit requires a switched 12V input, ground, and connection of the circuit’s output to the “Field” terminal.  The Proto Area under the MicroSquirt Module is a very convenient place to build this circuit.  Switched 12V can be taken from one of the three 12V terminals on the DIYPNP mainboard, ground can be used from the terminal just beside the Proto Area, and the “Field” output can be jumpered to Connectorboard terminal 1O.

Sensor Calibration

  • This vehicle does have a variable TPS.  You should calibrate it properly from TunerStudio in the ‘Tools’ menu.  Choose ‘Calibrate TPS’.

    • Make sure the engine is off, and the key is on.

    • With your foot off of the throttle, click the ‘Closed Throttle ADC Count – GET CURRENT’ Button.

    • Put the throttle to the floor.  With your foot fully depressing the throttle, click the ‘Full Throttle ADC Count – GET CURRENT’ Button.

    • Click Close.

  • Calibrate your CLT Sensor and IAT Sensor.

    • Again from TunerStudio, click ‘Tools > Calibrate Thermistor Tables’.  Make sure ‘Coolant Temperature Sensor’ is selected at the top.

      • For the CLT, use the following table with a bias resistor setting of 2490 ohms:

        Temperature    F / C Resistance In Ohms
        14 / -10 9000
        68 / 20 2500
        176 / 80 320
    • Enter these values, and click ‘Write to Controller’.

    • Now you’ll do the same for the IAT.  Select ‘Intake Temperature Sensor’ at the top in the drop down box.  (NOTE – If you are removing your MAF/AFM as a part of the DIYPNP installation process, do not recalibrate your IAT Sensor now)

        • For the stock IAT, use the following table with a bias resistor setting of 2490 ohms:

          Temperature    F / C Resistance In Ohms
          -4 / -20 16150
          104 / 40 1150
          176 / 80 330
      • For the GM IAT sensor, use the following table with a bias resistor setting of 2490 ohms:

        Temperature  F Resistance In Ohms
        48 7000
        87 1930
        146 560
      • Enter these values, and click ‘Write to Controller’.  Now click Close to Exit.

    • Finally, you should calibrate your O2 Sensor to the ECU.  To do this, click ‘Tools > Calibrate AFR Table’.

      • Choose your O2 Sensor from the list.  Choose Narrowband for the stock O2 Sensor.  Or select your wideband and the proper configuration of said wideband from the drop-down list.

      • Click ‘Write to Controller’.  Once finished writing, click ‘Close’.

Deleting the MAF

The DIYPNP allows you to disconnect the Mass Air Flow meter. When you remove the MAF, you will need to install a GM style intake air temperature sensor in your intake. The IAT sensor on NB Miatas has a separate plug with two wires, as shown in the photos below. IAT sensors have no polarity, so it does not matter which wire you connect to which pin.

IAT Sensor:

Simply wire a GM Open Element IAT Sensor into your factory wiring harness at the IAT connector.  You can poke wires into the IAT connector, or you can cut and splice.  There are only two leads to this IAT connector.  It does not matter which way you connect them as the IAT sensor does not have a specific polarity.






The wires should then be folded down over the edge of the IAT connector, and the whole assembly firmly and cleanly wrapped in high quality electrical tape sealing it up. 3M makes some good stuff that can handle the temps found in engine bays– read the specs.

Mounting the DIYPNP

The DIYPNP actually fits quite well in the stock ECU location between the brake and clutch pedals.  We have reused the lower bracket only and secured the DIYPNP with zip ties to the lower ECU bracket at the bottom side of the unit.  At the top of the DIYPNP we have again used zip ties to hold the DIYPNP steady against the clutch pedal bracket.

99_miata_diypnp_mounted_01 99_miata_diypnp_mounted_02

Read the Manuals, You are Responsible for your own results!

This Application Doc is intended to assist you in your DIYPNP DIY EFI Installation.  We’ve done a fair amount of research, and actually tested on a similar vehicle to help ensure we can provide the most accurate information possible to make your installation go as smoothly as possible. That said, there are certain things you could do incorrectly, or certain things you could change up, that could cause you to run into issues.  Our tech support department will be glad to assist you working through any issues you might have, please contact us and give us that opportunity and we should be able to work things out for you.

Startup Maps included/attached to this Application Doc is intended only to help you get your engine started so that you can properly tune your engine.  The map will be setup properly for a stock vehicle matching the year/make/model/trim in the ‘Test Vehicle Details’ section at the top of this page.  If you have made any changes to your wiring, your ignition system, or other related components, this map may not be ideal for your vehicle.  You will then need to check and confirm the appropriate settings and properly configure your DIYPNP EMS for your altered vehicle.  Some maps offered may be more completely tuned that others, some may be just setup enough to get the car to fire up and idle with a little help from the throttle.  That’s when the tuning begins.

In short– We’ve provided you with the building blocks for an incredible EMS.  You are however responsible for the implementation and your own successes or lack thereof, but rest assured that we’re here for you and we’re going to do everything in our power to make sure your project is a success.

For more information on configuring and tuning your DIYPNP EMS, and for information on adding and tuning custom MS2/Extra features, read up at  In fact, everyone implementing this system should read that manual from front to back if you really want to harness the power of the DIYPNP EMS.

We’d love to hear your feedback on our DIYPNP Application Docs.  Click Here to offer feedback/suggestions!