Building an ECU for an older engine

Here's the reason I'm looking into Arduino:

I have a 1983 SeaRay boat that has TWO V8 engines that don't have any electronics other than electronic ignition modules. Some people will think I'm crazy, but I'd like to build a form of simple ECU so that I can build a form of ODBII for the engines. Other than the ability to output to an LCD panel to make my old analog gauges a thing of the past, there are several other things that could be done for a boat engine like an engine synchronizer, auto start sequence, etc.

I'm sure that I could even connect the unit(s) to the internet and check on my boat from my house, and even warm up the engines once a week.

I have seen a few people tinker with single cylinder engines, but I haven't seen any information on something to this level. I'm sure that an Arduino would be a much cheaper alternative to an expensive replacement of an ECU on a newer car as well.

Any thoughts?

I don't have any experience with homebrew ECUs - but I do have to ask this, so that others who -do- have such experience will know:

What is your experience level in regards to engine mechanics?

In other words - how comfortable are you with engines?

Building an ECU would take, in my fairly uneducated opinion - someone who has experience not only tearing down and rebuilding an engine, but also intimate knowledge of altering timings, spark advance, cam profiles, re-boring, etc - that is, someone who is so intimately familiar with an engine, that they could be called a "wizard hacker of engines".

I mean - you would have to have a very deep understanding of engine mechanics and such - in order to accurately and properly control everything about the engine, so that it runs properly, and it isn't destroyed in the process.

Now - if all you want to do is read some information from the engine (RPM and other sensors, for instance) - that would be much easier. Controlling the engine (automated startup, throttle, etc) - would be a little more advanced. Controlling the engine from the standpoint of ignition, spark, etc - based on throttle input, load, exhaust readings (oxygen sensor, MAF sensors, etc) - that becomes much more difficult - and when you get into fuel injection (throttle body being easier than fuel-rail individual injectors) - well, that takes it to a whole 'nother level (not sure if the engines on your boat even have FI).

So - we should know this - so we (we'll, others) know how and what to advise you on. Otherwise, you could very well turn those engines into very expensive boat anchors.

Thanks for the feedback.

I'm fairly advanced with respect to engine mechanics. I have rebuilt engines, HVAC systems, etc. and have a good knowledge of engine electronics and computer controlled DDC programs. I'm not interested in replacing my Rochester 4 barrel carburetors with fuel injection or playing (too much) with timing, etc.

An engine has a limited amount of inputs, in my case throttle position, ignition circuit, and the Starter solenoid. Each of which could be controlled with a servo or relay, which could be controlled with an Arduino. There's not much you could damage with those that couldn't be damaged through operator error (overspeed, and actuating the starter with the engine running). Reasonable precautions could be taken using the various outputs to prevent those things from occurring. The engines have a bi-metal spring controlled choke, which might also be a good candidate for trying out a servo before putting it anywhere near the throttle.

I'm more interested in being able to read the outputs first, then perhaps adding the ability to modify the inputs based on the outputs. I'd love to have some color LCD gauges for the existing outputs: RPM - Oil Pressure - Water temperature - Battery voltage - Fuel level with perhaps some additional outputs that I don't currently have like water pump pressure, fuel pressure, etc. I would also like some other things like trim settings, holding tank level, bilge pump float switch operation, etc.

Only when I was comfortable with the systems would I attempt to close the starter relay, etc. That being said, it would be interesting to see if I could come up with a program that would control the maximum amount of time to crank the engine, and the ability to release the starter solenoid once the Arduino determines that the engine is beginning to run faster than the starter is turning it. Touch screen control of an old V8 has an ironic quality that appeals to me. :D There are a host of other switches on the boat that control galley water, cabin lights, cockpit lights, navigation lights, bilge pump override, the engine compartment blower and more. I would also like to pick up the battery system trickle charger amperage to see what its doing without having to stick my head in the engine compartment. It would also be nice to monitor whether the boat was connected to shore power because occasionally, someone will unplug it, or a breaker will trip. An alarm that warned of freezing temperatures in the engine compartment. The list goes on, and on.

But first I want an LCD display for the gauges :-)

When you started talking about ECUs I thought you meant converting to EFI. That's a big project and Arduino isn't the platform I'd recommend for that.

If you just want to bring the existing sensors and controls onto a digital bus and provide control over simple electrical / mechanical actuators, that's definitely in Arduino territory. Bear in mind that electronics don't usually like damp environments and you'd need to pay attention to waterproofing all the cables and sealing all the electronics. I don't see any reason to get stuck on using standard protocols for a one-off project, but I'd have thought that CANbus would make more sense for this than OBD. There was an open source project providing CANbus support for Arduino some time ago.

Thanks! I'll look into the CANbus, and I've already been thinking about using a potting gel to protect my board when it's done. Bigger boats have surprisingly dry environments since we usually put heaters, etc to keep things dry, but potting the board would make for a nice finished project anyway. I've thought about adding raspberry pi to the mix because it would be nice to add an entertainment system to the boat as well. Once I get it figured out, I'm sure I could put these together cheaply for my friends.

This sounds like a fun project. I'll make sure to post my results when I finally get started.