Introduction: Arduino Car Ignition System... the Carduino!

Picture of Arduino Car Ignition System... the Carduino!

These are the basic ingredients you will need to construct a relay driven by Arduino.

- Large hobby box

- Arduino chip of your choice (R3 knockoff in my case)

- Blank PCB

- Automotive 14VDC 60A relay

- 3x4 Matrix keypad (I know the pictured one is not a matrix, but the one used is.)

- Cat 5e ethernet cables and sockets

All additional parts used are as follows:

- Rubber vacuum line for mounting chips (pictured)

- Various screws and nuts to mount everything (use 4-40 and smaller)

- Wire connectors and heat shrink tubing

- Various components for power supply board (see pictures)

- Lots of Patience!

Tools used:

- Drill and drill bits

- Utility knife

- Small saw blade

- Soldering Iron

- Pliers/Screwdrivers

Step 1: Make the Box

Picture of Make the Box

Please excuse my hack job on the ethernet jacks, but the important thing here is to make sure everything fits comfortably and that you will have enough room to work if a wire, connection or component needs to be fixed/moved/replaced after everything is assembled. Then mark and drill the mounting holes.

Step 2: Programming the Arduino

Picture of Programming the Arduino

This is perhaps the most difficult part of the whole process if you are new to Arduino. The 3x4 Matrix keypad used has a total of 9 pin holes, however the first and last are not connected to anything and so can be ignored. Thus, the numbering of the pins are from left to right, 0-6 for a total of 7 pins. On the Arduino board, we start at the number 2 pin and go to number 8. The sketch should be attached so just download and use!

The connections are as follows:

Matrix Pin: 0 Arduino Pin: 7

1 , 5

2 , 8

3 , 2

4 , 6

5 , 3

6 , 4

The Arduino pin 12 is the output to the relay driving circuit.

Step 3: Building the Power Supply and Driver Circuit

Picture of Building the Power Supply and Driver Circuit

This system is going to be installed in my car, and so must be protected against voltage spikes caused by things like the wiper motors. Also, it is desired to keep the voltage to a maximum of 12 volts. To satisfy these requirements, a simple linear circuit was constructed as follows:

The hot wire is brought in from a switched tap on the fuse block. The first component is a 15 volt reverse biased Zener diode used to drain any voltage greater than 15 volts. Then, there are four 0.7 volt forward biased diodes to drop the running voltage of the car (typically 14.2 - 14.5 volts) by an approximate 2.8 volts. This ensures the voltage at most will be +- 12 volts, however, the next component is a 12 volt reverse biased Zener that drains anything greater than 12 volts, guaranteeing a maximum of 12 volts. Following that is a 330 uH inductor for filtering and then a MOV as last resort for a major voltage spike. Finally, a 104 ceramic capacitor and 220 uF electrolytic for normal filtering and smoothing. At last, the current is allowed to be applied to the Arduino board.

On the other side of the chip is the relay driving circuit as shown in the picture where the Arduino pin 12 is connected through a resistor to the base of the NPN 2N2222 transistor.

Step 4: Putting It All Together

Picture of Putting It All Together

I decided it would be best to hard wire everything so to begin, I de-soldered the Vin jack, USB type B female connector and the headers on the right side of the board. Then, I converted everything to Cat 5e Ethernet for ease of connections and a level of security if for some reason someone wanted to try to change my password. To convert the Cat 5e back to USB, a special patch cable was made as the "key" to get into the system. In the picture, all of the appropriate connections have been made and tested.

Step 5: Final Assembly

Picture of Final Assembly

Here everything is in place and mounted. If I were to do this again, I would have made it more modular and easy to switch out components (mainly Arduino board) if need be.

Step 6: Installation

Picture of Installation

FInally comes the fun part. The installation went well thanks to a nice little pocket of space behind the main gauge cluster, however a bracket had to be made and attached to the box using a liberal application of epoxy. Then, to establish a connection between the keypad and Arduino, a cat5e ethernet cable was run behind the dash, up the driver side pillar and under the headliner to the middle to mate with the keypad. To mount the keypad, the profile of the pad was sketched out in pencil and then a hole cut to accommodate the keypad with some small machine screws to secure everything. Then, the trim piece was put back into place. The final challenge came in the form of powering the Arduino. I needed a switched power source and the most convienient tap was from the 12v socket, so a quick splice and everything was good to go. Or so I thought. Upon reinstalling all of the gauges and trim pieces, I wanted to change the password so I plugged my laptop into the box via the usb to cat5e patch cable, clicked upload and... error! Flabergasted because the system worked just fine before installing, I tore apart the dash again and removed the box. Then attempted to upload, and... success! "What the ****" I thought to myself so I reinstalled the box but before putting the dash back together, I attempted to upload again and... error! Now the only things connected are the 12V, ground, and computer (note: the ignition key is off) so that pointed towards a grounding issue so I disconnected the ground wire but left the 12V attached and tried to program and... success! So to circumvent this unforeseen situation, I added a rocker switch mounted on the side of the box to break the ground connection with the car so that the system is "isolated" while being programmed and then switched back for normal operation.

Step 7: Conclusion

In all, the project was a lot of fun and showed the versatility of an Arduino. I have has the system on the car now for about a year and so far so good. The couple of things I would do differently if I were to do this again would to mount the Arduino in the box in such a way that it could be easily removed and replaced if at some point in the future, the chip gave out. Everything I have made since has had this "modular" and easily maintained concept designed into it. Also, a characteristic of the keypad that I used is that the keys are not held in place by any positive pressure, that is, as the car vibrates thanks to my solid motor mounts, the keys vibrate audibly and aggressively at certain frequencies and their harmonics. I have grown used to this noise and don't mind it but would also not be upset if it wasn't there :). Please comment or pm if you have any questions, suggestions, or criticisms!


satishsezu (author)2017-06-26

hi sir can you upload the power supply circuit its more help full

Mendelbrot (author)satishsezu2017-06-27

Hello, I can if you really want me to. But I must say, the circuit was made before I really knew what I was doing (not saying I do now!) so there is no guarentee, but again, I can if you would like.

offtherails2010 (author)2017-03-13

This is Awesome !!

Well Done, a Great inspiration and i personally LOVE keypad ignition/start/safety concepts for cars, you Sir are a BADASS !

Arduino's are pretty easy to build yourself, with your own custom made PCB (Google, Eagle, PCB making software) - this i think could help you loads in making your projects single board designs and even get the PCB's professionally made at really low cost (China PCB Fabrication is really cheap!)

Also, 1 of these days ill have a go at making this - in the meantime, would you be able to show a Schematic of the wiring youve done (Eagle has a built in Schematic maker too)

Loads of other PCB Softwares out there but ive found the parts library of Eagle to be intensely huge, over all others... IMVHO..

Instructables also has Eagle how-to's which was how i learned the software (thx Instructables !)

By the way, was a little unclear - but does the keypad code actually start the car or just allow the ignition to be switched on? sorry lol

Once Again - Great Job - Truly Awesome :)

Much appreciated my friend!
Yes, building my own "Arduino's" or atleast a stand alone ATMega328 that
is tailored to a project has been on my to-do list for quite some time;
so has etching my own PCB's.

Sure, I will have a schematic and a
video demonstrating it in use up in about a week! The keypad/Arduino
actually starts the car, that is, first you turn the key to the "run"
position and then you type in the code and the Arduino activates a relay
which connects the wires that activate the solenoid on the starter
motor thus, starting the engine.