RFID Car Immobiliser With PIC12629

63,985

202

55

Posted

Introduction: RFID Car Immobiliser With PIC12629

Ok, so there are heaps of immobilisers out there but with most of them, if someone has your keys, they have you car.  What good is a car alarm with 3+ point immobilisation if someone manages to get the keys and of course the alarm remote. 

This is a simple immobiliser based on a PIC12F629 and an ID-12 chip from innovations.  This can be built for about $50.

Advantages:
The ID-12 chip is/can be remotely mounted away from the main PCB, behind a panel with no external components viewable.

If someone carjacks you or something like that (after you have started the car) then if they stop the car, it will not be startable again.

Cheap and effective

I apologise for the slight lack in detail.  This was a project i done some time ago and it has been a long time since i touched it.  I have posted this on here as it was requested by a few people. I will be happy to answer questions though.

Step 1: The Schematic and How It Works

The PIC and the ID-12 are powered by a 7805 5v regulator via some basic filtering caps.  The PIC is in an endless loop at this point, reading available data from the ID-12.  Once a card/tag is read, it compares the string with up to 10 tags it has in EEPROM.  If one matches, it activates the transistor which in turn activates the relay and the program stops.  If there is no match, it just keeps waiting for data. The bi-colour LED indicates the status.

Initial setup is done by shorting the jumper and then reading up to 10 tags in sequence. This overwrites each tag if it's alreading in eeprom.

I know the schematic is hard to read, click on the 'i' in the top left then click on the  'original file' link for an uncompressed version...

Step 2: PCB

The PCB is fairly straight forward when teamed up with the schematic. There's not much to it...

Print, transfer, etch, drill etc.

The ID12 is wired in standard ASCII mode.  The only connections needed are:
Pin 1: GND
Pin 2: +5v
Pin 7: GND
Pin 9: Data
Pin11: +5v

This means you only need 3 wires going to the ID-12.  The others can be jumpered on the chip.  If the run is long (more than say 20cm), I would suggest the use of shielded cable as cars are electrically noisy and it might cause dodgey readings.

Step 3: All Put Together

Once you have the PCB done, solder it all up and program the chip with your fav. programmer. HEX file attached.

For debugging, you can connect pin 2 (GPIO5) and a ground pin to the serial port of a PC's Rx and ground @ 9600 baud to see the actual tag values and what the chip is doing.  However, it may not work properly on all PC's without the addition of a max232 chip as it is only pseudo RS232 and not true levels.  Not that i have come across any in recent times.

Step 4: Wrapping Up

Programming:  Power up the immobiliser with the jumper in place.  The LED should go green and then go red.  You can then program up to 10 tags.  The LED will go orange when a tag is read, then go back to red (waiting for another tag).  If you want to 'erase' a tag, you must reprogam that position or 'key number'.  Best is to just keep reading the same tag over and over till all 10 positions are filled, or reprogramming the pic will clear the eeprom if needed.

Once you have programmed your tags in, you can remove the jumper.  The unit is now in 'operation' mode and the LED is red.

When a tag is read, the LED will go orange and If a good tag is read, the LED will go green for 1/2 a second, then extinguish totally and the relay will close. If a bad tag is read, it will go back to red waiting for another tag.

Bench test the setup and once you are happy with it, you can wire it into your car.

The main power for the circuit should come from an 'ignition' circuit on the car.  Then connect the 'switched' relay contacts between a feed to the coil(s) or ignition input to your EFI computer.

To operate, turn on the ignition of the car, then swipe the tag over the ID-12, the relay closes, then start the car.  If the car is turned off, the process must be repeated.

Share

    Recommendations

    • Science of Cooking

      Science of Cooking
    • Pocket-Sized Contest

      Pocket-Sized Contest
    • Trash to Treasure

      Trash to Treasure
    user

    We have a be nice policy.
    Please be positive and constructive.

    Tips

    Questions

    56 Comments

    I have a RFID reader and am attempting to install and an ignition kill on my 93 Honda Accord. It came without wiring instructions. Please help. There are 3 wires, to which I can identify Hot, Ground, and switched. How would I wire this?

    Hi. I wanna build the immobiliser, but I want study the source code...

    Could you upload US files:

    INCLUDE "12F629.INC"

    INCLUDE "IMMOBL~2.MAC"
    INCLUDE "PBPPIC14.LIB"

    Hi,

    I wanna build the immo, however do you have a gerber or eagle file for the pcb?
    It would be very helpful to do the pcb! :)
    thank You!

    This is one of my early projects and I used PCB123 which does not support Gerber export, sorry.

    What is it that you would like to know? Bare in mind that this is a VERY old project and I have not touched PIC chips in 5+ years.....

    Could You check that?

    When I have Anscii mode on term I have that.

    But when I changed to Ansi mode is no strange characters.

    ID-12LA

    rfid.PNG

    Hello Andrew,

    Thank you for sharing your project.

    I made it with PIC12F629 and it works but I have a problem.

    When hooked the D0 pin of the ID-12 chip to USB-TTL RS232 FT232RL converter RXpin the ID-12 gives every single time the same code : 010D69AE01CA for the particular rfid TAG

    When I program the tag 10 times and remove the jumper and then read the tag again it works , the PIC activates the relay.

    When i hook the FT232RL converter to the pin 2 of the PIC12f629 i see the debug information that you provide

    Got : 313044363941453031F9

    Rom has: 313044363941453031F9 *** Matched chip 1 ***

    But after each power ON/OFF cycle the value I see form the same tag is changing

    Got : 313044363941453031D8 //this value is different from the one in the eeprom and the relay is not powered. Then I switch the power and plug it back and receive different reading

    Got : 313044363941453031F8 //again not the same value and the relay not operating

    Got : 313044363941453031F9 // after many ON/OFF cycles (without additional learning by the jumper) I receive the same code that is stored in the eeprom and the relay is activated

    With the same tag I see different reading in the last byte at pin 2 of the PIC.

    Please do you know what causes this.

    Again thank you for sharing your project.

    Best regards.

    I can't get my programmer to accept just the HEX file for the 12F629. Any chance of getting the ASM file?

    I have added the ASM to the instructable.

    Tried the ASM but it says I need the "IMMOBL~2.MAC" and the "PBPPIC14.LIB" files. Should they be standard files? I'm not really sure since I'm new-ish to programming PICs