MegaSquirt-I™ Electronic Fuel Injection Computer - Features
Here is a list of some of the features and benefits of the MegaSquirt-I™ EFI Controller:
Fuel calculations based on mathematical equations and physical formulas relating directly to your vehicle - many other existing systems rely soley on trial-and-error, estimation or guesswork for fuel delivery.
All of the embedded microprocessor code executed for MegaSquirt-I™ was hand-written directly in assembler, not compiled from a high-level language. Working directly in assembler produces the tightest and fastest-executing code possible, even compared to the most efficient C compiler available. The result is that MegaSquirt™-I can provide real-time fuel calculations up to 16,000 RPM!
Electronic Control Unit based on the Motorola MC68HC908GP32 Flash-based microcontroller operating at an internal bus speed of 8 MegaHertz (this is bus speed - remember that most microprocessors spec their parts at external crystal speed, which is then divided down by four to yield internal bus speed). Many OEM and popular aftermarket EFI systems use older processor technology (like the MC68HC11 or Z80) which operate at 1 or 2 Mhz internal bus speed. The faster clock speed, coupled with direct assembly-language programming, gives MegaSquirt-I™ its power. Additionally, the on-chip Flash memory makes this a true single-chip setup, reducing cost and extending reliability. Also, using Flash technology allows the instant re-programming of constants, enrichments, etc. while the vehicle is running. - the processor can even be re-loaded with other control code using a simple programming interface! The flash can be re-written at least 10,000 times and has a retention duration of 20 years.
Input triggering for injection events is derived from an existing ignition system - either by connection to a conventional Kettering ignition coil (- terminal) or by using the TACH signal available from virtually any OEM or aftermarket ignition system. MegaSquirt uses an on-board opto-isolator to prevent damage due to inductive kickbacks present on ignition coils. Remember, MegaSquirt only controls fuel, not ignition. However, we are currently developing a multiple-coil CDI ignition system with ion-sensing technology which will interface directly to the MegaSquirt system - stay tuned...
Input trigger events (compared to ignition events) can be divided by any number between one and eight (number of cylinders must be evenly divisible by this injection number) - this means that there can be an injection event for every ignition event, or an injection event for every other ignition event (skip one), and so on depending on selection. The user can switch which injection division number to use while the car is running - the system will scale the required fuel amount properly on the fly.
On most batch injection computer systems, every injector will fire for any injection event. Megasquirt has two separate injector drivers (discussed below), and they can be operated in simultaneous mode (both banks fire at the same time) or alternate mode (the banks fire alternately in a ping-pong fashion) - this allows for more flexibility in the end-application.
Two injector drivers are provided to directly operate either saturated or "peak and hold" injectors. The on-board drivers feature a PWM (Pulse Width Modulation) current limit mode which is totally under the control of the user - both PWM application time relative to injection event and duty cycle is adjustable. Virtually any current-limit amount and time can be programmed, allowing this controller to be used with pretty much any injector out there.
MegaSquirt® features an on-board Manifold Absolute Pressure (MAP) sensor (Motorola MPX4115). Having the MAP sensor on-board simplifies installation (one just runs a vacuum line to the ECU) and keeps the measurement signal clean, which is very important since the MAP signal is the most critical to proper fuel control. There are other Motorola MPX-series MAP sensors with expanded scales to handle turbo and supercharger applications, like the MPX4250A (this sensor handles 3 to 36 psi, or 20 to 250 KPa) - one can swap this sensor in with hardware change. The MAP sensor is additionally used to obtain the barometric pressure during engine startup, in order to determine a barometric pressure correction factor (explained below).
Coolant and Air-Temperature sensors are inexpensive (roughly US$9.00) GM units readily available from any parts store (GM #12146312). These sensors were been used on practically all GM cars in the 1980's and are easy to find - the same is true for the correct connectors. Also, the inputs to the ECU for the coolant, MAT, and TPS are protected from voltage spikes and noise, and there is both hardware and software low-pass filtering implemented to ensure clean signal measurement. All sensor output voltages (coolant, MAT and MAP) are converted to engineering units (KPa and degrees F) in the embedded software using lookup tables. This means that if another sensor is used, then all one needs to do is generate the transfer function lookup table. These lookup tables are "included" into the embedded source at compile time (barofactor.inc, kpafactor.inc, and thermfactor.inc), thus no change to the embedded control code is required.
MegaSquirt® uses an oxygen sensor as feedback for mixture AFR control. MegaSquirt is compatible with single wire (unheated - like Bosch Part Number 12014, used everywhere ) as well as heated units. All parameters that control the feedback (step size and rate, range, trip threshold voltage) are user-controlled. Additionally, since the trip point voltage is user-defined, MegaSquirt is compatible with the DIY-WB (wideband) oxygen sensor board - one simply sets the desired air/fuel ratio trip voltage and you are there.
Air density corrections as a function of manifold air temperature (MAT) and barometric pressure effects on VE are pre-computed as lookup tables and properly used by the ECU in the fuel calculation. Most aftermarket EFI controllers allow the user to set the air temperature correction - MegaSquirt-I™ uses the mathematical equation for air density to generate this correction, so no user intervention is required. More importantly, many aftermarket EFI controllers do not take account the effect of barometric pressure change to volumetric efficiency. This correction comes into play at high altitudes (i.e. low barometric pressures). MegaSquirt® uses a lookup table to determine this correction, and is consistent with OEM systems.
All enrichment values (i.e. warmup, acceleration, VE, etc) are calculated as direct percentages and are multiplied together (instead of added). This allows one to work directly in percentages, which is easy for people to mentally visualize, with the result that tuning becomes much easier. Adding 25% more fuel is achieved simply by increasing a quantity by 25. A value of 100% represents the nominal required fuel for a cylinder - a number less than this represents an enleanment and a value above this represents an enrichment. Other systems use direct or scaled AFR values or numbers of unknown or weird units (especially Alpha-N units) - tuning an engine is difficult enough without having to constantly convert crazy numbers to Air-Fuel Ratios.
There is a 64-point Volumetric Efficiency (VE) table, organized as a conventional grid eight RPM points vs. eight MAP points. The entries in the VE table are in direct percentages, so that a number of 80 means that the VE is 80%. You can take direct dyno VE values and plug them right in without any conversions. Additionally, specific RPM and MAP range points are adjustable by the end user, a very nice feature. No, there are not hundreds of VE grid points, only 64 - this allows for plenty of control of the engine without having to fill in a bunch of grid points with redundant values. A 16x16-point table (or higher) used by some other units is not a feature, but a pain, especially during tuning, because all 256 slots need to be entered. In addition, the value of VE is *correctly* interpolated between grid points and is truncated to the grid edge points when outside of the table - this is not the case with other systems on the market.
There is an output control signal (current sink up to 500 milliAmps) designed to drive an idle bypass solenoid (open/close solenoid, not a stepper), which allows the addition of more air at idle during warmup. The activation/deactivation temperature is set by the user.
A relay drive circuit (up to 500 milliAmps) is provided to control a relay to power to the fuel pump. Signal is active while the engine is cranking or running, and will deactivate 2 seconds after the last ignition event.
A nice feature on the MegaSquirt® controller not found on other systems are three indicator LEDs which reflect the current operating mode of the controller. The first LED pulses whenever there is an injection event, and the glow duration follows the actual injector pulse width. The second LED is active whenever the ECU is in a warmup enrichment state (i.e not at 100%). The third LED indicates an acceleration enrichment, and is active during the entire duration of the event. Extremely useful, especially during installation and debug. Flashing lights also look "cool", particularly when you show off your controller to others.
The best feature of MegaSquirt® is that you build it yourself! Since you assemble the controller, and all information about the design is available to you, you are able to troubleshoot the board if a problem arises, and, in almost all cases, repair the unit yourself. The system as it exists today is a complete turn-key solution: solder it together, install in the vehicle, tune, and use. The complete source code is available on this site for those who want to understand or even modify the control algorithms - one can convert this board to control nitrous, alcohol, methanol, LPG, etc. - there is really no limit. Why purchase a $1,000 plus unit when you can build one yourself?