That's something I hadn't thought of - failsafes! The Arduino looks amazing but far beyond my capabilities.
I wonder if I could include an LED after each component (solendoids and pump). That would tell me if power was getting to each component at least right?
So I was looking at the schematic I sketched out, yes you could add an LED to indicate output status, but that relies on you knowing what status each one should be in for a given mode.
If you were to use some good old 4000 series CMOS logic, you could have the system work out if there is a fault (either power present when it probably shouldn't be or when there is no power going out to the solenoid/pump) by using XOR gates. Please note, these must be CMOS devices and they must be capable of 15v operation. You cannot use TTL devices without implementing a power supply and input signal level translation as TTL expects 5v typically and sticking 12v on their inputs is likely to make them go off with a bang. In case you're not familiar with logic like this, 0v = false and around 11-15v = true, which makes this family suitable for use with automotive electricals (assuming it's 12v).
The schematic below is a rough idea. I think I've got all the logic right, but as with the first, it's all too easy for your brain to fill in the missing bits or magically correct your mistakes.
U1 - Quad 2 input XOR gate
U3 - Quad 2 input NOR gate
U4 - Quad 2 input AND gate
U5 - Triple 3 input OR gate
T1 and T2 are fairly high power NPN power transistors. The exact model would be governed by the current required for the relay coils.
T3-T6 - Low power NPN transistors (something like a BC108 should suffice as it's only going to be switching an LED)
D5 and D6 - 1N4001 diodes to protect the switching transistors
F1-F4 - Fuses appropriate to the current requirements of the devices being driven
R1-R4 - Roughly calculated as 625ohm (assumed 0.5v forward voltage drop across the LED and a maximum forward current of 20mA)
RE1-RE4 - Output drive relays. Exact specification will depend largely on the devices
DRIVE12P (which will trigger the output drive for solenoids 1 and 2 and the pump) uses this logic - DRIVE12P = (VEG and (NOT TEMP)) OR (VEG NOR PURGE) OR (PURGE)
DRIVE3 uses this logic - DRIVE3 = (VEG AND (NOT TEMP)) OR (VEG NOR PURGE)
The fault indicators, take a feedback from the outputs SOL1DRIVE, SOL2DRIVE, SOL3DRIVE and PUMPDRIVE and XOR them against DRIVE12P, DRIVE12P, DRIVE3 and DRIVE12P respectively. If both are off or on, then the output for the fail will be 0, but if they are different then the output will be 1 and the LED connected to the relevant fail line will be on. This provides a basic electrical fail indication which is capable of detecting a relay failure or a fuse failure. Any more than that would require processing power to monitor current consumption at the output to detect overload (fault) or no current flow (wiring/component failure).
In a minimalist solution you only need two output relays. You can still use the logic to detect fuse failure for each of the outputs, you'd just scrap RE2 and RE4 and link their two fuses to the output of RE1, however loading may be a problem depending on the diesel pump rating.
Forgot to add these to the schematic... you will need pull down resistors (about 10kOhms) between 0v and the inputs VEG, PURGE and TEMP and also on the outputs after the fuse for SOL1DRIVE, SOL2DRIVE, SOL3DRIVE and PUMPDRIVE. These will stop these signals floating. I would also addprotection diodes on the outputs SOL1DRIVE, SOL2DRIVE, SOL3DRIVE and PUMPDRIVE to prevent the field collapse in the coils/windings frying the chips. It may also be prudent to add a fairly chunky electrolytic cap across the supply to provide a little bit of smoothing and 100nF decoupling capacitor across the supply to each chip.
Enjoy.
View attachment 35712