Model/Vehicle Specific information for model MSPNP2-B8793 Version 2.0:
- 1987-1992 BMW 325 E30 - M20 Engine - Manual Transmission
-
1989-1990 BMW E34 525i - Manual Transmission
-
1989-1993 BMW E34 535i/M5 (w/ M20/M30/S38 Engine) - Manual Transmission
-
1988-1992 BMW E32 735i (w/ M30 Engine) - Manual Transmission
Please read all documentation before installing your MegaSquirtPNP ECU, and verify you’ve followed all steps before starting your engine for the first time.
Physical Installation
Your stock ECU (also called a DME, for Digital Motronic Engine control unit) is located behind the glove compartment. You will need to unscrew the glove compartment to remove the ECU. The ECU is held up by four mounting screws. The MSPNP mounting feet do not have the same bolt pattern, so you’ll need to drill new holes. We suggest the use of a 1/8″ drill bit which will work ideally with the included mounting screws.

The stock connector uses a lever-lock mechanism. You may have an easier time using a screwdriver to pry the lever off the connector, but it can be unlatched without any tools. Be sure the connector is well seated in the MSPNP before you latch the lever.
You will also need to run a 1/8″ diameter vacuum line to the barbed fitting on the back of the MSPNP. We recommend teeing off the line to the fuel pressure regulator using the included T fitting for a vacuum source (manifold absolute pressure, aka MAP).
At this point, it is safe to power the ECU up, but please make sure you load the appropriate startup map for your specific engine before attempting to start the vehicle. Using the wrong startup map may result in a no-start condition, or even engine damage if the engine is driven hard before the correct map is loaded.
Verifying and Adjusting Base Timing
It’s rare for BWM motors to need a timing adjustment because the trigger wheel is keyed to the crankshaft, but we recommend checking anyway. In TunerStudio, set the MSPNP to fixed timing mode by going to Ignition Settings -> Ignition Options/Decoder Wheel (For v1.2 MSPNP2s, go to Basic Setup -> More Ignition Settings). Set Fixed Advance to “Fixed Timing”, set Timing for Fixed Advance to 10 degrees, and click the Burn button. You’ll need to set a dial back timing light to 10 degrees as the BMW timing marks are mostly intended for setting cam timing. There is a raised marker on the timing belt cover (red arrow, below) visible from the left side of the car which will line up with a line between an “O” and a “T” when the engine is at TDC.


If the timing marks line up with the timing light dialed back to something other than 10 degrees, you will need to adjust the Tooth #1 Angle under Ignition Settings -> Ignition Options/Decoder Wheel (For v1.2 MSPNP2s, go to Basic Setup -> Trigger Wheel Settings). Adding a larger number will retard the timing, while reducing this number will advance the timing. For example, if you set the timing light to 10 degrees and find that you are getting 15 degrees of timing and your Tooth #1 Angle is set to 88 degrees, you will need to change the Tooth #1 Angle to 93 degrees to get correct timing and then verify it with the light. You must turn the MSPNP off and back on again for this change to take effect. After you have confirmed timing is correct, set Fixed Advance back to “Use Table,” and click the Burn button so that the MSPNP will use the ignition table and not the Fixed Timing you used for the exercise.

Crankshaft Position Sensor Sensitivity Adjustment
Out of the box your MSPNP B8793 should be properly configured for MOST OEM sensors and crank trigger wheels. There are some cases where there is some variance in how this sensor reads however, particularly if it has ever been replaced with a aftermarket sensor and not a dealer part. If you lose the RPM signal as the engine speed increases (idles fine for example, but seems to hit a ‘rev limiter’ above a certain RPM, 2000-3000 for instance), you will need to adjust the crankshaft position sensor sensitivity settings. We’ve provided an adjustable resistor on the adapter board, labelled Crankshaft Position Sensistivity Adjustment (R3). It’s purpose is to allow compensation for variations in the sensors and wiring. To determine which way to adjust sensitivity, select the Diagnostics tab in TunerStudio and set the drop down box to Tooth Logger. Start the engine, click the Start button, and rev the engine until RPM breaks up. Click the Stop button at this point.

The Tooth Logger will display a series of 57 short bars followed by one tall bar three times the height of the short bars. If the tall bar increases in height when RPM breaks up, the sensitivity adjustment is too low and you need to turn the adjustment screw at the top of the blue box counterclockwise. If the tall bar breaks into two smaller, tall bars, the sensitivity adjustment is too high, and you need to turn the adjustment screw clockwise.
Removing the Vane Air Flow Meter
Since the MSPNP works on the principle of speed density, you don’t need to have the restrictive factory air flow meter in place. We’ve found that you can gain 3 peak horsepower and 3 peak lb/ft on a stock E30 by replacing the air flow meter with a length of straight pipe. This does require one wiring change, as there’s an air temperature sensor in there. You’ll need to substitute a GM IAT sensor with the air flow meter gone. This sensor connects to the first and forth pins on the IAT connector, as shown in the graphic below. IAT sensors have no polarity, so it does not matter which wire you connect to which pin.

Simply wire a GM Open Element IAT Sensor (Part number: IATwPiggy) into your factory wiring harness at the AFM connector. You can poke wires into the AFM connector, or you can cut and splice. Wire one lead of the GM Sensor to the first wire at the AFM Connector, and the other lead of the GM Sensor to the fourth wire at the AFM Connector. There are 5 wire slots in the AFM connector, however only 4 have terminals installed. If the wires aren’t spliced into the harness (recommended), they can be folded down over the edge of the AFM connector, and the whole assembly firmly and cleanly wrapped in high quality electrical tape sealing it up. 3M makes some good stuff, such as Super88, that can handle the temps found in engine bays.
After installing the IAT, turn the ignition key on but do not start the engine. Connect to the MSPNP with TunerStudio. Go to the Tools menu and select Calibrate Thermistor Tables, select Air Temperature Sensor, and select GM from the Common Sensor Values drop down box. Leave the bias resistor setting at 2490.0 ohms. Click Write to Controller. This will update the sensor calibration in the MSPNP.
Note: If you are using the MSPNP with a turbo or supercharger:
You will definitely want to delete the AFM and install an IAT sensor in the location pictured above which is just before the throttle body inlet. The IAT needs to measure the air temperature as it’s entering the engine, not the ambient air temperature in the engine bay. Only by placing the IAT just before the throttle body can an accurate air temperature measurement be taken AFTER the compressor has heated the air and the intercooler has cooled it. Accurate air temperature measurments are needed for proper fueling and ignition advance calculations.
Installing an aftermarket Variable TPS
Though your vehicle did not come from the factory with a variable throttle position sensor, and a VTPS is not required for most of the features of the MegaSquirt EMS, we did setup the MSPNP-B8793 to allow you to add variable TPS using the factory wiring harness if you would like to. Some features do require a TPS reading, and it can also help with properly dialing in your acceleration enrichments (though your MSPNP by default will use the MAP signal for this, sometimes TPS based AE is easier to tune).
Here is the pinout to use if you wish to convert to a variable TPS:

If you’re not sure which connection on your TPS goes to which wire, check it with an ohmmeter/multimeter. Observe the resistance as the throttle opens and closes. Each pair of pins will behave differently:
- The resistance between the 5 volt and ground pins will remain constant.
- The resistance between the ground and signal pins will be low with the throttle closed and high with the throttle wide open.
- The resistance between the 5 volt and signal pins will be high with the throttle closed and low with the throttle wide open.
Using these rules, you can establish which pin on the TPS goes to which wire. Note that we have not been able to find a TPS that plugs directly into the factory wiring and matches both the plug and the pinout, so you will need to do a bit of splicing to complete this OPTIONAL modification.
Once you have the TPS installed, connect to the MSPNP using TunerStudio with the key on and the engine off. Go to the Tools menu and select Calibrate TPS. With your foot off the throttle, click the “Get Current” button next to the “Closed throttle ADC count” line. Then hold the accelerator to the floor and click the “Get Current” button next to the “Full throttle ADC count” line. The maximum default value is 1023 and the minimum is 0, but it’s rare for a TPS to cover the entire range. It’s more common to see the closed throttle reading in the 0 to 300 range and the full throttle in the 700 to 1000 range, but as long as the full throttle value is more than the closed throttle value by 200 counts or more, the TPS is functional. If the full throttle count is less than the closed throttle count, switch the ground and reference voltage wires. Once you have obtained adequate numbers, click the Accept button and it will save the values to the ECU.
Other Notes
As a bonus, we’ve included a third injector output on ECU pin 5 (purge valve output on a stock harness) for those wishing to experiment with three channel semi-sequential injection. You’d clip this wire (to the purge valve) and use it as a third injector output in order to run semi-sequential fuel.
If you need to reload firmware and reload your temperature sensor settings, the Calibrate Thermistor Tables already has the standard BMW settings. They are listed for use in an E30 325i, but will work for all MSPNP-B8793 applications.
Rear Option Connector

Some of the features on the MSPNP EMS are rather obvious as to why they are there, such as the holes to mount it or the logo on the top to let everyone know how awesome you are due to the EMS you that are running. But it has a few things on it that call for some explanation.
On the back, there is a 26 pin connector. The connector has small numbers cast into it to identify which pin is which. ALL OF THESE CONNECTIONS ARE OPTIONAL AND NOT REQUIRED TO RUN YOUR CAR ON THE MSPNP! These are there keeping the DIY spirit alive, giving you the power to add new capabilities to your vehicle!
- Cam Sensor Input
- Table Switch Input
- Clutch Switch
- Tach Output
- Chassis Ground
- Switched 12V (0.5A Max)
- Boost Control Solenoid
- Injector A Output
- Injector B Output
- Knock Sensor Input
- CanBus High
- CanBus Low
- Launch Control Input
- Spark D Output
- Spark C Output
- Spark B Output
- Spark A Output
- Injector C Output
- External MAP Sensor Input
- IAT Sensor Input
- Oxygen Sensor Input
- Signal Ground
- 5V Vref
- Output 1 Relay Control (ALED)
- Output 2 Relay Control (WLED)
- Injector D Output
The 9 pin connector is a serial port for connecting the MSPNP2 to your laptop with the provided tuning cable. If your laptop does not have the matching plug, you will need a USB to serial adapter, we recommend the USB-2920 that we sell at DIYAutoTune.com for best results.
The small connector that looks like it could be for a set of headphones – well, it is. On engines equipped with a knock sensor, this allows you to listen to the knock sensor. In most cases if your vehicle had a factory knock sensor, we’ve already tied it in through the factory wiring harness. If your vehicle did NOT have a factory knock sensor, you can add one, if you like, using the option connector outlined above.
Some knock sensors have built in filters, and there’s a similar filter in the MSPNP2, so it will cut out a portion of the sounds that are not related to engine knock. You will need to take the cover off to adjust the volume (see section 4, Tuning) as well as adjust the knock sensor; we recommend starting at the lowest setting, fully counterclockwise.
There is a small barbed fitting on the back of the MSPNP’s case. This is for connecting the MAP sensor. The sensor is designed to work with a rubber hose with around 7/64″ – 1/8″ inside diameter, which is included in the kit.
The four screws on the back that look like they might be for adjusting something – they’re not. Leave them alone.
There are four small holes in the side of the case for viewing indicator LEDs. Looking at the side of the case, from left to right, this what these LEDs do:
- 12V Power: This light comes on when the ECU has power.
- Logic Power (5VDC): Normally, this light comes on whenever the 12V Power is ON. Used mostly for specialized diagnostics.
- Tach Pulse: Blinks when you have an RPM signal.
- Knock: Blinks when knock is detected. The more it blinks, the higher the knock level.

