This is a feasibility inquiry regarding a project I have in mind:
The scope is that I have a motorcycle engine to which I want to add a programmable Ignition controller in place of the current mechanical system (which has failed me and cost me a holed piston and an engine rebuild).
I currently am running a coil module (GM HEI) triggered by the points via a transistor circuit (see diagram http://home.comcast.net/~loudgpz/GPZweb/Ignition/GPZheiModForPoints.html for specifics)
As this is currently dependent on the motorcycle's mechanical advance mechanism, it has issues. As I mentioned earlier, the mechanical advancer was worn beyond service limits and over-advanced the ignition timing causing an engine failure. Is it possible to insert an Arduino in place of the current transistor coil control and have it control ignition advance while using the points as an RPM input? (provided the mechanical advance is rendered inert of course) An additional function (which I think would be easy to code, would be a rev limiter function)
I'm pretty sure that the Arduino Lenardo unit has sufficient processing power do calculate the needed advance based on a last known RPM basis. As this motorcycle has a upper rev limit of 8000 or less, I calculated that the rotational time for 1* at 8000 to be .0208 milliseconds. However, if this project is feasible, I'd like to add this to a second motorcycle which has a rev limit of 10500 rpm (.0151milliseconds per * at 11000rpm). I know I will have to address power supply issues to condition 12-15v DC to the appropriate "clean" source voltage, but I don't think that will be too hard.
so in a nutshell can an Arduino Lenardo do the following
- use automotive points as a tachometer / RPM input (with mechanical advancer rendered inert)
- use either my current HEI system or something similar to trigger the HEI module (keeping direct coil control power levels away from the Arduino)
- be able to control the spark event by 1* increments by using a last-known RPM calculation (time for last revolution +- delay for table-lookup timing with a fastest * increment delay of .0151milliseconds)
- use a Pressure sensor to determine "load" axis for table lookup (vacuum to atmospheric only)
- handle the vibrations and environment of being motorcycle mounted (box or potting acceptable, provided programming interface still accessible)