
If you’ve ever opened a service function menu in an OBD2 scanner and seen options like “Add Key,” “Read Immo Data,” “PIN Code,” and “All Keys Lost,” you probably wondered the same thing I did when I started: can I actually make a working car key with this thing? And if yes, how hard is it really?
Short answer: yes, you can program keys for a meaningful chunk of cars on the road. Maybe 30 to 40 percent if you stick to easier jobs. The catch is that “easier” doesn’t always match what you’d guess. A 2006 Honda FRV is easy. A 2003 BMW E46 is technically also “easy” in locksmith terms but eats beginners alive. And a 2024 Audi might be impossible without dealer-level tools.
I tried key programming for myself
I’m not a professional locksmith. I run iamcarhacker.com and I’ve programmed keys on a handful of cars over the past couple of months using consumer-grade tools (Autel IM608, Xtool D8S, Xtool IP900BT, Mucar 581, BMW AK90+). I’ve had wins, I’ve had failures, and I’ve bricked a module once on the way to fixing it. This guide is the manual I wish someone had handed me before I started.
Need a scanner that does this? Check my best OBD2 scanners for key programming comparison.
It’s aimed at general mechanics and serious DIYers who want to understand what’s actually happening when they click “Add Key” in their scanner, plus how to figure out before they start whether the job is in their league.
What “key programming” actually means
A modern car key does up to three completely separate things, and confusing them is the single most common beginner mistake.
The transponder chip is a small RFID-style device inside the head of the key. When you put the key in the ignition, an antenna ring around the lock barrel sends out a 125 kHz signal that wakes up the chip. The chip sends back an encrypted ID. If the immobiliser module recognises that ID, it tells the engine ECU “OK, this is one of mine, you can run.” If not, the engine cranks for 5 seconds and dies. The transponder is what stops the car from being hot-wired.
The remote is the buttons. Lock, unlock, trunk, panic. It transmits at UHF (433.92 MHz in Europe, 315 MHz in US/Asia, 868 MHz on some BMWs). Completely separate from the transponder. The remote can stop working while the engine starts fine, which is usually just a dead battery in the fob.
The proximity / smart key system is the keyless entry and push-button start. This uses a combination of low-frequency signals (the car asking “is a key nearby?”) and UHF responses from the fob. It’s a much more complex challenge-response handshake involving the BCM, and it’s typically much harder to clone or replace.
When you “program a key,” you might be doing one or two or all three of these depending on the car. A spare blade-only transponder key for a 2008 Octavia is just the chip. A flip-key for a 2010 Golf is the chip plus the remote. A smart fob for a 2018 BMW is all three plus a cryptographic handshake with the FEM module.
How to know if a car needs the dealer or if you can do it
Before you order anything, you need to figure out where on the difficulty scale your specific car sits.
The four-tier reality
Tier 1 (easy): cars where one working key exists and the immobiliser will accept a new key over OBD with little fuss. Most pre-2015 Hyundai/Kia, pre-2015 non-smart Toyota, pre-2015 Honda non-smart, Ford with PATS, older Renault and Dacia, older VAG (Polo, Golf IV, Passat B5/B6, Octavia I/II), older BMW E-chassis, simple Mazda, Suzuki, Mitsubishi, Nissan up to about 2014.
Tier 2 (medium): cars where you need a PIN code that the tool either reads automatically, calculates from VIN, or you extract from an EEPROM dump. Smart proximity keys on simpler systems (Hyundai/Kia 2015-2019, some Ford keyless, some Mazda). All-keys-lost on older cars. PSA after 2010 if you handle the ASK vs FSK trap (more on that later).
Tier 3 (hard, mostly refer out): BMW CAS3+/CAS4/FEM/BDC (2008+ F-chassis), Mercedes FBS3 facelift and FBS4 (W205 facelift, W213, W222, W167 from around 2017), VAG MQB-evo with SFD lock (Golf 8, Octavia IV, A3 8Y, Q4, ID.3/4 from 2020+), most 2018+ Stellantis with Secure Gateway, Hyundai/Kia 2020+ smart key, Tesla, modern EVs. These need pro-tier tools ($2000-5000+) and often specialist soldering work.
Tier 4 (dealer only): anything where the tools just haven’t cracked the system yet. This shrinks every year as Chinese R&D catches up, but it’s still real.
A practical decision tree
When I get a key request, I run through these in order:
- Look at the existing key. Blade-only with no buttons? Easiest tier. Flip-key with buttons? Medium. Proximity smart fob with no visible blade? Hard.
- Look at the car’s negative battery cable. Modern cars with sophisticated immobilisers usually have a small black sensor (an IBS) on the negative terminal. Not relevant for keys directly, but a good age proxy. No sensor usually means older simpler immo.
- Search the model + year on mhhauto.com. This is the single biggest auto-locksmith forum on the internet. If three threads describe the same procedure with the same tool, you’re in business. If five threads describe five different procedures and someone’s car is bricked at the end of each, refer out.
- Check transpondery.com. Type in the car make and model. It tells you which transponder chip the car uses, the OEM key part number, and notes about the immobiliser system. Free, comprehensive, no signup.
- Check your tool’s coverage. Don’t trust “supports VW.” Look for “VW Passat B6 / Comfort Module 95320 / Add Key” specifically.
If at any point you find yourself confused, stop and ask in a Facebook group. The Autel IM608 user groups, Xhorse VVDI Key Tool Plus groups, and “Auto Locksmiths Worldwide” group are all active and helpful. Yeah, you’ll get patronised by some old-school locksmiths, but you’ll also get specific answers from people who’ve done your exact job.
The immobiliser, in plain language
Two checks happen every time you turn the key. The engine ECU asks the immobiliser module “are you the immo I’m paired to?” The immobiliser asks the key “are you a transponder I recognise?” Both have to pass for the engine to run.
This is why programming a key isn’t just one job. It can be:
- Adding a key when at least one working key already exists. The immo’s “allowed keys” list gets a new entry. This is 90 percent of jobs and what beginners should focus on.
- All keys lost (AKL) when no working key exists. You either reset the immo to virgin and pair fresh keys, or you extract the secret PIN from the module’s memory and inject a known transponder. Massively harder.
- Replacing a module (cluster, BCM, EWS, CAS) and re-pairing it to the existing keys and ECU. Component protection territory.
When your scanner asks for “PIN” or “SKC” or “ISN” or “Component Security data,” it’s asking for the credentials needed to talk to the immobiliser at the security level required for whatever operation you’re doing.
The vocabulary, decoded
Beginner menus drown you in jargon. Here’s the translation for the terms you’ll see in any decent key programmer.
- Read IMMO data: tool reads the encrypted security data from whichever module owns the immobiliser function (cluster on older VAG, BCM on Renault/Nissan, EWS/CAS on BMW, BSI on PSA). Saves it as a file you can use later.
- Read PIN / Read SKC / Read Login: extracts the security access code. 4 digits on simpler systems, 7 on VAG Immo III, 16 on some Mercedes.
- Read CS: VAG-specific, it’s the 7-byte component security string that links cluster, ECU, and keys on Immo IV and later.
- Generate transponder / Make Dealer Key: writes vehicle-specific encrypted data onto a blank chip outside the car. This pre-coded chip then gets programmed into the car.
- Add Key: adds a new key to the existing immo memory. Needs at least one working key on most procedures.
- All Keys Lost: special procedure when no key exists.
- Lock Key / Disable Key: marks a key slot as inactive in the immobiliser memory. The car refuses to start with that key, but other keys keep working. Used when a key is stolen and you don’t want to erase all keys (which would force re-programming everything).
- Unlock Key / Enable Key: re-activates a previously locked slot in the immobiliser. Reverses Lock Key. Useful if you locked a key by mistake or recovered one you’d written off as lost.
- Unlock Transponder / Reset Chip / Virgin Chip: resets a programmed transponder chip back to blank state so it can be reprogrammed for a different car. This operates on the chip itself, not the car. Required when reusing dealer-programmed keys, second-hand keys, or test keys. Some chips (like ID46/PCF7936) lock themselves in hardware after programming and need a specific tool to unlock again.
- Sync Remote / Match RKE: pairs only the buttons, not the chip.
The single biggest beginner trap: immobiliser programming and remote pairing are different operations. You can program the chip perfectly so the car starts, then find the remote buttons don’t work because the remote pairing is a separate step. This bit me on a Citroën C4 Picasso, but more on that in a minute.
Picking the right key (this is half the job)
If you order the wrong key, no amount of skill saves you. Three things have to match.
The transponder chip
Every car expects a specific chip family. ID46 is common on 2000s-2010s European and Asian cars (Hitag2 family). ID48 is the VAG signature for that era. ID47 is newer Hitag-3 used by Hyundai/Kia 2015+. Megamos AES (ID88) is on VAG MQB. DST80 / 8A (H-chip) is modern Toyota.
You find the right chip by looking up your car on transpondery.com or by reading the chip in the existing working key with a chip detector (Xhorse Key Tool, Autel KM100, Mucar 581 all have this function).
The frequency
433.92 MHz across Europe and most of the world. 315 MHz in US, Japan, China, Korea. 868 MHz on some European BMWs. 434 MHz on some Ford. If you order a 315 MHz remote for a European car, the chip will program fine but the buttons will do nothing.
ASK vs FSK modulation
This is the one that catches everyone who works on PSA cars (Citroën, Peugeot, DS).
ASK (Amplitude Shift Keying) and FSK (Frequency Shift Keying) are two different ways of encoding the data on top of the same 433.92 MHz carrier. PSA used ASK on most cars 2003-2010, then switched to FSK on most cars 2010+. But not consistently. Same model, same year can sometimes ship with either.
If you order ASK and the car is FSK, the buttons silently do nothing. Engine starts, doors don’t lock from the remote.
How to tell which one you have? You measure it. Mucar 581 has a frequency detection function that tells you both carrier and modulation. So does Xhorse Key Tool Mini/Max and Autel KM100. Press a button on the original remote, the tool tells you exactly what you need.
If you don’t have a tester, your safest bet on PSA is to buy a universal remote (Xhorse XKB or KeyDIY KD universal). These can be flashed to either ASK or FSK in the app. If you accidentally programmed FSK and need ASK, you re-flash and re-pair. No reorder needed.
A real example. I did a Citroën C4 Picasso recently. The PIN read fine over OBD with the Autel IM608, the chip programmed first time, the engine started. Remote did nothing. I’d ordered an ASK key when the car was FSK. I figured it out by measuring the original remote’s signal with Mucar 581. Could have saved myself an hour and a re-order if I’d checked first.
Where to buy
AliExpress is fine for transponder-only keys, blade keys, and most flip keys for cars 2002-2015. Risky for proximity smart keys and laser-cut keys. What to look for:
- Seller with 4.7+ stars and 5+ years on the platform
- Listing-specific sales of 100+ (not seller-wide)
- Reviews mentioning your exact car and year
- “With chip” option clearly labelled
- Frequency choice visible (315 / 433 / 434 / 868)
- ASK/FSK choice if it’s a PSA car
- Photos that actually show the PCB, not just the case
OEM dealer keys are worth it on post-2018 cars with proximity entry. You’ll save the cost in not buying three failed aftermarket keys.
The “pre-cut by photo” hack
Some AliExpress sellers offer pre-cut blade service for $3-8 extra. You photograph the original key (with a coin in frame for scale, on a flat white background, daylight) and they cut the new blank to match. Works well on simple wave-cut profiles like HU83, HU100, HU101, HU66, NSN14, VA2. Fails on laser-cut keys (newer Mercedes, BMW, Range Rover) and dimple keys.
I haven’t tested this myself yet but the locksmith forums seem split. Worth trying for a low-stakes spare key if you can’t find a local locksmith for less than $20-30. If it doesn’t fit perfectly in the door lock on arrival, you can usually return.
Verifying the key before you program it
This is the step everyone skips and everyone regrets. Before you connect the OBD2 scanner, before you do anything, open the new key.
Is the chip actually in there?
This sounds insulting until it happens to you. AliExpress sellers sometimes label keys “with ID44 chip” but ship them empty, expecting the buyer to add their own chip separately.
What a transponder looks like depends on the era:
- Glass cylindrical chip (older cars, ID33/ID40/ID44/early ID46): a 3 by 13 mm clear glass tube with a copper coil visible inside. Glued in the plastic key head, not on a PCB.
- SOIC-8 surface mount IC (newer flip keys): small black surface-mount chip on a PCB next to the antenna coil.
- Embedded in the main MCU (modern smart keys): the transponder function is part of the same silicon as the RKE microcontroller. You can’t see it as a separate chip.
A real example. When I did my BMW E46, I bought a key from AliExpress with the option “with ID44 chip.” When I opened it, I couldn’t see any chip, just the PCB for the buttons. I didn’t know what the chip should look like at the time. I ordered a separate ID44 chip, the IM608 still couldn’t write to it. Eventually used an AK90+ tool which worked first try. The lesson: a $30 single-purpose tool beat a $1500 multi-function one for that specific job.
Recently I opened a 2019 Octavia smart key for unrelated reasons and saw two black rectangular ICs on the PCB, both looking identical. I almost panicked thinking the car had two transponders. They were the main MCU and a separate memory chip. The actual transponder function was inside the main MCU. So “two chips visible” on a modern smart key is normal. On older keys with a separate transponder, it’s not.
Use a chip detector
Drop the key on a chip detector (Xhorse Key Tool, Autel KM100, Mucar 581, dedicated transponder readers like Zed-Bull). It identifies the chip type. If it says “unknown” or returns nothing, the key is empty, the chip is dead, or it’s a chip your tool doesn’t know.
Measure the frequency
Pop a CR2032 in temporarily, press a button at the tester. Confirm carrier and modulation match what the car expects. Five minutes here saves you an hour later.
The actual programming workflow
Assuming you’ve done the homework, ordered the right key, verified it physically, here’s the typical flow.
Battery support is critical. Every voltage drop during programming can corrupt the immo’s EEPROM mid-write. Connect a real battery support unit (CTEK MXS 25 or equivalent), not a 5A trickle charger. Voltage at the OBD pin should sit at 12.6-13.8 V throughout. Most “Failed at 90%” errors I’ve seen are voltage related, not data related.
A typical OBD add-key flow looks like this:
- Battery support on, voltage stable
- Plug scanner into OBD, identify the vehicle (VIN read, confirm year and immo system match what you expected)
- Read IMMO data, save it to a file. Always do this. It’s your safety net if anything goes wrong
- Read PIN (or enter it from a VIN-to-PIN service)
- Insert the original working key, follow the on-screen prompts
- Tool prompts you to insert the new key in the ignition or place it on the programmer’s coil
- Programmer writes data, takes 1-10 minutes typically
- Test: pull the new key, insert, start. Test the remote buttons separately
- If immo works but remote doesn’t, you’ve hit the modulation trap or the remote pair step needs running separately
- Save the IMMO data file with a sensible filename (VIN_date.bin) for future reference
A few real cases.
Honda FRV 2006. Plugged in the IM608, OBD path, working key in hand, took 15 minutes. Easy day. This is what a “good” job feels like.
Renault Mégane II key card. Same story, IM608 OBD, done in 20 minutes.
VW Golf 5. My first ever key job. Used Xtool D8S with KC100, all OBD. Bought a $15 key on AliExpress and the chip was actually in there. Worked first try.
Nissan Micra K12. Same car, two outcomes. With Xtool IP900BT, I needed the 4-digit PIN derived from the 12-digit code on the glovebox sticker. With Autel IM608, the tool read the BCM directly and bypassed the sticker entirely. Both correct, both successful. The “easier” tool depends entirely on whether you have the glovebox label or not.
Passat B6. Couldn’t read immo data over OBD. Had to remove the comfort control module from behind the glovebox, desolder the 95320 EEPROM chip, read it externally, decode the PIN and CS, then re-solder. First soldering attempt left a cold joint and bricked the car (CAN bus dead, dashboard dark). Re-flowed the joint with fresh flux and leaded solder, came back to life, programmed fine. Lesson: you will brick a module on your first solder job. The recovery is usually re-soldering, not replacing the module.
When things go wrong
Failures cluster into a few recognisable patterns.
“Failed at 90%.” Almost always voltage drop, communication interruption, wrong chip in the key, locked module from too many wrong PIN attempts, or expired tool licence. Check battery, replug OBD, verify chip, wait out lockout timers.
“OK” but the key doesn’t work. Modulation mismatch on PSA. Cloning a crypto chip with a non-crypto cloner (the tool wrote the static UID but the car expects a cryptographic challenge-response). Wrong slot used. Damaged immo antenna ring around the ignition.
Bricked module from bad soldering. Almost always cold joint or invisible bridge. Inspect under magnification, re-flow with fresh flux. If the module’s PCB is actually damaged, source an identical replacement (exact part number with same letter suffix), transplant your original EEPROM into it, do the comfort module to ECU adapt with VCDS or equivalent.
Locked ECU after wrong PIN attempts. Hyundai/Kia, Renault, VAG all enforce timeout lockouts. The counter only counts down with the cluster powered up (ignition ON). Wait it out, don’t keep guessing.
Cloning failure on Mucar 581 or similar cheap cloner. This happens because cloning copies a chip’s static UID onto a blank, but cryptographic chips need rolling-code seed + counter state, not just the UID. Tool reports success because the write succeeded; the car rejects because the authentication fails. Cloning works on fixed-code chips (4C, 4D-60/63/65, ID33). Cloning fails or silently produces dead keys on Megamos AES, DST80, Hitag-Pro (ID49), Renault crypto cards.
A real case. I tried to clone a Renault Mégane II key card with Mucar 581 twice. Both times the tool said “OK.” Both times the card did nothing in the car. The Renault UCH expected a cryptographic challenge that a static UID copy can’t satisfy. This was a fundamental tool limit, not a procedure error. The right path here is generation of a card via Lonsdor / IM608 / AVDI, not cloning.
Tools, honestly
Let me give you the actual breakdown of what I’ve used.
Mucar 581 ($400-600). Excellent first tool for cloning fixed-code chips and measuring frequencies. Don’t expect it to replace a real OBD programmer for crypto-chip cars. Cloning ID46 is hit-and-miss. Cloning Megamos AES, DST80, Hitag-Pro doesn’t work. Worth owning for the frequency tester alone.
Xtool D8S + KC100 ($700-800). Solid mid-tier OBD-only key learning across most Tier 1 European and Asian. My Golf 5 was done with this. Limited bench/EEPROM functionality. Good general workshop choice.
Xtool IP900BT ($550). Compact handheld with broad OBD coverage. Specific Nissan workflow asked me for the 4-digit PIN that the IM608 read automatically. Less integrated than IM608 but cheaper.
Autel IM608 II ($2800-3500). My main tool. Most comprehensive aftermarket OBD plus bench combination. Excellent VAG, Hyundai/Kia, Nissan, modern BMW (CAS3+ and later with G-Box). Not infallible: the BMW E46 EWS write-failure is documented across forums. SFD2-locked 2024+ VAG largely beyond it.
BMW AK90+ ($18-40 for a clone). Single-purpose BMW EWS specialist. Reads EWS2/3/4 modules directly via clip-on PCB pads. Two decades of refinement on one job. Indispensable for E36/E38/E39/E46/X5(E53)/Z3 work. Saved my E46 job after the IM608 couldn’t finish it.
Other heavy hitters I haven’t personally used but the trade swears by:
- Xhorse VVDI Key Tool Plus ($1,200-2,500). Best for key generation and universal remotes. Base advanced version around $2,099-2,142, full bundle with all licences (MQB48, BMW ISN, Motor) up to $2,499. The cheaper VAG-only version is around $1,200 if you mainly do VW/Audi/Skoda/SEAT.
- Lonsdor K518ISE / K518 Pro ($800-1,500). Gold standard for Korean and Japanese cars, also strong on Toyota AKL with the LT20 series adapters. First year of updates is free, second year ~$480, third year and onward $200.
- CGDI MB ($569-650). Mercedes specialist, supports all Mercedes up to FBS3 including all-keys-lost. One free token per day for blue members, additional tokens around $60 per 180 days.
- Yanhua ACDP-2 ($900-1,830 modular). BMW CAS/FEM/BDC/BDC2 bench reads without soldering. The basic FEM/BDC package (modules 2/3) starts around $899. Full BMW IMMO package with CAS, FEM/BDC, BDC2, BDC3, BCP coverage runs $1,599-1,830.
- Abrites AVDI ($3,000-8,000+). OEM-quality coverage across 40+ brands, used by serious shops for everything from VAG to Mercedes to JLR. Full AVDI bundle prices depend heavily on which licences you bind. Expect annual subscription fees on top.
When to stop and call someone
The hardest skill is knowing when you’re beat. Honest red flags:
- Two failed write attempts on the same key. Stop. Diagnose. Don’t “just try again.”
- Module bricked and you don’t have the original dump. Don’t power-cycle 20 times trying to revive it. Take what you have to MHH Auto.
- AKL on 2018+ VAG, 2017+ BMW, 2016+ Mercedes, 2014+ Toyota. Beyond beginner level. The risk of permanently bricking a cluster or EZS is real and replacement is $1500-3500.
- Customer car (paid job) and you’ve spent 4+ hours. Your hourly rate is now negative. Refer out, eat the loss.
A competent local auto-locksmith in most of Europe charges $120-250 for an add-key job, $250-500 for AKL. If your DIY bill is approaching that and you’re still stuck, call them. Many will respect that you’ve already done the prep work and quote you the finishing portion only. Build that referral relationship before you need it.
Online resources worth knowing
transpondery.com for chip lookup by car. mhhauto.com as the main locksmith forum (worth $35 for VIP membership; pays itself back on the second EEPROM dump).
AutoLocksmiths Forum UK for English-speaking trade. Brand-specific forums: e46fanatics.com for EWS BMW, passatworld.com for VAG, peugeotforums.com for PSA. YouTube: Tom Eccles, Mr Locksmith, ScienceLocks, LM Auto Repairs (excellent PSA tutorials).
Facebook groups for tool-specific Q&A: “Autel IM608 Users”, “Xhorse VVDI Key Tool Plus”, “Auto Locksmiths Worldwide,” plus regional groups. The Polish, Czech/Slovak, Romanian, and Spanish locksmith groups are particularly active for European cars.
Bottom line
Key programming sits in an awkward spot. The actual operation in the OBD scanner is often two clicks. The hard part is everything around it: identifying the system, ordering the right key with the right chip and right frequency and right modulation, having battery support during the write, recognising when your tool can’t do this specific job, and recovering when something goes wrong.
If you’re a general mechanic adding key programming to your repertoire, start with Tier 1 jobs. Honda FRV. Renault Mégane card. VW Golf 5. Older Hyundai.
Build to twenty successful jobs before you take on anything harder. Buy a chip detector and a frequency tester from day one. Save every IMMO data file you ever read with a sensible filename. Build a notebook of jobs done with VIN, year, model, immo system, PIN, CS, tool used, time taken, outcome. After thirty entries you’ll have a personal database better than any forum search.
For tool selection, see my best OBD2 scanners for key programming review where I cover budget through pro-tier options with honest pros and cons of each.
The best DIYer is the one who knows when to phone for help. Build the skill, accept the failures, and respect what you don’t know yet. That’s the whole game.
Most popular OBD2 guides
Hi, I am Juraj Lukacko. I got frustrated by unhelpful and scammy mechanics, so I decided to learn everything about car diagnostics myself. I test dozens of new car diagnostic tools every month along with learning new strategies to fix and customize cars.









