# MegaSquirt

MegaSquirt is a general-purpose aftermarket electronic fuel injection (EFI) controller designed to be used with a wide range of spark-ignition internal combustion engines (i.e., non-diesel engines.) MegaSquirt was designed by Bruce Bowling and Al Grippo in 2001.

## History

The Megasquirt's predecessor was the EFI332 project, led by Bruce Bowling and Al Grippo. EFI332 development started around 1999 and culminated in the release of about 200 kits in 2000. The system used a 32-bit MC68332 microcontroller from Motorola. A very steep coding, electronic design, and tuning curve prevented the system from gaining wider acceptance.
The designers then decided to simplify the EFI332 design, and focus on managing the fuel injectors (the EFI332 was also designed to control the spark plug ignition system if so desired). This was the basis for the first MegaSquirt (MS-I).
The MegaSquirt was launched on September 15, 2001.
Many components (circuit boards, pre-programmed processors and complete kits) are now available on the market, enabling even ambitious amateurs without in-depth IT and electronics knowledge to set up and commission the system. Such an assembly of pre-assembled components can be seen on the project's homepage.
In the meantime (as of 2013), it is also possible to access the control unit with Android devices during operation. The connection is established via a Bluetooth adapter connected to the control unit. For the time being, it is not possible to change the control parameters directly.

## Current Products

| | MegaSquirt | MegaSquirt II | MicroSquirt | MicroSquirt module | Megasquirt III | MS3Pro |
| Released | 2001 | 2005 | 2007 | 2009 | 2010 | 2012 (updated in 2017) |
| Processor | 8-Bit MC68HC908 | 16-bit MC9S12C64 | 16-bit MC9S12C64 | 16-bit MC9S12C64 | 16-bit MC9S12XEP100 | 16-bit MC9S12XEP100 |
| Speed | 8 MHz | 24 MHz | 24 MHz | 24 MHz | 50 MHz (+100 MHz XGATE) | 50 MHz (+100 MHz XGATE) |
| Flash | 32 kB | 128 kB | 128 kB | 128 kB | 1024 kB + 32kB data flash | 1024 kB + 32kB data flash |
| User RAM | 512 B | 4 kB | 4 kB | 4 kB | 64 kB | 64 kB |
| Features | Depends on firmware, Inexpensive | More precise fuel control, Ignition Control, CAN Bus, GPIO, Inexpensive, User Spare Output Ports, Automatic Mixture Control, Flex fuel (E85) abilities | Same Features as MS-II, plus Small Size, Sealed case, Dual Ignition/Injection Channels, Assembled | Single card complete MS2 based ECU designed to be used as the basis of an ECU of the user's creation. Includes firmware license. | Extension of MS2, V8 sequential fuel and spark, many more i/os. Wide range of OEM crank/cam wheels supported. Many racing features built in. Onboard USB-serial, SD card datalogging. See the detailed cross reference. | Refined Engineering and Packaging of MS3 creating a Ready to Use Standalone Engine Management system less targeted at the DIYer and more at the amateur/semi-pro racer. Turning MegaSquirt DIY technology into a Premium Standalone EMS. |
For a more detailed cross-reference of the features available within the MegaSquirt range of products, see MegaSquirt product cross reference

## Hardware

The assembled controller takes input from several sensors in order to manage the fuel injectors, including a throttle position sensor (TPS), exhaust gas oxygen sensor (EGO or O$_2$ sensor), MAP sensor, Crankshaft Position Sensor, optional Camshaft Position Sensor, Intake Air Temperature sensor (IAT), and a Coolant Temperature Sensor (CLT). The default calibration is configured to match common General Motors type, although the controller can easily be recalibrated to use nearly any sensor on nearly any engine.
As the product line of Engine Management Systems has evolved through multiple hardware and firmware revisions, at least when referring to the Legacy/DIY oriented MegaSquirt Systems (kit type ECUs) it is difficult to be specific about the capabilities of any particular MegaSquirt without knowing three things: microcontroller, printed circuit board and firmware versions. As for the commercial/refined MS3Pro and MSPNP lines, this is far simpler as these systems were engineered to 'just work' and not aimed at the DIYer.

### Microcontroller

The version 1.0 MegaSquirt used an 8-bit Motorola MC68HC908 microcontroller, and all versions of the main board support this processor. The later MegaSquirt-II processor upgrade daughter card includes a 16-bit MC9S12, and is a step up from the original MC68HC908 processor MegaSquirt. The current Megasquirt-III uses a 16bit MC9S12XEP100 processor running at 50 MHz which includes a 100 MHz RISC core.

### Printed Circuit Board

The first group buy of printed circuit boards for the original MegaSquirt-I was in 2001. These boards are V1.01 main boards, and are no longer available. The second group buy in 2002, as well as all following purchases until 2005 are V2.2 main boards, and have a V2.2 printed in the upper left corner of the PCB. MegaSquirt ECU's have not been sold by group buy since 2002. Instead, vendors resell the Bowling and Grippo offerings, and they keep stock current, so all items are normally available at all times. There is a list of vendors in the megamanual. Starting in July 2005, the V3 PCB was made available to use some of the advanced features of the MegaSquirt-II. As of August 2007, the v2.2 and v3 boards are still available.
There is a newer version of the PCB. The V3.57 is a surface-mount device (SMD) version of the MegaSquirt V3 "thru-hole" main board. The 3.57 version of the board was created in order to allow for automated assembly of the majority of components using automated pick and place (machine assembly) and reflow soldering. The boards are meant for those unable or unwilling to assemble their own main board. Note that the V3.57 board is not a replacement for the "build-it-yourself" boards, but rather an additional version of the MegaSquirt main board intended to make life easier for distributors who are building their boards for resale, to compete with mainstream ECU suppliers.
Although this board uses surface-mount components, the layout is the same as in the V3 main board, apart from the omission of the DIY-oriented prototype area (the 3.57 is not meant to be a DIY board, of course). Component numbering remains the same in nearly all cases. In fact, this board version started with the V3 main board, and maintains the 4-layer construction and power distribution. It is the same size (4" x 6") and the connectors are in the same places, so it fits in the standard case with no modifications (though some modifications may be necessary for additional functionality).

## Firmware
### Firmware for MS-I chip

* standard V3.000 code
    This is the default pre-loaded code from Bowling and Grippo. It is a simple and effective fuel injection controller with an 8x8 fuel table for speed density or alpha-n. Narrow band or wide band oxygen sensors can be used for closed loop control, and an on/off idle valve may be used.
* MS1/Extra (MegaSquirt 'n Spark-Extra)
    MS1/Extra is a firmware modification to the original Bowling and Grippo MegaSquirt written by Philip Ringwood and James Murray (with contributions from many more). As the name implies it adds ignition management, as well as a large number of other features such as boost control, nitrous, fan control, programmable outputs, water injection and more to MegaSquirt. Hardware modifications are required to run ignition and the learning curve is steeper than a fuel-only implementation, but many hundreds of users use the "MS1/Extra" firmware. The firmware was very actively developed and is now a stable alternative to the base MS code. Most MegaSquirt vendors ship the MS1/Extra firmware as standard on MS1 boards. The firmware is designed to operate using either a supported ignition system, such as GM HEI, or Ford EDIS, or it can decode certain trigger wheel signals from crank/cam sensor pickups and directly run wasted spark or coil on plug.
* MS1/Custom Suzuki G13B
    MS1/Custom Suzuki G13B is a firmware modification to the MS1/Extra by Sebastian Giroldi, an engineer and Suzuki enthusiast better known by his nickname Caaarlo. The wheel decoder is tailored to read the very particular pattern of the camshaft encoder wheel found in the Suzuki G13B engine that powers the Suzuki Swift GTi, GT and Cultus GTi. It also generates the adequate PWM frequency for the factory Idle Solenoid, avoiding the need for generic toothed wheels and idle valves.

### Firmware for MS-II chip

* standard MS-II code
    This is the default Al Grippo code that you can load onto your MS-II board. The code has (multiple) 12x12 fuel and spark tables, stepper IAC control, PWM idle valve control, several user-configurable spare ports (for things like boost control, water injection, fan control, etc.), self-tuning functions (Automatic Mixture Control - AMC), and fuel control to 1 μs (100 times more resolution than MegaSquirt-I). MS-II can control distributors or EDIS ignitions and decode many standard toothed crank wheels. Additional features includes X-Tau transient enrichment compensation (acceleration enrichment), nitrous control with fuel and spark adjustments, enhanced closed-loop mixture control w/ wide band sensor AFR targeting, two types of rev-limiting, MAP/MAF/alpha-N fuel control, injector test mode, flex fuel (gasoline/E85) with appropriate sensor, and many more.
    See the Megamanual for download and documentation
* MS2/Extra code
    This is an extension of the base code, adding many of the much needed MS1/Extra features to the MS-II chip. Enhancements include wide support for OEM crank/cam wheels, wasted spark and COP ignition, closed loop idle, EAE, boost control, nitrous control and many other features. Latest test codes support 4 cyl sequential fuel. Code is licensed for use on genuine B&G products only.

### Firmware for MS-III chip

* standard MS-III code
    This is the default MS3 code that you can load onto your MS-III board. The code has (multiple) 16x16 fuel and spark tables, support for up to V8 sequential fuel and spark, stepper IAC control, 2 or 3 wire PWM idle valve control, fuel control to 1 μs, several user-configurable spare ports, specific features for boost control, water injection, fan control, nitrous control etc., MS-III can control distributors or EDIS ignitions and decode a wide range of OEM toothed crank and cam wheels. Additional features includes enhanced transient enrichment compensation (X-Tau and EAE acceleration enrichment), enhanced closed-loop mixture control with wide band sensor AFR targeting, closed loop idle control, various types of rev-limiting, MAP/MAF/alpha-N fuel control, injector and coil test mode, crank/cam input diagnostics, SDcard datalogging, flex fuel (gasoline/E85) with appropriate sensor, LPG support, and many more.

## Licensing issues

The licensing surrounding Megasquirt has at times been misunderstood.
    The hardware designs and application firmware are copyrighted by Bowling & Grippo and subject to patents.
    The source code of the firmware(s) are available to download for peer review and end-user modification, but the code and derivatives are only licensed for use on official Megasquirt hardware.
    The success of Megasquirt has spawned a number of unlicensed clones.