Arduino Boat Control

Hey all,

Figured I would start a build thread for my project that i am starting. As the title say it is for controlling a boat.

This will be a complete conversion of a 27' Reinell cabin cruiser from cable controls and analog gauges to digital instrument cluster and fly-by-wire controls. My boat is setup with twin helms one in the saloon and one on the fly bridge, controlling twin engines As this is designed the three things that will be kept at the fore front of this project will be safety, reliability, and replace-ability. To be honest i believe that all three kind of go hand in hand. If something can replaced with easy it can increase safety and reduce the need for 100% reliability, which if you reverse any of those three items you can see that the tension on the other two items will be reduced. Such that if i can design something that never needs to be replaced, yet if it did it was so easy to that it only took a second then you could consider that you are so safe that you could light a match in a room full of explosives you would have nothing to fear. As we all know life ain't perfect so plan for the worst and hope for the best, and be ready when Murphy comes knocking.

Things that i am looking to accomplish.

I want to monitor both engines with reliability, which includes RPM, Coolant temp, Oil pressure and Fuel usage.

Control the engine shifting and the engine speed.

While dumping all of this info to a nice digital read out.

So more about how i plan to accomplish this.

Tachometer will measure the pulses to the coil on the negative side which are generated by a hall effects sensor in my distributor.

Coolant temp will be generated by using a voltage divider setup to a one wire sensor, which measure voltage changed on an analog pin and converted to a temp reading.

Oil pressure same as coolant temp minus it will be converted to pressure reading.

Fuel usage will be calculated two ways, total and flow rate, using a paddle wheel sensor.

Throttle control will be done using a rheostat in a custom throttle handle which will then be measure and then applied to a servo on the engine.

Shifting will be done with momentary push buttons and then out put to a servo that will use preset positions to shift between Forward - Neutral - Reverse.

Helm control will be done using momentary switch held to change which helm will be looked at for control.

Programing mode, or maybe better referred to as calibration mode will be used to calibrate all controls.

Last will be the output of all of this info, i have to find the link but my dad pointed out these newer(maybe?, at least new to me) screens that can read serial info and convert it to displays. Which should reduce the processing required by my arduino to out put usable info. I should be able to just dump variables to serial and move on.

This is where i am at so far...

I have started to gather code and components. I will post all the hardware i plan on using and also code as i go.

I will say this upfront, safety safety safety. I know mechanics, i am kind of good at coding. If anyone is interested in trying this on their own... please be safe, and i claim no responsibility for your doing.

Hardware:

Screen : Nextion TFT, Size unknown at this point

I demand some pictures!! ;D

Haha i would love to but there isn't much to take pictures of as of yet, hardware is all in the process of showing up... >:(

Unfortunately it looks like i am going to have to switch to a different chip for my ecm, based on my testing so far, the mega is not going to be able to handle the load, i have ordered a due but i also ordered a Nucleo board, which is a ARM based processor running a lot faster and has a lot more memory then anything arduino has. the down side is if i use the nucleo board i am having to relearn a new coding, well sorta.

I will definitely keep updating this as i put it all together, as long as no one is getting their feeling hurt by me posting the nucleo board info.

When it comes to a main controller i would rather have room for error rather then be programing right up to the limits of the processor.