MegaManual Index -- External Wiring Schematic -- General Guidelines for Automotive Wiring -- Wire Sizes
The Relay Board -- Making a “Pigtail” to Connect to MegaSquirt -- MAP Sensor -- Oxygen Sensors -- Temperature Sensors
EasyTherm -- Throttle Position Sensor -- Fast Idle Solenoid -- Ignition Triggering -- Sensor Troubleshooting

Wiring and Sensors

In order for your MegaSquirt to determine the amount of fuel to inject, you will need several functioning sensors:

In this section we will cover the requirements for these components. Note that injector wiring specifics are in the Injectors & Fuel Supply section.

External Wiring Schematic

(This diagram is for those creating their own harness. If you are using the Relay Board, use these diagrams.)

You need to pay particular attention to your 12 volt power source and your ground location.

The 12 volt supply for MegaSquirt MUST supply power in both the RUN and CRANK positions. Verify this before attempting to start your engine. Many people have assumed they have a suitable source and spent many frustrating hours trying to figure out why their engine won't start, all because the power source they chose wasn't supplying 12 volts in the CRANK position. So before hooking your power wires up, put a voltmeter (or test light) between the source and ground, and verify that you have 9-12 volts while cranking.

Noise in the charging system (from the alternator and/or regulator) can cause processor resets or component damage in MegaSquirt. Try to connect the +12 volt switched lead (pin 28) as close to the battery as possible. The battery acts to smooth out the noise from the alternator. If you experience resets in your installation (i.e. the seconds don't count up to 255 and roll-over, they start over before getting to 255), go to your local Radio Shack or automotive stereo shop and purchase an "isolation module". These are EMI/RFI filters used on radios to filter out alternator noise. The current MegaSquirt draws from the 12 Volt source isn't a lot, but you should get the biggest isolator you can find.

Try to ground MegaSquirt as close as possible to the battery ground, sensor grounds, and other grounds on the engine. Often grounding MegaSquirt to the engine block (or intake manifold), with additional ground wires from the block to the frame and to the battery, is sufficient. If necessary, run additional wires to any other part of the vehicle that may be marginally grounded.


You will need connectors for wiring the MegaSquirt sensors, injectors, etc. Where you get these will depend somewhat on the sensors you are using. Here are some part numbers for common General Motors connectors:

General Motors AC Delco PICO
Port Injector 12085491 PT113 5621
TBI Injector 12102568 PT285 5624
Air Temp Sensor 12102620 PT307 5616
IAC (square) 12085506 PT127 5612
TPS 12101923 PT195 5617

You can generally find equivalent numbers for most EFI components, either on the connector manufacturer websites or at the parts store if you know the original application.

For 'browsing' through different connectors, try Waytek (, which has lots of different connectors that you can use in building your MegaSquirt. Their prices are quite good. The injector connectors are AMP part number 827551-3, but sometimes you have to buy a large quantity. Try also DelCity (Del City). They are not quite as inexpensive, but they may have items you can not get from Waytek.

General Guidelines for Automotive Wiring

1) Always read, understand, and obey all applicable safety precautions for your tools, equipment, vehicle, and electrical, mechanical, and fuel system components. Some precautions come in your owners manuals for your vehicle, tools, equipment, and components. You MUST find and read all of these precautions and follow them exactly. Failure to do so could result in injury, death, or property damage.

2) Load on a wire in amps is:

Wattage of the device divided by 12 = Amps (Volts x Amps = Watts),

3) Keep wire runs reasonably short, but leave yourself enough to replace the end if the terminal ever gets damaged.

4) DO NOT use solid core wire - it is not designed to flex or vibration - and it WILL fail. Whenever possible, use fine-stranded copper core wire.

5) Bundle wires and use convoluted tubing (available in many sizes) or spiral wrap (Spi-wrap) to protect your wires from abrasion. Clamp the bundled wires to appropriate (not hot, not moving) locations wherever possible using "adel" clamps or nylon tie-wraps.

6) Use DIFFERENT color wires for different circuits - you have not lived until you have tried to troubleshoot a car done in all black wires five years after the fact.

7) Keep records of what you do - you will appreciate having a schematic two years from now when something stops working.

8) Use a load reduction relay from the ignition switch to switched hot. This is the Main Relay in the MegaSquirt schematics. If you try to route all the MegaSquirt current through the ignition switch, it may not last very long. This is absolutely required for conversions on previously carbureted cars, as they usually have very minimal electrical systems (carb-conversion installations can take good advantage of the relay board offered by Bruce & Al). On vehicles that previously had fuel injection, there is usually a relay system in place, at least for the high-current fuel pump.

9) Work in a well-lighted area - this is hard enough to do correctly even when you CAN see what you are doing.

10) Crimped vs. soldered connections - with a decent crimper used properly, crimped connections are good. With a decent soldering gun and with proper technique, soldered connections are good. Make sure that you have some kind of stress-relief for each kind. Many people prefer soldered connections, but crimped connections are faster and there is no fire hazard (and no solder blobs on the carpets).

11) Make room to work - partially gut the interior so you have room to move around and run your wires. Remember you may need access later, so try not to put wires where you can never reach them again.

12) If at all possible, try not to use "exotic" parts - stick with commonly available terminal strips, relays, connectors, etc - if the part you need five years from now is no longer available, you will have to do that part of the job over to use what you CAN get at the time.

Wire Sizes

RS Autosport offers complete wiring kits specifically designed for MegaSquirt user. You can find out more here:

For the wires from the DB37 connector to the sensors, injectors, etc., use 18 to 20 gauge for all the connections, then bring them to a common 14-12 gauge where appropriate. The only big wires are the ground and the two injector driver pairs, 32-33 and 34-35, all the rest can be 18 gauge all the way out.

Wire Size for Runs up to 15 Feet




























(capacity depends on wire quality & length of run)

With LEDs flashing, etc., MegaSquirt has an average current draw of about 120 milliamperes. Of course, this is without any load. The injectors and fuel pump require additional power, but power for these are drawn externally, rather than from MegaSquirt, as MegaSquirt just grounds these circuits.

The box is 6.25" x 4.25" x 1.75". You need access on both ends. One end has the harness to the motor and vehicle electric system, the hood on the DB37 is about 2.25 long. If you leave the hood off and just bend the wires from the connector, you can get it down to less than 1". On the other end you've got the DB9 to go to your laptop. This can be stubby, too.

The Relay Board

The Relay/Power board does not come with the MegaSquirt kit, but you don't have to buy it to install MegaSquirt, it's just a convenience and reduces the chance of miswiring during the installation. The relay board provides a central place for all of the required relays, fuse protection, and external wiring for MegaSquirt. It was developed in a response to a few burned boards due to miswiring.

Here is a picture of the completed board:

Whether you need the relay board depends on your ability and what you are comfortable with. MegaSquirt gets its power from the car's 12 Volt battery via pin 28 on the DB37 connector. The relay board, which is not required, makes it easier to hook up the wiring to MegaSquirt and makes it less likely that you will fry something in MegaSquirt through incorrect wiring.

With the relay kit, you still have to run a cable from the relay box under the hood to the MegaSquirt unit (which cannot be located under the hood), but then you have a nice terminal block for all of the engine wiring.

You order a PCB for the relay board kit at:

Then you can order a parts kit at:

Note that the external wiring diagram in this sensors and wiring section is entirely separate from, though similar to, the Relay Board. There is an separate internal wiring diagram for the Relay Board.

The relay board takes 12V from the vehicle and passes it to MegaSquirt, but it also handles fuel pump relay and other wiring needed from the engine side. But you can just pass the wires through a hole in the firewall without using the relay kit.

Assembling the relay board kit is straightforward. All the components are marked on the PCB. Only the relay sockets have a unique orientation. To orient the relay sockets, look at the bottom of the socket. You will see that there are three pins which are equidistant, but the fourth is a bit longer from the imagined center - look and you will see this. The "longer" pin points toward the +12V/Grnd/Switch+12V pads on the PCB, away from the DB-37 connector. This is the same for all three relays.

The FIdle should always be wired through a relay, since MegaSquirt is only capable of handling ~500mA in the 'Fidle' circuit'. The relay board has all of the circuitry, fuses and relays up to do this. Pin 37 on the MegaSquirt DB37 provides ground to the FIdle relay on the Relay Board (which is supplied with 12 volts from the main relay) that activates a solenoid.

You must select the voltage polarity for your fast idle air solenoid (a.k.a FIdle). On the relay board PCB, there is a spot for a three legged component between the two relays - it is marked J1 and has two holes marked G and V.

However, in general FIdle valves can be wired into the Relay Board in two ways. They can take 12 volts from the relay board, and be grounded at the solenoid or at any common ground, OR they can be fed 12 volts from a switched supply (separate from the relay board) and then be grounded by the relay on the Relay Board when the DB37 connection causes the relay to close by providing a ground. The first instance supplies 12 volts when MegaSquirt wants FIdle activated. The second instance supplies a ground when FIdle is activated (mimicking the DB37 pin). If you are designing you own wiring system and using an 'off-the-shelf' vacuum solenoid with two wires for FIdle control, you can do it either way, so long as the solenoid isn't grounded through the case.

One type of solenoid has only one wire, and is grounded through the case, so it must have the relay board supply 12 volts. You would set the jumper to 'V'. This is the most common option, unless you are converting a previously injected engine which is wired for 'active ground' and you wish to use the existing fast idle valve and wiring (though most EFI engines don't have a FIdle valve, they have a stepper motor, which won't work with MegaSquirt in any case).

Note that you cannot install the upper part of the relay board case with the relays in place. The relay board is designed to be open-top, which is not a problem under the hood or inside the passenger compartment. The top is included in the relay board kit because it was easier to ship (not having to take apart all of the cases). Now, if you want, you could potentially cut out the top lid for the relays.

There is one DB37 hood supplied with each MegaSquirt kit but none with the relay board kit. Only one hood is included, because the plastic hoods would not survive under hood temperatures. Also, many people are soldering the wiring directly on the relay board, which means that they do not need the connector at all.

Also, you may want to spray on conformal coating after the PCB is soldered up - be sure to cover up the sockets with tape before spraying. And you should drill a very tiny hole inside of the top and bottom flange of the case to allow moisture to escape if mounted under hood.

Note that the relay board is NOT supplied with fuses. It uses the newer 'mini-ATO' style fuses, not the regular ATO fuses many people are used to. If you don't know what value fuses to use, start with:

If you are using a relay board, but in the car, the runtime display shows that both your air and coolant temperatures are 170°F and the TPS is at 100%, you need to run a sensor ground. Until you do so, the engine will not start because it thinks it should be in 'clear flood' mode due to the TPS signal.

On the relay board, the grounds for the coolant temperature sensor, air temperature sensor, and TPS are all brought in separately in to pins 14, 17, and 19 (on JP1), and feed to pin 19 of the DB37. Pin 19 of the DB37 MUST be grounded if your sensor grounds are brought back to the relay board as designed. The relay board cable has a return wire that goes from DB37-pin 19 to a common ground on the MegaSquirt PCB.

If you don't have this wire, you need to connect the sensors to ground. You can do this by:

All of these are electrically equivalent, however the last option (the way the relay board was designed) lowers the possibility of signal noise on the sensor inputs by giving them a separate ground path.

Making a “Pigtail” to Connect to MegaSquirt

You will need to connect your MegaSquirt to power, ground, sensors, fuel pump, fast idle valve, and injectors. You can do this using 18 or 20 gauge wires. The ground and injector wires carry more current, however they are “doubled-up” on the board. Wherever possible, use colored wires to make hook-up and troubleshooting easier. You may wish to build up the connector from multi-conductor cable, instead of individual wire runs, though it can be difficult to find multi-conductor cable with enough wires. You will need wires for the following:


Number of Wires to MegaSquirt

Pins on DB37
Injector #1 2 32, 33
Injector #2 2 34, 35
Fuel Pump 1 37
Coolant temperature (CLT) 1 21
Intake Air Temperature (IAT) 1 20
Oxygen Sensor 1 23
Throttle Position Sensor (TPS) 2 (5Vref, signal) 22 (signal),
26 (5Vref)
Ignition 1 24
Power (+12V) 1 28
Fast Idle Valve (FIdle)
(through relay)
1 30
Ground 5 7, 8, 9, 10, 11
Sensor Ground 1 19

If you are triggering MegaSquirt from the negative-terminal of the coil (-), you may want to use a shielded wire for this (there have been reports from the field indicating that shielded cable helps reduce false triggering).

Normally, you want to ground the opto-isolator by connecting XG1 to XG2 with a jumper. However, if you are triggering off of the coil primary, you may want to run the opto-isolator circuit return through the shield. Connect the shield to one of the unused jumper locations, like X11 (pin 25). Note that XG1 MUST be connected to XG2 for testing with the stimulator. Be sure that there is a jumper on MegaSquirt PCB from terminal XG1 to the terminal you choose for the return, like X11. Note that the X jumpers are brought out on the relay board terminal strip as "S" terminals, i.e. X11 is brought out to "S1", X12 goes to "S2", etc.

Assembling your wiring harness is not difficult, though it can be tedious. The specific procedure will depend on whether you are using a relay board. Below are some general directions. For some installations, it may be desired to run the cable through the firewall, and assemble the connectors on each end (one inside of the passenger compartment, the other inside of the engine compartment). If you do this, be sure to connect one wire at a time, on both ends, to make sure the wiring order is maintained correctly.

If you are NOT using a relay board, you only need to wire one DB37 connector. However, be very careful to position and label every wire so that you can connect it correctly. Use the above external wiring schematic.

If you are using a relay board, you will need to run wires from the various sensors and actuators to the relay board through the JP1 terminal block, where the external wires can be clamped into the relay board terminal strip using the small set-screws.

Relay Board JP1 Terminal Block Pin-Out
Pin Function     Pin Function
1 Injector 2 (ground by MS)     11 S5 (not used)
2 Injector 2 (ground by MS)     12 Vref (+5 Volts)
3 Injector 1 (ground by MS)     13 TPS Signal
4 Injector 1 (ground by MS)     14 TPS Return (Ground)
5 Fuel Pump     15 Tach/Ignition
6 Fast Idle     16 Air Temperature Sensor Signal
7 S1 (not used)     17 Air Temperature Sensor Return (Ground)
8 S2 (not used)     18 Coolant Temperature Sensor Signal
9 S3 (not used)     19 Coolant Temperature Sensor Return (Ground)
10 S4 (not used)     20 O2 Sensor Signal

The following instructions are for creating a MegaSquirt to Relay Board cable.

Do not use the external schematic from the FAQ/manual. It is for those who are creating their own harness. The relay board schematic from the Bowling & Grippo site is the ones you should use for wiring your MegaSquirt to your relay board, and wiring your relay board to the engine.

1) First, find locations to mount MegaSquirt and the relay board. MegaSquirt should be mounted away from excess heat, like in the passenger compartment. The Relay Board can be mounted in the engine compartment, or in the passenger compartment next to MegaSquirt. With both boxes mounted, measure the distance between them from DB-37 connector to DB-37 connector - this will be the length that you will cut the individual wires. If you are not using a Relay Board, allow enough length in each of your wires to reach the target component. It is often better to be too long and trim afterwards, than to be too short and have to splice additional lengths on.

2) Purchase some 1/8” (3mm) heat-shrink tubing which you can slip over the soldered connection and shrink. It is sometimes easier of you cut and strip each wire ahead of time, and cut ½ inch (12mm) lengths of heat shrink tubing and run two each on each wire, one for each end. For a Relay Board cable, you can move both heat shrink pieces to the center of the wire length, and then twisting the center of the wire with a few twists to hold the heat shrink in place, so that it does not fall off the wire or run down while soldering the connection. For a pigtail, you can slip the heat shrink tubing on later.

3) Find a vise and place the two DB-37 wire connectors, solder-cups up in its jaws. Orient them so that both are facing the same way, with pins 1 - 19 closest to you. If you do not have a vise, you can clamp the connector(s) between two small pieces of wood (~1” x ~1” by ~1 foot long) with 2” (50mm) wood screws. You will definitely want something to hold the connector, since as you attach more wires it wants to move around more, while at the same time you have less room to solder. Having it held stable helps a lot.

4) Now, you are going to affix one wire at a time (18 - 20 gauge), starting with the ground wires. Run one wire from pin #1 to pin #1 (there are numbers on the connectors) and solder both ends. Repeat with pins 2, 3, and 19 (this one is important - it is the return wire for the coolant temperature sensor, air temperature sensor, and TPS). If you want to run more ground wires from pins 4 - 18, you may do so - three is enough, but run more if you like (it cannot hurt). Note that each connector looks the same as the other - one pin to one pin.

5) Now, turn both connectors around, and start wiring away. You are gong to run the 18 - 20 gauge wires from the “active” pins from 20 to 37. Note that there is no wire for pin 36. Run each of these one at a time, starting with pin 20 to pin 20, then another wire from 21 to 21, etc. And, if you are using shielded wire for the coil (like RG-174 or audio cable), the center lead connects to pin 24 and the ground to pin 25 - make sure you run a wire from the terminal strip "S1" terminal to engine ground.

6) Next, unwrap all of those loops on the wires holding the heat shrink in place, and work each piece to each end of the connector, and shrink the tubing down with a heat gun, or even a lighter. At first, the wires will be a tangled mess, but when you start working the shrink tubing to each end, the kinks will work themselves out.

7) Finally, wrap the wires in electrical tape from connector to connector. The wiring will be slipped inside of a wire loom after being installed in the vehicle. An alternate way of bundling the cables is by using a large-diameter heat shrink tube, and run each wire inside of this large tubing when making up the connectors, then finally shrinking the entire piece down.

To test a MegaSquirt/Relay Board cable,

  1. Connect the cable to both MegaSquirt and the relay board.
  2. Apply +12 volts to the 12 Batt pad lead, and return battery to Engine Ground. If you jumper the Switched 12V to the 12V Batt pad, you will hear the main relay kick in, and MegaSquirt will power up. Keep this jumper connected.
  3. Next, hook up the sensors, e.g. hook the coolant sensor between the CLT and the CLT Ret terminals, which are the coolant temperature sensor signal terminal and coolant temperature sensor ground. Do the same for the MAT and TPS (the TPS connectors to the Vref, TPS and TPS Ret terminals). For each of these, run the PC Configurator and verify that these are working.
  4. For the O2 sensor, touch a jumper wire from the O2 to the Vref terminal (*NOT* 12 volts or injector +12V) - check on the PC Configurator for O2 sensor voltage.
  5. To check the injector drives, you can use the injector themselves, or use a tail light bulb and pigtail for this - connect from the Inj1 to the Injector +12V terminals, and repeat for the Inj2 side as well. For the fuel pump, hook a tail light between the FP terminal and ground - it should light when you trigger the tach wire.

MAP Sensor

The most fundamental measurement MegaSquirt uses to determine the amount of fuel to inject is the manifold absolute pressure. MegaSquirt uses the MPX4250AP as a MAP sensor, and it is supplied with ALL the units from the current group buy. It will correctly measure from a near vacuum to ~21 psi of boost. It is suitable for all naturally aspirated and most turbocharged engines. If you are going to run more than about 20 lbs of boost, you may need a MAP rated at a higher pressure. Check the 3-bar MAP sensor page for more information.

MegaSquirt normally mounts the MAP sensor in the MegaSquirt enclosure, where it is protected from mechanical and electrical stresses (be sure to mount it with the specified screws, don't use tie wraps or other fasteners, they can distort the case and cause false readings and/or sensor failure). As noted in the assembly guide, it can be mounted remotely, if desired. This was discussed in detail in the assembly guide.

You need to run vacuum tubing from the sensor to the engine intake manifold. You can use a nipple on the throttle body that has full-time engine vacuum (i.e. NOT ported vacuum). The source you choose should have a high vacuum at idle, if it does not, it is a ported source, and you need to hook your vacuum line somewhere else (either another nipple on the throttle body, or one connected directly to the intake manifold).

Make sure the vacuum tubing you use is appropriate for automotive environments, so that it will not melt, dissolve from oil, etc.

Don't worry about how long your MAP sensor vacuum hose is. Intuitively it seems that shorter should be better. However, a few people have done tests to see how bad the effect of a long hose was on vacuum signal propagation. With a ~100 foot (~30 meters) coil of rubber tubing in between the MegaSquirt and the engine, the result was that no delay was apparent. This was with about a 10 millisecond resolution clock. The reason for this is that air has so little inertia that it moves very quickly in response to a vacuum (this is how we fill the cylinders, after all!).

Oxygen Sensors

An exhaust gas oxygen sensor (EGO) is very useful for setting up the MegaSquirt volumetric efficiency table, and while it is highly recommended, it is not essential.

MegaSquirt can read from just one oxygen sensor. People who have engines with separate cylinder banks (V6, V8, etc.) will have to make a choice:

It is very important that there be no exhaust gas leaks upstream of the oxygen sensor. Certain conditions can draw ambient air into the exhaust, causing MegaSquirt to compensate for an apparently lean condition. This will falsely create a rich mixture in your system that can be difficult to diagnose. Those who have converted late-model “emission” engines, should be careful to understand and modify the operation of any air injection systems they have to be sure air is not being pumped into the exhaust ahead of the oxygen sensor(s) during “closed-loop” operation.

Closed loop refers to those times when an EFI computer is using the feedback on the mixture provided by the oxygen sensor to effectively control the injected amounts. For MegaSquirt, this is when the engine:

See the Settings/Enrichments section of MegaTune. “Open Loop” refers to those times when MegaSquirt ignores the feedback from the oxygen sensor. Note that MegaSquirt also allows you to set limits on how much (EGO + Limit (%)) and how fast (EGO Step (%) and Ignition Events per Step) the oxygen sensor feedback can influence the injected amount.

One, three and four wire narrow band O2 sensors [NB], and two wide band sensors [WB] are currently available on the market. MSD offers a heated sensor under part number 2330.

MegaSquirt was originally designed with an interface to a basic narrow band 02 just for cruise. Bruce, Al and others are working on options for wide band [WB] EGO sensing and tuning, and the current tuning software accommodates both the narrow band and wide band stoichiometric and voltage slope characteristics.

Narrow band O2 sensors are designed to measure stoichiometric [chemically correct] air/fuel mixtures [A/F] of 14.7:1 to allow catalytic converters to work efficiently. Narrow band sensors always have one wire for the sensing function. Additional wires are for the heater and its ground (3 wire sensor), and possibly an additional wire to ground the sensor itself (4 wire). The sensor needs to be quite hot to operate. The heater keeps the sensor at operating temperature under more conditions.

Examples are:

The difference between the heated (3 or 4 wire) O2 sensor and a non-heated (one wire) sensor is the A/F ratio sensing of warm up and low load conditions. The heated sensor uses an internal coil to heat the ceramic element to the desired 400° Celsius in 30 or 40 seconds. This temperature is also maintained when the car is at idle for extended periods of time or is under low load conditions where the exhaust gas temperatures fall below 400° C.

Under other operating conditions the exhaust gas temperature will be much greater than 400° C. and heating is not necessary. The non-heated sensor relies on the exhaust gas heat to keep it at its operating temperature. This works most of the time but there is still times that it might drop below its desired operating temperature and show a leaner than actual mixture as its output drops to zero.

A 1-wire sensor is as good as a 3-wire provided that it is always at operating temperature. If you cruise around for a bit with the engine at low load, the O2 sensor COULD cool down. If you do not have exhaust gas temperature [EGT] monitoring then you cannot be sure. Once warm, a 3-wire O2 sensor will stay warm. For most of us the one wire will prove to be adequate. A 4-wire has a shielded cable. You only need to ground the shield at one end. In many installations there is not enough voltage drop from the manifold to ground to make shielding worth the bother, but every little helps. So the more wires the O2 sensor has, the more situations in which the sensor will be active and accurate, but you are still stuck with knowing whether you are rich or lean, but not by how much.

MegaSquirt software has some support for Wide Band (WB) EGO sensors. Such sensors are made by:

These sensors (with an appropriate controller) have a different trigger point for stoichiometric compared to a narrow band sensor, and the opposite “slope” to the voltage curve. They require a separate driver board to operate, such as the:

See the links for details.

If you are using a wide band sensor and controller with MegaSquirt, select WB on the PC Configurator or MegaTune Enrichments screen and set the EGO switch point to 2.500 volts (for stoichiometric AFR) to take the WB characteristics into account.

Connecting the DIY-WB controller to MegaSquirt is really easy. The DIY-WB has a number of wires going to the sensor (you can cut the connector off the sensor, and run the wires all the way to the DIY-WB case, and install an equivalent calibration resistor there.) The DIY-WB board also has power and ground wires (two sets, which you can combine). These connections are detailed on the DIY-WB site. To connect the DIY-WB board to MegaSquirt, the output signal from the DIY-WB (J8) goes directly to the EGO sensor pin on MegaSquirt (pin #23 on the DB37 connector)

The DIY-WB can be calibrated to a "free air" reading of 4.00 volts.

Here is the DIY WB Vout for Gasoline by Robert Rauscher (July 2001):

Vout: AFR:
1.40 10.08
1.45 10.23
1.50 10.38
1.55 10.53
1.60 10.69
1.65 10.86
1.70 11.03
1.75 11.20
1.80 11.38
1.85 11.57
1.90 11.76
1.95 11.96
2.00 12.17
2.05 12.38
2.10 12.60
2.15 12.83
2.20 13.07
2.25 13.31
2.30 13.57
2.35 13.84
2.40 14.11
2.45 14.40
2.50 14.70 * Stoichiometric
2.55 15.25
2.60 15.84
2.65 16.48
2.70 17.18
2.75 17.93
2.80 18.76
2.85 19.66
2.90 20.66
. .
4.00 Free Air

Since the MegaSquirt EGO input (pin #23 on the DB37 connector) will accept a 0 to 5 volt signal, no changes are needed to the MegaSquirt hardware, and you can simply change the switch point (2.50 for stoich.), and sensor type (since NB and WB have opposite slopes to their response), and use it to tune.

Another possibility is the Precision Wideband Controller, which includes:

That is, PWC is a software solution as well as a hardware solution, meaning upgrades, etc., are possible. As well, the PWC was designed from the start to provide real-time fuel ratio correction, which requires a much higher level of accuracy and a faster response, as well as more information about the state of the exhaust (this is why it includes inputs for back pressure and exhaust gas temperature (thermocouple)). It also means that the system can be calibrated for fuels other than gasoline, etc. The PWC also has a serial interface to load software, etc., as well as networking hardware to communicate directly with UMS, etc.

There is much more on the PWC here:

The MegaSquirt EGO correction algorithm treats a WB O2 sensor/controller as if it were a narrow band sensor with a different voltage and slope (see diagram), but does not take advantage of the fact that it can accurately report AFR away from stoichiometric. In this sense it takes limited advantage of the sensor, but data logs derived using a WB sensor are still very valuable because MSTweak3000 can use the sensor readings to their fullest.

Sensor Type


Best Power

Narrow Band

0.45 Volts


Wide Band

2.5 Volts

~2.08 Volts

The Wide Band Advantage

With a narrow band sensor, we can really only tell for certain whether we are rich or lean, but not by how much. If you look at the graph, you can see that for a narrow band sensor, the 12.5:1 AFR required for maximum power can give O2 voltage from 0.8 to 0.95 (depending on exhaust gas temperature), yet this same range of O2 voltages can indicate mixtures from 10:1 to 14.5:1. So we cannot use it reliably to set mixtures for full power. With a wide-band sensor, 12.5:1 corresponds to 2.08 volts, and 2.08 volts means 12.5:1. Thus there is no ambiguity over AFR and voltages. We can measure any mixture in the range we are likely to use, from full power through to maximum economy. MegaSquirt does not currently have the capability to fully exploit a wide-band sensor by incorporating full time, all conditions closed loop feedback for fueling. MSTweak3000 is planned to soon have wide-band mixture target settings with real-time updating of the VE table.

If your car did not come with an oxygen sensor, you can add one. The thread for all oxygen sensors [including wide-band] is: 18mm x1.5mm - i.e., a metric thread 18mm in diameter with a pitch of 1.5mm, the same as 18mm spark plugs. The hex portion is 22mm, and a 7/8" wrench will work for installing/removing.

Unless otherwise specified, the oxygen sensor should be torqued to 30 lb·ft (40 N-m). Apply anti-seize (ex. GM #5613695) to the threads before installing.

To fabricate a bung to mount your sensor, you can go to your local automotive parts store and look in the section with all the HELP products. Pick up a package of "18mm Spark Plug Anti-foulers". Cut off the externally threaded part, and weld the rest to your manifold or down pipe. This works wonderfully and you can do 2 cars for 4 bucks. You can also get them from a speed shop under Holley part number 534-49 or MSD part number 2335 for about $10. Or you can go to muffler shop and ask for an O2 bung. And they can weld them in for you too!

The MegaSquirt version 2.2 hardware does not support two or more O2 sensors, only one. However, on version 2.2 boards the spare A/D channels are brought out on jumper pads, as are the extra connector pins, so you could wire up the filter network and put this in-line with the pads. There are no plans currently to modify the software to handle multiple-O2 sensors, but everything is there for you to do the modifications.

If you have installed a heated sensor, you will need to wire the heater in the sensor. Connect one heater wire into ignition-switched 12 volts, the other heater wire goes to ground. The heater wires are the often thicker than the signal and ground wires, and are sometimes white. O2 sensor heaters typically are about 18 Watts (1.5 Amps), so use an appropriate wire gauge and fuse. The heating element is Positive Temperature Coefficient PTC  (non-linear) resistor. When it is cold it has low resistance and draws about 2.4 Amps at 12 volts. As it heats up its resistance increases and current reduces down to much lower values (below 0.5 Amps). Thus it is self-regulated and when warm the current draw can be neglected. Most new cars have it connected in parallel with the fuel pump (which draws 8 Amps and more).

Colin Gebhart and Scott Campbell have an excellent page on the wiring of various oxygen sensors at:

Temperature Sensors

MegaSquirt uses coolant and air temperature sensors to determine the warm-up characteristics of the engine and the density of the intake air. They are essential to proper functioning of MegaSquirt. Both sensors are Negative Temperature Coefficient (NTC) thermistors. This means that they are resistors whose resistance decreases as their temperature goes up.

Naturally aspirated engines using MegaSquirt can use the same sensors for coolant and air temperature. These sensors are inexpensive (roughly US$9.00) GM units readily available from any parts store (GM part number 12146312, may have been replaced by #15326386). They have a 3/4" hex.

However, you will save some money if you can source these from a salvage yard, with the mating connectors (which are GM #12162193). If you are unable to get them this way, consider using a “spade-type” connector or reusing your existing sensors (with EasyTherm and/or resistor calibration adjustments).

Turbocharged or supercharged engines should use an open-element air temperature sensor for a faster response time. Here are some reported part number equivalents for both the coolant and air temperature sensors (verify before ordering):

Coolant temperature sensor (CLT)

Air temperature sensor (IAT)

GM #12146312
(may have been replaced by #15326386)
Standard TX3
AC DELCO 213-928
WELLS SU109 MSD 2310 (includes connector)

GM #25036751
Standard AX1
GP SORENSEN 779-19001
AC DELCO 213-190
WELLS SU107 MSD 2320 (includes connector)

Connector Pigtail (CLT)
(mushroom key way)

Connector Pigtail (IAT)
(square key way)

Wells PN 254
Conductite/Dorman 85100
(~$9 @ Autozone (PN 047131))
Wells PN 235
Niehoff PN PS77421 (~$15)
Conductite/Dorman PN 85110
(~$12 @ Kragen

The coolant temperature sensors were apparently found in the following applications:

Note: A few early installations using the open-cage MAT sensor experienced vibration induced failure of the sensor. The thermistor bulb is supported only by two thin wire legs.  These can apparently fatigue and break when installed in high vibration environments, such as occurs when you screw it directly into an intake manifold. Several people solved the problem by "potting" the legs of the thermistor with O2-sensor-safe silicone (most silicone sealer/adhesives destroy O2 sensors, so pay attention!), squeezing it down inside the sensor body but leaving the bulb exposed.

Note that these sensors have different connectors. The coolant temperature sensor uses a “mushroom” shaped key way where it inserts into the sensors, while the open element intake air temperature sensor uses a “rectangular” connector key way.

The wiring schematic for DB37 shows only one input for all of the sensors (except for the two for the TPS). The recommended GM sensors all have two wire connectors. The missing connection is a ground wire for the sensor. Sensor grounds should be brought to the same grounding point on the engine block as the MegaSquirt ground, unless they are grounded through the body of the sensor.

If you are looking for sensors with a standard “spade” type connector and a ground through the body of the sensor, GM part number 25036135 is what you need - see the illustration below:

(There is also a spade type GM sensor with a ¼" NPT thread available as GM part number 25036292. This part was originally used as an oil temperature sensor on 84-87 Corvettes, and has the same resistance curve as other GM sensors.)

The resistance curves for the MegaSquirt/General Motors coolant and air temperature sensors, as well as various part number cross-references, are listed below:

GM Temperature Sensor Resistance

Degrees F

Degrees C

























The thread for the recommended General Motors (and equivalent replacement) coolant and air temperature sensors for MegaSquirt is 3/8 inch National Pipe Taper [NPT] thread. A 9/16 inch pilot hole is required for the tap. Recall that pipe sizes are based on nominal inside diameters, not outside diameters as for standard National Coarse [NC] and National Fine [NF] threads. The sensors are designed to be tightened to 20 N-m (15 lb·ft).

Approximate sizes

Nominal Pipe Size
- actual ID is slightly bigger

Approx. Outside
Thread Diameter

Drill Size










These sensors were been used on practically all GM cars in the 1980s and are easy to find - the same is true for the correct connectors. However, other sensors can be used if the EasyTherm software is used to recalibrate your MegaSquirt.

Easy Therm

If you are using non-standard coolant and/or air temp sensors, you must create “.inc” files that are essentially look-up tables for MegaSquirt to relate resistance to temperature. These files must then be compiled into one .s19 file, and then down loaded to the MegaSquirt controller. EasyTherm makes it very easy to use “non-standard” temperature sensors with MegaSquirt. It does three things that otherwise can be a bit of a pain:

1) It automatically creates the .inc files from 3 temperature/resistance pairs. Entry in degrees Fahrenheit or degrees Celsius is allowed. Non-standard bias resistor values can be entered.

2) It creates the .s19 file using the above data - you do not need a compiler!

3) It downloads this .s19 file to the MegaSquirt controller via the serial link (once R6 is shorted to enter bootloader mode), and reboots the MegaSquirt - so you do not need to mess with Hyperterminal.

Do not forget that you need to copy the applicable .inc files that EasyTherm creates to your MegaTune directory after a successful down load.

The EasyTherm file can be down loaded from the MegaSquirt Forums file section.

To use MegaSquirt with an air cooled engine, you will have to decide where the best place is for the coolant sensor: in the oil, or on the cylinder head (CHT). There are various arguments for and against using either CHT or oil temperature as the 'coolant' temperature input on air cooled motors. A lot depends on whether the motor is substantially oil cooled or not. Since the CTS input is used for warmup enrichment, you want something that responds fairly rapidly, so this is highly engine-dependent.

One side of the argument says to use the CHT over the oil, as the oil takes over twice as long to get to operating temperature than water in a water-cooled car does. The engine does not need to run rich for long periods, only enough to keep the car drivable while it is warming up. Once the cylinder head is up to temperature, the car is usually quite drivable. For an air cooled engine you can drill and tap into a fin in the head for the CHT sensor.

The other side says that it does not matter if the oil warms more slowly, you can just set the warm-up enrichment to come off at a lower temperature. In that case, the GM coolant sensor fitted in the oil (sump) will work nicely. Search the archives for extensive discussions on these points. It is your decision.

Throttle Position Sensor

MegaSquirt uses the throttle position sensor (TPS) to determine when the engine is at or near full throttle (to shut off feedback from the O2 sensor), when the engine throttle is opening or closing rapidly (and needing an accel/decel enrichment), and when the engine is flooded and needs to be cleared. While very helpful, some people have managed to make their engines function reasonably well without one. This is not recommended with the standard code, however.

You will need a TPS that is really a potentiometer and not a switch. Many older cars had idle or WOT position switches instead of a real TPS. A real TPS gives a continuously varying signal with changing throttle. There are two wires on the external wiring schematic that go from MegaSquirt into the TPS sensor. These two MegaSquirt wires are +5 Vref signal and a sense line. There is a third wire going to ground. Assuming that you have a proper potentiometer TPS, then +5 Vref goes to one side of the pot, the other side goes to ground and the sensor line is hooked to the wiper.

To hook up your throttle position sensor (TPS), disconnect the TPS, and use a digital multi-meter. Switch it to measure resistance. The resistance between two of the connections will stay the same when the throttle is moved. Find those two - one will be the +5 Vref and the other a ground. The third is the sense wire to MegaSquirt. To figure out which wire is the +5 Vref and which is the ground, connect your meter to one of those two connections and the other to the TPS sense connection.

If you read a high resistance which gets lower as you open the throttle, then disconnected wire is the one which goes to ground, the other one which had the continuous resistance goes to the +5 Vref from the MegaSquirt, and the remaining wire is the TPS sense wire.

The throttle position sensor is used for flood clear mode and EGO enrichment, as well as accel enrichment:

In each case it is the actual voltage measured at the TPS input that is used, not the "Throttle Position %" displayed in MegaTune.

Use the "Tools/Calibrate TPS" function in MegaTune to ensure that you have an ADC count value well below 155 at closed throttle, and above 178 at wide open throttle (WOT). This will ensure that you are not in flood clear mode while cranking (ideally, your TPS at closed throttle will be 20 or less), and yet still able to activate flood clear mode. Many TPS are adjustable by loosening the screws and rotating it a bit. Also verify that the ADC count increases as you open the throttle, otherwise you have the TPS wired backwards. You should recheck the TPS range each time you change the idle position or reassemble the throttle linkage.

Fast Idle Solenoid

The fast idle solenoid is an open/close solenoid vacuum control valve to admit more air when cold. Unlike a cold start injector, it does not handle fuel at all, only additional air. The fast idle solenoid is not the same as an IAC motor, or anything that is controlled like a stepper motor. It is either open or closed. The fast idle solenoid is an off/on electrically controlled vacuum “leak” that speeds the engine RPM for cold starts. Such solenoids have been used often in modern cars, frequently to control EGR valves.

The fast idle solenoid takes clean air from the air cleaner and allows it to bypass the throttle and go directly into the intake manifold. This does not cause a lean condition [as it would with a carburetor] since the MAP sensor adjusts for the “extra” air.

The fast idle is simple, just like the MegaSquirt system is simple. There are simply too many different stepper motor types out there (General Motors uses bipolar, some Chryslers use unipolar, others use PWM proportional control, etc., etc.) to manage with a simple solution. Also, the control of all of the different types of IAC motors out there would be a support nightmare.

The philosophy of MegaSquirt is simple, and the fast idle solenoid control is a simple as it gets. If your application requires fine control of idle, then you will need to pay more and purchase a commercial unit.

Note: MegaJolt Light is expected to have some form of IAC stepper control when it arrives in early 2003.

SDS sells a air bypass valve which you could use for a fast idle solenoid. The price is ~$70.00 - look for fast idle solenoid; on their specifications page. However, the Fast Idle Solenoid that SDS sells appears to be the same thing as the Solenoid-actuated 3-Port Fuel Tank Selector Valve that J.C. Whitney sells for half that price under P/N 81ZX2686W.

Other possibilities can be found at McMaster-Carr under Process Control and Instrumentation/Solenoid Valve/Aluminum and Thermoplastic Solenoid Valves.

There are some possibilities for the fast idle solenoid from the NAPA catalog:


EGR Solenoid

(91-93 Buick, 88-93 Chevy)


These all have separate inlet/outlet that looked usable for rubber hose connection. You may be able to get one at a wrecking yard.

If your throttle body has the OEM IAC [idle air control] stepper motor installed, you will need to plug/disable/adjust it so that you can leave it in place. If you search for your throttle body servicing information you may discover that you can indeed manually adjust your IAC. For example, with a General Motors IAC, you remove the IAC from the throttle body. Then simply hold the spring back and turn the tip of the IAC to unscrew it. Then turn it back in until it tightly seals the port. Now you can simply set your warm minimum idle speed by manually adjusting the IAC tip in this manner.

There also may be an idle speed screw in the throttle body that is blocked by a small metal plug. Remove that plug and you will see a conventional idle speed screw. It is easier to make fine adjustments in the field with this screw than it is with the IAC.

If you are using a Relay Board, note that your FIdle valve can be wired into the Relay Board in two ways. It can take 12 volts from the relay board, and be grounded at the solenoid or at any common ground, OR it can be fed 12 volts from a switched supply (separate from the relay board) and then be grounded by the relay on the Relay Board when the DB37 connection causes the relay to close by providing a ground.

The first instance supplies 12 volts when MegaSquirt wants FIdle activated. The second instance supplies a ground when FIdle is activated (mimicking the DB37 pin).

If you are designing you own wiring system and using an 'off-the-shelf' vacuum solenoid with two wires, you can do it either way, so long as the solenoid isn't grounded through the case.

For example, some solenoids have only one wire, and are grounded through the case, so they must have the relay board supply 12 volts. In this case set the jumper to 'V'. This is the most common option, unless you are converting a previously injected engine which is wired for 'active ground' and you wish to use the existing fast idle valve and wiring (though most EFI engines don't have a FIdle valve, they have a stepper motor, which won't work with MegaSquirt in any case).

Some people have been using an auxiliary air regulator for fast idle control. SAAB, VW, and many other European vehicles used this system on their early EFI systems (D-jetronic) and on their mechanical injection system (CIS). The great thing about this system is that it does not need to connect to MegaSquirt at all. You just hook up 12 volt, ignition switched, and you are ready to run. Use 12 volts from the fuel pump relay. If the engine is not actually running you do not want it powered up, as it will move to the 'warm' position even though the engine isn't running.

Mount the regulator to the engine such that engine heat can keep the valve closed when you do not need any additional air for warmup. During cold starts, the auxiliary air valve opens to allow additional air into the inlet duct. As engine heats up, a bi-metallic element expands and closes valve. At approximately 140°F (80°C) the auxiliary air orifice is completely closed by the valve.

This valve is especially useful to those that have adopted one of the ignition variants of MegaSquirt (MegaSquirt'nSpark, MegaSquirt'nEDIS, etc.), as the FIdle control function is typically lost in these implementations.

Ignition Triggering

In most cases, you can just hook the MegaSquirt tach signal wire to the tach pin on your ignition and it will work fine. For some installations, however, getting a decent tach signal may require some trial and error.

Now, with that said, almost all of the people experiencing tach problems have worked them out by experimentation with different components or alternative trigger methods. Does not seem to be the most direct method, but with so many different setups out there, it is the only thing that can be done. Things to try if you experience tach noise:

1) Before anything, make sure that the ignition system is up to snuff - good plugs/wires/coil/etc.

2) Some installations have reported problems with low rpm spikes. Typically this sees the reported rpm at 1100 rpm jump to 5000+ rpm for short periods. This can make idle and off-idle tuning difficult. To fix this, add the “Dave” capacitor. This is a 0.22µf cap across the junction of D5/R10 to XG1.

Suitable capacitors include:

Digi-Key Part Numbers for the “Dave” Cap C31


0.22µF, 250V

METAL POLY CAP, ±10%, Radial

$0.54 each


0.22µF, 250V

CAP FILM MMKP, ±5%, Radial



0.22µF, 250V

CAP FILM MKT, ±10%, Radial



0.22µF, 250/300VAC



Many other capacitors can be used, including 0.33µf. People have used capacitors rated as low as 50 volts, however higher rated caps with better withstand the voltage spikes of up to 120 Volts that can appear in the tach signal. See Dave Hayne's web site ( for more details.

Solder one leg of the Dave cap to the XG1-XG2 jumper, and solder the other leg to the end of R10 furthest away from the web address on the silkscreen (i.e. the "top" of the board when you can read the text).

3) If you are running a VR (variable reluctor) sensor, one method that works nicely is to use a 4-pin HEI module as a trigger. You use this in parallel with the existing HEI module, in that the VR sensor wires hook up to both modules. The new module is used to generate tach signals to MegaSquirt only.

NAPA OnLine sells the 4-pin HEI ignition module, ECHTP45, for ~$39 + shipping. These are also widely available as Wells DR100, Niehoff DR400, Standard part number LX-301 (~$28); or AC DELCO D1906 (~$33), and were used on many non-computer GM V-8s, V-6s and I-6s from 1975 to the mid 1980s.

Here is how to wire it up. The four HEI module terminals are labeled W, G, B and C.

W and G; hook up to the VR sensor (parallel with the existing module). Hook a 470 ohm, 1/2 watt resistor between terminal B and C. Hook terminal B to a switched +12V supply. Hook C to the tach lead on the MegaSquirt box. Be sure to mount the HEI module such that the metal bottom is connected to ground (either engine or chassis). The module will not get hot, since there is not much load (the resistor), but the metal still needs to be grounded. In the MegaSquirt box, be sure there is the Wing diode (no John Zener) and Ed capacitor (try 0.001mf).

This trick works for pretty much any VR ignition system - it does not have to be a GM, pretty much any VR sensor will drive the HEI module. And the HEI module presents a high-impedance to the VR sensor circuit, so you can parallel with an existing ignition set-up without harm. It is possible to trigger off of the (-) terminal of the coil, and in many cases it is successful - Bruce has been running this way for a year, so have others. But, there are some applications that the trigger will be noisy - and, unfortunately, it is impossible to predict ahead of time which vehicles will be the noisy ones -what works on one car will not work on another car, even the same make/year.

4) Change the value of the Ed capacitor - from 0.001mf to 0.1mf. The higher value capacitors will reduce more of the noise through “averaging”, but may inhibit higher RPM trigger due to too much averaging.

5) For a few ignitions, varying the 390 ohm resistor (R10) up to higher values, up to 10K (or more in some installations - consult the Forums), may also reduce the noise in some cases. It is not possible to predict in advance what value will work with which ignition.

6) If there are processor resets, then running the opto-isolator LED return back to the engine ground via a dedicated wire will solve this. The assembly guide has details on this.

7) It has been reported that running shielded cable back to the ECU for the tach signal will help a great deal for some installs.

Now, if the above does not work, then an alternative-form of trigger is required. If one is using a VR sensor, then using an external VR amp, like a General Motors HEI module, paralleled off of the VR sensor itself, will work. See step #3 above. The HEI module is used as a nice trigger source for the MegaSquirt box.

For Hall sensors, taking the signal right off of the hall sensor works nicely. The value of the pull-up resistor, as well as the 390 ohm series resistor, may need to be adjusted. There are plenty of people on the Yahoo! list with experience on how to do this.

There is a big difference between these two types of sensors.

The VR sensor is an induction type sensor, it is passive;, i.e. it does not require a power source, and has a small magnet built in. It basically works like a dynamo. The output of this sensor varies with the speed of the engine. At idle the output is approximately .6 volts, at mid RPM it is closer to 3 volts, and at high revs it goes to almost 50 volts. You have to keep in mind that this type of sensor produces an AC output. The pulse is positive when the pole is approaching, and negative when the pole is leaving (provided you have the right polarity). The simplest way to see this is by hooking it up to a cheap analog voltmeter and using a wrench or other non magnetic - soft iron; piece of metal. When you put the metal piece on the sensor the needle on the voltmeter will swing one way. When you quickly remove it the needle will swing the other way.

A Hall sensor is an active magnetic field presence sensor. It is based on the Hall effect, that is a semiconductor changes its resistance in a presence of a magnetic field. These types of sensors require a flying magnet wheel. Instead of teeth on the wheel you must have small magnets. This type of sensor has an electronic circuitry built inside and thus provides a constant voltage pulse regardless of the speed. The sensor is also sensitive to the polarity of the magnet. N pole will turn it on, S will not, or vice versa dependent on the orientation of the sensor. The pulse produced is as long as there is a magnetic field of some strength present, and is always of the same polarity (positive with respect to ground).

VR sensors are cheap and very rugged, Hall effect sensors are much smaller, more expensive, and nearly as rugged.

If you cannot get any of the above suggestions to work, then another trigger source, like an external VR sensor with a crank wheel, will work. This will require more work on the user end, but if the situation leads you to this, then this is all that can be done.

MegaSquirt cannot handle a capacitive discharge ignition (CDI) output directly. The CDI primary voltage is around 400V. Either uses a tach signal or the VR/points input.

Sensor Troubleshooting

  1. Whenever you have 'funny' readings from any of your sensors, the first thing to do is create a datalog to study. You do this in MegaTune (Alt-L, Enter), then you can view the datalog using MS Datalog Visual Viewer. You can download that here:

  2. If you discover odd behavior from your MegaSquirt (especially random or fluctuating sensor values) after you have installed the vacuum hose to the MAP sensor, it may be that the rubber hose used to connect your MAP sensor has an low surface resistance (about 2K per inch). If it touches any pins on the bottom of the board, it will short a lot of stuff out.

    To fix this, pick up a length of 3/32" (~2.5mm); hollow brass tubing at the hobby shop - used in model R/C work. Cut off a piece long enough to run out of the back. Then use a flare tool to make a small lip on both ends to act as a barb. You can then hook it up with a short piece of vacuum tube, and ran the brass tube out the back panel.

    Or you can insert the rubber (or vinyl) MAP-Bulkhead tubing in a short length of heat shrink tubing before installing it, and shrink it carefully once it is in place. This insulates the tubing, and holds the tubing tighter on the barbs. You can also use it to hold it on the barbs on both sides of your bulkhead fitting. Heat shrink tubing is non-conductive [by design] and relatively resistant to puncture and abrasion. Choose an appropriate size so you do not collapse the tube.

  3. If your MegaSquirt works fine on the stimulator, but the runtime display shows that both the air and coolant temperatures are 170°F and the TPS is at 100% when installed in the car with a relay board, you need to check the sensor grounds.

    On the relay board, the grounds for the coolant temperature sensor, air temperature sensor, and TPS are all brought in separately through pins 14, 17, and 19 (on JP1), and feed pin 19 of the DB37. They then travel through a wire connecting the pins 19 at either end of the cable. At MegaSquirt, the pin 19 sensor ground is joined to a common ground on the PCB with all of the other ground pins (pins 1-18). Pin 19 of the DB37 MUST be grounded if your sensor grounds are brought back to the relay board as designed.

    The relay board cable is designed to have a return wire that goes from the relay board DB37-pin 19 to a common ground on the MegaSquirt PCB. If you do not have this wire in your MegaSquirt/relay board cable, you need to connect the sensors to ground. You can do this by:

    All of these are electrically equivalent, however the last option (the way the relay board was designed) lowers the possibility of signal noise on the sensor inputs by giving them a separate ground path.

  4. If you plugged your MegaSquirt into your stock sensors and also to your OEM ECU, you will have problems with either of them reading correctly. To correct this, see the information at the following page:

  5. If you used your OEM sensor (non-GM) and your temperature gauges don't read right in MegaTune, you'll need to use EasyTherm to calibrate both MegaSquirt and MegaTune. You can download EasyTherm from here:

  6. Note that if you have a bad signal from the TPS to your MegaSquirt, the TPS value will slowly creep up to a maximum value, and O2 correction will be disabled. Check that your TPS connections are sound.

  7. If you have trouble starting the car, and no fuel seems to come out of the injectors, use the "Tools/Calibrate TPS" function in MegaTune to ensure that you have an ADC count value well below 155 at closed throttle, and above 178 at wide open throttle (WOT). This will ensure that you are not in flood clear mode while cranking (ideally, your TPS at closed throttle will be 20 or less), and yet still able to activate flood clear mode. Many TPS are adjustable by loosening the screws and rotating it a bit.

  8. If your TPS seems to work backwards, verify that the ADC count increases as you open the throttle by using the TPS Calibrate tool in MegaTune, otherwise you have the TPS wired backwards. You should recheck the TPS range each time you change the idle position or reassemble the throttle linkage.

  9. If you have a problem where in which you: you probably have a faulty connection in the TPS wiring that limits the voltage range of the TPS (a capacitor keeps it above a certain level if the signal is disconnected while active). check all of the connections at the DB37 ad the TPS itself (as well as the relay board if you are using one).

  10. If the acceleration enrichment (AE) on your MegaSquirt comes on for no apparent reason, it will make the car run rich. It will also run jerky while cruising. If this happens, check your TPSdot threshold setting on the enrichments page of MegaTune - if this is really low, then you will get erroneous triggers due to small noise spikes or bit error. Generally, you should use a value of 0.97 volts/second or above.

  11. If the above doesn't solve the TPS accel enrichment events, check to see that the TPS wires are not near spark plug wires that could introduce noise. Also, check to make sure that the TPS ground wire has a good connection - this could also cause random accel triggers. Watch the runtime screen at idle to see if the TPS number bounces around.

  12. If the MAP sensor reads too low or too high by a factor of 2, you can check that your MegaSquirt MAP sensor is reading too low, but responds to vacuum and pressure, then you have the wrong ".inc" files in your MegaTune folder. Copy the files (you need are "" and "") from the "Turbo" sub-folder into your MegaTune folder, and everything should work. Place the correct files in your MegaTune directory (for older versions), or in the mtCfg folder (if it exists). (The "turbo" files refer to the ability of the MPX4250 MAP sensor to sense boost, not to the actual configuration of the engine.)

  13. If your MAP sensor reads low (usually ~19 kPa) and doesn't respond to vacuum or pressure, it is likely in backwards. Verify that it is in correctly. If it isn't, unsolder it, turn it around, and solder it back in. You will have to bend the pins the other way - be careful not to break them. You probably haven't damaged any components by installing the MAP sensor backwards.

  14. If you find your MAP gauge is reading somewhat low, or doesn't seem to go all the way to 250 kPa (in relation to a boost gauge, for example), we can't be sure if is the MegaSquirt being low or the boost gauge being high.

    The way to test the MAP sensors is with a syringe - hook it to the MAP line and see if you get over 250. Below is a scan of the label from the syringe know to work, so you know what to ask for at any drug store (though virtually any syringe will do). Take the needle off and screw the syringe directly into the vacuum line, then compress the syringe and you should get 'boost'.

    You should also see about 95-100 kPa in MegaTune at rest (depending on your elevation and the weather conditions), and 250+ kPa at maximum pressure (which you should be able to achieve by hooking the syringe up fully extended, then compressing it) so check that.

    At normal sea level, the MAP sensor signal on the board (pin #1, the pin closest to D4) will be 1.75 to 1.80 volts. With the syringe fully compressed (but not bottomed out), you should be able to get at least 4.90 volts from the MAP sensor signal pin. If not, touch up the soldering on the MAP sensor pins.

    The MAP sensor signal goes directly to the CPU (through R2) on pin #23 (near the inductors). So check that you are getting the same voltages as above on CPU pin #23. If you don't, recheck the soldering on pin #23, the resistor R2, the capacitor C4, and make sure that the diode D1 is not installed.

    Assuming that all checks out, it is probably safe to assume that the boost gauge is wrong, not MegaSquirt. However, you could try a lower value on R2 - it's 1K, but you could try a 390 ohm resistor to see if that helps at all.

  15. If your oxygen sensor feedback doesn't seem to work, recall that the O2 voltage (top bar on the MegaTune Runtime dialog) is the raw data coming in (and it should respond to stimulator input). On the other hand, the EGO correction bar (or equivalent gauge on the tuning screen) WILL NOT move away from 100% unless you have the EGO correction parameters set properly and MegaSquirt senses the proper inputs to activate EGO correction. Don't confuse EGO and O2 voltage. EGO is a kind of integrator function that acts on the O2 voltage. So, O2 should respond, EGO will only respond if MegaSquirt has:

    These are set on the enrichments window of MegaTune.

  16. If the O2 signal is zero volts (or nearly so), this is telling MegaSquirt that the mixture is too lean (even if it isn't). The most common way this happens is if you get rich misfires. This puts extra unburnt oxygen into the exhaust, and the sensor reads lean, even though the mixture is rich. As a result, MegaSquirt will richen the mixture, if in closed loop mode. The signal stays at zero volts, though, so the mixture is made even richer. The result is lots of black smoke.

    It is also possible for a too rich mixture to result in cool exhaust gas temperatures that cause the sensor to read low (as it would during warm-up).

    However, if you lean the engine down enough for the O2 sensor to read rich, and then keep leaning it - the sensor should eventually read lean.

    In the meantime, disable O2 sensor feedback by setting the EGO step (%) to zero on the MegaTune enrichments page to prevent very rich mixtures that confuse your tuning efforts.

If none of these help, post a message to, explain your problem thoroughly, and include a datalog if you can.

If you have a question, comment, or suggestion for this FAQ, e-mail the editor.

©2004, 2005 Bruce Bowling and Al Grippo. All rights reserved.