I've started a project with a mate to develop a simple, arduino based EMS for single cylinder 2 and 4 stroke go karts. The important word there being SIMPLE!
The aim is for it to be a learning platform to teach engine concepts as well as about EMS' themselves (As well as teach myself!). Within reason, where there's a choice between more features or better efficiency and a simpler implementation, the simpler path will be the preferred one. Documentation and clear and well documented code (ie NO assembly if it can be avoided!) will take preference over other areas.
The featureset I'm aiming for is:
- Single injector fuel management. Will investigate support for up to 4cyl batch injection once single cylinder is complete
- Single cylinder ignition with 5v logic level coil (May add BIP driver for other coils, but will omit initially in the interest of simplicity)
- 30 degree crank resolution with 12-1 trigger wheel (36-1 currently appears to be a problem given the limited CPU)
- 8x8 fuel and ignition tables with interpolation
So where am I at now? Much of the basics are there in software now (the hardware side will be equally as simple, but is still very much in the breadboarding stage). The fueling calcs (table lookups, interpolation, pulsewidth calc etc) are complete and the scheduler is currently in testing. Ignition is maybe only 20% complete, but hoping to get the fuel working on an engine before really attacking that.
That's it really. It is an open project but I'm not really sure what the most compatible license is yet, so any thoughts here would be appreciated.