Michael Kristensen (Denmark/near Copenhagen, mik-at-caffrey-dk) took the initial effort to redesign the MegaSquirt circuit around the AtMega128.

The main motive was to implement a stepper controller on the board, ease reprogramming of the processor and be able to program it in C. The design started the avalanche that opened new dimensions in affordable, yet powerful open source engine management systems.

Configuration files for the setup: [config.txt] [tables.txt]

Michael is driving a MGB '72 daily which has used the engine controller since the end of March 2003. The MG is customized to make daily usage a pleasure: improved suspension, interior/seats, engine, efi and removal of all the strange sounds!


By fabrication of a suitable adapter plate, the O-series engine (Rover) is mated to a standard MGB gearbox with overdrive. The distributor (originally positioned at the end of the camshaft) has been removed entirely to allow for the heater to stay in place without clearance problems. An edis-4 coilpack, to help handling the lack of a distributor, is mounted to the right behind the alternator. The intake manifold has been mirrored MembersPage/MichaelKristensen/IntakeManifold, such that the engine breathes fresh cool air from the front end of the engine compartment.


[Original page for the project]

Some notes about how to measure ignition advance: MembersPage/MichaelKristensen/MeasuringIgnitionAdvance

Pictures of the camshaft sensor: MembersPage/MichaelKristensen/CamHallSensor

Knock detection experiments: MembersPage/MichaelKristensen/KnockExperiments

GenBoard/VerThree installed in the car


  • April 2004 GenBoard/VerThree is permanently installed in the car, the MSAVR v1 has retired.
  • March 2003 MSAVR v1 installed and operating in the car
  • January 2003 project started

Abused alubos endplate (note: this is nonstandard, EconoSealIII is the recommended connector):


IGBT mounted to a (way to big) piece of aluminium which again is connected to the alubos:


The IGBT is isolated from the heatsink with a silicone rubber (like a mica).

Future experiments

- There are individual injector 'banks' driving each injector. However currently they are not timed to valve-phase as PortInjected/SequentialInjection

- Wasted spark: done

- Abusing the engine for the development of knock detection firmware: in progress!

- Cam sync: in progress, knock has higher priority.

Oil "fun" - advice needed

Somehow the engine oil is disappearing. The engine isn't soaked in oil and the driveway doesn't show signs of leaks. There are no smell or visual indication of burned oil when the engine is idling. Maybe it only eats oil at high load? Maybe the oil gets sucked past the valve guides during overrun?

The possible candidates for the oil consumption are worn valve guides, worn cylinder bores or non-working engine breather system. The engine is originally born with a breather system as shown in the figure:


What is the purpose of having the A->B air path going past the throttle butterfly?


I think that its so that there is a constant light vaccum. (when the throttle is open both holes will 'see' the same pressure. When the throttle is closed B will 'see' a much higher vaccum, the pressure of which will be lessened (balanced) by A.

But why the need for applying a vaccum for getting the crankcase gasses out (ususally they will find their way to the airfilter by themselves)?


Crankcase vaccum helps pistonrings to seal. It's all good I've been told.


When the engine is not under load the oil vapours will be swallowed by the engine through the hole in the plenum chamber side since is has the lowest pressure of both. The restrictor must be there to control the vacuum effect. Under load the amount of pressure and oil in suspension will be higher and most of it will escape through the non restricted duct (A line)